Nikolay Sivov : include: Added IShellFolderViewDual definition.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Apr 28 09:10:40 CDT 2015
Module: wine
Branch: master
Commit: d6802318aaff09540fb838ab110a3db1f7b788d8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6802318aaff09540fb838ab110a3db1f7b788d8
Author: Nikolay Sivov <nsivov at 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 */
/*****************************************************************************
More information about the wine-cvs
mailing list