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