Mike McCormack : msi: Implement IClassFactory->QueryInterface()
for the msi server dll.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Jan 25 06:12:19 CST 2007
Module: wine
Branch: master
Commit: c63d21bf8c0f4f4fab67438715556709eaff34fa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c63d21bf8c0f4f4fab67438715556709eaff34fa
Author: Mike McCormack <mike at codeweavers.com>
Date: Thu Jan 25 19:17:42 2007 +0900
msi: Implement IClassFactory->QueryInterface() for the msi server dll.
---
dlls/msi/msi_main.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/dlls/msi/msi_main.c b/dlls/msi/msi_main.c
index 294de71..48cfd15 100644
--- a/dlls/msi/msi_main.c
+++ b/dlls/msi/msi_main.c
@@ -59,7 +59,7 @@ static void UnlockModule(void)
}
/******************************************************************
- * DllMain
+ * DllMain
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
@@ -78,8 +78,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL,
return TRUE;
}
-typedef struct tagIClassFactoryImpl
-{
+typedef struct tagIClassFactoryImpl {
const IClassFactoryVtbl *lpVtbl;
} IClassFactoryImpl;
@@ -87,7 +86,16 @@ static HRESULT WINAPI MsiCF_QueryInterfa
REFIID riid,LPVOID *ppobj)
{
IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
- FIXME("%p %s %p\n",This,debugstr_guid(riid),ppobj);
+
+ TRACE("%p %s %p\n",This,debugstr_guid(riid),ppobj);
+
+ if( IsEqualCLSID( riid, &IID_IUnknown ) ||
+ IsEqualCLSID( riid, &IID_IClassFactory ) )
+ {
+ IClassFactory_AddRef( iface );
+ *ppobj = iface;
+ return S_OK;
+ }
return E_NOINTERFACE;
}
More information about the wine-cvs
mailing list