IltmmSupportManager::UnlockSupport Example for C++

HRESULT DVDUnlockSupport()
{
   VARIANT_BOOL vb; 
   IltmmSupportManager* pSupportMgr; 

   // try to create the support manager interface
   HRESULT hr = CoCreateInstance(CLSID_ltmmSupportManager, NULL, CLSCTX_INPROC_SERVER, IID_IltmmSupportManager, (void**)&pSupportMgr); 
   if (hr != S_OK) 
      return -1; 

   // check if support is locked
   pSupportMgr->IsSupportLocked(L_SUPPORT_CONVERTFROMDVD, &vb); 
   if (vb == VARIANT_TRUE) 
   {
      // use your unlock key here
      static TCHAR L_KEY_CONVERTFROMDVD[] = L"DVDKey";

      USES_CONVERSION; 

      // try to unlock support
      hr = pSupportMgr->UnlockSupport(L_SUPPORT_CONVERTFROMDVD, T2OLE(L_KEY_CONVERTFROMDVD)); 
      if (hr != S_OK) 
      {
         // release the support manager object
         pSupportMgr->Release();
         return hr; 
      }

      // check again to see if it is unlocked now
      pSupportMgr->IsSupportLocked(L_SUPPORT_CONVERTFROMDVD, &vb); 
      if (vb != VARIANT_FALSE) 
      {
         // release the support manager object
         pSupportMgr->Release();
         return E_FAIL; 
      }
   }

   // release the support manager object
   pSupportMgr->Release();

   return S_OK; 
}