Nikolay Sivov : atl: Implement AtlComModuleRevokeClassObjects().

Alexandre Julliard julliard at winehq.org
Mon Dec 9 13:41:30 CST 2013


Module: wine
Branch: master
Commit: 288f3aca62d68e3b1760d43e5f14ed0df56ca94e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=288f3aca62d68e3b1760d43e5f14ed0df56ca94e

Author: Nikolay Sivov <nsivov at 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




More information about the wine-cvs mailing list