Nikolay Sivov : shell32: Fix some tests failures on Win8.

Alexandre Julliard julliard at winehq.org
Mon Jun 3 16:06:31 CDT 2013


Module: wine
Branch: master
Commit: 7a5ca2d3d45a447f18dba26898538b01ba480e78
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7a5ca2d3d45a447f18dba26898538b01ba480e78

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sat Jun  1 13:38:51 2013 +0400

shell32: Fix some tests failures on Win8.

---

 dlls/shell32/ebrowser.c       |    5 +--
 dlls/shell32/tests/ebrowser.c |   64 +++++++++++++++++++++++++++--------------
 2 files changed, 44 insertions(+), 25 deletions(-)

diff --git a/dlls/shell32/ebrowser.c b/dlls/shell32/ebrowser.c
index 90be5f8..f7242e9 100644
--- a/dlls/shell32/ebrowser.c
+++ b/dlls/shell32/ebrowser.c
@@ -1414,9 +1414,8 @@ static HRESULT WINAPI IShellBrowser_fnGetControlWindow(IShellBrowser *iface,
                                                        UINT id, HWND *phwnd)
 {
     ExplorerBrowserImpl *This = impl_from_IShellBrowser(iface);
-    TRACE("%p (%d, %p)\n", This, id, phwnd);
-
-    /* Not implemented. */
+    TRACE("(%p)->(%d, %p)\n", This, id, phwnd);
+    if (phwnd) *phwnd = NULL;
     return E_NOTIMPL;
 }
 
diff --git a/dlls/shell32/tests/ebrowser.c b/dlls/shell32/tests/ebrowser.c
index 8149f8f..c56dffb 100644
--- a/dlls/shell32/tests/ebrowser.c
+++ b/dlls/shell32/tests/ebrowser.c
@@ -61,6 +61,14 @@ DEFINE_GUID(IID_UnknownInterface7,    0x68A4FDBA, 0xA48A, 0x4A86, 0xA3,0x29, 0x1
 DEFINE_GUID(IID_UnknownInterface8,    0xD3B1CAF5, 0xEC4F, 0x4B2E, 0xBC,0xB0, 0x60,0xD7,0x15,0xC9,0x3C,0xB2);
 DEFINE_GUID(IID_UnknownInterface9,    0x9536CA39, 0x1ACB, 0x4AE6, 0xAD,0x27, 0x24,0x03,0xD0,0x4C,0xA2,0x8F);
 DEFINE_GUID(IID_UnknownInterface10,   0xB722BE00, 0x4E68, 0x101B, 0xA2,0xBC, 0x00,0xAA,0x00,0x40,0x47,0x70);
+DEFINE_GUID(IID_UnknownInterface11,   0x691ecf9f, 0x6b9c, 0x4311, 0xa1,0x7b, 0xad,0x15,0x4c,0x30,0xe9,0x1f);
+DEFINE_GUID(IID_UnknownInterface12,   0x7e3159f5, 0x21ca, 0x4ec2, 0x8f,0xbe, 0x66,0x2d,0x08,0x2c,0xa3,0xeb);
+DEFINE_GUID(IID_UnknownInterface13,   0xa36a3ace, 0x8332, 0x45ce, 0xaa,0x29, 0x50,0x3c,0xb7,0x6b,0x25,0x87);
+DEFINE_GUID(IID_UnknownInterface14,   0x16770868, 0x239c, 0x445b, 0xa0,0x1d, 0xf2,0x6c,0x7f,0xbb,0xf2,0x6c);
+DEFINE_GUID(IID_UnknownInterface15,   0x05a89298, 0x6246, 0x4c63, 0xbb,0x0d, 0x9b,0xda,0xf1,0x40,0xbf,0x3b);
+DEFINE_GUID(IID_UnknownInterface16,   0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
+DEFINE_GUID(IID_UnknownInterface17,   0xa36a3ace, 0x8332, 0x45ce, 0xaa,0x29, 0x50,0x3c,0xb7,0x6b,0x25,0x87);
+DEFINE_GUID(IID_UnknownInterface18,   0x3d5d8c60, 0x21e4, 0x4b03, 0x83,0xb8, 0xc7,0x3f,0x8c,0x94,0x00,0x78);
 
 static HWND hwnd;
 
@@ -113,11 +121,19 @@ static void process_msgs(void)
     }
 }
 
