shell32/shellview: Respond to special interface id CDefView.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a528ddd745
commit
627630c262
|
@ -1713,7 +1713,8 @@ static HRESULT WINAPI IShellView_fnQueryInterface(IShellView3 *iface, REFIID rii
|
||||||
if(IsEqualIID(riid, &IID_IUnknown) ||
|
if(IsEqualIID(riid, &IID_IUnknown) ||
|
||||||
IsEqualIID(riid, &IID_IShellView) ||
|
IsEqualIID(riid, &IID_IShellView) ||
|
||||||
IsEqualIID(riid, &IID_IShellView2) ||
|
IsEqualIID(riid, &IID_IShellView2) ||
|
||||||
IsEqualIID(riid, &IID_IShellView3))
|
IsEqualIID(riid, &IID_IShellView3) ||
|
||||||
|
IsEqualIID(riid, &IID_CDefView))
|
||||||
{
|
{
|
||||||
*ppvObj = &This->IShellView3_iface;
|
*ppvObj = &This->IShellView3_iface;
|
||||||
}
|
}
|
||||||
|
|
|
@ -633,6 +633,7 @@ static void test_CreateViewWindow(void)
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
RECT r = {0};
|
RECT r = {0};
|
||||||
ULONG ref1, ref2;
|
ULONG ref1, ref2;
|
||||||
|
IUnknown *unk;
|
||||||
|
|
||||||
hr = SHGetDesktopFolder(&desktop);
|
hr = SHGetDesktopFolder(&desktop);
|
||||||
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
||||||
|
@ -640,6 +641,11 @@ static void test_CreateViewWindow(void)
|
||||||
hr = IShellFolder_CreateViewObject(desktop, NULL, &IID_IShellView, (void**)&view);
|
hr = IShellFolder_CreateViewObject(desktop, NULL, &IID_IShellView, (void**)&view);
|
||||||
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
||||||
|
|
||||||
|
hr = IShellView_QueryInterface(view, &IID_CDefView, (void **)&unk);
|
||||||
|
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
||||||
|
ok(unk == (IUnknown *)view, "got %p\n", unk);
|
||||||
|
IUnknown_Release(unk);
|
||||||
|
|
||||||
if (0)
|
if (0)
|
||||||
{
|
{
|
||||||
/* crashes on native */
|
/* crashes on native */
|
||||||
|
@ -1335,6 +1341,7 @@ static void test_SHCreateShellFolderView(void)
|
||||||
IShellView *psv;
|
IShellView *psv;
|
||||||
SFV_CREATE sfvc;
|
SFV_CREATE sfvc;
|
||||||
ULONG refCount;
|
ULONG refCount;
|
||||||
|
IUnknown *unk;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
hr = SHGetDesktopFolder(&desktop);
|
hr = SHGetDesktopFolder(&desktop);
|
||||||
|
@ -1396,6 +1403,12 @@ if (0)
|
||||||
hr = SHCreateShellFolderView(&sfvc, &psv);
|
hr = SHCreateShellFolderView(&sfvc, &psv);
|
||||||
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
||||||
ok(psv != NULL, "psv = %p\n", psv);
|
ok(psv != NULL, "psv = %p\n", psv);
|
||||||
|
|
||||||
|
hr = IShellView_QueryInterface(psv, &IID_CDefView, (void **)&unk);
|
||||||
|
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
||||||
|
ok(unk == (IUnknown *)psv, "got %p\n", unk);
|
||||||
|
IUnknown_Release(unk);
|
||||||
|
|
||||||
refCount = IShellView_Release(psv);
|
refCount = IShellView_Release(psv);
|
||||||
ok(refCount == 0, "refCount = %u\n", refCount);
|
ok(refCount == 0, "refCount = %u\n", refCount);
|
||||||
|
|
||||||
|
@ -1407,6 +1420,7 @@ static void test_SHCreateShellFolderViewEx(void)
|
||||||
IShellFolder *desktop;
|
IShellFolder *desktop;
|
||||||
IShellView *psv;
|
IShellView *psv;
|
||||||
ULONG refCount;
|
ULONG refCount;
|
||||||
|
IUnknown *unk;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
CSFV csfv;
|
CSFV csfv;
|
||||||
|
|
||||||
|
@ -1427,6 +1441,12 @@ static void test_SHCreateShellFolderViewEx(void)
|
||||||
hr = SHCreateShellFolderViewEx(&csfv, &psv);
|
hr = SHCreateShellFolderViewEx(&csfv, &psv);
|
||||||
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
||||||
ok(psv != NULL, "psv = %p\n", psv);
|
ok(psv != NULL, "psv = %p\n", psv);
|
||||||
|
|
||||||
|
hr = IShellView_QueryInterface(psv, &IID_CDefView, (void **)&unk);
|
||||||
|
ok(hr == S_OK, "got (0x%08x)\n", hr);
|
||||||
|
ok(unk == (IUnknown *)psv, "got %p\n", unk);
|
||||||
|
IUnknown_Release(unk);
|
||||||
|
|
||||||
if (psv)
|
if (psv)
|
||||||
{
|
{
|
||||||
refCount = IShellView_Release(psv);
|
refCount = IShellView_Release(psv);
|
||||||
|
|
|
@ -82,6 +82,7 @@ DEFINE_OLEGUID(IID_IQueryInfo, 0x00021500, 0, 0);
|
||||||
DEFINE_GUID(IID_IACList, 0x77A130B0,0x94FD,0x11D0,0xA5,0x44,0x00,0xC0,0x4F,0xD7,0xD0,0x62);
|
DEFINE_GUID(IID_IACList, 0x77A130B0,0x94FD,0x11D0,0xA5,0x44,0x00,0xC0,0x4F,0xD7,0xD0,0x62);
|
||||||
DEFINE_GUID(IID_IACList2, 0x470141A0,0x5186,0x11D2,0xBB,0xB6,0x00,0x60,0x97,0x7B,0x46,0x4C);
|
DEFINE_GUID(IID_IACList2, 0x470141A0,0x5186,0x11D2,0xBB,0xB6,0x00,0x60,0x97,0x7B,0x46,0x4C);
|
||||||
DEFINE_GUID(IID_IObjMgr, 0x00BB2761,0x6A77,0x11D0,0xA5,0x35,0x00,0xC0,0x4F,0xD7,0xD0,0x62);
|
DEFINE_GUID(IID_IObjMgr, 0x00BB2761,0x6A77,0x11D0,0xA5,0x35,0x00,0xC0,0x4F,0xD7,0xD0,0x62);
|
||||||
|
DEFINE_GUID(IID_CDefView, 0x4434ff80,0xef4c,0x11ce,0xae,0x65,0x08,0x00,0x2b,0x2e,0x12,0x62);
|
||||||
|
|
||||||
DEFINE_GUID(IID_IProgressDialog, 0xEBBC7C04,0x315E,0x11D2,0xB6,0x2F,0x00,0x60,0x97,0xDF,0x5B,0xD4);
|
DEFINE_GUID(IID_IProgressDialog, 0xEBBC7C04,0x315E,0x11D2,0xB6,0x2F,0x00,0x60,0x97,0xDF,0x5B,0xD4);
|
||||||
#define SID_SProgressUI CLSID_ProgressDialog
|
#define SID_SProgressUI CLSID_ProgressDialog
|
||||||
|
|
Loading…
Reference in New Issue