2 * Copyright 2012 Jacek Caban for CodeWeavers
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.
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.
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
21 #include "wine/debug.h"
23 WINE_DEFAULT_DEBUG_CHANNEL(ieframe
);
25 struct ShellUIHelper
{
26 IShellUIHelper2 IShellUIHelper2_iface
;
30 static inline ShellUIHelper
*impl_from_IShellUIHelper2(IShellUIHelper2
*iface
)
32 return CONTAINING_RECORD(iface
, ShellUIHelper
, IShellUIHelper2_iface
);
35 static HRESULT WINAPI
ShellUIHelper2_QueryInterface(IShellUIHelper2
*iface
, REFIID riid
, void **ppv
)
37 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
39 if(IsEqualGUID(&IID_IUnknown
, riid
)) {
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
;
52 WARN("(%p)->(%s %p)\n", This
, debugstr_guid(riid
), ppv
);
57 IUnknown_AddRef((IUnknown
*)*ppv
);
61 static ULONG WINAPI
ShellUIHelper2_AddRef(IShellUIHelper2
*iface
)
63 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
64 LONG ref
= InterlockedIncrement(&This
->ref
);
66 TRACE("(%p) ref=%ld\n", This
, ref
);
71 static ULONG WINAPI
ShellUIHelper2_Release(IShellUIHelper2
*iface
)
73 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
74 LONG ref
= InterlockedDecrement(&This
->ref
);
76 TRACE("(%p) ref=%ld\n", This
, ref
);
84 static HRESULT WINAPI
ShellUIHelper2_GetTypeInfoCount(IShellUIHelper2
*iface
, UINT
*pctinfo
)
86 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
88 TRACE("(%p)->(%p)\n", This
, pctinfo
);
94 static HRESULT WINAPI
ShellUIHelper2_GetTypeInfo(IShellUIHelper2
*iface
, UINT iTInfo
, LCID lcid
, LPTYPEINFO
*ppTInfo
)
96 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
97 FIXME("(%p)->(%d %ld %p)\n", This
, iTInfo
, lcid
, ppTInfo
);
101 static HRESULT WINAPI
ShellUIHelper2_GetIDsOfNames(IShellUIHelper2
*iface
, REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
,
102 LCID lcid
, DISPID
*rgDispId
)
104 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
107 FIXME("(%p)->(%s %p %d %ld %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
]));
111 return DISP_E_UNKNOWNNAME
;
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
)
118 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
119 FIXME("(%p)->(%ld %s %ld %08x %p %p %p %p)\n", This
, dispIdMember
, debugstr_guid(riid
),
120 lcid
, wFlags
, pDispParams
, pVarResult
, pExepInfo
, puArgErr
);
124 static HRESULT WINAPI
ShellUIHelper2_ResetFirstBootMode(IShellUIHelper2
*iface
)
126 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
127 FIXME("(%p)->()\n", This
);
131 static HRESULT WINAPI
ShellUIHelper2_ResetSafeMode(IShellUIHelper2
*iface
)
133 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
134 FIXME("(%p)->()\n", This
);
138 static HRESULT WINAPI
ShellUIHelper2_RefreshOfflineDesktop(IShellUIHelper2
*iface
)
140 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
141 FIXME("(%p)->()\n", This
);
145 static HRESULT WINAPI
ShellUIHelper2_AddFavourite(IShellUIHelper2
*iface
, BSTR URL
, VARIANT
*Title
)
147 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
148 FIXME("(%p)->(%s %s)\n", This
, debugstr_w(URL
), debugstr_variant(Title
));
152 static HRESULT WINAPI
ShellUIHelper2_AddChannel(IShellUIHelper2
*iface
, BSTR URL
)
154 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
155 FIXME("(%p)->(%s)\n", This
, debugstr_w(URL
));
159 static HRESULT WINAPI
ShellUIHelper2_AddDesktopComponent(IShellUIHelper2
*iface
, BSTR URL
, BSTR Type
,
160 VARIANT
*Left
, VARIANT
*Top
, VARIANT
*Width
, VARIANT
*Height
)
162 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
163 FIXME("(%p)->(%s %s %s %s %s %s)\n", This
, debugstr_w(URL
), debugstr_w(Type
), debugstr_variant(Left
),
164 debugstr_variant(Top
), debugstr_variant(Width
), debugstr_variant(Height
));
168 static HRESULT WINAPI
ShellUIHelper2_IsSubscribed(IShellUIHelper2
*iface
, BSTR URL
, VARIANT_BOOL
*pBool
)
170 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
171 FIXME("(%p)->(%s %p)\n", This
, debugstr_w(URL
), pBool
);
175 static HRESULT WINAPI
ShellUIHelper2_NavigateAndFind(IShellUIHelper2
*iface
, BSTR URL
, BSTR strQuery
, VARIANT
*varTargetFrame
)
177 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
178 FIXME("(%p)->(%s %s %s)\n", This
, debugstr_w(URL
), debugstr_w(strQuery
), debugstr_variant(varTargetFrame
));
182 static HRESULT WINAPI
ShellUIHelper2_ImportExportFavourites(IShellUIHelper2
*iface
, VARIANT_BOOL fImport
, BSTR strImpExpPath
)
184 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
185 FIXME("(%p)->(%x %s)\n", This
, fImport
, debugstr_w(strImpExpPath
));
189 static HRESULT WINAPI
ShellUIHelper2_AutoCompleteSaveForm(IShellUIHelper2
*iface
, VARIANT
*Form
)
191 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
192 FIXME("(%p)->(%s)\n", This
, debugstr_variant(Form
));
196 static HRESULT WINAPI
ShellUIHelper2_AutoScan(IShellUIHelper2
*iface
, BSTR strSearch
, BSTR strFailureUrl
, VARIANT
*pvarTargetFrame
)
198 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
199 FIXME("(%p)->(%s %s %s)\n", This
, debugstr_w(strSearch
), debugstr_w(strFailureUrl
), debugstr_variant(pvarTargetFrame
));
203 static HRESULT WINAPI
ShellUIHelper2_AutoCompleteAttach(IShellUIHelper2
*iface
, VARIANT
*Reserved
)
205 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
206 FIXME("(%p)->(%s)\n", This
, debugstr_variant(Reserved
));
210 static HRESULT WINAPI
ShellUIHelper2_ShowBrowserUI(IShellUIHelper2
*iface
, BSTR bstrName
, VARIANT
*pvarIn
, VARIANT
*pvarOut
)
212 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
213 FIXME("(%p)->(%s %s %p)\n", This
, debugstr_w(bstrName
), debugstr_variant(pvarIn
), pvarOut
);
217 static HRESULT WINAPI
ShellUIHelper2_AddSearchProvider(IShellUIHelper2
*iface
, BSTR URL
)
219 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
220 FIXME("(%p)->(%s)\n", This
, debugstr_w(URL
));
224 static HRESULT WINAPI
ShellUIHelper2_RunOnceShown(IShellUIHelper2
*iface
)
226 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
227 FIXME("(%p)->()\n", This
);
231 static HRESULT WINAPI
ShellUIHelper2_SkipRunOnce(IShellUIHelper2
*iface
)
233 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
234 FIXME("(%p)->()\n", This
);
238 static HRESULT WINAPI
ShellUIHelper2_CustomizeSettings(IShellUIHelper2
*iface
, VARIANT_BOOL fSQM
,
239 VARIANT_BOOL fPhishing
, BSTR bstrLocale
)
241 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
242 FIXME("(%p)->(%x %x %s)\n", This
, fSQM
, fPhishing
, debugstr_w(bstrLocale
));
246 static HRESULT WINAPI
ShellUIHelper2_SqmEnabled(IShellUIHelper2
*iface
, VARIANT_BOOL
*pfEnabled
)
248 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
249 FIXME("(%p)->(%p)\n", This
, pfEnabled
);
253 static HRESULT WINAPI
ShellUIHelper2_PhishingEnabled(IShellUIHelper2
*iface
, VARIANT_BOOL
*pfEnabled
)
255 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
256 FIXME("(%p)->(%p)\n", This
, pfEnabled
);
260 static HRESULT WINAPI
ShellUIHelper2_BrandImageUri(IShellUIHelper2
*iface
, BSTR
*pbstrUri
)
262 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
263 FIXME("(%p)->(%p)\n", This
, pbstrUri
);
267 static HRESULT WINAPI
ShellUIHelper2_SkipTabsWelcome(IShellUIHelper2
*iface
)
269 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
270 FIXME("(%p)->()\n", This
);
274 static HRESULT WINAPI
ShellUIHelper2_DiagnoseConnection(IShellUIHelper2
*iface
)
276 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
277 FIXME("(%p)->()\n", This
);
281 static HRESULT WINAPI
ShellUIHelper2_CustomizeClearType(IShellUIHelper2
*iface
, VARIANT_BOOL fSet
)
283 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
284 FIXME("(%p)->(%x)\n", This
, fSet
);
288 static HRESULT WINAPI
ShellUIHelper2_IsSearchProviderInstalled(IShellUIHelper2
*iface
, BSTR URL
, DWORD
*pdwResult
)
290 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
291 FIXME("(%p)->(%s %p)\n", This
, debugstr_w(URL
), pdwResult
);
295 static HRESULT WINAPI
ShellUIHelper2_IsSearchMigrated(IShellUIHelper2
*iface
, VARIANT_BOOL
*pfMigrated
)
297 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
298 FIXME("(%p)->(%p)\n", This
, pfMigrated
);
302 static HRESULT WINAPI
ShellUIHelper2_DefaultSearchProvider(IShellUIHelper2
*iface
, BSTR
*pbstrName
)
304 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
305 FIXME("(%p)->(%p)\n", This
, pbstrName
);
309 static HRESULT WINAPI
ShellUIHelper2_RunOnceRequiredSettingsComplete(IShellUIHelper2
*iface
, VARIANT_BOOL fComplete
)
311 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
312 FIXME("(%p)->(%x)\n", This
, fComplete
);
316 static HRESULT WINAPI
ShellUIHelper2_RunOnceHasShown(IShellUIHelper2
*iface
, VARIANT_BOOL
*pfShown
)
318 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
319 FIXME("(%p)->(%p)\n", This
, pfShown
);
323 static HRESULT WINAPI
ShellUIHelper2_SearchGuideUrl(IShellUIHelper2
*iface
, BSTR
*pbstrUrl
)
325 ShellUIHelper
*This
= impl_from_IShellUIHelper2(iface
);
326 FIXME("(%p)->(%p)\n", This
, pbstrUrl
);
330 static const IShellUIHelper2Vtbl ShellUIHelper2Vtbl
= {
331 ShellUIHelper2_QueryInterface
,
332 ShellUIHelper2_AddRef
,
333 ShellUIHelper2_Release
,
334 ShellUIHelper2_GetTypeInfoCount
,
335 ShellUIHelper2_GetTypeInfo
,
336 ShellUIHelper2_GetIDsOfNames
,
337 ShellUIHelper2_Invoke
,
338 ShellUIHelper2_ResetFirstBootMode
,
339 ShellUIHelper2_ResetSafeMode
,
340 ShellUIHelper2_RefreshOfflineDesktop
,
341 ShellUIHelper2_AddFavourite
,
342 ShellUIHelper2_AddChannel
,
343 ShellUIHelper2_AddDesktopComponent
,
344 ShellUIHelper2_IsSubscribed
,
345 ShellUIHelper2_NavigateAndFind
,
346 ShellUIHelper2_ImportExportFavourites
,
347 ShellUIHelper2_AutoCompleteSaveForm
,
348 ShellUIHelper2_AutoScan
,
349 ShellUIHelper2_AutoCompleteAttach
,
350 ShellUIHelper2_ShowBrowserUI
,
351 ShellUIHelper2_AddSearchProvider
,
352 ShellUIHelper2_RunOnceShown
,
353 ShellUIHelper2_SkipRunOnce
,
354 ShellUIHelper2_CustomizeSettings
,
355 ShellUIHelper2_SqmEnabled
,
356 ShellUIHelper2_PhishingEnabled
,
357 ShellUIHelper2_BrandImageUri
,
358 ShellUIHelper2_SkipTabsWelcome
,
359 ShellUIHelper2_DiagnoseConnection
,
360 ShellUIHelper2_CustomizeClearType
,
361 ShellUIHelper2_IsSearchProviderInstalled
,
362 ShellUIHelper2_IsSearchMigrated
,
363 ShellUIHelper2_DefaultSearchProvider
,
364 ShellUIHelper2_RunOnceRequiredSettingsComplete
,
365 ShellUIHelper2_RunOnceHasShown
,
366 ShellUIHelper2_SearchGuideUrl
369 HRESULT
create_shell_ui_helper(IShellUIHelper2
**_ret
)
373 ret
= malloc(sizeof(*ret
));
375 return E_OUTOFMEMORY
;
377 ret
->IShellUIHelper2_iface
.lpVtbl
= &ShellUIHelper2Vtbl
;
380 *_ret
= &ret
->IShellUIHelper2_iface
;