ReactOS 0.4.17-dev-243-g1369312
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 2026 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
8 */
9
10#pragma once
11
12#include <winreg.h> /* REGSAM */
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 * ASSOCQUERY --- The type flags of association query
29 *
30 * @see IAssociationElementOld, IAssociationElement, IAssociationArrayOld, IAssociationArray
31 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/api/assocelem/query.htm
32 */
34#define ASSOCQUERY_LOWORD_MASK 0x0000FFFF // The low-order word of flags
35#define ASSOCQUERY_STRING 0x00010000 // Responds to QueryString method
36#define ASSOCQUERY_EXISTS 0x00020000 // Responds to QueryExists method
37#define ASSOCQUERY_DIRECT 0x00040000 // Responds to QueryDirect method
38#define ASSOCQUERY_DWORD 0x00080000 // Responds to QueryDword method
39#define ASSOCQUERY_INDIRECT 0x00100000 // Obtains resource string from QueryString
40#define ASSOCQUERY_OBJECT 0x00200000 // Responds to QueryObject method
41#define ASSOCQUERY_GUID 0x00400000 // Responds to QueryGuid method
42#define ASSOCQUERY_EXTRA_NON_VERB 0x01000000 // Expects pszExtra for path or value
43#define ASSOCQUERY_EXTRA_VERB 0x02000000 // Expects pszExtra for verb
44#define ASSOCQUERY_SIGNIFICANCE 0x04000000 // Significance unknown
45#define ASSOCQUERY_FALLBACK 0x80000000 // Fallback to secondary query source
46
47/*****************************************************************************
48 * New shellstate structure
49 */
51{
55};
56
57/*****************************************************************************
58 * Header for persisted view state in cabinet windows
59 */
61{
62 long dwSize;
68};
69
70/****************************************************************************
71 * IShellView/IShellBrowser/CabinetWClass WM_COMMAND identifiers
72 */
73#define FCIDM_SHVIEW_CREATELINK 0x7010
74#define FCIDM_SHVIEW_DELETE 0x7011
75#define FCIDM_SHVIEW_RENAME 0x7012
76#define FCIDM_SHVIEW_PROPERTIES 0x7013
77#define FCIDM_SHVIEW_CUT 0x7018
78#define FCIDM_SHVIEW_COPY 0x7019
79#define FCIDM_SHVIEW_INSERT 0x701A
80#define FCIDM_SHVIEW_UNDO 0x701B
81#define FCIDM_SHVIEW_INSERTLINK 0x701C
82#define FCIDM_SHVIEW_COPYTO 0x701E
83#define FCIDM_SHVIEW_MOVETO 0x701F
84#define FCIDM_SHVIEW_SELECTALL 0x7021
85#define FCIDM_SHVIEW_INVERTSELECTION 0x7022
86#define FCIDM_SHVIEW_DESELECTALL 0x7023
87#define FCIDM_SHVIEW_ARRANGE_AUTO 0x7051 // IShellFolderView::AutoArrange
88#define FCIDM_SHVIEW_ARRANGE_GRID 0x7052 // IShellFolderView::ArrangeGrid => LVA_SNAPTOGRID
89#define FCIDM_SHVIEW_SHOWDESKTOPICONS 0x7053
90#define FCIDM_SHVIEW_ARRANGE_AUTOGRID 0x7054
91#define FCIDM_SHVIEW_REFRESH 0x7103
92#define FCIDM_SHVIEW_SHOWINGROUPS 0x7601
93#define FCIDM_SHBROWSER_REFRESH 0xA065
94#define FCIDM_SHBROWSER_MAPNETDRIVE 0xA081
95#define FCIDM_SHBROWSER_UNMAPNETDRIVE 0xA082
96#define FCIDM_SHBROWSER_FINDFILES 0xA085
97#define FCIDM_SHBROWSER_OPTIONS 0xA123
98#define FCIDM_CABINET_NT5_GOTO_DRIVES 0xA132
99#define FCIDM_CABINET_TOGGLEITBAR 0xA201
100#define FCIDM_CABINET_TOGGLESTATUSBAR 0xA202
101#define FCIDM_CABINET_REFRESH 0xA220
102
103/*****************************************************************************
104 * CGID_Explorer (IShellBrowser OLECMD IDs)
105 */
106#define SBCMDID_ENABLESHOWTREE 0 // (First ID from NT4 SDK)
107#define SBCMDID_SHOWCONTROL 1 // VT_I4:MAKELONG(FCW_*, SBSC_*)
108#define SBCMDID_CANCELNAVIGATION 2
109#define SBCMDID_MAYSAVECHANGES 3 // About to close and may save changes
110#define SBCMDID_SETHLINKFRAME 4 // VT_I4:phlinkframe
111#define SBCMDID_ENABLESTOP 5 // VT_BOOL:fEnable
112#define SBCMDID_OPTIONS 6 // (Last ID from NT4 SDK)
113#define SBCMDID_EXPLORERBARFOLDERS 35 // Query/Toggle
114#define SBCMDID_MIXEDZONE 39
115#define SBCMDID_ONVIEWMOVETOTOP 60
116//SBCMDID_SELECTHISTPIDL ?
117//SBCMDID_GETPANE ? // This is in the official SDK but only the panes are defined
118#define PANE_NONE ((DWORD)-1)
119#define PANE_ZONE 1
120#define PANE_OFFLINE 2
121#define PANE_PRINTER 3
122#define PANE_SSL 4
123#define PANE_NAVIGATION 5
124#define PANE_PROGRESS 6
125#define PANE_PRIVACY 7 // (_WIN32_IE >= _WIN32_IE_IE60)
126
127/*****************************************************************************
128 * CGID_ShellDocView OLECMD IDs
129 */
130#define SHDVID_FINALTITLEAVAIL 0 // BSTR
131
132/*****************************************************************************
133 * CGID_DefView OLECMD IDs
134 */
135#define DVCMDID_SET_DEFAULTFOLDER_SETTINGS 0
136#define DVCMDID_RESET_DEFAULTFOLDER_SETTINGS 1
137
138/*****************************************************************************
139 * IInitializeObject interface
140 */
141#undef INTERFACE
142#define INTERFACE IInitializeObject
143
144DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719")
145{
149
151};
152#undef INTERFACE
153#if !defined(__cplusplus) || defined(CINTERFACE)
154#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
155#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
156#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
157#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
158#endif
159
160
161/*****************************************************************************
162 * IBanneredBar interface
163 */
164enum
165{
169#define INTERFACE IBanneredBar
170DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719")
171{
175
180
181};
182#undef INTERFACE
183
184#if !defined(__cplusplus) || defined(CINTERFACE)
185#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
186#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
187#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
188#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
189#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
190#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
191#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
192#endif
193
194/*****************************************************************************
195 * IGlobalFolderSettings interface
196 */
198{
199#ifdef __cplusplus
200 enum { SIZE_NT4 = 8, SIZE_IE4 = 36, SIZE_XP = 40 };
201 enum { VER_98 = 0, VER_2000 = 3, VER_XP = 4 }; // Win98SE with IE5 writes 0, not 3 as the version
202#endif
203 UINT Statusbar : 1; // "StatusBarOther" is the new location for this
204 UINT Toolbar : 1; // Not used when Explorer uses ReBar
206 SHELLVIEWID vid;
208 UINT Counter; // Incremented every time default folder settings are applied. Invalidates a cache?
209 UINT ViewPriority; // VIEW_PRIORITY_*
210};
211
212#undef INTERFACE
213#define INTERFACE IGlobalFolderSettings
214DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown)
215{
216 /*** IUnknown ***/
220 /*** IGlobalFolderSettings ***/
222 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *pFDS, UINT cb, UINT unknown) PURE;
223};
224#undef INTERFACE
225
226/*****************************************************************************
227 * IStartMenuCallback interface
228 */
229#define INTERFACE IStartMenuCallback
230DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow)
231{
232 /*** IUnknown ***/
236 /*** IOleWindow methods ***/
238 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
239 /*** IStartMenuCallback ***/
243};
244#undef INTERFACE
245
246#ifdef COBJMACROS
247#define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
248#define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
249#define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T)
250#define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
251#define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
252#define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
253#define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
254#define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
255#endif
256
257/*****************************************************************************
258 * IBandSiteStreamCallback interface
259 */
260#define INTERFACE IBandSiteStreamCallback
261DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown)
262{
263 /*** IUnknown ***/
267 /*** IBandSiteStreamCallback ***/
268 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE;
270};
271#undef INTERFACE
272
273#ifdef COBJMACROS
274#define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
275#define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
276#define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T)
277#define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c)
278#define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b)
279#endif
280
281/*****************************************************************************
282 * IShellDesktopTray interface
283 */
284#define INTERFACE IShellDesktopTray
285DECLARE_INTERFACE_(IShellDesktopTray, IUnknown)
286{
287 /*** IUnknown ***/
291 /*** IShellDesktopTray ***/
293 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE;
294 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE;
296};
297#undef INTERFACE
298
299#ifdef COBJMACROS
300#define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
301#define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T)
302#define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T)
303#define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T)
304#define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a)
305#define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a)
306#define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b)
307#endif
308
309/*****************************************************************************
310 * INscTree interface
311 */
312#define INTERFACE INscTree
314{
315 /*** IUnknown ***/
319 /*** INscTree ***/
320 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
321 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
322 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
324 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
325 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
326 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
327 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
328 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
329 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
331 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
332 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
333};
334#undef INTERFACE
335
336#ifdef COBJMACROS
337#define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
338#define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T)
339#define INscTree_Release(T) (T)->lpVtbl->Release(T)
340#define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
341#define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
342#define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
343#define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T)
344#define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
345#define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
346#define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
347#define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
348#define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
349#define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
350#define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
351#define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
352#define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
353#endif
354
355/*****************************************************************************
356 * INscTree2 interface
357 */
358#define INTERFACE INscTree2
359DECLARE_INTERFACE_(INscTree2, INscTree)
360{
361 /*** IUnknown ***/
365 /*** INscTree ***/
366 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
367 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
368 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
370 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
371 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
372 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
373 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
374 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
375 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
377 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
378 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
379 /*** INscTree2 ***/
380 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE;
381};
382#undef INTERFACE
383
384#ifdef COBJMACROS
385#define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
386#define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T)
387#define INscTree2_Release(T) (T)->lpVtbl->Release(T)
388#define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
389#define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
390#define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
391#define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T)
392#define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
393#define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
394#define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
395#define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
396#define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
397#define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
398#define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
399#define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
400#define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
401#define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d)
402#endif
403
404/*****************************************************************************
405 * IAddressEditBox interface
406 */
407#define INTERFACE IAddressEditBox
409{
410 /*** IUnknown ***/
414 /*** IAddressEditBox ***/
415 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE;
416 STDMETHOD(SetCurrentDir)(THIS_ PCWSTR pszPath) PURE;
417 STDMETHOD(ParseNow)(THIS_ long paramC) PURE;
418 STDMETHOD(Execute)(THIS_ long paramC) PURE;
419 STDMETHOD(Save)(THIS_ long paramC) PURE;
420};
421#undef INTERFACE
422
423#ifdef COBJMACROS
424#define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
425#define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T)
426#define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T)
427#define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d)
428#define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a)
429#define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a)
430#define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a)
431#define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a)
432#endif
433
434/*****************************************************************************
435 * IBandProxy interface
436 */
437#define INTERFACE IBandProxy
439{
440 /*** IUnknown ***/
444 /*** IBandProxy ***/
445 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE;
446 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE;
447 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE;
448 STDMETHOD(IsConnected)(THIS) PURE;
449 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE;
450 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE;
451};
452#undef INTERFACE
453
454#ifdef COBJMACROS
455#define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
456#define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
457#define IBandProxy_Release(T) (T)->lpVtbl->Release(T)
458#define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a)
459#define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a)
460#define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a)
461#define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T)
462#define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a)
463#define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b)
464#endif
465
466/*****************************************************************************
467 * IExplorerToolbar interface
468 */
469#define INTERFACE IExplorerToolbar
470DECLARE_INTERFACE_(IExplorerToolbar, IUnknown)
471{
472 /*** IUnknown ***/
476 /*** IExplorerToolbar ***/
477 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE;
478 STDMETHOD(Unknown1)(THIS) PURE;
479 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE;
480 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE;
481 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
482 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE;
483 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE;
484 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE;
485 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE;
486 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE;
487 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE;
488 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
489};
490#undef INTERFACE
491
492#ifdef COBJMACROS
493#define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
494#define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T)
495#define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T)
496#define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c)
497#define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T)
498#define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c)
499#define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d)
500#define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c)
501#define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c)
502#define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c)
503#define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f)
504#define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a)
505#define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e)
506#define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d)
507#define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c)
508#endif
509
510/*****************************************************************************
511 * IRegTreeOptions interface
512 */
514{
520
521#define HKEY_REGTREEOPTION_GRAYED ( (HKEY)INVALID_HANDLE_VALUE ) /* ROS extension */
522
523#define INTERFACE IRegTreeOptions
525{
526 /*** IUnknown ***/
530 /*** IRegTreeOptions ***/
531 STDMETHOD(InitTree)(THIS_ HWND hTV, HKEY hKey, LPCSTR SubKey, char const *pUnknown) PURE;
533 STDMETHOD(ToggleItem)(THIS_ HTREEITEM hTI) PURE;
534 STDMETHOD(ShowHelp)(THIS_ HTREEITEM hTI, unsigned long Unknown) PURE;
535};
536#undef INTERFACE
537
538#ifdef COBJMACROS
539#define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
540#define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T)
541#define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T)
542#define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d)
543#define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a)
544#define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a)
545#define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b)
546#endif
547
548/*****************************************************************************
549 * IBandNavigate interface
550 */
551#define INTERFACE IBandNavigate
553{
554 /*** IUnknown ***/
558 /*** IBandNavigate ***/
559 STDMETHOD(Select)(THIS_ LPCITEMIDLIST pidl) PURE;
560};
561#undef INTERFACE
562
563#ifdef COBJMACROS
564#define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
565#define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T)
566#define IBandNavigate_Release(T) (T)->lpVtbl->Release(T)
567#define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a)
568#endif
569
570/*****************************************************************************
571 * INamespaceProxy interface
572 */
573#define INTERFACE INamespaceProxy
575{
576 /*** IUnknown ***/
580 /*** INamespaceProxy ***/
581 STDMETHOD(GetNavigateTarget)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl, _Out_ PIDLIST_ABSOLUTE *ppidlTarget, _Out_ ULONG *pulAttrib) PURE;
583 STDMETHOD(OnSelectionChanged)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
584 STDMETHOD(RefreshFlags)(THIS_ _Out_ DWORD *pdwStyle, _Out_ DWORD *pdwExStyle, _Out_ DWORD *dwEnum) PURE;
585 STDMETHOD(CacheItem)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
586};
587#undef INTERFACE
588
589#ifdef COBJMACROS
590#define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
591#define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
592#define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T)
593#define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c)
594#define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a)
595#define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a)
596#define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c)
597#define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a)
598#endif
599
600/*****************************************************************************
601 * IShellMenu2 interface
602 */
603#define INTERFACE IShellMenu2
605{
606 /*** IUnknown ***/
610 /*** IShellMenu ***/
612 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE;
613 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE;
614 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE;
616 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE;
617 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE;
619 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE;
620 /*** IShellMenu2 ***/
622 STDMETHOD(SetToolbar)(THIS) PURE;
623 STDMETHOD(SetMinWidth)(THIS) PURE;
624 STDMETHOD(SetNoBorder)(THIS) PURE;
625 STDMETHOD(SetTheme)(THIS) PURE;
626};
627#undef INTERFACE
628
629#ifdef COBJMACROS
630#define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
631#define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
632#define IShellMenu2_Release(T) (T)->lpVtbl->Release(T)
633#define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d)
634#define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d)
635#define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d)
636#define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d)
637#define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
638#define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c)
639#define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b)
640#define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a)
641#define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b)
642#define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
643#define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T)
644#define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T)
645#define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T)
646#define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T)
647#endif
648
649/*****************************************************************************
650 * IWinEventHandler interface
651 */
652#define INTERFACE IWinEventHandler
653DECLARE_INTERFACE_(IWinEventHandler, IUnknown)
654{
655 /*** IUnknown ***/
659 /*** IWinEventHandler ***/
660 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE;
661 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE;
662};
663#undef INTERFACE
664
665#ifdef COBJMACROS
666#define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
667#define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T)
668#define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T)
669#define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e)
670#define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a)
671#endif
672
673/*****************************************************************************
674 * IAddressBand interface
675 */
676#define INTERFACE IAddressBand
678{
679 /*** IUnknown ***/
683 /*** IAddressBand ***/
684 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE;
685 STDMETHOD(Refresh)(THIS_ long param8) PURE;
686};
687#undef INTERFACE
688
689#ifdef COBJMACROS
690#define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
691#define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T)
692#define IAddressBand_Release(T) (T)->lpVtbl->Release(T)
693#define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b)
694#define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a)
695#endif
696
697/*****************************************************************************
698 * IShellMenuAcc interface
699 */
700#define INTERFACE IShellMenuAcc
702{
703 /*** IUnknown ***/
707 /*** IShellMenuAcc ***/
708 STDMETHOD(GetTop)(THIS) PURE;
709 STDMETHOD(GetBottom)(THIS) PURE;
710 STDMETHOD(GetTracked)(THIS) PURE;
711 STDMETHOD(GetParentSite)(THIS) PURE;
713 STDMETHOD(DoDefaultAction)(THIS) PURE;
716};
717#undef INTERFACE
718
719#ifdef COBJMACROS
720#define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
721#define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T)
722#define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T)
723#define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T)
724#define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T)
725#define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T)
726#define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T)
727#define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T)
728#define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T)
729#define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
730#define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T)
731#endif
732
733/*****************************************************************************
734 * IAddressBand interface
735 */
736#define INTERFACE IBandSiteHelper
738{
739 /*** IUnknown ***/
743 /*** IBandSiteHelper ***/
744 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE;
745 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE;
746};
747#undef INTERFACE
748
749#ifdef COBJMACROS
750#define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
751#define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T)
752#define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T)
753#define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b)
754#define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b)
755#endif
756
757/*****************************************************************************
758 * IAddressBand interface
759 */
760#define INTERFACE IShellBrowserService
761DECLARE_INTERFACE_(IShellBrowserService, IUnknown)
762{
763 /*** IUnknown ***/
767 /*** IShellBrowserService ***/
768 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE;
769};
770#undef INTERFACE
771
772#ifdef COBJMACROS
773#define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
774#define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T)
775#define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T)
776#define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c)
777#endif
778
779/*****************************************************************************
780 * IMruDataList interface
781 */
782#define INTERFACE IMruDataList
784{
785 /*** IUnknown ***/
789 /*** IMruDataList ***/
792 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE;
794 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE;
796};
797#undef INTERFACE
798
799#ifdef COBJMACROS
800#define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
801#define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T)
802#define IMruDataList_Release(T) (T)->lpVtbl->Release(T)
803#define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e)
804#define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c)
805#define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c)
806#define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c)
807#define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c)
808#define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a)
809#endif
810
811/*****************************************************************************
812 * IMruPidlList interface
813 */
814#define INTERFACE IMruPidlList
816{
817 /*** IUnknown ***/
821 /*** IMruPidlList ***/
822 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE;
824 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE;
825 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE;
826};
827#undef INTERFACE
828
829#ifdef COBJMACROS
830#define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
831#define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T)
832#define IMruPidlList_Release(T) (T)->lpVtbl->Release(T)
833#define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c)
834#define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b)
835#define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d)
836#define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a)
837#endif
838
839/*****************************************************************************
840 * ITrayPriv interface
841 */
842#define INTERFACE ITrayPriv
844{
845 /*** IUnknown ***/
849 /*** IOleWindow methods ***/
851 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
852 /*** ITrayPriv ***/
856};
857#undef INTERFACE
858
859#ifdef COBJMACROS
860#define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
861#define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T)
862#define ITrayPriv_Release(T) (T)->lpVtbl->Release(T)
863#define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
864#define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
865#define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
866#define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
867#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
868#endif
869
870/*****************************************************************************
871 * IQuerySourceOld interface
872 *
873 * @see IQuerySource
874 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
875 */
876#define INTERFACE IQuerySourceOld
877DECLARE_INTERFACE_(IQuerySourceOld, IUnknown) // {C7478486-7583-49E7-A6C2-FAF8F02BC30E}
878{
879 /*** IUnknown ***/
883 /*** IQuerySourceOld ***/
886 STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
887 STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
889 STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
890 STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, BOOL bCreate, IQuerySourceOld **ppSource) PURE;
891 STDMETHOD(SetValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD dwType, DWORD cbData, LPCVOID pbData) PURE;
892};
893#undef INTERFACE
894
895#ifdef COBJMACROS
896#define IQuerySourceOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
897#define IQuerySourceOld_AddRef(T) (T)->lpVtbl->AddRef(T)
898#define IQuerySourceOld_Release(T) (T)->lpVtbl->Release(T)
899#define IQuerySourceOld_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
900#define IQuerySourceOld_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
901#define IQuerySourceOld_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
902#define IQuerySourceOld_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
903#define IQuerySourceOld_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
904#define IQuerySourceOld_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
905#define IQuerySourceOld_OpenSource(T,a,b,c) (T)->lpVtbl->OpenSource(T,a,b,c)
906#define IQuerySourceOld_SetValueDirect(T,a,b,c,d,e) (T)->lpVtbl->SetValueDirect(T,a,b,c,d,e)
907#endif
908
909/*****************************************************************************
910 * IQuerySource interface (new version)
911 *
912 * @see IQuerySourceOld
913 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
914 */
915#define INTERFACE IQuerySource
916DECLARE_INTERFACE_(IQuerySource, IUnknown) // {7BC28AC2-0D9C-4941-BB9A-72BECB184FAC}
917{
918 /*** IUnknown ***/
922 /*** IQuerySource ***/
924 STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
925 STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
927 STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName) PURE;
928 STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
930 STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, IQuerySource **ppSource) PURE;
931};
932#undef INTERFACE
933
934#ifdef COBJMACROS
935#define IQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
936#define IQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
937#define IQuerySource_Release(T) (T)->lpVtbl->Release(T)
938#define IQuerySource_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
939#define IQuerySource_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
940#define IQuerySource_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
941#define IQuerySource_QueryValueGuid(T,a,b,c) (T)->lpVtbl->QueryValueGuid(T,a,b,c)
942#define IQuerySource_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
943#define IQuerySource_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
944#define IQuerySource_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
945#define IQuerySource_OpenSource(T,a,b) (T)->lpVtbl->OpenSource(T,a,b)
946#endif
947
948/*****************************************************************************
949 * IObjectWithQuerySource interface
950 *
951 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iobjectwithquerysource.htm
952 */
953#define INTERFACE IObjectWithQuerySource
954DECLARE_INTERFACE_(IObjectWithQuerySource, IUnknown) // {B3DCB623-4280-4EB1-84B3-8D07E84F299A}
955{
956 /*** IUnknown ***/
960 /*** IObjectWithQuerySource ***/
961 STDMETHOD(SetSource)(THIS_ IQuerySource *pSource) PURE;
963};
964#undef INTERFACE
965
966#ifdef COBJMACROS
967#define IObjectWithQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
968#define IObjectWithQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
969#define IObjectWithQuerySource_Release(T) (T)->lpVtbl->Release(T)
970#define IObjectWithQuerySource_SetSource(T,a) (T)->lpVtbl->SetSource(T,a)
971#define IObjectWithQuerySource_GetSource(T,a,b) (T)->lpVtbl->GetSource(T,a,b)
972#endif
973
974/*****************************************************************************
975 * IAssociationElementOld interface
976 *
977 * @see IAssociationElement
978 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
979 */
980#define INTERFACE IAssociationElementOld
981DECLARE_INTERFACE_(IAssociationElementOld, IUnknown) // {E58B1ABF-9596-4DBA-8997-89DCDEF46992}
982{
983 /*** IUnknown ***/
987 /*** IAssociationElementOld ***/
991 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
993};
994#undef INTERFACE
995
996#ifdef COBJMACROS
997#define IAssociationElementOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
998#define IAssociationElementOld_AddRef(T) (T)->lpVtbl->AddRef(T)
999#define IAssociationElementOld_Release(T) (T)->lpVtbl->Release(T)
1000#define IAssociationElementOld_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1001#define IAssociationElementOld_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1002#define IAssociationElementOld_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1003#define IAssociationElementOld_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1004#define IAssociationElementOld_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1005#endif
1006
1007/*****************************************************************************
1008 * IAssociationElement interface (new version)
1009 *
1010 * @see IAssociationElementOld
1011 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
1012 */
1013#define INTERFACE IAssociationElement
1014DECLARE_INTERFACE_(IAssociationElement, IUnknown) // {D8F6AD5B-B44F-4BCC-88FD-EB3473DB7502}
1015{
1016 /*** IUnknown ***/
1020 /*** IAssociationElement ***/
1025 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
1027};
1028#undef INTERFACE
1029
1030#ifdef COBJMACROS
1031#define IAssociationElement_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1032#define IAssociationElement_AddRef(T) (T)->lpVtbl->AddRef(T)
1033#define IAssociationElement_Release(T) (T)->lpVtbl->Release(T)
1034#define IAssociationElement_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1035#define IAssociationElement_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1036#define IAssociationElement_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
1037#define IAssociationElement_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1038#define IAssociationElement_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1039#define IAssociationElement_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1040#endif
1041
1042/*****************************************************************************
1043 * IEnumAssociationElements interface
1044 *
1045 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ienumassociationelements.htm
1046 */
1047#define INTERFACE IEnumAssociationElements
1048DECLARE_INTERFACE_(IEnumAssociationElements, IUnknown) // {A6B0FB57-7523-4439-9425-EBE99823B828}
1049{
1050 /*** IUnknown ***/
1054 /*** IEnumAssociationElements ***/
1055 STDMETHOD(Next)(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE;
1058 STDMETHOD(Clone)(THIS_ IEnumAssociationElements **ppNew) PURE;
1059};
1060#undef INTERFACE
1061
1062#ifdef COBJMACROS
1063#define IEnumAssociationElements_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1064#define IEnumAssociationElements_AddRef(T) (T)->lpVtbl->AddRef(T)
1065#define IEnumAssociationElements_Release(T) (T)->lpVtbl->Release(T)
1066#define IEnumAssociationElements_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
1067#define IEnumAssociationElements_Skip(T,a) (T)->lpVtbl->Skip(T,a)
1068#define IEnumAssociationElements_Reset(T) (T)->lpVtbl->Reset(T)
1069#define IEnumAssociationElements_Clone(T,a) (T)->lpVtbl->Clone(T,a)
1070#endif
1071
1072/*****************************************************************************
1073 * IAssociationArrayOld interface
1074 *
1075 * @see IAssociationArray
1076 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
1077 */
1078#define INTERFACE IAssociationArrayOld
1079DECLARE_INTERFACE_(IAssociationArrayOld, IUnknown) // {3B877E3C-67DE-4F9A-B29B-17D0A1521C6A}
1080{
1081 /*** IUnknown ***/
1085 /*** IAssociationArrayOld ***/
1086 STDMETHOD(EnumElements)(THIS_ ULONG flags, IEnumAssociationElements **ppEnum) PURE;
1092};
1093#undef INTERFACE
1094
1095#ifdef COBJMACROS
1096#define IAssociationArrayOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1097#define IAssociationArrayOld_AddRef(T) (T)->lpVtbl->AddRef(T)
1098#define IAssociationArrayOld_Release(T) (T)->lpVtbl->Release(T)
1099#define IAssociationArrayOld_EnumElements(T,a,b) (T)->lpVtbl->EnumElements(T,a,b)
1100#define IAssociationArrayOld_QueryString(T,a,b,c,d) (T)->lpVtbl->QueryString(T,a,b,c,d)
1101#define IAssociationArrayOld_QueryDword(T,a,b,c,d) (T)->lpVtbl->QueryDword(T,a,b,c,d)
1102#define IAssociationArrayOld_QueryExists(T,a,b,c) (T)->lpVtbl->QueryExists(T,a,b,c)
1103#define IAssociationArrayOld_QueryDirect(T,a,b,c,d) (T)->lpVtbl->QueryDirect(T,a,b,c,d)
1104#define IAssociationArrayOld_QueryObject(T,a,b,c,d,e) (T)->lpVtbl->QueryObject(T,a,b,c,d,e)
1105#endif
1106
1107/*****************************************************************************
1108 * IAssociationArray interface
1109 *
1110 * @see IAssociationArrayOld
1111 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
1112 */
1113#define INTERFACE IAssociationArray
1114DECLARE_INTERFACE_(IAssociationArray, IUnknown) // {19ADBAFD-1C5F-4FC7-94EE-846702DFB58B}
1115{
1116 /*** IUnknown ***/
1120 /*** IAssociationArray ***/
1125 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
1127};
1128#undef INTERFACE
1129
1130#ifdef COBJMACROS
1131#define IAssociationArray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1132#define IAssociationArray_AddRef(T) (T)->lpVtbl->AddRef(T)
1133#define IAssociationArray_Release(T) (T)->lpVtbl->Release(T)
1134#define IAssociationArray_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1135#define IAssociationArray_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1136#define IAssociationArray_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
1137#define IAssociationArray_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1138#define IAssociationArray_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1139#define IAssociationArray_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1140#endif
1141
1142/*****************************************************************************
1143 * IAssociationArrayInitialize interface
1144 *
1145 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarrayinitialize.htm
1146 */
1147#define INTERFACE IAssociationArrayInitialize
1148DECLARE_INTERFACE_(IAssociationArrayInitialize, IUnknown) // {EE9165BF-A4D9-474B-8236-6735CB7E28B6}
1149{
1150 /*** IUnknown ***/
1154 /*** IAssociationArrayInitialize ***/
1156 STDMETHOD(InsertElements)(ULONG flags, IEnumAssociationElements *pEnum) PURE;
1158};
1159#undef INTERFACE
1160
1161#ifdef COBJMACROS
1162#define IAssociationArrayInitialize_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1163#define IAssociationArrayInitialize_AddRef(T) (T)->lpVtbl->AddRef(T)
1164#define IAssociationArrayInitialize_Release(T) (T)->lpVtbl->Release(T)
1165#define IAssociationArrayInitialize_InitClassElements(T,a,b) (T)->lpVtbl->InitClassElements(T,a,b)
1166#define IAssociationArrayInitialize_InsertElements(T,a,b) (T)->lpVtbl->InsertElements(T,a,b)
1167#define IAssociationArrayInitialize_FilterElements(T,a) (T)->lpVtbl->FilterElements(T,a)
1168#endif
1169
1170/*****************************************************************************
1171 * IPersistString2 interface
1172 *
1173 * @sse IPersist
1174 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ipersiststring2.htm
1175 */
1176#define INTERFACE IPersistString2
1177DECLARE_INTERFACE_(IPersistString2, IPersist) // {3C44BA76-DE0E-4049-B6E4-6B31A5262707}
1178{
1179 /*** IUnknown ***/
1183 /*** IPersist ***/
1185 /*** IPersistString2 ***/
1188};
1189#undef INTERFACE
1190
1191#ifdef COBJMACROS
1192#define IPersistString2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1193#define IPersistString2_AddRef(T) (T)->lpVtbl->AddRef(T)
1194#define IPersistString2_Release(T) (T)->lpVtbl->Release(T)
1195#define IPersistString2_SetString(T,a) (T)->lpVtbl->SetString(T,a)
1196#define IPersistString2_GetString(T,a) (T)->lpVtbl->GetString(T,a)
1197#endif
1198
1199/*****************************************************************************
1200 * IObjectWithRegistryKeyOld interface
1201 *
1202 * @see IObjectWithRegistryKey
1203 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
1204 */
1205#define INTERFACE IObjectWithRegistryKeyOld
1206DECLARE_INTERFACE_(IObjectWithRegistryKeyOld, IUnknown) // {5747C63F-1DE8-423F-980F-00CB07F4C45B}
1207{
1208 /*** IUnknown ***/
1212 /*** IObjectWithRegistryKeyOld ***/
1215};
1216#undef INTERFACE
1217
1218#ifdef COBJMACROS
1219#define IObjectWithRegistryKeyOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1220#define IObjectWithRegistryKeyOld_AddRef(T) (T)->lpVtbl->AddRef(T)
1221#define IObjectWithRegistryKeyOld_Release(T) (T)->lpVtbl->Release(T)
1222#define IObjectWithRegistryKeyOld_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
1223#define IObjectWithRegistryKeyOld_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
1224#endif
1225
1226/*****************************************************************************
1227 * IObjectWithRegistryKey interface (new version)
1228 *
1229 * @see IObjectWithRegistryKeyOld
1230 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
1231 */
1232#define INTERFACE IObjectWithRegistryKey
1233DECLARE_INTERFACE_(IObjectWithRegistryKey, IUnknown) // {D960050C-F4E1-4294-AC4B-598913605923}
1234{
1235 /*** IUnknown ***/
1239 /*** IObjectWithRegistryKey ***/
1241 STDMETHOD(GetKey)(THIS_ REGSAM samDesired, HKEY *phKey) PURE;
1242};
1243#undef INTERFACE
1244
1245#ifdef COBJMACROS
1246#define IObjectWithRegistryKey_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1247#define IObjectWithRegistryKey_AddRef(T) (T)->lpVtbl->AddRef(T)
1248#define IObjectWithRegistryKey_Release(T) (T)->lpVtbl->Release(T)
1249#define IObjectWithRegistryKey_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
1250#define IObjectWithRegistryKey_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
1251#endif
1252
1253HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
1256
1257#ifdef __cplusplus
1258} /* extern "C" */
1259#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
GUID guid
Definition: version.c:147
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118
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()
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
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
LONG_PTR LPARAM
Definition: minwindef.h:175
LONG_PTR LRESULT
Definition: minwindef.h:176
UINT_PTR WPARAM
Definition: minwindef.h:174
CONST void * LPCVOID
Definition: minwindef.h:164
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:83
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
static HMENU hmenu
Definition: win.c:78
static VOID SetImageList(HWND hwnd)
Definition: mplay32.c:238
LPCSTR LPCTSTR
Definition: ms-dtyp.idl:130
unsigned int UINT
Definition: ndis.h:50
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define LPVOID
Definition: nt_native.h:45
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
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
_In_opt_ IUnknown * punk
Definition: shlwapi.h:158
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
Definition: shlwapi.h:761
void ShowHelp()
Definition: sdbinst.c:809
_In_ int _In_ BOOL bCreate
Definition: shlobj.h:1527
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() InsertElements(ULONG flags, IEnumAssociationElements *pEnum) PURE
STDMETHOD() QueryDword(THIS_ ASSOCQUERY query, PCWSTR key, DWORD *pdwValue) PURE
STDMETHOD() QueryValueGuid(THIS_ PCWSTR keyName, PCWSTR valueName, GUID *guid) PURE
STDMETHOD() Skip(THIS_ ULONG celt) PURE
DWORD ASSOCQUERY
Definition: shlobj_undoc.h:33
STDMETHOD() GetBitmap(THIS_ HBITMAP *phBitmap) PURE
STDMETHOD() SetBitmap(THIS_ HBITMAP hBitmap) PURE
STDMETHOD() SetKey(THIS_ HKEY hKey) PURE
STDMETHOD() GetClassID(THIS_ CLSID *pClassID) PURE
STDMETHOD() GetKey(THIS_ HKEY *phKey) PURE
STDMETHOD() SetValueDirect(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD dwType, DWORD cbData, LPCVOID pbData) PURE
@ BMICON_SMALL
Definition: shlobj_undoc.h:167
@ BMICON_LARGE
Definition: shlobj_undoc.h:166
STDMETHOD() QueryValueExists(THIS_ PCWSTR keyName, PCWSTR valueName) PURE
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *)
STDMETHOD() FilterElements(ULONG filter) PURE
STDMETHOD() Reset(THIS) PURE
STDMETHOD() GetSource(THIS_ REFIID riid, PVOID *ppSource) PURE
STDMETHOD() EnumSources(THIS_ IEnumString **ppEnum) PURE
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
STDMETHOD() InitClassElements(ULONG flags, PCWSTR pszClass) PURE
struct tagSLOTITEMDATA SLOTITEMDATA
STDMETHOD() OpenSource(THIS_ PCWSTR keyName, BOOL bCreate, IQuerySourceOld **ppSource) PURE
STDMETHOD() GetString(THIS_ PWSTR *ppsz) PURE
STDMETHOD() QueryString(THIS_ ASSOCQUERY query, PCWSTR key, PWSTR *ppszValue) PURE
STDMETHOD() SetString(THIS_ PCWSTR psz) PURE
struct tagSLOTITEMDATA * PSLOTITEMDATA
tagWALK_TREE_CMD
Definition: shlobj_undoc.h:514
@ WALK_TREE_REFRESH
Definition: shlobj_undoc.h:518
@ WALK_TREE_DESTROY
Definition: shlobj_undoc.h:516
@ WALK_TREE_DEFAULT
Definition: shlobj_undoc.h:517
@ WALK_TREE_SAVE
Definition: shlobj_undoc.h:515
STDMETHOD() GetIconSize(THIS_ DWORD *piIcon) PURE
STDMETHOD() QueryValueDirect(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE
enum tagWALK_TREE_CMD WALK_TREE_CMD
STDMETHOD() QueryValueString(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE
STDMETHOD() Next(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE
STDMETHOD() QueryValueDword(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE
STDMETHOD() SetSource(THIS_ IQuerySource *pSource) PURE
STDMETHOD() QueryObject(THIS_ ASSOCQUERY query, PCWSTR key, REFIID riid, PVOID *ppvObj) PURE
STDMETHOD() EnumValues(THIS_ IEnumString **ppEnum) PURE
HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject *pDataInner, IDataObject **ppDataObj)
STDMETHOD() EnumElements(THIS_ ULONG flags, IEnumAssociationElements **ppEnum) PURE
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:206
FOLDERSETTINGS FolderSettings
Definition: shlobj_undoc.h:205
long newState1
Definition: shlobj_undoc.h:53
SHELLSTATE oldState
Definition: shlobj_undoc.h:52
long newState2
Definition: shlobj_undoc.h:54
Definition: copy.c:22
CLSID persistClass
Definition: shlobj_undoc.h:66
long browserIndex
Definition: shlobj_undoc.h:65
ULONG pidlSize
Definition: shlobj_undoc.h:67
INT GetSelectedItem(HWND hDlgCtrl)
uint16_t * PWSTR
Definition: typedefs.h:56
const char * LPCSTR
Definition: typedefs.h:52
const uint16_t * PCWSTR
Definition: typedefs.h:57
const uint16_t * LPCWSTR
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_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
DWORD COLORREF
Definition: windef.h:100
#define WINAPI
Definition: msvc.h:6
ACCESS_MASK REGSAM
Definition: winreg.h:76
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define AppendMenu
Definition: winuser.h:5897
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