03de2c38f86eb33f1c4911598a3b6d142cc5b279
[reactos.git] / reactos / dll / win32 / shell32 / CDefViewDual.cpp
1 /*
2 * ShellFolderViewDual
3 *
4 * Copyright 2016 Mark Jansen
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 */
21
22 #include "precomp.h"
23
24 WINE_DEFAULT_DEBUG_CHANNEL(shell);
25
26 class CDefViewDual :
27 public CComObjectRootEx<CComMultiThreadModelNoCS>,
28 public IDispatchImpl<IShellFolderViewDual2, &IID_IShellFolderViewDual2>
29 {
30 public:
31 CDefViewDual()
32 {
33 }
34
35 ~CDefViewDual()
36 {
37 }
38
39 HRESULT STDMETHODCALLTYPE Initialize()
40 {
41 // Nothing to do for now..
42 return S_OK;
43 }
44
45 // *** IShellFolderViewDual methods ***
46 virtual HRESULT STDMETHODCALLTYPE get_Application(IDispatch **app) override
47 {
48 if (!app) return E_INVALIDARG;
49 *app = NULL;
50 FIXME("CDefViewDual::get_Application is UNIMPLEMENTED (%p, %p)\n", this, app);
51 return E_NOTIMPL;
52 }
53
54 virtual HRESULT STDMETHODCALLTYPE get_Parent(IDispatch **parent) override
55 {
56 if (!parent) return E_INVALIDARG;
57 *parent = NULL;
58 FIXME("CDefViewDual::get_Parent is UNIMPLEMENTED (%p, %p)\n", this, parent);
59 return E_NOTIMPL;
60 }
61
62 virtual HRESULT STDMETHODCALLTYPE get_Folder(Folder **folder) override
63 {
64 if (!folder) return E_INVALIDARG;
65 *folder = NULL;
66 FIXME("CDefViewDual::get_Folder is UNIMPLEMENTED (%p, %p)\n", this, folder);
67 return E_NOTIMPL;
68 }
69
70 virtual HRESULT STDMETHODCALLTYPE SelectedItems(FolderItems **items) override
71 {
72 if (!items) return E_INVALIDARG;
73 *items = NULL;
74 FIXME("CDefViewDual::SelectedItems is UNIMPLEMENTED (%p, %p)\n", this, items);
75 return E_NOTIMPL;
76 }
77
78 virtual HRESULT STDMETHODCALLTYPE get_FocusedItem(FolderItem **item) override
79 {
80 if (!item) return E_INVALIDARG;
81 *item = NULL;
82 FIXME("CDefViewDual::get_FocusedItem is UNIMPLEMENTED (%p, %p)\n", this, item);
83 return E_NOTIMPL;
84 }
85
86 virtual HRESULT STDMETHODCALLTYPE SelectItem(VARIANT *item, int flags) override
87 {
88 FIXME("CDefViewDual::SelectItem is UNIMPLEMENTED (%p, %p, %i)\n", this, item, flags);
89 return E_NOTIMPL;
90 }
91
92 virtual HRESULT STDMETHODCALLTYPE PopupItemMenu(FolderItem *item, VARIANT vx, VARIANT vy, BSTR *command) override
93 {
94 FIXME("CDefViewDual::PopupItemMenu is UNIMPLEMENTED (%p, %p, %s, %s, %p)\n", this, item, wine_dbgstr_variant(&vx), wine_dbgstr_variant(&vy), command);
95 return E_NOTIMPL;
96 }
97
98 virtual HRESULT STDMETHODCALLTYPE get_Script(IDispatch **script) override
99 {
100 FIXME("CDefViewDual::get_Script is UNIMPLEMENTED (%p, %p)\n", this, script);
101 return E_NOTIMPL;
102 }
103
104 virtual HRESULT STDMETHODCALLTYPE get_ViewOptions(long *options) override
105 {
106 FIXME("CDefViewDual::get_ViewOptions is UNIMPLEMENTED (%p, %p)\n", this, options);
107 return E_NOTIMPL;
108 }
109
110 // *** IShellFolderViewDual2 methods ***
111 virtual HRESULT STDMETHODCALLTYPE get_CurrentViewMode(UINT *mode) override
112 {
113 FIXME("CDefViewDual::get_CurrentViewMode is UNIMPLEMENTED (%p, %p)\n", this, mode);
114 return E_NOTIMPL;
115 }
116
117 virtual HRESULT STDMETHODCALLTYPE put_CurrentViewMode(UINT mode) override
118 {
119 FIXME("CDefViewDual::put_CurrentViewMode is UNIMPLEMENTED (%p, %u)\n", this, mode);
120 return E_NOTIMPL;
121 }
122
123 virtual HRESULT STDMETHODCALLTYPE SelectItemRelative(int relative) override
124 {
125 FIXME("CDefViewDual::SelectItemRelative is UNIMPLEMENTED (%p, %i)\n", this, relative);
126 return E_NOTIMPL;
127 }
128
129 BEGIN_COM_MAP(CDefViewDual)
130 COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
131 COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewDual, IShellFolderViewDual)
132 COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewDual2, IShellFolderViewDual2)
133 END_COM_MAP()
134 };
135
136 /**********************************************************
137 * CDefViewDual_Constructor
138 */
139
140 HRESULT WINAPI CDefViewDual_Constructor(REFIID riid, LPVOID * ppvOut)
141 {
142 return ShellObjectCreatorInit<CDefViewDual>(riid, ppvOut);
143 }