IltmmSupportManager::UnlockSupport Example for C

IltmmSupportManager* g_pSprtMngr; 

LPOLESTR T2OLE(LPCTSTR lpt)
{
   static OLECHAR lpw[512];

   if(!lpt)
      return NULL;

   lpw[0] = L'\0';

   MultiByteToWideChar(CP_ACP, 0, lpt, -1, lpw, 512);

   return lpw;
}

L_MULTIMEDIATEX_API HRESULT IltmmSupportManager_UnlockSupport_Example (IltmmSupportManager* pSprtMngr)
{
   VARIANT_BOOL vb; 

   HRESULT hr = CoCreateInstance(&CLSID_ltmmSupportManager, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmSupportManager, (void**)&pSprtMngr); 

   if (hr != S_OK) 
      return -1; 

   IltmmSupportManager_IsSupportLocked (pSprtMngr, L_SUPPORT_CONVERTFROMDVD, &vb); 

   if (vb == VARIANT_TRUE) 
   {
      hr = IltmmSupportManager_UnlockSupport (pSprtMngr, L_SUPPORT_CONVERTFROMDVD, T2OLE("DVDKey")); 

      if (hr != S_OK) 
      {
         IltmmSupportManager_Release(pSprtMngr); 

         return hr; 
      }

      IltmmSupportManager_IsSupportLocked (pSprtMngr, L_SUPPORT_CONVERTFROMDVD, &vb); 

      if (vb != VARIANT_FALSE) 
         return E_FAIL; 

      return S_OK; 
   }

   return S_OK; 
}