Index: lib/atl/atlbase.h =================================================================== --- lib/atl/atlbase.h (revision 70735) +++ lib/atl/atlbase.h (working copy) @@ -754,6 +754,34 @@ return hResult; } + HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) + { + HRESULT hResult = S_OK; + _ATL_OBJMAP_ENTRY *objectMapEntry = m_pObjMap; + while (objectMapEntry && objectMapEntry->pclsid != NULL) + { + hResult = objectMapEntry->RegisterClassObject(dwClsContext, dwFlags); + if (FAILED(hResult)) + break; + objectMapEntry++; + } + return hResult; + } + + HRESULT RevokeClassObjects() + { + HRESULT hResult = S_OK; + _ATL_OBJMAP_ENTRY *objectMapEntry = m_pObjMap; + while (objectMapEntry && objectMapEntry->pclsid != NULL) + { + hResult = objectMapEntry->RevokeClassObject(); + if (FAILED(hResult)) + break; + objectMapEntry++; + } + return hResult; + } + HRESULT DllCanUnloadNow() { if (GetLockCount() == 0)