Module: wine Branch: master Commit: d6802318aaff09540fb838ab110a3db1f7b788d8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6802318aaff09540fb838ab11...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Apr 28 14:05:54 2015 +0300
include: Added IShellFolderViewDual definition.
---
dlls/shell32/tests/shelldispatch.c | 22 +++++++ include/shldisp.idl | 114 +++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+)
diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c index 804421a..75a06cc 100644 --- a/dlls/shell32/tests/shelldispatch.c +++ b/dlls/shell32/tests/shelldispatch.c @@ -364,6 +364,27 @@ static void test_service(void) IShellDispatch2_Release(sd); }
+static void test_ShellFolderView(void) +{ + IShellFolderViewDual *viewdual; + IShellFolder *desktop; + IShellView *view; + HRESULT hr; + + /* IShellFolderViewDual is not an IShellView extension */ + hr = SHGetDesktopFolder(&desktop); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IShellFolder_CreateViewObject(desktop, NULL, &IID_IShellView, (void**)&view); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IShellView_QueryInterface(view, &IID_IShellFolderViewDual, (void**)&viewdual); + ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr); + + IShellView_Release(view); + IShellFolder_Release(desktop); +} + START_TEST(shelldispatch) { HRESULT r; @@ -376,6 +397,7 @@ START_TEST(shelldispatch) init_function_pointers(); test_namespace(); test_service(); + test_ShellFolderView();
CoUninitialize(); } diff --git a/include/shldisp.idl b/include/shldisp.idl index 589c083..506c5d2 100644 --- a/include/shldisp.idl +++ b/include/shldisp.idl @@ -586,6 +586,120 @@ enum ShellSpecialFolderConstants { ssfPROGRAMFILESx86 = 0x30 } ShellSpecialFolderConstants;
+/***************************************************************************** + * IShellFolderViewDual interface + */ +typedef +[ + uuid(742a99a0-c77e-11d0-a32c-00a0c91eedba) +] +enum ShellFolderViewOptions +{ + SFVVO_SHOWALLOBJECTS = 0x00000001, + SFVVO_SHOWEXTENSIONS = 0x00000002, + SFVVO_SHOWCOMPCOLOR = 0x00000008, + SFVVO_SHOWSYSFILES = 0x00000020, + SFVVO_WIN95CLASSIC = 0x00000040, + SFVVO_DOUBLECLICKINWEBVIEW = 0x00000080, + SFVVO_DESKTOPHTML = 0x00000200 +} ShellFolderViewOptions; + +[ + uuid(e7a1af80-4d96-11cf-960c-0080c7f4ee85), + oleautomation, + hidden, + dual +] +interface IShellFolderViewDual : IDispatch +{ + [propget] + HRESULT Application([out, retval] IDispatch **app); + + [propget] + HRESULT Parent([out, retval] IDispatch **parent); + + [propget] + HRESULT Folder([out, retval] Folder **folder); + + HRESULT SelectedItems([out, retval] FolderItems **items); + + [propget] + HRESULT FocusedItem([out, retval] FolderItem **item); + + HRESULT SelectItem([in] VARIANT *item, [in] int flags); + + HRESULT PopupItemMenu([in] FolderItem *item, + [in, optional] VARIANT vx, + [in, optional] VARIANT vy, + [out, retval] BSTR *command); + [propget] + HRESULT Script([out, retval] IDispatch **script); + + [propget] + HRESULT ViewOptions([out, retval] long *options); +} + +[ + uuid(31c147b6-0ade-4a3c-b514-ddf932ef6d17), + oleautomation, + hidden, + dual +] +interface IShellFolderViewDual2 : IShellFolderViewDual +{ + [propget] + HRESULT CurrentViewMode([out, retval] UINT *mode); + + [propput] + HRESULT CurrentViewMode([in] UINT mode); + + HRESULT SelectItemRelative([in] int relative); +} + +[ + uuid(29ec8e6c-46d3-411f-baaa-611a6c9cac66), + oleautomation, + hidden, + dual +] +interface IShellFolderViewDual3 : IShellFolderViewDual2 +{ + [propget] + HRESULT GroupBy([out, retval] BSTR *groupby); + + [propput] + HRESULT GroupBy([in] BSTR groupby); + + [propget] + HRESULT FolderFlags([out, retval] DWORD *flags); + + [propput] + HRESULT FolderFlags([in] DWORD flags); + + [propget] + HRESULT SortColumns([out, retval] BSTR *sortcolumns); + + [propput] + HRESULT SortColumns([in] BSTR sortcolumns); + + [propput] + HRESULT IconSize([in] int icon_size); + + [propget] + HRESULT IconSize([out, retval] int *icon_size); + + HRESULT FilterView([in, unique] BSTR filter_text); +} + +[ + uuid(62112aa1-ebe4-11cf-a5fb-0020afe7292d) +] +coclass ShellFolderView +{ + [default] interface IShellFolderViewDual3; + [default, source] dispinterface DShellFolderViewEvents; +} + } /* library Shell32 */
/*****************************************************************************