Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- Without this patch, ArcMap.exe (part of ArcGIS Desktop 10.6) crashes shortly after starting. --- dlls/ole32/git.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/dlls/ole32/git.c b/dlls/ole32/git.c index f7a0460154..8683f3592a 100644 --- a/dlls/ole32/git.c +++ b/dlls/ole32/git.c @@ -122,9 +122,14 @@ StdGlobalInterfaceTable_QueryInterface(IGlobalInterfaceTable* iface, /* Do we implement that interface? */ if (IsEqualIID(&IID_IUnknown, riid) || IsEqualIID(&IID_IGlobalInterfaceTable, riid)) + { *ppvObject = iface; + } else + { + FIXME("(%s), not supported.\n", debugstr_guid(riid)); return E_NOINTERFACE; + }
/* Now inc the refcount */ IGlobalInterfaceTable_AddRef(iface); @@ -314,13 +319,10 @@ static HRESULT WINAPI GITCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pUnk, REFIID riid, LPVOID *ppv) { - if (IsEqualIID(riid,&IID_IGlobalInterfaceTable)) { - IGlobalInterfaceTable *git = get_std_git(); - return IGlobalInterfaceTable_QueryInterface(git, riid, ppv); - } - - FIXME("(%s), not supported.\n",debugstr_guid(riid)); - return E_NOINTERFACE; + IGlobalInterfaceTable *git = get_std_git(); + HRESULT hr = IGlobalInterfaceTable_QueryInterface(git, riid, ppv); + IGlobalInterfaceTable_Release(git); + return hr; }
static HRESULT WINAPI GITCF_LockServer(LPCLASSFACTORY iface, BOOL fLock)