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; }