wine-patch implement ClassFactory_LockServer in browseui dll

Bernard Ladenthin bernard at ladenthin.net
Sun May 6 12:31:07 CDT 2007


Hello,
here's a patch for the ClassFactory_LockServer
function in the browseui dll.

Best regards from Germany,
Bernard Ladenthin

---
 dlls/browseui/browseui.h      |    4 ++++
 dlls/browseui/browseui_main.c |   14 ++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/browseui/browseui.h b/dlls/browseui/browseui.h
index 2f44ac7..f8ec194 100644
--- a/dlls/browseui/browseui.h
+++ b/dlls/browseui/browseui.h
@@ -23,6 +23,10 @@
 
 extern LONG BROWSEUI_refCount;
 
+extern LONG module_ref;
+#define LOCK_MODULE()   InterlockedIncrement(&module_ref)
+#define UNLOCK_MODULE() InterlockedDecrement(&module_ref)
+
 HRESULT WINAPI ACLMulti_Constructor(IUnknown *punkOuter, IUnknown **ppOut);
 
 #endif /* __WINE_SHDOCVW_H */
diff --git a/dlls/browseui/browseui_main.c b/dlls/browseui/browseui_main.c
index 2796554..c5f9cbe 100644
--- a/dlls/browseui/browseui_main.c
+++ b/dlls/browseui/browseui_main.c
@@ -43,6 +43,8 @@ LONG BROWSEUI_refCount = 0;
 
 HINSTANCE browseui_hinstance = 0;
 
+LONG module_ref = 0;
+
 typedef HRESULT (WINAPI *LPFNCONSTRUCTOR)(IUnknown *pUnkOuter, IUnknown **ppvOut);
 
 static const struct {
@@ -126,8 +128,16 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown
 
 static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
 {
-    FIXME("(%p, %s) - not implemented\n", iface, (fLock ? "TRUE" : "FALSE"));
-    return E_NOTIMPL;
+    ClassFactory *This = (ClassFactory *)iface;
+
+    TRACE("(%p)->(%x)\n", This, fLock);
+
+    if(fLock)
+        LOCK_MODULE();
+    else
+        UNLOCK_MODULE();
+
+    return S_OK;
 }
 
 static const IClassFactoryVtbl ClassFactoryVtbl = {
-- 
1.4.4.4




More information about the wine-patches mailing list