Module: wine Branch: master Commit: 288f3aca62d68e3b1760d43e5f14ed0df56ca94e URL: http://source.winehq.org/git/wine.git/?a=commit;h=288f3aca62d68e3b1760d43e5f...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Dec 9 15:33:39 2013 +0400
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 726a855..9156afb 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 1295f8c..0d41c1e 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 aed22bd..045969e 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 5a77629..3d53d06 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 aed22bd..045969e 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