[SHELL32]
[reactos.git] / reactos / dll / win32 / shell32 / CFolderItemVerbs.cpp
1 /*
2 * FolderItemVerb(s) implementation
3 *
4 * Copyright 2015 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 #include "precomp.h"
22
23 WINE_DEFAULT_DEBUG_CHANNEL(shell);
24
25
26 CFolderItemVerb::CFolderItemVerb()
27 {
28 }
29
30 CFolderItemVerb::~CFolderItemVerb()
31 {
32 }
33
34 //void CFolderItemVerb::Init(LPITEMIDLIST idlist)
35 //{
36 // m_idlist.Attach(idlist);
37 //}
38
39 // *** IDispatch methods ***
40 HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetTypeInfoCount(UINT *pctinfo)
41 {
42 TRACE("(%p, %p)\n", this, pctinfo);
43 return E_NOTIMPL;
44 }
45
46 HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
47 {
48 TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
49 return E_NOTIMPL;
50 }
51
52 HRESULT STDMETHODCALLTYPE CFolderItemVerb::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
53 {
54 TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid), rgszNames, cNames, lcid, rgDispId);
55 return E_NOTIMPL;
56 }
57
58 HRESULT STDMETHODCALLTYPE CFolderItemVerb::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
59 {
60 TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember, wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
61 pDispParams, pVarResult, pExcepInfo, puArgErr);
62 return E_NOTIMPL;
63 }
64
65 // *** FolderItemVerb methods ***
66
67 HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Application(IDispatch **ppid)
68 {
69 TRACE("(%p, %p)\n", this, ppid);
70 return E_NOTIMPL;
71 }
72
73 HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Parent(IDispatch **ppid)
74 {
75 TRACE("(%p, %p)\n", this, ppid);
76 return E_NOTIMPL;
77 }
78
79 HRESULT STDMETHODCALLTYPE CFolderItemVerb::get_Name(BSTR *pbs)
80 {
81 TRACE("(%p, %p)\n", this, pbs);
82 if (!pbs)
83 return E_POINTER;
84 // Terminating item:
85 *pbs = SysAllocString(L"");
86 return E_NOTIMPL;
87 }
88
89 HRESULT STDMETHODCALLTYPE CFolderItemVerb::DoIt()
90 {
91 TRACE("(%p, %p)\n", this);
92 return E_NOTIMPL;
93 }
94
95
96
97
98
99
100 CFolderItemVerbs::CFolderItemVerbs()
101 {
102 }
103
104 CFolderItemVerbs::~CFolderItemVerbs()
105 {
106 }
107
108 //void CFolderItemVerbs::Init(LPITEMIDLIST idlist)
109 //{
110 // m_idlist.Attach(idlist);
111 //}
112
113 // *** IDispatch methods ***
114 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetTypeInfoCount(UINT *pctinfo)
115 {
116 TRACE("(%p, %p)\n", this, pctinfo);
117 return E_NOTIMPL;
118 }
119
120 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
121 {
122 TRACE("(%p, %lu, %lu, %p)\n", this, iTInfo, lcid, ppTInfo);
123 return E_NOTIMPL;
124 }
125
126 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
127 {
128 TRACE("(%p, %s, %p, %lu, %lu, %p)\n", this, wine_dbgstr_guid(&riid), rgszNames, cNames, lcid, rgDispId);
129 return E_NOTIMPL;
130 }
131
132 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
133 {
134 TRACE("(%p, %lu, %s, %lu, %lu, %p, %p, %p, %p)\n", this, dispIdMember, wine_dbgstr_guid(&riid), lcid, (DWORD)wFlags,
135 pDispParams, pVarResult, pExcepInfo, puArgErr);
136 return E_NOTIMPL;
137 }
138
139 // *** FolderItemVerbs methods ***
140 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Count(LONG *plCount)
141 {
142 TRACE("(%p, %p)\n", this, plCount);
143 if (!plCount)
144 return E_POINTER;
145 *plCount = 0;
146 return E_NOTIMPL;
147 }
148
149 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Application(IDispatch **ppid)
150 {
151 TRACE("(%p, %p)\n", this, ppid);
152 return E_NOTIMPL;
153 }
154
155 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::get_Parent(IDispatch **ppid)
156 {
157 TRACE("(%p, %p)\n", this, ppid);
158 return E_NOTIMPL;
159 }
160
161 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::Item(VARIANT index, FolderItemVerb **ppid)
162 {
163 TRACE("(%p, %s, %p)\n", this, wine_dbgstr_variant(&index), ppid);
164 if (!ppid)
165 return E_POINTER;
166
167 /* FIXME! */
168 CFolderItemVerb* verb = new CComObject<CFolderItemVerb>();
169 verb->AddRef();
170 *ppid = verb;
171
172 return E_NOTIMPL;
173 }
174
175 HRESULT STDMETHODCALLTYPE CFolderItemVerbs::_NewEnum(IUnknown **ppunk)
176 {
177 TRACE("(%p, %p)\n", this, ppunk);
178 return E_NOTIMPL;
179 }
180
181