ReactOS 0.4.15-dev-7677-g8209aa5
shlobj_undoc.h
Go to the documentation of this file.
1/*
2 * ReactOS undocumented shell interface
3 *
4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
5 * Copyright 2013 Dominik Hornung
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#ifndef __SHLOBJ_UNDOC__H
23#define __SHLOBJ_UNDOC__H
24
25#ifdef __cplusplus
26extern "C" {
27#endif /* defined(__cplusplus) */
28
29typedef struct tagSLOTITEMDATA
30{
35
36typedef INT (CALLBACK *SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData);
37
38/*****************************************************************************
39 * New shellstate structure
40 */
42{
46};
47
48/*****************************************************************************
49 * Header for persisted view state in cabinet windows
50 */
52{
53 long dwSize;
59};
60
61/*****************************************************************************
62 * IInitializeObject interface
63 */
64#undef INTERFACE
65#define INTERFACE IInitializeObject
66
67DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719")
68{
72
74};
75#undef INTERFACE
76#if !defined(__cplusplus) || defined(CINTERFACE)
77#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
78#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
79#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
80#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
81#endif
82
83
84/*****************************************************************************
85 * IBanneredBar interface
86 */
87enum
88{
91};
92#define INTERFACE IBanneredBar
93DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719")
94{
98
103
104};
105#undef INTERFACE
106
107#if !defined(__cplusplus) || defined(CINTERFACE)
108#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
109#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
110#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
111#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
112#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
113#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
114#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
115#endif
116
117/*****************************************************************************
118 * IGlobalFolderSettings interface
119 */
121{
123};
124
125#undef INTERFACE
126#define INTERFACE IGlobalFolderSettings
127DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown)
128{
129 /*** IUnknown ***/
133 /*** IGlobalFolderSettings ***/
134 STDMETHOD(Get)(THIS_ struct DEFFOLDERSETTINGS *buffer, int theSize) PURE;
135 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *buffer, int theSize, unsigned int param14) PURE;
136};
137#undef INTERFACE
138
139/*****************************************************************************
140 * IStartMenuCallback interface
141 */
142#define INTERFACE IStartMenuCallback
143DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow)
144{
145 /*** IUnknown ***/
149 /*** IOleWindow methods ***/
151 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
152 /*** IStartMenuCallback ***/
156};
157#undef INTERFACE
158
159#ifdef COBJMACROS
160#define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
161#define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
162#define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T)
163#define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
164#define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
165#define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
166#define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
167#define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
168#endif
169
170/*****************************************************************************
171 * IBandSiteStreamCallback interface
172 */
173#define INTERFACE IBandSiteStreamCallback
174DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown)
175{
176 /*** IUnknown ***/
180 /*** IBandSiteStreamCallback ***/
181 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE;
183};
184#undef INTERFACE
185
186#ifdef COBJMACROS
187#define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
188#define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
189#define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T)
190#define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c)
191#define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b)
192#endif
193
194/*****************************************************************************
195 * IShellDesktopTray interface
196 */
197#define INTERFACE IShellDesktopTray
198DECLARE_INTERFACE_(IShellDesktopTray, IUnknown)
199{
200 /*** IUnknown ***/
204 /*** IShellDesktopTray ***/
206 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE;
207 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE;
209};
210#undef INTERFACE
211
212#ifdef COBJMACROS
213#define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
214#define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T)
215#define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T)
216#define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T)
217#define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a)
218#define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a)
219#define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b)
220#endif
221
222/*****************************************************************************
223 * INscTree interface
224 */
225#define INTERFACE INscTree
227{
228 /*** IUnknown ***/
232 /*** INscTree ***/
233 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
234 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
235 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
237 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
238 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
239 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
240 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
241 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
242 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
243 STDMETHOD(InLabelEdit)(THIS) PURE;
244 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
245 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
246};
247#undef INTERFACE
248
249#ifdef COBJMACROS
250#define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
251#define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T)
252#define INscTree_Release(T) (T)->lpVtbl->Release(T)
253#define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
254#define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
255#define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
256#define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T)
257#define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
258#define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
259#define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
260#define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
261#define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
262#define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
263#define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
264#define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
265#define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
266#endif
267
268/*****************************************************************************
269 * INscTree2 interface
270 */
271#define INTERFACE INscTree2
272DECLARE_INTERFACE_(INscTree2, INscTree)
273{
274 /*** IUnknown ***/
278 /*** INscTree ***/
279 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
280 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
281 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
283 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
284 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
285 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
286 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
287 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
288 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
289 STDMETHOD(InLabelEdit)(THIS) PURE;
290 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
291 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
292 /*** INscTree2 ***/
293 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE;
294};
295#undef INTERFACE
296
297#ifdef COBJMACROS
298#define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
299#define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T)
300#define INscTree2_Release(T) (T)->lpVtbl->Release(T)
301#define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
302#define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
303#define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
304#define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T)
305#define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
306#define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
307#define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
308#define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
309#define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
310#define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
311#define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
312#define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
313#define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
314#define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d)
315#endif
316
317/*****************************************************************************
318 * IAddressEditBox interface
319 */
320#define INTERFACE IAddressEditBox
322{
323 /*** IUnknown ***/
327 /*** IAddressEditBox ***/
328 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE;
329 STDMETHOD(SetCurrentDir)(THIS_ long paramC) PURE;
330 STDMETHOD(ParseNow)(THIS_ long paramC) PURE;
331 STDMETHOD(Execute)(THIS_ long paramC) PURE;
332 STDMETHOD(Save)(THIS_ long paramC) PURE;
333};
334#undef INTERFACE
335
336#ifdef COBJMACROS
337#define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
338#define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T)
339#define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T)
340#define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d)
341#define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a)
342#define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a)
343#define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a)
344#define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a)
345#endif
346
347/*****************************************************************************
348 * IBandProxy interface
349 */
350#define INTERFACE IBandProxy
352{
353 /*** IUnknown ***/
357 /*** IBandProxy ***/
358 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE;
359 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE;
360 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE;
361 STDMETHOD(IsConnected)(THIS) PURE;
362 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE;
363 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE;
364};
365#undef INTERFACE
366
367#ifdef COBJMACROS
368#define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
369#define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
370#define IBandProxy_Release(T) (T)->lpVtbl->Release(T)
371#define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a)
372#define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a)
373#define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a)
374#define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T)
375#define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a)
376#define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b)
377#endif
378
379/*****************************************************************************
380 * IExplorerToolbar interface
381 */
382#define INTERFACE IExplorerToolbar
383DECLARE_INTERFACE_(IExplorerToolbar, IUnknown)
384{
385 /*** IUnknown ***/
389 /*** IExplorerToolbar ***/
390 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE;
391 STDMETHOD(Unknown1)(THIS) PURE;
392 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE;
393 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE;
394 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
395 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE;
396 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE;
397 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE;
398 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE;
399 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE;
400 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE;
401 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
402};
403#undef INTERFACE
404
405#ifdef COBJMACROS
406#define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
407#define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T)
408#define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T)
409#define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c)
410#define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T)
411#define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c)
412#define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d)
413#define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c)
414#define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c)
415#define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c)
416#define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f)
417#define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a)
418#define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e)
419#define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d)
420#define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c)
421#endif
422
423/*****************************************************************************
424 * IRegTreeOptions interface
425 */
427{
433
434#define INTERFACE IRegTreeOptions
436{
437 /*** IUnknown ***/
441 /*** IRegTreeOptions ***/
442 STDMETHOD(InitTree)(THIS_ HWND paramC, HKEY param10, char const *param14, char const *param18) PURE;
443 STDMETHOD(WalkTree)(THIS_ WALK_TREE_CMD paramC) PURE;
444 STDMETHOD(ToggleItem)(THIS_ HTREEITEM paramC) PURE;
445 STDMETHOD(ShowHelp)(THIS_ HTREEITEM paramC, unsigned long param10) PURE;
446};
447#undef INTERFACE
448
449#ifdef COBJMACROS
450#define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
451#define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T)
452#define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T)
453#define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d)
454#define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a)
455#define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a)
456#define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b)
457#endif
458
459/*****************************************************************************
460 * IBandNavigate interface
461 */
462#define INTERFACE IBandNavigate
464{
465 /*** IUnknown ***/
469 /*** IBandNavigate ***/
470 STDMETHOD(Select)(THIS_ long paramC) PURE;
471};
472#undef INTERFACE
473
474#ifdef COBJMACROS
475#define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
476#define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T)
477#define IBandNavigate_Release(T) (T)->lpVtbl->Release(T)
478#define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a)
479#endif
480
481/*****************************************************************************
482 * INamespaceProxy interface
483 */
484#define INTERFACE INamespaceProxy
486{
487 /*** IUnknown ***/
491 /*** INamespaceProxy ***/
492 STDMETHOD(GetNavigateTarget)(THIS_ long paramC, long param10, long param14) PURE;
493 STDMETHOD(Invoke)(THIS_ long paramC) PURE;
494 STDMETHOD(OnSelectionChanged)(THIS_ long paramC) PURE;
495 STDMETHOD(RefreshFlags)(THIS_ long paramC, long param10, long param14) PURE;
496 STDMETHOD(CacheItem)(THIS_ long paramC) PURE;
497};
498#undef INTERFACE
499
500#ifdef COBJMACROS
501#define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
502#define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
503#define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T)
504#define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c)
505#define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a)
506#define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a)
507#define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c)
508#define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a)
509#endif
510
511/*****************************************************************************
512 * IShellMenu2 interface
513 */
514#define INTERFACE IShellMenu2
516{
517 /*** IUnknown ***/
521 /*** IShellMenu ***/
523 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE;
524 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE;
525 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE;
527 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE;
528 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE;
530 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE;
531 /*** IShellMenu2 ***/
533 STDMETHOD(SetToolbar)(THIS) PURE;
534 STDMETHOD(SetMinWidth)(THIS) PURE;
535 STDMETHOD(SetNoBorder)(THIS) PURE;
536 STDMETHOD(SetTheme)(THIS) PURE;
537};
538#undef INTERFACE
539
540#ifdef COBJMACROS
541#define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
542#define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
543#define IShellMenu2_Release(T) (T)->lpVtbl->Release(T)
544#define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d)
545#define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d)
546#define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d)
547#define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d)
548#define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
549#define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c)
550#define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b)
551#define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a)
552#define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b)
553#define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
554#define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T)
555#define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T)
556#define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T)
557#define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T)
558#endif
559
560/*****************************************************************************
561 * IWinEventHandler interface
562 */
563#define INTERFACE IWinEventHandler
564DECLARE_INTERFACE_(IWinEventHandler, IUnknown)
565{
566 /*** IUnknown ***/
570 /*** IWinEventHandler ***/
571 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE;
572 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE;
573};
574#undef INTERFACE
575
576#ifdef COBJMACROS
577#define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
578#define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T)
579#define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T)
580#define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e)
581#define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a)
582#endif
583
584/*****************************************************************************
585 * IAddressBand interface
586 */
587#define INTERFACE IAddressBand
589{
590 /*** IUnknown ***/
594 /*** IAddressBand ***/
595 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE;
596 STDMETHOD(Refresh)(THIS_ long param8) PURE;
597};
598#undef INTERFACE
599
600#ifdef COBJMACROS
601#define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
602#define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T)
603#define IAddressBand_Release(T) (T)->lpVtbl->Release(T)
604#define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b)
605#define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a)
606#endif
607
608/*****************************************************************************
609 * IShellMenuAcc interface
610 */
611#define INTERFACE IShellMenuAcc
613{
614 /*** IUnknown ***/
618 /*** IShellMenuAcc ***/
619 STDMETHOD(GetTop)(THIS) PURE;
620 STDMETHOD(GetBottom)(THIS) PURE;
621 STDMETHOD(GetTracked)(THIS) PURE;
622 STDMETHOD(GetParentSite)(THIS) PURE;
624 STDMETHOD(DoDefaultAction)(THIS) PURE;
627};
628#undef INTERFACE
629
630#ifdef COBJMACROS
631#define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
632#define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T)
633#define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T)
634#define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T)
635#define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T)
636#define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T)
637#define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T)
638#define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T)
639#define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T)
640#define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
641#define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T)
642#endif
643
644/*****************************************************************************
645 * IAddressBand interface
646 */
647#define INTERFACE IBandSiteHelper
649{
650 /*** IUnknown ***/
654 /*** IBandSiteHelper ***/
655 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE;
656 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE;
657};
658#undef INTERFACE
659
660#ifdef COBJMACROS
661#define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
662#define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T)
663#define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T)
664#define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b)
665#define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b)
666#endif
667
668/*****************************************************************************
669 * IAddressBand interface
670 */
671#define INTERFACE IShellBrowserService
672DECLARE_INTERFACE_(IShellBrowserService, IUnknown)
673{
674 /*** IUnknown ***/
678 /*** IShellBrowserService ***/
679 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE;
680};
681#undef INTERFACE
682
683#ifdef COBJMACROS
684#define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
685#define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T)
686#define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T)
687#define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c)
688#endif
689
690/*****************************************************************************
691 * IMruDataList interface
692 */
693#define INTERFACE IMruDataList
695{
696 /*** IUnknown ***/
700 /*** IMruDataList ***/
703 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE;
705 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE;
707};
708#undef INTERFACE
709
710#ifdef COBJMACROS
711#define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
712#define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T)
713#define IMruDataList_Release(T) (T)->lpVtbl->Release(T)
714#define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e)
715#define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c)
716#define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c)
717#define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c)
718#define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c)
719#define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a)
720#endif
721
722/*****************************************************************************
723 * IMruPidlList interface
724 */
725#define INTERFACE IMruPidlList
727{
728 /*** IUnknown ***/
732 /*** IMruPidlList ***/
733 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE;
735 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE;
736 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE;
737};
738#undef INTERFACE
739
740#ifdef COBJMACROS
741#define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
742#define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T)
743#define IMruPidlList_Release(T) (T)->lpVtbl->Release(T)
744#define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c)
745#define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b)
746#define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d)
747#define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a)
748#endif
749
750/*****************************************************************************
751 * ITrayPriv interface
752 */
753#define INTERFACE ITrayPriv
755{
756 /*** IUnknown ***/
760 /*** IOleWindow methods ***/
762 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
763 /*** ITrayPriv ***/
767};
768#undef INTERFACE
769
770#ifdef COBJMACROS
771#define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
772#define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T)
773#define ITrayPriv_Release(T) (T)->lpVtbl->Release(T)
774#define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
775#define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
776#define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
777#define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
778#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
779#endif
780
781HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
784
785#ifdef __cplusplus
786} /* extern "C" */
787#endif /* defined(__cplusplus) */
788
789#endif // __SHLOBJ_UNDOC__H
ULONG GetBitmapSize(BITMAPINFOHEADER *pbih)
HWND hWnd
Definition: settings.c:17
BOOL Delete(LPCTSTR ServiceName)
Definition: delete.c:12
static INT Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
Definition: cmd.c:347
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define PURE
Definition: basetyps.h:64
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
HANDLE HKEY
Definition: registry.h:26
_In_ BOOLEAN Release
Definition: cdrom.h:920
WPARAM wParam
Definition: combotst.c:138
char AddString[]
Definition: combotst.c:71
LPARAM lParam
Definition: combotst.c:139
static HBITMAP hBitmap
Definition: timezone.c:26
@ IsEmpty
Definition: atl_ax.c:995
HANDLE HWND
Definition: compat.h:19
#define CALLBACK
Definition: compat.h:35
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
NTSTATUS AddBitmap(PNTFS_VCB Vcb, PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress, PCWSTR Name, USHORT NameLength)
Definition: attrib.c:72
NTSTATUS AddData(PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress)
Definition: attrib.c:160
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
static BYTE * GetData(BYTE *pData, ULONG *pLength)
Definition: assembly.c:114
FxAutoRegKey hKey
return pTarget GetState()
GLuint buffer
Definition: glext.h:5915
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
@ Unknown
Definition: i8042prt.h:114
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
void Refresh(void)
Definition: magnifier.c:317
static HBITMAP
Definition: button.c:44
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static LPINTERNAL_BSTR Get(const BSTR lpszString)
Definition: vartype.c:4895
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
static VOID SetImageList(HWND hwnd)
Definition: mplay32.c:238
unsigned int UINT
Definition: ndis.h:50
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
#define LPVOID
Definition: nt_native.h:45
static BOOL Set
Definition: pageheap.c:10
#define INT
Definition: polytest.cpp:20
#define REFGUID
Definition: guiddef.h:116
#define REFIID
Definition: guiddef.h:118
void ShowHelp()
Definition: sdbinst.c:809
STDMETHOD() SetIconSize(THIS_ DWORD iIcon) PURE
STDMETHOD() GetBitmap(THIS_ HBITMAP *phBitmap) PURE
STDMETHOD() SetBitmap(THIS_ HBITMAP hBitmap) PURE
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *)
INT(CALLBACK * SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData)
Definition: shlobj_undoc.h:36
BOOL WINAPI SHDesktopMessageLoop(HANDLE)
struct tagSLOTITEMDATA SLOTITEMDATA
@ BMICON_SMALL
Definition: shlobj_undoc.h:90
@ BMICON_LARGE
Definition: shlobj_undoc.h:89
struct tagSLOTITEMDATA * PSLOTITEMDATA
tagWALK_TREE_CMD
Definition: shlobj_undoc.h:427
@ WALK_TREE_OPTION0
Definition: shlobj_undoc.h:428
@ WALK_TREE_OPTION1
Definition: shlobj_undoc.h:429
@ WALK_TREE_OPTION3
Definition: shlobj_undoc.h:431
@ WALK_TREE_OPTION2
Definition: shlobj_undoc.h:430
STDMETHOD() GetIconSize(THIS_ DWORD *piIcon) PURE
enum tagWALK_TREE_CMD WALK_TREE_CMD
HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject *pDataInner, IDataObject **ppDataObj)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
Definition: shtypes.idl:71
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
HWND buttons[5]
Definition: sndrec32.cpp:40
long newState1
Definition: shlobj_undoc.h:44
SHELLSTATE oldState
Definition: shlobj_undoc.h:43
long newState2
Definition: shlobj_undoc.h:45
CLSID persistClass
Definition: shlobj_undoc.h:57
long browserIndex
Definition: shlobj_undoc.h:56
ULONG pidlSize
Definition: shlobj_undoc.h:58
INT GetSelectedItem(HWND hDlgCtrl)
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG
Definition: typedefs.h:59
static int Save(const char **args)
Definition: vfdcmd.c:1851
static HMENU hmenu
Definition: win.c:66
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
DWORD COLORREF
Definition: windef.h:300
CONST void * LPCVOID
Definition: windef.h:191
#define WINAPI
Definition: msvc.h:6
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define AppendMenu
Definition: winuser.h:5730
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI GetMenuInfo(_In_ HMENU, _Inout_ LPMENUINFO)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
HMENU WINAPI GetMenu(_In_ HWND)
static void Initialize()
Definition: xlate.c:212
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185