ReactOS 0.4.16-dev-334-g4d9f67c
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 * CGID_Explorer (IShellBrowser OLECMD IDs)
63 */
64#define SBCMDID_EXPLORERBARFOLDERS 35 // Query/Toggle
65#define SBCMDID_MIXEDZONE 39
66#define SBCMDID_ONVIEWMOVETOTOP 60
67//SBCMDID_ENABLESHOWTREE ?
68//SBCMDID_SHOWCONTROL ?
69//SBCMDID_CANCELNAVIGATION ?
70//SBCMDID_MAYSAVECHANGES ?
71//SBCMDID_SETHLINKFRAME ?
72//SBCMDID_ENABLESTOP ?
73//SBCMDID_SELECTHISTPIDL ?
74//SBCMDID_GETPANE ? // This is in the official SDK but only the panes are defined
75#define PANE_NONE ((DWORD)-1)
76#define PANE_ZONE 1
77#define PANE_OFFLINE 2
78#define PANE_PRINTER 3
79#define PANE_SSL 4
80#define PANE_NAVIGATION 5
81#define PANE_PROGRESS 6
82#if (_WIN32_IE >= _WIN32_IE_IE60)
83#define PANE_PRIVACY 7
84#endif
85
86/*****************************************************************************
87 * CGID_DefView OLECMD IDs
88 */
89#define DVCMDID_SET_DEFAULTFOLDER_SETTINGS 0
90#define DVCMDID_RESET_DEFAULTFOLDER_SETTINGS 1
91
92/*****************************************************************************
93 * IInitializeObject interface
94 */
95#undef INTERFACE
96#define INTERFACE IInitializeObject
97
98DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719")
99{
103
105};
106#undef INTERFACE
107#if !defined(__cplusplus) || defined(CINTERFACE)
108#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
109#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
110#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
111#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
112#endif
113
114
115/*****************************************************************************
116 * IBanneredBar interface
117 */
118enum
119{
123#define INTERFACE IBanneredBar
124DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719")
125{
129
134
135};
136#undef INTERFACE
137
138#if !defined(__cplusplus) || defined(CINTERFACE)
139#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
140#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
141#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
142#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
143#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
144#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
145#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
146#endif
147
148/*****************************************************************************
149 * IGlobalFolderSettings interface
150 */
152{
153 enum { SIZE_NT4 = 8, SIZE_IE4 = 36, SIZE_XP = 40 };
154 enum { VER_98 = 0, VER_2000 = 3, VER_XP = 4 }; // Win98SE with IE5 writes 0, not 3 as the version
155 UINT Statusbar : 1; // "StatusBarOther" is the new location for this
156 UINT Toolbar : 1; // Not used when Explorer uses ReBar
158 SHELLVIEWID vid;
160 UINT Counter; // Incremented every time default folder settings are applied. Invalidates a cache?
161 UINT ViewPriority; // VIEW_PRIORITY_*
162};
163
164#undef INTERFACE
165#define INTERFACE IGlobalFolderSettings
166DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown)
167{
168 /*** IUnknown ***/
172 /*** IGlobalFolderSettings ***/
174 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *pFDS, UINT cb, UINT unknown) PURE;
175};
176#undef INTERFACE
177
178/*****************************************************************************
179 * IStartMenuCallback interface
180 */
181#define INTERFACE IStartMenuCallback
182DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow)
183{
184 /*** IUnknown ***/
188 /*** IOleWindow methods ***/
190 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
191 /*** IStartMenuCallback ***/
195};
196#undef INTERFACE
197
198#ifdef COBJMACROS
199#define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
200#define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
201#define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T)
202#define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
203#define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
204#define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
205#define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
206#define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
207#endif
208
209/*****************************************************************************
210 * IBandSiteStreamCallback interface
211 */
212#define INTERFACE IBandSiteStreamCallback
213DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown)
214{
215 /*** IUnknown ***/
219 /*** IBandSiteStreamCallback ***/
220 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE;
222};
223#undef INTERFACE
224
225#ifdef COBJMACROS
226#define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
227#define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
228#define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T)
229#define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c)
230#define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b)
231#endif
232
233/*****************************************************************************
234 * IShellDesktopTray interface
235 */
236#define INTERFACE IShellDesktopTray
237DECLARE_INTERFACE_(IShellDesktopTray, IUnknown)
238{
239 /*** IUnknown ***/
243 /*** IShellDesktopTray ***/
245 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE;
246 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE;
248};
249#undef INTERFACE
250
251#ifdef COBJMACROS
252#define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
253#define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T)
254#define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T)
255#define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T)
256#define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a)
257#define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a)
258#define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b)
259#endif
260
261/*****************************************************************************
262 * INscTree interface
263 */
264#define INTERFACE INscTree
266{
267 /*** IUnknown ***/
271 /*** INscTree ***/
272 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
273 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
274 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
276 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
277 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
278 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
279 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
280 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
281 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
283 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
284 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
285};
286#undef INTERFACE
287
288#ifdef COBJMACROS
289#define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
290#define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T)
291#define INscTree_Release(T) (T)->lpVtbl->Release(T)
292#define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
293#define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
294#define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
295#define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T)
296#define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
297#define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
298#define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
299#define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
300#define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
301#define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
302#define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
303#define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
304#define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
305#endif
306
307/*****************************************************************************
308 * INscTree2 interface
309 */
310#define INTERFACE INscTree2
311DECLARE_INTERFACE_(INscTree2, INscTree)
312{
313 /*** IUnknown ***/
317 /*** INscTree ***/
318 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
319 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
320 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
322 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
323 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
324 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
325 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
326 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
327 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
329 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
330 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
331 /*** INscTree2 ***/
332 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE;
333};
334#undef INTERFACE
335
336#ifdef COBJMACROS
337#define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
338#define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T)
339#define INscTree2_Release(T) (T)->lpVtbl->Release(T)
340#define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
341#define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
342#define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
343#define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T)
344#define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
345#define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
346#define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
347#define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
348#define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
349#define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
350#define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
351#define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
352#define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
353#define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d)
354#endif
355
356/*****************************************************************************
357 * IAddressEditBox interface
358 */
359#define INTERFACE IAddressEditBox
361{
362 /*** IUnknown ***/
366 /*** IAddressEditBox ***/
367 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE;
368 STDMETHOD(SetCurrentDir)(THIS_ long paramC) PURE;
369 STDMETHOD(ParseNow)(THIS_ long paramC) PURE;
370 STDMETHOD(Execute)(THIS_ long paramC) PURE;
371 STDMETHOD(Save)(THIS_ long paramC) PURE;
372};
373#undef INTERFACE
374
375#ifdef COBJMACROS
376#define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
377#define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T)
378#define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T)
379#define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d)
380#define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a)
381#define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a)
382#define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a)
383#define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a)
384#endif
385
386/*****************************************************************************
387 * IBandProxy interface
388 */
389#define INTERFACE IBandProxy
391{
392 /*** IUnknown ***/
396 /*** IBandProxy ***/
397 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE;
398 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE;
399 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE;
400 STDMETHOD(IsConnected)(THIS) PURE;
401 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE;
402 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE;
403};
404#undef INTERFACE
405
406#ifdef COBJMACROS
407#define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
408#define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
409#define IBandProxy_Release(T) (T)->lpVtbl->Release(T)
410#define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a)
411#define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a)
412#define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a)
413#define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T)
414#define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a)
415#define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b)
416#endif
417
418/*****************************************************************************
419 * IExplorerToolbar interface
420 */
421#define INTERFACE IExplorerToolbar
422DECLARE_INTERFACE_(IExplorerToolbar, IUnknown)
423{
424 /*** IUnknown ***/
428 /*** IExplorerToolbar ***/
429 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE;
430 STDMETHOD(Unknown1)(THIS) PURE;
431 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE;
432 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE;
433 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
434 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE;
435 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE;
436 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE;
437 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE;
438 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE;
439 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE;
440 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
441};
442#undef INTERFACE
443
444#ifdef COBJMACROS
445#define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
446#define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T)
447#define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T)
448#define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c)
449#define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T)
450#define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c)
451#define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d)
452#define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c)
453#define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c)
454#define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c)
455#define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f)
456#define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a)
457#define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e)
458#define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d)
459#define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c)
460#endif
461
462/*****************************************************************************
463 * IRegTreeOptions interface
464 */
466{
472
473#define INTERFACE IRegTreeOptions
475{
476 /*** IUnknown ***/
480 /*** IRegTreeOptions ***/
481 STDMETHOD(InitTree)(THIS_ HWND paramC, HKEY param10, char const *param14, char const *param18) PURE;
482 STDMETHOD(WalkTree)(THIS_ WALK_TREE_CMD paramC) PURE;
483 STDMETHOD(ToggleItem)(THIS_ HTREEITEM paramC) PURE;
484 STDMETHOD(ShowHelp)(THIS_ HTREEITEM paramC, unsigned long param10) PURE;
485};
486#undef INTERFACE
487
488#ifdef COBJMACROS
489#define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
490#define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T)
491#define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T)
492#define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d)
493#define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a)
494#define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a)
495#define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b)
496#endif
497
498/*****************************************************************************
499 * IBandNavigate interface
500 */
501#define INTERFACE IBandNavigate
503{
504 /*** IUnknown ***/
508 /*** IBandNavigate ***/
509 STDMETHOD(Select)(THIS_ LPCITEMIDLIST pidl) PURE;
510};
511#undef INTERFACE
512
513#ifdef COBJMACROS
514#define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
515#define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T)
516#define IBandNavigate_Release(T) (T)->lpVtbl->Release(T)
517#define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a)
518#endif
519
520/*****************************************************************************
521 * INamespaceProxy interface
522 */
523#define INTERFACE INamespaceProxy
525{
526 /*** IUnknown ***/
530 /*** INamespaceProxy ***/
531 STDMETHOD(GetNavigateTarget)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl, _Out_ PIDLIST_ABSOLUTE *ppidlTarget, _Out_ ULONG *pulAttrib) PURE;
533 STDMETHOD(OnSelectionChanged)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
534 STDMETHOD(RefreshFlags)(THIS_ _Out_ DWORD *pdwStyle, _Out_ DWORD *pdwExStyle, _Out_ DWORD *dwEnum) PURE;
535 STDMETHOD(CacheItem)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
536};
537#undef INTERFACE
538
539#ifdef COBJMACROS
540#define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
541#define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
542#define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T)
543#define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c)
544#define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a)
545#define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a)
546#define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c)
547#define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a)
548#endif
549
550/*****************************************************************************
551 * IShellMenu2 interface
552 */
553#define INTERFACE IShellMenu2
555{
556 /*** IUnknown ***/
560 /*** IShellMenu ***/
562 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE;
563 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE;
564 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE;
566 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE;
567 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE;
569 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE;
570 /*** IShellMenu2 ***/
572 STDMETHOD(SetToolbar)(THIS) PURE;
573 STDMETHOD(SetMinWidth)(THIS) PURE;
574 STDMETHOD(SetNoBorder)(THIS) PURE;
575 STDMETHOD(SetTheme)(THIS) PURE;
576};
577#undef INTERFACE
578
579#ifdef COBJMACROS
580#define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
581#define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
582#define IShellMenu2_Release(T) (T)->lpVtbl->Release(T)
583#define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d)
584#define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d)
585#define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d)
586#define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d)
587#define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
588#define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c)
589#define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b)
590#define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a)
591#define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b)
592#define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
593#define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T)
594#define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T)
595#define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T)
596#define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T)
597#endif
598
599/*****************************************************************************
600 * IWinEventHandler interface
601 */
602#define INTERFACE IWinEventHandler
603DECLARE_INTERFACE_(IWinEventHandler, IUnknown)
604{
605 /*** IUnknown ***/
609 /*** IWinEventHandler ***/
610 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE;
611 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE;
612};
613#undef INTERFACE
614
615#ifdef COBJMACROS
616#define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
617#define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T)
618#define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T)
619#define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e)
620#define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a)
621#endif
622
623/*****************************************************************************
624 * IAddressBand interface
625 */
626#define INTERFACE IAddressBand
628{
629 /*** IUnknown ***/
633 /*** IAddressBand ***/
634 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE;
635 STDMETHOD(Refresh)(THIS_ long param8) PURE;
636};
637#undef INTERFACE
638
639#ifdef COBJMACROS
640#define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
641#define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T)
642#define IAddressBand_Release(T) (T)->lpVtbl->Release(T)
643#define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b)
644#define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a)
645#endif
646
647/*****************************************************************************
648 * IShellMenuAcc interface
649 */
650#define INTERFACE IShellMenuAcc
652{
653 /*** IUnknown ***/
657 /*** IShellMenuAcc ***/
658 STDMETHOD(GetTop)(THIS) PURE;
659 STDMETHOD(GetBottom)(THIS) PURE;
660 STDMETHOD(GetTracked)(THIS) PURE;
661 STDMETHOD(GetParentSite)(THIS) PURE;
663 STDMETHOD(DoDefaultAction)(THIS) PURE;
666};
667#undef INTERFACE
668
669#ifdef COBJMACROS
670#define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
671#define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T)
672#define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T)
673#define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T)
674#define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T)
675#define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T)
676#define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T)
677#define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T)
678#define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T)
679#define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
680#define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T)
681#endif
682
683/*****************************************************************************
684 * IAddressBand interface
685 */
686#define INTERFACE IBandSiteHelper
688{
689 /*** IUnknown ***/
693 /*** IBandSiteHelper ***/
694 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE;
695 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE;
696};
697#undef INTERFACE
698
699#ifdef COBJMACROS
700#define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
701#define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T)
702#define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T)
703#define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b)
704#define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b)
705#endif
706
707/*****************************************************************************
708 * IAddressBand interface
709 */
710#define INTERFACE IShellBrowserService
711DECLARE_INTERFACE_(IShellBrowserService, IUnknown)
712{
713 /*** IUnknown ***/
717 /*** IShellBrowserService ***/
718 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE;
719};
720#undef INTERFACE
721
722#ifdef COBJMACROS
723#define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
724#define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T)
725#define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T)
726#define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c)
727#endif
728
729/*****************************************************************************
730 * IMruDataList interface
731 */
732#define INTERFACE IMruDataList
734{
735 /*** IUnknown ***/
739 /*** IMruDataList ***/
742 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE;
744 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE;
746};
747#undef INTERFACE
748
749#ifdef COBJMACROS
750#define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
751#define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T)
752#define IMruDataList_Release(T) (T)->lpVtbl->Release(T)
753#define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e)
754#define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c)
755#define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c)
756#define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c)
757#define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c)
758#define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a)
759#endif
760
761/*****************************************************************************
762 * IMruPidlList interface
763 */
764#define INTERFACE IMruPidlList
766{
767 /*** IUnknown ***/
771 /*** IMruPidlList ***/
772 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE;
774 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE;
775 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE;
776};
777#undef INTERFACE
778
779#ifdef COBJMACROS
780#define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
781#define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T)
782#define IMruPidlList_Release(T) (T)->lpVtbl->Release(T)
783#define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c)
784#define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b)
785#define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d)
786#define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a)
787#endif
788
789/*****************************************************************************
790 * ITrayPriv interface
791 */
792#define INTERFACE ITrayPriv
794{
795 /*** IUnknown ***/
799 /*** IOleWindow methods ***/
801 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
802 /*** ITrayPriv ***/
806};
807#undef INTERFACE
808
809#ifdef COBJMACROS
810#define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
811#define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T)
812#define ITrayPriv_Release(T) (T)->lpVtbl->Release(T)
813#define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
814#define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
815#define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
816#define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
817#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
818#endif
819
820HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
823
824#ifdef __cplusplus
825} /* extern "C" */
826#endif /* defined(__cplusplus) */
827
828#endif // __SHLOBJ_UNDOC__H
ULONG GetBitmapSize(BITMAPINFOHEADER *pbih)
HWND hWnd
Definition: settings.c:17
static BOOL InLabelEdit(HWND hWnd, UINT Msg)
Definition: main.c:152
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 PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#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
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1605
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()
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 HMODULE MODULEINFO DWORD cb
Definition: module.c:33
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 _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#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)
@ BMICON_SMALL
Definition: shlobj_undoc.h:121
@ BMICON_LARGE
Definition: shlobj_undoc.h:120
struct tagSLOTITEMDATA SLOTITEMDATA
struct tagSLOTITEMDATA * PSLOTITEMDATA
tagWALK_TREE_CMD
Definition: shlobj_undoc.h:466
@ WALK_TREE_OPTION0
Definition: shlobj_undoc.h:467
@ WALK_TREE_OPTION1
Definition: shlobj_undoc.h:468
@ WALK_TREE_OPTION3
Definition: shlobj_undoc.h:470
@ WALK_TREE_OPTION2
Definition: shlobj_undoc.h:469
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
SHELLVIEWID vid
Definition: shlobj_undoc.h:158
FOLDERSETTINGS FolderSettings
Definition: shlobj_undoc.h:157
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:5743
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