shell32: Implement IExplorerBrowser::SetOptions and IExplorerBrowser::GetOptions.

This commit is contained in:
David Hedberg 2010-08-23 12:55:17 +02:00 committed by Alexandre Julliard
parent 6cb7658377
commit 9c0260f2cb
2 changed files with 42 additions and 4 deletions

View File

@ -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,

View File

@ -277,6 +277,7 @@ static void test_basics(void)
IExplorerBrowser *peb;
IShellBrowser *psb;
ULONG lres;
DWORD flags;
HDWP hdwp;
RECT rc;
HRESULT hr;
@ -331,6 +332,31 @@ static void test_basics(void)
IShellBrowser_Release(psb);
}
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);