shell32: Return S_OK in ::SetPropertyBag.

David Hedberg david.hedberg at gmail.com
Sun Dec 19 15:11:23 CST 2010


---
 dlls/shell32/ebrowser.c       |   10 +++++++++-
 dlls/shell32/tests/ebrowser.c |    7 +++++++
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/dlls/shell32/ebrowser.c b/dlls/shell32/ebrowser.c
index 87ff578..6792593 100644
--- a/dlls/shell32/ebrowser.c
+++ b/dlls/shell32/ebrowser.c
@@ -929,7 +929,15 @@ static HRESULT WINAPI IExplorerBrowser_fnSetPropertyBag(IExplorerBrowser *iface,
     ExplorerBrowserImpl *This = (ExplorerBrowserImpl*)iface;
     FIXME("stub, %p (%s)\n", This, debugstr_w(pszPropertyBag));
 
-    return E_NOTIMPL;
+    if(!pszPropertyBag)
+        return E_INVALIDARG;
+
+    /* FIXME: This method is currently useless as we don't save any
+     * settings anywhere, but at least one application breaks if we
+     * return E_NOTIMPL.
+     */
+
+    return S_OK;
 }
 
 static HRESULT WINAPI IExplorerBrowser_fnSetEmptyText(IExplorerBrowser *iface,
diff --git a/dlls/shell32/tests/ebrowser.c b/dlls/shell32/tests/ebrowser.c
index faaf6c7..d2d4f5c 100644
--- a/dlls/shell32/tests/ebrowser.c
+++ b/dlls/shell32/tests/ebrowser.c
@@ -1037,6 +1037,7 @@ static void test_basics(void)
     HDWP hdwp;
     RECT rc;
     HRESULT hr;
+    static const WCHAR winetest[] = {'W','i','n','e','T','e','s','t',0};
 
     ebrowser_instantiate(&peb);
     ebrowser_initialize(peb);
@@ -1126,6 +1127,12 @@ static void test_basics(void)
     hr = IExplorerBrowser_SetFolderSettings(peb, &fs);
     todo_wine ok(hr == E_INVALIDARG, "got (0x%08x)\n", hr);
 
+    /* SetPropertyBag */
+    hr = IExplorerBrowser_SetPropertyBag(peb, NULL);
+    ok(hr == E_INVALIDARG, "Got 0x%08x\n", hr);
+    hr = IExplorerBrowser_SetPropertyBag(peb, winetest);
+    ok(hr == S_OK, "Got 0x%08x\n", hr);
+
     /* TODO: Test after browsing somewhere. */
 
     IExplorerBrowser_Destroy(peb);
-- 
1.7.3.3




More information about the wine-patches mailing list