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