ReactOS 0.4.16-dev-1386-g6ed46ba
shlobj_undoc.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS header
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Undocumented shell interface
5 * COPYRIGHT: Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
6 * Copyright 2013 Dominik Hornung
7 * Copyright 2025 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
8 */
9
10#pragma once
11
12#include <shlwapi_undoc.h> // For ASSOCQUERY
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18typedef struct tagSLOTITEMDATA
19{
24
25typedef INT (CALLBACK *SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData);
26
27/*****************************************************************************
28 * New shellstate structure
29 */
31{
35};
36
37/*****************************************************************************
38 * Header for persisted view state in cabinet windows
39 */
41{
42 long dwSize;
48};
49
50/****************************************************************************
51 * IShellView/IShellBrowser/CabinetWClass WM_COMMAND identifiers
52 */
53#define FCIDM_SHVIEW_CREATELINK 0x7010
54#define FCIDM_SHVIEW_DELETE 0x7011
55#define FCIDM_SHVIEW_RENAME 0x7012
56#define FCIDM_SHVIEW_PROPERTIES 0x7013
57#define FCIDM_SHVIEW_CUT 0x7018
58#define FCIDM_SHVIEW_COPY 0x7019
59#define FCIDM_SHVIEW_INSERT 0x701A
60#define FCIDM_SHVIEW_UNDO 0x701B
61#define FCIDM_SHVIEW_INSERTLINK 0x701C
62#define FCIDM_SHVIEW_COPYTO 0x701E
63#define FCIDM_SHVIEW_MOVETO 0x701F
64#define FCIDM_SHVIEW_SELECTALL 0x7021
65#define FCIDM_SHVIEW_INVERTSELECTION 0x7022
66#define FCIDM_SHVIEW_DESELECTALL 0x7023
67#define FCIDM_SHVIEW_ARRANGE_AUTO 0x7051 // IShellFolderView::AutoArrange
68#define FCIDM_SHVIEW_ARRANGE_GRID 0x7052 // IShellFolderView::ArrangeGrid => LVA_SNAPTOGRID
69#define FCIDM_SHVIEW_SHOWDESKTOPICONS 0x7053
70#define FCIDM_SHVIEW_ARRANGE_AUTOGRID 0x7054
71#define FCIDM_SHVIEW_REFRESH 0x7103
72#define FCIDM_SHVIEW_SHOWINGROUPS 0x7601
73#define FCIDM_SHBROWSER_REFRESH 0xA065
74#define FCIDM_SHBROWSER_MAPNETDRIVE 0xA081
75#define FCIDM_SHBROWSER_UNMAPNETDRIVE 0xA082
76#define FCIDM_SHBROWSER_FINDFILES 0xA085
77#define FCIDM_SHBROWSER_OPTIONS 0xA123
78#define FCIDM_CABINET_NT5_GOTO_DRIVES 0xA132
79#define FCIDM_CABINET_TOGGLEITBAR 0xA201
80#define FCIDM_CABINET_TOGGLESTATUSBAR 0xA202
81#define FCIDM_CABINET_REFRESH 0xA220
82
83/*****************************************************************************
84 * CGID_Explorer (IShellBrowser OLECMD IDs)
85 */
86#define SBCMDID_ENABLESHOWTREE 0 // (First ID from NT4 SDK)
87#define SBCMDID_SHOWCONTROL 1 // VT_I4:MAKELONG(FCW_*, SBSC_*)
88#define SBCMDID_CANCELNAVIGATION 2
89#define SBCMDID_MAYSAVECHANGES 3 // About to close and may save changes
90#define SBCMDID_SETHLINKFRAME 4 // VT_I4:phlinkframe
91#define SBCMDID_ENABLESTOP 5 // VT_BOOL:fEnable
92#define SBCMDID_OPTIONS 6 // (Last ID from NT4 SDK)
93#define SBCMDID_EXPLORERBARFOLDERS 35 // Query/Toggle
94#define SBCMDID_MIXEDZONE 39
95#define SBCMDID_ONVIEWMOVETOTOP 60
96//SBCMDID_SELECTHISTPIDL ?
97//SBCMDID_GETPANE ? // This is in the official SDK but only the panes are defined
98#define PANE_NONE ((DWORD)-1)
99#define PANE_ZONE 1
100#define PANE_OFFLINE 2
101#define PANE_PRINTER 3
102#define PANE_SSL 4
103#define PANE_NAVIGATION 5
104#define PANE_PROGRESS 6
105#define PANE_PRIVACY 7 // (_WIN32_IE >= _WIN32_IE_IE60)
106
107/*****************************************************************************
108 * CGID_ShellDocView OLECMD IDs
109 */
110#define SHDVID_FINALTITLEAVAIL 0 // BSTR
111
112/*****************************************************************************
113 * CGID_DefView OLECMD IDs
114 */
115#define DVCMDID_SET_DEFAULTFOLDER_SETTINGS 0
116#define DVCMDID_RESET_DEFAULTFOLDER_SETTINGS 1
117
118/*****************************************************************************
119 * IInitializeObject interface
120 */
121#undef INTERFACE
122#define INTERFACE IInitializeObject
123
124DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719")
125{
129
131};
132#undef INTERFACE
133#if !defined(__cplusplus) || defined(CINTERFACE)
134#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
135#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
136#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
137#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
138#endif
139
140
141/*****************************************************************************
142 * IBanneredBar interface
143 */
144enum
145{
149#define INTERFACE IBanneredBar
150DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719")
151{
155
160
161};
162#undef INTERFACE
163
164#if !defined(__cplusplus) || defined(CINTERFACE)
165#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
166#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
167#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
168#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
169#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
170#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
171#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
172#endif
173
174/*****************************************************************************
175 * IGlobalFolderSettings interface
176 */
178{
179#ifdef __cplusplus
180 enum { SIZE_NT4 = 8, SIZE_IE4 = 36, SIZE_XP = 40 };
181 enum { VER_98 = 0, VER_2000 = 3, VER_XP = 4 }; // Win98SE with IE5 writes 0, not 3 as the version
182#endif
183 UINT Statusbar : 1; // "StatusBarOther" is the new location for this
184 UINT Toolbar : 1; // Not used when Explorer uses ReBar
186 SHELLVIEWID vid;
188 UINT Counter; // Incremented every time default folder settings are applied. Invalidates a cache?
189 UINT ViewPriority; // VIEW_PRIORITY_*
190};
191
192#undef INTERFACE
193#define INTERFACE IGlobalFolderSettings
194DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown)
195{
196 /*** IUnknown ***/
200 /*** IGlobalFolderSettings ***/
202 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *pFDS, UINT cb, UINT unknown) PURE;
203};
204#undef INTERFACE
205
206/*****************************************************************************
207 * IStartMenuCallback interface
208 */
209#define INTERFACE IStartMenuCallback
210DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow)
211{
212 /*** IUnknown ***/
216 /*** IOleWindow methods ***/
218 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
219 /*** IStartMenuCallback ***/
223};
224#undef INTERFACE
225
226#ifdef COBJMACROS
227#define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
228#define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
229#define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T)
230#define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
231#define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
232#define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
233#define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
234#define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
235#endif
236
237/*****************************************************************************
238 * IBandSiteStreamCallback interface
239 */
240#define INTERFACE IBandSiteStreamCallback
241DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown)
242{
243 /*** IUnknown ***/
247 /*** IBandSiteStreamCallback ***/
248 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE;
250};
251#undef INTERFACE
252
253#ifdef COBJMACROS
254#define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
255#define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
256#define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T)
257#define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c)
258#define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b)
259#endif
260
261/*****************************************************************************
262 * IShellDesktopTray interface
263 */
264#define INTERFACE IShellDesktopTray
265DECLARE_INTERFACE_(IShellDesktopTray, IUnknown)
266{
267 /*** IUnknown ***/
271 /*** IShellDesktopTray ***/
273 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE;
274 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE;
276};
277#undef INTERFACE
278
279#ifdef COBJMACROS
280#define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
281#define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T)
282#define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T)
283#define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T)
284#define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a)
285#define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a)
286#define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b)
287#endif
288
289/*****************************************************************************
290 * INscTree interface
291 */
292#define INTERFACE INscTree
294{
295 /*** IUnknown ***/
299 /*** INscTree ***/
300 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
301 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
302 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
304 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
305 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
306 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
307 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
308 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
309 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
311 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
312 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
313};
314#undef INTERFACE
315
316#ifdef COBJMACROS
317#define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
318#define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T)
319#define INscTree_Release(T) (T)->lpVtbl->Release(T)
320#define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
321#define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
322#define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
323#define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T)
324#define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
325#define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
326#define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
327#define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
328#define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
329#define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
330#define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
331#define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
332#define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
333#endif
334
335/*****************************************************************************
336 * INscTree2 interface
337 */
338#define INTERFACE INscTree2
339DECLARE_INTERFACE_(INscTree2, INscTree)
340{
341 /*** IUnknown ***/
345 /*** INscTree ***/
346 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
347 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
348 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
350 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
351 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
352 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
353 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
354 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
355 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
357 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
358 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
359 /*** INscTree2 ***/
360 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE;
361};
362#undef INTERFACE
363
364#ifdef COBJMACROS
365#define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
366#define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T)
367#define INscTree2_Release(T) (T)->lpVtbl->Release(T)
368#define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
369#define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
370#define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
371#define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T)
372#define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
373#define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
374#define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
375#define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
376#define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
377#define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
378#define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
379#define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
380#define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
381#define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d)
382#endif
383
384/*****************************************************************************
385 * IAddressEditBox interface
386 */
387#define INTERFACE IAddressEditBox
389{
390 /*** IUnknown ***/
394 /*** IAddressEditBox ***/
395 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE;
396 STDMETHOD(SetCurrentDir)(THIS_ PCWSTR pszPath) PURE;
397 STDMETHOD(ParseNow)(THIS_ long paramC) PURE;
398 STDMETHOD(Execute)(THIS_ long paramC) PURE;
399 STDMETHOD(Save)(THIS_ long paramC) PURE;
400};
401#undef INTERFACE
402
403#ifdef COBJMACROS
404#define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
405#define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T)
406#define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T)
407#define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d)
408#define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a)
409#define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a)
410#define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a)
411#define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a)
412#endif
413
414/*****************************************************************************
415 * IBandProxy interface
416 */
417#define INTERFACE IBandProxy
419{
420 /*** IUnknown ***/
424 /*** IBandProxy ***/
425 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE;
426 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE;
427 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE;
428 STDMETHOD(IsConnected)(THIS) PURE;
429 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE;
430 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE;
431};
432#undef INTERFACE
433
434#ifdef COBJMACROS
435#define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
436#define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
437#define IBandProxy_Release(T) (T)->lpVtbl->Release(T)
438#define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a)
439#define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a)
440#define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a)
441#define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T)
442#define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a)
443#define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b)
444#endif
445
446/*****************************************************************************
447 * IExplorerToolbar interface
448 */
449#define INTERFACE IExplorerToolbar
450DECLARE_INTERFACE_(IExplorerToolbar, IUnknown)
451{
452 /*** IUnknown ***/
456 /*** IExplorerToolbar ***/
457 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE;
458 STDMETHOD(Unknown1)(THIS) PURE;
459 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE;
460 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE;
461 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
462 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE;
463 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE;
464 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE;
465 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE;
466 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE;
467 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE;
468 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
469};
470#undef INTERFACE
471
472#ifdef COBJMACROS
473#define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
474#define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T)
475#define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T)
476#define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c)
477#define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T)
478#define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c)
479#define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d)
480#define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c)
481#define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c)
482#define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c)
483#define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f)
484#define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a)
485#define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e)
486#define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d)
487#define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c)
488#endif
489
490/*****************************************************************************
491 * IRegTreeOptions interface
492 */
494{
500
501#define HKEY_REGTREEOPTION_GRAYED ( (HKEY)INVALID_HANDLE_VALUE ) /* ROS extension */
502
503#define INTERFACE IRegTreeOptions
505{
506 /*** IUnknown ***/
510 /*** IRegTreeOptions ***/
511 STDMETHOD(InitTree)(THIS_ HWND hTV, HKEY hKey, LPCSTR SubKey, char const *pUnknown) PURE;
513 STDMETHOD(ToggleItem)(THIS_ HTREEITEM hTI) PURE;
514 STDMETHOD(ShowHelp)(THIS_ HTREEITEM hTI, unsigned long Unknown) PURE;
515};
516#undef INTERFACE
517
518#ifdef COBJMACROS
519#define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
520#define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T)
521#define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T)
522#define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d)
523#define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a)
524#define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a)
525#define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b)
526#endif
527
528/*****************************************************************************
529 * IBandNavigate interface
530 */
531#define INTERFACE IBandNavigate
533{
534 /*** IUnknown ***/
538 /*** IBandNavigate ***/
539 STDMETHOD(Select)(THIS_ LPCITEMIDLIST pidl) PURE;
540};
541#undef INTERFACE
542
543#ifdef COBJMACROS
544#define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
545#define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T)
546#define IBandNavigate_Release(T) (T)->lpVtbl->Release(T)
547#define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a)
548#endif
549
550/*****************************************************************************
551 * INamespaceProxy interface
552 */
553#define INTERFACE INamespaceProxy
555{
556 /*** IUnknown ***/
560 /*** INamespaceProxy ***/
561 STDMETHOD(GetNavigateTarget)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl, _Out_ PIDLIST_ABSOLUTE *ppidlTarget, _Out_ ULONG *pulAttrib) PURE;
563 STDMETHOD(OnSelectionChanged)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
564 STDMETHOD(RefreshFlags)(THIS_ _Out_ DWORD *pdwStyle, _Out_ DWORD *pdwExStyle, _Out_ DWORD *dwEnum) PURE;
565 STDMETHOD(CacheItem)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
566};
567#undef INTERFACE
568
569#ifdef COBJMACROS
570#define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
571#define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
572#define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T)
573#define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c)
574#define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a)
575#define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a)
576#define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c)
577#define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a)
578#endif
579
580/*****************************************************************************
581 * IShellMenu2 interface
582 */
583#define INTERFACE IShellMenu2
585{
586 /*** IUnknown ***/
590 /*** IShellMenu ***/
592 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE;
593 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE;
594 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE;
596 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE;
597 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE;
599 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE;
600 /*** IShellMenu2 ***/
602 STDMETHOD(SetToolbar)(THIS) PURE;
603 STDMETHOD(SetMinWidth)(THIS) PURE;
604 STDMETHOD(SetNoBorder)(THIS) PURE;
605 STDMETHOD(SetTheme)(THIS) PURE;
606};
607#undef INTERFACE
608
609#ifdef COBJMACROS
610#define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
611#define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
612#define IShellMenu2_Release(T) (T)->lpVtbl->Release(T)
613#define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d)
614#define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d)
615#define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d)
616#define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d)
617#define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
618#define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c)
619#define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b)
620#define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a)
621#define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b)
622#define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
623#define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T)
624#define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T)
625#define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T)
626#define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T)
627#endif
628
629/*****************************************************************************
630 * IWinEventHandler interface
631 */
632#define INTERFACE IWinEventHandler
633DECLARE_INTERFACE_(IWinEventHandler, IUnknown)
634{
635 /*** IUnknown ***/
639 /*** IWinEventHandler ***/
640 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE;
641 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE;
642};
643#undef INTERFACE
644
645#ifdef COBJMACROS
646#define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
647#define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T)
648#define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T)
649#define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e)
650#define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a)
651#endif
652
653/*****************************************************************************
654 * IAddressBand interface
655 */
656#define INTERFACE IAddressBand
658{
659 /*** IUnknown ***/
663 /*** IAddressBand ***/
664 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE;
665 STDMETHOD(Refresh)(THIS_ long param8) PURE;
666};
667#undef INTERFACE
668
669#ifdef COBJMACROS
670#define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
671#define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T)
672#define IAddressBand_Release(T) (T)->lpVtbl->Release(T)
673#define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b)
674#define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a)
675#endif
676
677/*****************************************************************************
678 * IShellMenuAcc interface
679 */
680#define INTERFACE IShellMenuAcc
682{
683 /*** IUnknown ***/
687 /*** IShellMenuAcc ***/
688 STDMETHOD(GetTop)(THIS) PURE;
689 STDMETHOD(GetBottom)(THIS) PURE;
690 STDMETHOD(GetTracked)(THIS) PURE;
691 STDMETHOD(GetParentSite)(THIS) PURE;
693 STDMETHOD(DoDefaultAction)(THIS) PURE;
696};
697#undef INTERFACE
698
699#ifdef COBJMACROS
700#define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
701#define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T)
702#define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T)
703#define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T)
704#define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T)
705#define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T)
706#define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T)
707#define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T)
708#define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T)
709#define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
710#define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T)
711#endif
712
713/*****************************************************************************
714 * IAddressBand interface
715 */
716#define INTERFACE IBandSiteHelper
718{
719 /*** IUnknown ***/
723 /*** IBandSiteHelper ***/
724 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE;
725 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE;
726};
727#undef INTERFACE
728
729#ifdef COBJMACROS
730#define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
731#define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T)
732#define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T)
733#define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b)
734#define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b)
735#endif
736
737/*****************************************************************************
738 * IAddressBand interface
739 */
740#define INTERFACE IShellBrowserService
741DECLARE_INTERFACE_(IShellBrowserService, IUnknown)
742{
743 /*** IUnknown ***/
747 /*** IShellBrowserService ***/
748 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE;
749};
750#undef INTERFACE
751
752#ifdef COBJMACROS
753#define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
754#define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T)
755#define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T)
756#define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c)
757#endif
758
759/*****************************************************************************
760 * IMruDataList interface
761 */
762#define INTERFACE IMruDataList
764{
765 /*** IUnknown ***/
769 /*** IMruDataList ***/
772 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE;
774 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE;
776};
777#undef INTERFACE
778
779#ifdef COBJMACROS
780#define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
781#define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T)
782#define IMruDataList_Release(T) (T)->lpVtbl->Release(T)
783#define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e)
784#define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c)
785#define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c)
786#define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c)
787#define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c)
788#define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a)
789#endif
790
791/*****************************************************************************
792 * IMruPidlList interface
793 */
794#define INTERFACE IMruPidlList
796{
797 /*** IUnknown ***/
801 /*** IMruPidlList ***/
802 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE;
804 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE;
805 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE;
806};
807#undef INTERFACE
808
809#ifdef COBJMACROS
810#define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
811#define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T)
812#define IMruPidlList_Release(T) (T)->lpVtbl->Release(T)
813#define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c)
814#define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b)
815#define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d)
816#define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a)
817#endif
818
819/*****************************************************************************
820 * ITrayPriv interface
821 */
822#define INTERFACE ITrayPriv
824{
825 /*** IUnknown ***/
829 /*** IOleWindow methods ***/
831 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
832 /*** ITrayPriv ***/
836};
837#undef INTERFACE
838
839#ifdef COBJMACROS
840#define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
841#define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T)
842#define ITrayPriv_Release(T) (T)->lpVtbl->Release(T)
843#define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
844#define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
845#define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
846#define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
847#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
848#endif
849
850/*****************************************************************************
851 * IAssociationElement interface
852 *
853 * @see IAssociationElementOld
854 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
855 */
856#define INTERFACE IAssociationElement
857DECLARE_INTERFACE_(IAssociationElement, IUnknown) // {D8F6AD5B-B44F-4BCC-88FD-EB3473DB7502}
858{
859 /*** IUnknown ***/
863 /*** IAssociationElement ***/
868 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
870};
871#undef INTERFACE
872
873#ifdef COBJMACROS
874#define IAssociationElement_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
875#define IAssociationElement_AddRef(T) (T)->lpVtbl->AddRef(T)
876#define IAssociationElement_Release(T) (T)->lpVtbl->Release(T)
877#define IAssociationElement_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
878#define IAssociationElement_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
879#define IAssociationElement_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
880#define IAssociationElement_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
881#define IAssociationElement_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
882#define IAssociationElement_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
883#endif
884
885/*****************************************************************************
886 * IEnumAssociationElements interface
887 *
888 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ienumassociationelements.htm
889 */
890#define INTERFACE IEnumAssociationElements
891DECLARE_INTERFACE_(IEnumAssociationElements, IUnknown) // {A6B0FB57-7523-4439-9425-EBE99823B828}
892{
893 /*** IUnknown ***/
897 /*** IEnumAssociationElements ***/
898 STDMETHOD(Next)(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE;
901 STDMETHOD(Clone)(THIS_ IEnumAssociationElements **ppNew) PURE;
902};
903#undef INTERFACE
904
905#ifdef COBJMACROS
906#define IEnumAssociationElements_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
907#define IEnumAssociationElements_AddRef(T) (T)->lpVtbl->AddRef(T)
908#define IEnumAssociationElements_Release(T) (T)->lpVtbl->Release(T)
909#define IEnumAssociationElements_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
910#define IEnumAssociationElements_Skip(T,a) (T)->lpVtbl->Skip(T,a)
911#define IEnumAssociationElements_Reset(T) (T)->lpVtbl->Reset(T)
912#define IEnumAssociationElements_Clone(T,a) (T)->lpVtbl->Clone(T,a)
913#endif
914
915/*****************************************************************************
916 * IAssociationArrayOld interface
917 *
918 * @see IAssociationArray
919 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
920 */
921#define INTERFACE IAssociationArrayOld
922DECLARE_INTERFACE_(IAssociationArrayOld, IUnknown) // {3B877E3C-67DE-4F9A-B29B-17D0A1521C6A}
923{
924 /*** IUnknown ***/
928 /*** IAssociationArrayOld ***/
929 STDMETHOD(EnumElements)(THIS_ ULONG flags, IEnumAssociationElements **ppElement) PURE;
935};
936#undef INTERFACE
937
938#ifdef COBJMACROS
939#define IAssociationArrayOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
940#define IAssociationArrayOld_AddRef(T) (T)->lpVtbl->AddRef(T)
941#define IAssociationArrayOld_Release(T) (T)->lpVtbl->Release(T)
942#define IAssociationArrayOld_EnumElements(T,a,b) (T)->lpVtbl->EnumElements(T,a,b)
943#define IAssociationArrayOld_QueryString(T,a,b,c,d) (T)->lpVtbl->QueryString(T,a,b,c,d)
944#define IAssociationArrayOld_QueryDword(T,a,b,c,d) (T)->lpVtbl->QueryDword(T,a,b,c,d)
945#define IAssociationArrayOld_QueryExists(T,a,b,c) (T)->lpVtbl->QueryExists(T,a,b,c)
946#define IAssociationArrayOld_QueryDirect(T,a,b,c,d) (T)->lpVtbl->QueryDirect(T,a,b,c,d)
947#define IAssociationArrayOld_QueryObject(T,a,b,c,d,e) (T)->lpVtbl->QueryObject(T,a,b,c,d,e)
948#endif
949
950/*****************************************************************************
951 * IAssociationArray interface
952 *
953 * @see IAssociationArrayOld
954 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
955 */
956#define INTERFACE IAssociationArray
957DECLARE_INTERFACE_(IAssociationArray, IUnknown) // {19ADBAFD-1C5F-4FC7-94EE-846702DFB58B}
958{
959 /*** IUnknown ***/
963 /*** IAssociationArray ***/
968 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
970};
971#undef INTERFACE
972
973#ifdef COBJMACROS
974#define IAssociationArray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
975#define IAssociationArray_AddRef(T) (T)->lpVtbl->AddRef(T)
976#define IAssociationArray_Release(T) (T)->lpVtbl->Release(T)
977#define IAssociationArray_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
978#define IAssociationArray_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
979#define IAssociationArray_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
980#define IAssociationArray_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
981#define IAssociationArray_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
982#define IAssociationArray_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
983#endif
984
985HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
988
989#ifdef __cplusplus
990} /* extern "C" */
991#endif
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:345
#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
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
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 HMENU hmenu
Definition: win.c:66
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() QueryDirect(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE
STDMETHOD() SetIconSize(THIS_ DWORD iIcon) PURE
STDMETHOD() QueryExists(THIS_ ASSOCQUERY query, PCWSTR key) PURE
STDMETHOD() Clone(THIS_ IEnumAssociationElements **ppNew) PURE
STDMETHOD() QueryDword(THIS_ ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) PURE
STDMETHOD() Skip(THIS_ ULONG celt) PURE
STDMETHOD() GetBitmap(THIS_ HBITMAP *phBitmap) PURE
STDMETHOD() SetBitmap(THIS_ HBITMAP hBitmap) PURE
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *)
STDMETHOD() Reset(THIS) PURE
@ BMICON_SMALL
Definition: shlobj_undoc.h:147
@ BMICON_LARGE
Definition: shlobj_undoc.h:146
INT(CALLBACK * SLOTCOMPARE)(LPCVOID pvData1, LPCVOID pvData2, UINT cbData)
Definition: shlobj_undoc.h:25
BOOL WINAPI SHDesktopMessageLoop(HANDLE)
STDMETHOD() QueryGuid(THIS_ ASSOCQUERY query, PCWSTR key, GUID *pguid) PURE
struct tagSLOTITEMDATA SLOTITEMDATA
STDMETHOD() QueryString(THIS_ ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) PURE
STDMETHOD() EnumElements(THIS_ ULONG flags, IEnumAssociationElements **ppElement) PURE
struct tagSLOTITEMDATA * PSLOTITEMDATA
tagWALK_TREE_CMD
Definition: shlobj_undoc.h:494
@ WALK_TREE_REFRESH
Definition: shlobj_undoc.h:498
@ WALK_TREE_DESTROY
Definition: shlobj_undoc.h:496
@ WALK_TREE_DEFAULT
Definition: shlobj_undoc.h:497
@ WALK_TREE_SAVE
Definition: shlobj_undoc.h:495
STDMETHOD() GetIconSize(THIS_ DWORD *piIcon) PURE
enum tagWALK_TREE_CMD WALK_TREE_CMD
STDMETHOD() Next(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE
STDMETHOD() QueryObject(THIS_ ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) PURE
HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject *pDataInner, IDataObject **ppDataObj)
DWORD ASSOCQUERY
Definition: shlwapi_undoc.h:23
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
Definition: shell.h:41
SHELLVIEWID vid
Definition: shlobj_undoc.h:186
FOLDERSETTINGS FolderSettings
Definition: shlobj_undoc.h:185
long newState1
Definition: shlobj_undoc.h:33
SHELLSTATE oldState
Definition: shlobj_undoc.h:32
long newState2
Definition: shlobj_undoc.h:34
Definition: copy.c:22
CLSID persistClass
Definition: shlobj_undoc.h:46
long browserIndex
Definition: shlobj_undoc.h:45
ULONG pidlSize
Definition: shlobj_undoc.h:47
INT GetSelectedItem(HWND hDlgCtrl)
uint16_t * PWSTR
Definition: typedefs.h:56
const uint16_t * PCWSTR
Definition: typedefs.h:57
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG
Definition: typedefs.h:59
static int Save(const char **args)
Definition: vfdcmd.c:1851
_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:5816
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 * LPCSTR
Definition: xmlstorage.h:183
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185