Module: wine Branch: master Commit: c63d21bf8c0f4f4fab67438715556709eaff34fa URL: http://source.winehq.org/git/wine.git/?a=commit;h=c63d21bf8c0f4f4fab67438715...
Author: Mike McCormack mike@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; }