Commit 759e2eff authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

hlink: Return requested interface when creating IHlinkBrowseContext instance.

parent 0dad77af
...@@ -53,14 +53,17 @@ static HRESULT WINAPI IHlinkBC_fnQueryInterface( IHlinkBrowseContext *iface, ...@@ -53,14 +53,17 @@ static HRESULT WINAPI IHlinkBC_fnQueryInterface( IHlinkBrowseContext *iface,
if (IsEqualIID(riid, &IID_IUnknown) || if (IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid, &IID_IHlinkBrowseContext)) IsEqualIID(riid, &IID_IHlinkBrowseContext))
*ppvObj = This;
if (*ppvObj)
{ {
IUnknown_AddRef((IUnknown*)(*ppvObj)); *ppvObj = &This->IHlinkBrowseContext_iface;
return S_OK;
} }
return E_NOINTERFACE; else
{
*ppvObj = NULL;
return E_NOINTERFACE;
}
IUnknown_AddRef((IUnknown *)*ppvObj);
return S_OK;
} }
static ULONG WINAPI IHlinkBC_fnAddRef (IHlinkBrowseContext* iface) static ULONG WINAPI IHlinkBC_fnAddRef (IHlinkBrowseContext* iface)
...@@ -368,6 +371,7 @@ static const IHlinkBrowseContextVtbl hlvt = ...@@ -368,6 +371,7 @@ static const IHlinkBrowseContextVtbl hlvt =
HRESULT HLinkBrowseContext_Constructor(IUnknown *pUnkOuter, REFIID riid, void **ppv) HRESULT HLinkBrowseContext_Constructor(IUnknown *pUnkOuter, REFIID riid, void **ppv)
{ {
HlinkBCImpl * hl; HlinkBCImpl * hl;
HRESULT hr;
TRACE("unkOut=%p riid=%s\n", pUnkOuter, debugstr_guid(riid)); TRACE("unkOut=%p riid=%s\n", pUnkOuter, debugstr_guid(riid));
*ppv = NULL; *ppv = NULL;
...@@ -383,6 +387,8 @@ HRESULT HLinkBrowseContext_Constructor(IUnknown *pUnkOuter, REFIID riid, void ** ...@@ -383,6 +387,8 @@ HRESULT HLinkBrowseContext_Constructor(IUnknown *pUnkOuter, REFIID riid, void **
hl->IHlinkBrowseContext_iface.lpVtbl = &hlvt; hl->IHlinkBrowseContext_iface.lpVtbl = &hlvt;
list_init(&hl->links); list_init(&hl->links);
*ppv = hl; hr = IHlinkBrowseContext_QueryInterface(&hl->IHlinkBrowseContext_iface, riid, ppv);
return S_OK; IHlinkBrowseContext_Release(&hl->IHlinkBrowseContext_iface);
return hr;
} }
...@@ -197,10 +197,20 @@ static void test_GetObject(void) ...@@ -197,10 +197,20 @@ static void test_GetObject(void)
IMoniker_Release(dummy); IMoniker_Release(dummy);
} }
static void test_interfaces(void)
{
IHlinkBrowseContext *bc;
HRESULT hr;
hr = HlinkCreateBrowseContext(NULL, &IID_IMoniker, (void **)&bc);
ok(hr == E_NOINTERFACE, "Unexpected hr %#lx.\n", hr);
}
START_TEST(browse_ctx) START_TEST(browse_ctx)
{ {
CoInitialize(NULL); CoInitialize(NULL);
test_interfaces();
test_SetInitialHlink(); test_SetInitialHlink();
test_BrowseWindowInfo(); test_BrowseWindowInfo();
test_GetObject(); test_GetObject();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment