ReactOS  0.4.13-dev-982-g9853eab
shelluihelper.c
Go to the documentation of this file.
1 /*
2  * Copyright 2012 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #include "ieframe.h"
20 
21 #include "wine/debug.h"
22 
24 
25 struct ShellUIHelper {
26  IShellUIHelper2 IShellUIHelper2_iface;
28 };
29 
30 static inline ShellUIHelper *impl_from_IShellUIHelper2(IShellUIHelper2 *iface)
31 {
32  return CONTAINING_RECORD(iface, ShellUIHelper, IShellUIHelper2_iface);
33 }
34 
35 static HRESULT WINAPI ShellUIHelper2_QueryInterface(IShellUIHelper2 *iface, REFIID riid, void **ppv)
36 {
38 
40  TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
41  *ppv = &This->IShellUIHelper2_iface;
42  }else if(IsEqualGUID(&IID_IDispatch, riid)) {
43  TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
44  *ppv = &This->IShellUIHelper2_iface;
45  }else if(IsEqualGUID(&IID_IShellUIHelper, riid)) {
46  TRACE("(%p)->(IID_IShellUIHelper %p)\n", This, ppv);
47  *ppv = &This->IShellUIHelper2_iface;
48  }else if(IsEqualGUID(&IID_IShellUIHelper2, riid)) {
49  TRACE("(%p)->(IID_IShellUIHelper2 %p)\n", This, ppv);
50  *ppv = &This->IShellUIHelper2_iface;
51  }else {
52  WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
53  *ppv = NULL;
54  return E_NOINTERFACE;
55  }
56 
57  IUnknown_AddRef((IUnknown*)*ppv);
58  return S_OK;
59 }
60 
61 static ULONG WINAPI ShellUIHelper2_AddRef(IShellUIHelper2 *iface)
62 {
65 
66  TRACE("(%p) ref=%d\n", This, ref);
67 
68  return ref;
69 }
70 
71 static ULONG WINAPI ShellUIHelper2_Release(IShellUIHelper2 *iface)
72 {
75 
76  TRACE("(%p) ref=%d\n", This, ref);
77 
78  if(!ref)
79  heap_free(This);
80 
81  return ref;
82 }
83 
84 static HRESULT WINAPI ShellUIHelper2_GetTypeInfoCount(IShellUIHelper2 *iface, UINT *pctinfo)
85 {
87 
88  TRACE("(%p)->(%p)\n", This, pctinfo);
89 
90  *pctinfo = 1;
91  return S_OK;
92 }
93 
94 static HRESULT WINAPI ShellUIHelper2_GetTypeInfo(IShellUIHelper2 *iface, UINT iTInfo, LCID lcid, LPTYPEINFO *ppTInfo)
95 {
97  FIXME("(%p)->(%d %d %p)\n", This, iTInfo, lcid, ppTInfo);
98  return E_NOTIMPL;
99 }
100 
101 static HRESULT WINAPI ShellUIHelper2_GetIDsOfNames(IShellUIHelper2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames,
102  LCID lcid, DISPID *rgDispId)
103 {
105  unsigned i;
106 
107  FIXME("(%p)->(%s %p %d %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
108  for(i = 0; i < cNames; i++)
109  FIXME("%s\n", debugstr_w(rgszNames[i]));
110 
111  return DISP_E_UNKNOWNNAME;
112 }
113 
114 static HRESULT WINAPI ShellUIHelper2_Invoke(IShellUIHelper2 *iface, DISPID dispIdMember,
115  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
116  EXCEPINFO *pExepInfo, UINT *puArgErr)
117 {
119  FIXME("(%p)->(%d %s %d %08x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
120  lcid, wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
121  return E_NOTIMPL;
122 }
123 
124 static HRESULT WINAPI ShellUIHelper2_ResetFirstBootMode(IShellUIHelper2 *iface)
125 {
127  FIXME("(%p)->()\n", This);
128  return E_NOTIMPL;
129 }
130 
131 static HRESULT WINAPI ShellUIHelper2_ResetSafeMode(IShellUIHelper2 *iface)
132 {
134  FIXME("(%p)->()\n", This);
135  return E_NOTIMPL;
136 }
137 
139 {
141  FIXME("(%p)->()\n", This);
142  return E_NOTIMPL;
143 }
144 
145 static HRESULT WINAPI ShellUIHelper2_AddFavourite(IShellUIHelper2 *iface, BSTR URL, VARIANT *Title)
146 {
148  FIXME("(%p)->(%s %s)\n", This, debugstr_w(URL), debugstr_variant(Title));
149  return E_NOTIMPL;
150 }
151 
152 static HRESULT WINAPI ShellUIHelper2_AddChannel(IShellUIHelper2 *iface, BSTR URL)
153 {
155  FIXME("(%p)->(%s)\n", This, debugstr_w(URL));
156  return E_NOTIMPL;
157 }
158 
159 static HRESULT WINAPI ShellUIHelper2_AddDesktopComponent(IShellUIHelper2 *iface, BSTR URL, BSTR Type,
160  VARIANT *Left, VARIANT *Top, VARIANT *Width, VARIANT *Height)
161 {
163  FIXME("(%p)->(%s %s %s %s %s %s)\n", This, debugstr_w(URL), debugstr_w(Type), debugstr_variant(Left),
165  return E_NOTIMPL;
166 }
167 
168 static HRESULT WINAPI ShellUIHelper2_IsSubscribed(IShellUIHelper2 *iface, BSTR URL, VARIANT_BOOL *pBool)
169 {
171  FIXME("(%p)->(%s %p)\n", This, debugstr_w(URL), pBool);
172  return E_NOTIMPL;
173 }
174 
175 static HRESULT WINAPI ShellUIHelper2_NavigateAndFind(IShellUIHelper2 *iface, BSTR URL, BSTR strQuery, VARIANT *varTargetFrame)
176 {
178  FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(URL), debugstr_w(strQuery), debugstr_variant(varTargetFrame));
179  return E_NOTIMPL;
180 }
181 
182 static HRESULT WINAPI ShellUIHelper2_ImportExportFavourites(IShellUIHelper2 *iface, VARIANT_BOOL fImport, BSTR strImpExpPath)
183 {
185  FIXME("(%p)->(%x %s)\n", This, fImport, debugstr_w(strImpExpPath));
186  return E_NOTIMPL;
187 }
188 
189 static HRESULT WINAPI ShellUIHelper2_AutoCompleteSaveForm(IShellUIHelper2 *iface, VARIANT *Form)
190 {
192  FIXME("(%p)->(%s)\n", This, debugstr_variant(Form));
193  return E_NOTIMPL;
194 }
195 
196 static HRESULT WINAPI ShellUIHelper2_AutoScan(IShellUIHelper2 *iface, BSTR strSearch, BSTR strFailureUrl, VARIANT *pvarTargetFrame)
197 {
199  FIXME("(%p)->(%s %s %s)\n", This, debugstr_w(strSearch), debugstr_w(strFailureUrl), debugstr_variant(pvarTargetFrame));
200  return E_NOTIMPL;
201 }
202 
204 {
206  FIXME("(%p)->(%s)\n", This, debugstr_variant(Reserved));
207  return E_NOTIMPL;
208 }
209 
210 static HRESULT WINAPI ShellUIHelper2_ShowBrowserUI(IShellUIHelper2 *iface, BSTR bstrName, VARIANT *pvarIn, VARIANT *pvarOut)
211 {
213  FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(bstrName), debugstr_variant(pvarIn), pvarOut);
214  return E_NOTIMPL;
215 }
216 
217 static HRESULT WINAPI ShellUIHelper2_AddSearchProvider(IShellUIHelper2 *iface, BSTR URL)
218 {
220  FIXME("(%p)->(%s)\n", This, debugstr_w(URL));
221  return E_NOTIMPL;
222 }
223 
224 static HRESULT WINAPI ShellUIHelper2_RunOnceShown(IShellUIHelper2 *iface)
225 {
227  FIXME("(%p)->()\n", This);
228  return E_NOTIMPL;
229 }
230 
231 static HRESULT WINAPI ShellUIHelper2_SkipRunOnce(IShellUIHelper2 *iface)
232 {
234  FIXME("(%p)->()\n", This);
235  return E_NOTIMPL;
236 }
237 
238 static HRESULT WINAPI ShellUIHelper2_CustomizeSettings(IShellUIHelper2 *iface, VARIANT_BOOL fSQM,
239  VARIANT_BOOL fPhishing, BSTR bstrLocale)
240 {
242  FIXME("(%p)->(%x %x %s)\n", This, fSQM, fPhishing, debugstr_w(bstrLocale));
243  return E_NOTIMPL;
244 }
245 
246 static HRESULT WINAPI ShellUIHelper2_SqmEnabled(IShellUIHelper2 *iface, VARIANT_BOOL *pfEnabled)
247 {
249  FIXME("(%p)->(%p)\n", This, pfEnabled);
250  return E_NOTIMPL;
251 }
252 
253 static HRESULT WINAPI ShellUIHelper2_PhishingEnabled(IShellUIHelper2 *iface, VARIANT_BOOL *pfEnabled)
254 {
256  FIXME("(%p)->(%p)\n", This, pfEnabled);
257  return E_NOTIMPL;
258 }
259 
260 static HRESULT WINAPI ShellUIHelper2_BrandImageUri(IShellUIHelper2 *iface, BSTR *pbstrUri)
261 {
263  FIXME("(%p)->(%p)\n", This, pbstrUri);
264  return E_NOTIMPL;
265 }
266 
267 static HRESULT WINAPI ShellUIHelper2_SkipTabsWelcome(IShellUIHelper2 *iface)
268 {
270  FIXME("(%p)->()\n", This);
271  return E_NOTIMPL;
272 }
273 
274 static HRESULT WINAPI ShellUIHelper2_DiagnoseConnection(IShellUIHelper2 *iface)
275 {
277  FIXME("(%p)->()\n", This);
278  return E_NOTIMPL;
279 }
280 
281 static HRESULT WINAPI ShellUIHelper2_CustomizeClearType(IShellUIHelper2 *iface, VARIANT_BOOL fSet)
282 {
284  FIXME("(%p)->(%x)\n", This, fSet);
285  return E_NOTIMPL;
286 }
287 
289 {
291  FIXME("(%p)->(%s %p)\n", This, debugstr_w(URL), pdwResult);
292  return E_NOTIMPL;
293 }
294 
295 static HRESULT WINAPI ShellUIHelper2_IsSearchMigrated(IShellUIHelper2 *iface, VARIANT_BOOL *pfMigrated)
296 {
298  FIXME("(%p)->(%p)\n", This, pfMigrated);
299  return E_NOTIMPL;
300 }
301 
302 static HRESULT WINAPI ShellUIHelper2_DefaultSearchProvider(IShellUIHelper2 *iface, BSTR *pbstrName)
303 {
305  FIXME("(%p)->(%p)\n", This, pbstrName);
306  return E_NOTIMPL;
307 }
308 
310 {
312  FIXME("(%p)->(%x)\n", This, fComplete);
313  return E_NOTIMPL;
314 }
315 
316 static HRESULT WINAPI ShellUIHelper2_RunOnceHasShown(IShellUIHelper2 *iface, VARIANT_BOOL *pfShown)
317 {
319  FIXME("(%p)->(%p)\n", This, pfShown);
320  return E_NOTIMPL;
321 }
322 
323 static HRESULT WINAPI ShellUIHelper2_SearchGuideUrl(IShellUIHelper2 *iface, BSTR *pbstrUrl)
324 {
326  FIXME("(%p)->(%p)\n", This, pbstrUrl);
327  return E_NOTIMPL;
328 }
329 
330 static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl = {
367 };
368 
370 {
372 
373  ret = heap_alloc(sizeof(*ret));
374  if(!ret)
375  return E_OUTOFMEMORY;
376 
377  ret->IShellUIHelper2_iface.lpVtbl = &ShellUIHelper2Vtbl;
378  ret->ref = 1;
379 
380  *_ret = &ret->IShellUIHelper2_iface;
381  return S_OK;
382 }
static HRESULT WINAPI ShellUIHelper2_ResetSafeMode(IShellUIHelper2 *iface)
#define DISP_E_UNKNOWNNAME
Definition: winerror.h:2515
#define REFIID
Definition: guiddef.h:118
#define E_NOINTERFACE
Definition: winerror.h:2364
Type
Definition: Type.h:6
static HRESULT WINAPI ShellUIHelper2_SkipTabsWelcome(IShellUIHelper2 *iface)
static HRESULT WINAPI ShellUIHelper2_DiagnoseConnection(IShellUIHelper2 *iface)
static HRESULT WINAPI ShellUIHelper2_ShowBrowserUI(IShellUIHelper2 *iface, BSTR bstrName, VARIANT *pvarIn, VARIANT *pvarOut)
REFIID riid
Definition: precomp.h:44
static HRESULT WINAPI ShellUIHelper2_AutoCompleteAttach(IShellUIHelper2 *iface, VARIANT *Reserved)
#define WARN(fmt,...)
Definition: debug.h:111
static ULONG WINAPI ShellUIHelper2_Release(IShellUIHelper2 *iface)
Definition: shelluihelper.c:71
REFIID LPVOID * ppv
Definition: atlbase.h:39
static HRESULT WINAPI ShellUIHelper2_RefreshOfflineDesktop(IShellUIHelper2 *iface)
static HRESULT WINAPI ShellUIHelper2_NavigateAndFind(IShellUIHelper2 *iface, BSTR URL, BSTR strQuery, VARIANT *varTargetFrame)
static HRESULT WINAPI ShellUIHelper2_RunOnceRequiredSettingsComplete(IShellUIHelper2 *iface, VARIANT_BOOL fComplete)
static HRESULT WINAPI ShellUIHelper2_RunOnceShown(IShellUIHelper2 *iface)
DWORD LCID
Definition: nls.h:13
OLECHAR * BSTR
Definition: compat.h:1934
static HRESULT WINAPI ShellUIHelper2_AutoCompleteSaveForm(IShellUIHelper2 *iface, VARIANT *Form)
static LPOLESTR
Definition: stg_prop.c:27
short VARIANT_BOOL
Definition: compat.h:1931
Definition: send.c:47
HRESULT create_shell_ui_helper(IShellUIHelper2 **_ret)
static void * heap_alloc(size_t len)
Definition: appwiz.h:65
static HRESULT WINAPI ShellUIHelper2_GetIDsOfNames(IShellUIHelper2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static HRESULT WINAPI ShellUIHelper2_GetTypeInfoCount(IShellUIHelper2 *iface, UINT *pctinfo)
Definition: shelluihelper.c:84
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static HRESULT WINAPI ShellUIHelper2_AddSearchProvider(IShellUIHelper2 *iface, BSTR URL)
long LONG
Definition: pedump.c:60
#define debugstr_w
Definition: kernel32.h:32
GLenum GLint ref
Definition: glext.h:6028
#define FIXME(fmt,...)
Definition: debug.h:110
static HRESULT WINAPI ShellUIHelper2_GetTypeInfo(IShellUIHelper2 *iface, UINT iTInfo, LCID lcid, LPTYPEINFO *ppTInfo)
Definition: shelluihelper.c:94
smooth NULL
Definition: ftsmooth.c:416
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define debugstr_guid
Definition: kernel32.h:35
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static ULONG WINAPI ShellUIHelper2_AddRef(IShellUIHelper2 *iface)
Definition: shelluihelper.c:61
static HRESULT WINAPI ShellUIHelper2_DefaultSearchProvider(IShellUIHelper2 *iface, BSTR *pbstrName)
#define TRACE(s)
Definition: solgame.cpp:4
static const WCHAR Title[]
Definition: oid.c:1259
static HRESULT WINAPI ShellUIHelper2_Invoke(IShellUIHelper2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
static HRESULT WINAPI ShellUIHelper2_RunOnceHasShown(IShellUIHelper2 *iface, VARIANT_BOOL *pfShown)
LONG HRESULT
Definition: typedefs.h:77
static HRESULT WINAPI ShellUIHelper2_CustomizeClearType(IShellUIHelper2 *iface, VARIANT_BOOL fSet)
const GUID IID_IUnknown
#define WINAPI
Definition: msvc.h:8
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
IShellUIHelper2 IShellUIHelper2_iface
Definition: shelluihelper.c:26
const GUID IID_IDispatch
int ret
#define InterlockedDecrement
Definition: armddk.h:52
static HRESULT WINAPI ShellUIHelper2_SqmEnabled(IShellUIHelper2 *iface, VARIANT_BOOL *pfEnabled)
static ShellUIHelper * impl_from_IShellUIHelper2(IShellUIHelper2 *iface)
Definition: shelluihelper.c:30
static HRESULT WINAPI ShellUIHelper2_SearchGuideUrl(IShellUIHelper2 *iface, BSTR *pbstrUrl)
static HRESULT WINAPI ShellUIHelper2_IsSubscribed(IShellUIHelper2 *iface, BSTR URL, VARIANT_BOOL *pBool)
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
struct stdole::EXCEPINFO EXCEPINFO
static HRESULT WINAPI ShellUIHelper2_ImportExportFavourites(IShellUIHelper2 *iface, VARIANT_BOOL fImport, BSTR strImpExpPath)
static HRESULT WINAPI ShellUIHelper2_ResetFirstBootMode(IShellUIHelper2 *iface)
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
#define InterlockedIncrement
Definition: armddk.h:53
static HRESULT WINAPI ShellUIHelper2_AddDesktopComponent(IShellUIHelper2 *iface, BSTR URL, BSTR Type, VARIANT *Left, VARIANT *Top, VARIANT *Width, VARIANT *Height)
_In_ UINT _In_ DWORD _Out_ DWORD * pdwResult
Definition: ntgdi.h:248
static HRESULT WINAPI ShellUIHelper2_SkipRunOnce(IShellUIHelper2 *iface)
#define E_NOTIMPL
Definition: ddrawi.h:99
static HRESULT WINAPI ShellUIHelper2_BrandImageUri(IShellUIHelper2 *iface, BSTR *pbstrUri)
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
static HRESULT WINAPI ShellUIHelper2_PhishingEnabled(IShellUIHelper2 *iface, VARIANT_BOOL *pfEnabled)
static HRESULT WINAPI ShellUIHelper2_IsSearchMigrated(IShellUIHelper2 *iface, VARIANT_BOOL *pfMigrated)
struct stdole::DISPPARAMS DISPPARAMS
unsigned int ULONG
Definition: retypes.h:1
static HRESULT WINAPI ShellUIHelper2_AddFavourite(IShellUIHelper2 *iface, BSTR URL, VARIANT *Title)
static HRESULT WINAPI ShellUIHelper2_IsSearchProviderInstalled(IShellUIHelper2 *iface, BSTR URL, DWORD *pdwResult)
#define _ret
static HRESULT WINAPI ShellUIHelper2_QueryInterface(IShellUIHelper2 *iface, REFIID riid, void **ppv)
Definition: shelluihelper.c:35
static HRESULT WINAPI ShellUIHelper2_CustomizeSettings(IShellUIHelper2 *iface, VARIANT_BOOL fSQM, VARIANT_BOOL fPhishing, BSTR bstrLocale)
static HRESULT WINAPI ShellUIHelper2_AddChannel(IShellUIHelper2 *iface, BSTR URL)
static LPHIST_ENTRY Top
Definition: history.c:53
WINE_DEFAULT_DEBUG_CHANNEL(ieframe)
static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl
static HRESULT WINAPI ShellUIHelper2_AutoScan(IShellUIHelper2 *iface, BSTR strSearch, BSTR strFailureUrl, VARIANT *pvarTargetFrame)
static BOOL heap_free(void *mem)
Definition: appwiz.h:75