From 288f3aca62d68e3b1760d43e5f14ed0df56ca94e Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 9 Dec 2013 15:33:39 +0400 Subject: [PATCH] atl: Implement AtlComModuleRevokeClassObjects(). --- dlls/atl100/atl.c | 21 +++++++++++++++++++++ dlls/atl100/atl100.spec | 2 +- dlls/atl110/atl110.spec | 2 +- dlls/atl80/atl80.spec | 2 +- dlls/atl90/atl90.spec | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/dlls/atl100/atl.c b/dlls/atl100/atl.c index 726a855c03a..9156afb4b44 100644 --- a/dlls/atl100/atl.c +++ b/dlls/atl100/atl.c @@ -502,7 +502,28 @@ HRESULT WINAPI AtlComModuleRegisterClassObjects(_ATL_COM_MODULE *module, DWORD c } return S_OK; +} +/*********************************************************************** + * AtlComModuleRevokeClassObjects [atl100.20] + */ +HRESULT WINAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE *module) +{ + _ATL_OBJMAP_ENTRY **iter; + HRESULT hres; + + TRACE("(%p)\n", module); + + if(!module) + return E_INVALIDARG; + + for(iter = module->m_ppAutoObjMapFirst; iter < module->m_ppAutoObjMapLast; iter++) { + hres = CoRevokeClassObject((*iter)->dwRegister); + if(FAILED(hres)) + return hres; + } + + return S_OK; } /*********************************************************************** diff --git a/dlls/atl100/atl100.spec b/dlls/atl100/atl100.spec index 1295f8c1587..0d41c1efd60 100644 --- a/dlls/atl100/atl100.spec +++ b/dlls/atl100/atl100.spec @@ -5,7 +5,7 @@ 14 stdcall AtlUnmarshalPtr(ptr ptr ptr) 15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) 17 stdcall AtlComModuleRegisterClassObjects(ptr long long) -20 stub AtlComModuleRevokeClassObjects +20 stdcall AtlComModuleRevokeClassObjects(ptr) 22 stdcall AtlComModuleUnregisterServer(ptr long ptr) 23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) 24 stdcall AtlWaitWithMessageLoop(long) diff --git a/dlls/atl110/atl110.spec b/dlls/atl110/atl110.spec index aed22bd9e14..045969e4256 100644 --- a/dlls/atl110/atl110.spec +++ b/dlls/atl110/atl110.spec @@ -5,7 +5,7 @@ 14 stdcall AtlUnmarshalPtr(ptr ptr ptr) atl100.AtlUnmarshalPtr 15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) atl100.AtlComModuleGetClassObject 17 stdcall AtlComModuleRegisterClassObjects(ptr long long) atl100.AtlComModuleRegisterClassObjects -20 stub AtlComModuleRevokeClassObjects +20 stdcall AtlComModuleRevokeClassObjects(ptr) atl100.AtlComModuleRevokeClassObjects 22 stdcall AtlComModuleUnregisterServer(ptr long ptr) atl100.AtlComModuleUnregisterServer 23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD 24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop diff --git a/dlls/atl80/atl80.spec b/dlls/atl80/atl80.spec index 5a77629eea1..3d53d06a849 100644 --- a/dlls/atl80/atl80.spec +++ b/dlls/atl80/atl80.spec @@ -7,7 +7,7 @@ 17 stdcall AtlComModuleRegisterClassObjects(ptr long long) atl100.AtlComModuleRegisterClassObjects 18 stdcall AtlComModuleRegisterServer(ptr long ptr) 19 stdcall AtlRegisterTypeLib(ptr wstr) -20 stub AtlComModuleRevokeClassObjects +20 stdcall AtlComModuleRevokeClassObjects(ptr) atl100.AtlComModuleRevokeClassObjects 22 stdcall AtlComModuleUnregisterServer(ptr long ptr) atl100.AtlComModuleUnregisterServer 23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD 24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop diff --git a/dlls/atl90/atl90.spec b/dlls/atl90/atl90.spec index aed22bd9e14..045969e4256 100644 --- a/dlls/atl90/atl90.spec +++ b/dlls/atl90/atl90.spec @@ -5,7 +5,7 @@ 14 stdcall AtlUnmarshalPtr(ptr ptr ptr) atl100.AtlUnmarshalPtr 15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) atl100.AtlComModuleGetClassObject 17 stdcall AtlComModuleRegisterClassObjects(ptr long long) atl100.AtlComModuleRegisterClassObjects -20 stub AtlComModuleRevokeClassObjects +20 stdcall AtlComModuleRevokeClassObjects(ptr) atl100.AtlComModuleRevokeClassObjects 22 stdcall AtlComModuleUnregisterServer(ptr long ptr) atl100.AtlComModuleUnregisterServer 23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD 24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop