David Hedberg : shell32: Implement IExplorerBrowser:: SetOptions and IExplorerBrowser::GetOptions.
Alexandre Julliard
julliard at winehq.org
Mon Aug 23 10:50:20 CDT 2010
Module: wine
Branch: master
Commit: 9c0260f2cb3e8a73e83b3a2ebdf7decfa62a6a14
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c0260f2cb3e8a73e83b3a2ebdf7decfa62a6a14
Author: David Hedberg <david.hedberg at gmail.com>
Date: Mon Aug 23 12:55:17 2010 +0200
shell32: Implement IExplorerBrowser::SetOptions and IExplorerBrowser::GetOptions.
---
dlls/shell32/ebrowser.c | 20 ++++++++++++++++----
dlls/shell32/tests/ebrowser.c | 26 ++++++++++++++++++++++++++
2 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/dlls/shell32/ebrowser.c b/dlls/shell32/ebrowser.c
index b2c4497..20b5363 100644
--- a/dlls/shell32/ebrowser.c
+++ b/dlls/shell32/ebrowser.c
@@ -42,6 +42,8 @@ typedef struct _ExplorerBrowserImpl {
BOOL destroyed;
HWND hwnd_main;
+
+ EXPLORER_BROWSER_OPTIONS eb_options;
} ExplorerBrowserImpl;
/**************************************************************************
@@ -258,18 +260,28 @@ static HRESULT WINAPI IExplorerBrowser_fnSetOptions(IExplorerBrowser *iface,
EXPLORER_BROWSER_OPTIONS dwFlag)
{
ExplorerBrowserImpl *This = (ExplorerBrowserImpl*)iface;
- FIXME("stub, %p (0x%x)\n", This, dwFlag);
+ static const EXPLORER_BROWSER_OPTIONS unsupported_options =
+ EBO_SHOWFRAMES | EBO_ALWAYSNAVIGATE | EBO_NOWRAPPERWINDOW | EBO_HTMLSHAREPOINTVIEW;
- return E_NOTIMPL;
+ TRACE("%p (0x%x)\n", This, dwFlag);
+
+ if(dwFlag & unsupported_options)
+ FIXME("Flags 0x%08x contains unsupported options.\n", dwFlag);
+
+ This->eb_options = dwFlag;
+
+ return S_OK;
}
static HRESULT WINAPI IExplorerBrowser_fnGetOptions(IExplorerBrowser *iface,
EXPLORER_BROWSER_OPTIONS *pdwFlag)
{
ExplorerBrowserImpl *This = (ExplorerBrowserImpl*)iface;
- FIXME("stub, %p (%p)\n", This, pdwFlag);
+ TRACE("%p (%p)\n", This, pdwFlag);
- return E_NOTIMPL;
+ *pdwFlag = This->eb_options;
+
+ return S_OK;
}
static HRESULT WINAPI IExplorerBrowser_fnBrowseToIDList(IExplorerBrowser *iface,
diff --git a/dlls/shell32/tests/ebrowser.c b/dlls/shell32/tests/ebrowser.c
index be993dd..8486645 100644
--- a/dlls/shell32/tests/ebrowser.c
+++ b/dlls/shell32/tests/ebrowser.c
@@ -277,6 +277,7 @@ static void test_basics(void)
IExplorerBrowser *peb;
IShellBrowser *psb;
ULONG lres;
+ DWORD flags;
HDWP hdwp;
RECT rc;
HRESULT hr;
@@ -332,6 +333,31 @@ static void test_basics(void)
}
IExplorerBrowser_Destroy(peb);
+ IExplorerBrowser_Release(peb);
+
+ /* GetOptions/SetOptions*/
+ ebrowser_instantiate(&peb);
+
+ if(0) {
+ /* Crashes on Windows 7 */
+ IExplorerBrowser_GetOptions(peb, NULL);
+ }
+
+ hr = IExplorerBrowser_GetOptions(peb, &flags);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+ ok(flags == 0, "got (0x%08x)\n", flags);
+
+ /* Settings preserved through Initialize. */
+ hr = IExplorerBrowser_SetOptions(peb, 0xDEADBEEF);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+
+ ebrowser_initialize(peb);
+
+ hr = IExplorerBrowser_GetOptions(peb, &flags);
+ ok(flags == 0xDEADBEEF, "got (0x%08x)\n", flags);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+
+ IExplorerBrowser_Destroy(peb);
lres = IExplorerBrowser_Release(peb);
ok(lres == 0, "Got %d\n", lres);
}
More information about the wine-cvs
mailing list