From c63d21bf8c0f4f4fab67438715556709eaff34fa Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Thu, 25 Jan 2007 19:17:42 +0900 Subject: [PATCH] msi: Implement IClassFactory->QueryInterface() for the msi server dll. --- dlls/msi/msi_main.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/msi/msi_main.c b/dlls/msi/msi_main.c index 294de714dd..48cfd15790 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, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } -typedef struct tagIClassFactoryImpl -{ +typedef struct tagIClassFactoryImpl { const IClassFactoryVtbl *lpVtbl; } IClassFactoryImpl; @@ -87,7 +86,16 @@ static HRESULT WINAPI MsiCF_QueryInterface(LPCLASSFACTORY iface, 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; } -- 2.32.0.93.g670b81a890