-static void dbg_print_guid(const GUID *guid) {
-    WCHAR buf[MAX_PATH];
+static const char *debugstr_guid(REFIID riid)
+{
+    static char buf[50];
+
+    if(!riid)
+        return "(null)";
+
+    sprintf(buf, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
+            riid->Data1, riid->Data2, riid->Data3, riid->Data4[0],
+            riid->Data4[1], riid->Data4[2], riid->Data4[3], riid->Data4[4],
+            riid->Data4[5], riid->Data4[6], riid->Data4[7]);
 
-    StringFromGUID2(guid, buf, MAX_PATH);
-    printf("guid:[%s]\n", wine_dbgstr_wn(buf, lstrlenW(buf)));
+    return buf;
 }
 
 /*********************************************************************
@@ -215,8 +231,7 @@ static inline IExplorerPaneVisibilityImpl *impl_from_IExplorerPaneVisibility(IEx
 static HRESULT WINAPI IExplorerPaneVisibility_fnQueryInterface(IExplorerPaneVisibility *iface,
                                                                REFIID riid, LPVOID *ppvObj)
 {
-    ok(0, "Not called.\n");
-    trace("REFIID:"); dbg_print_guid(riid);
+    ok(0, "unexpected, %s\n", debugstr_guid(riid));
     *ppvObj = NULL;
     return E_NOINTERFACE;
 }
@@ -260,7 +275,7 @@ static HRESULT WINAPI IExplorerPaneVisibility_fnGetPaneState(IExplorerPaneVisibi
     else if(IsEqualGUID(&EP_AdvQueryPane, ep))       This->aqp++;
     else
     {
-        trace("Unknown explorer pane: "); dbg_print_guid(ep);
+        trace("Unknown explorer pane: %s\n", debugstr_guid(ep));
         This->unk++;
     }
 
@@ -305,8 +320,7 @@ static inline ICommDlgBrowser3Impl *impl_from_ICommDlgBrowser3(ICommDlgBrowser3
 
 static HRESULT WINAPI ICommDlgBrowser3_fnQueryInterface(ICommDlgBrowser3 *iface, REFIID riid, LPVOID *ppvObj)
 {
-    ok(0, "Not called.\n");
-    trace("riid:");    dbg_print_guid(riid);
+    ok(0, "unexpected %s\n", debugstr_guid(riid));
     *ppvObj = NULL;
     return E_NOINTERFACE;
 }
@@ -476,8 +490,7 @@ static HRESULT WINAPI IServiceProvider_fnQueryInterface(IServiceProvider *iface,
         return E_NOINTERFACE;
     }
 
-    ok(0, "Unexpected interface requested.\n");
-    trace("riid: "); dbg_print_guid(riid);
+    ok(0, "Unexpected interface requested, %s\n", debugstr_guid(riid));
     return E_NOINTERFACE;
 }
 
@@ -521,12 +534,7 @@ static HRESULT WINAPI IServiceProvider_fnQueryService(IServiceProvider *iface,
         }
     }
 
-    ok(was_in_list, "-- Unknown service requested --\n");
-    if(!was_in_list)
-    {
-        trace("guidService: "); dbg_print_guid(guidService);
-        trace("riid: "); dbg_print_guid(riid);
-    }
+    ok(was_in_list, "unknown service, serviceID: %s, riid: %s\n", debugstr_guid(guidService), debugstr_guid(riid));
 
     /* Give back an interface, if any. */
     if(punk)
@@ -617,22 +625,25 @@ static void test_SB_misc(void)
     }
 
     /* Some unimplemented methods */
-    retHwnd = (HWND)0xDEADBEEF;
+    retHwnd = (HWND)0xdeadbeef;
     hr = IShellBrowser_GetControlWindow(psb, FCW_TOOLBAR, &retHwnd);
     ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr);
-    ok(retHwnd == (HWND)0xDEADBEEF, "HWND overwritten\n");
+    ok(retHwnd == NULL || broken(retHwnd == (HWND)0xdeadbeef), "got %p\n", retHwnd);
 
+    retHwnd = (HWND)0xdeadbeef;
     hr = IShellBrowser_GetControlWindow(psb, FCW_STATUS, &retHwnd);
     ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr);
-    ok(retHwnd == (HWND)0xDEADBEEF, "HWND overwritten\n");
+    ok(retHwnd == NULL || broken(retHwnd == (HWND)0xdeadbeef), "got %p\n", retHwnd);
 
+    retHwnd = (HWND)0xdeadbeef;
     hr = IShellBrowser_GetControlWindow(psb, FCW_TREE, &retHwnd);
     ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr);
-    ok(retHwnd == (HWND)0xDEADBEEF, "HWND overwritten\n");
+    ok(retHwnd == NULL || broken(retHwnd == (HWND)0xdeadbeef), "got %p\n", retHwnd);
 
+    retHwnd = (HWND)0xdeadbeef;
     hr = IShellBrowser_GetControlWindow(psb, FCW_PROGRESS, &retHwnd);
     ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr);
-    ok(retHwnd == (HWND)0xDEADBEEF, "HWND overwritten\n");
+    ok(retHwnd == NULL || broken(retHwnd == (HWND)0xdeadbeef), "got %p\n", retHwnd);
 
     /* ::InsertMenuSB */
     hr = IShellBrowser_InsertMenusSB(psb, NULL, NULL);
@@ -927,6 +938,15 @@ static void test_SetSite(void)
         { &IID_UnknownInterface4,       &IID_IUnknown, 0, NULL },
         { &IID_UnknownInterface6,       &IID_UnknownInterface7, 0, NULL },
         { &IID_IBrowserWithActivationNotification, &IID_IBrowserWithActivationNotification, 0, NULL },
+        /* Win 8 */
+        { &IID_ICommDlgBrowser,         &IID_UnknownInterface11, 0, NULL },
+        { &IID_ICommDlgBrowser,         &IID_UnknownInterface12, 0, NULL },
+        { &IID_UnknownInterface13,      &IID_IUnknown, 0, NULL },
+        { &IID_UnknownInterface14,      &IID_UnknownInterface14, 0, NULL },
+        { &IID_UnknownInterface15,      &IID_UnknownInterface15, 0, NULL },
+        { &IID_UnknownInterface16,      &IID_UnknownInterface16, 0, NULL },
+        { &IID_UnknownInterface17,      &IID_UnknownInterface17, 0, NULL },
+        { &IID_UnknownInterface18,      &IID_UnknownInterface18, 0, NULL },
 
         /* Other services requested in Vista, Windows 2008 but not in Windows 7 */
         { &IID_IBrowserSettings_Vista,  &IID_IBrowserSettings_Vista, 0, NULL },




More information about the wine-cvs mailing list