ReactOS 0.4.17-dev-357-ga8f14ff
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_FINDCOMPUTER 0xA086
98#define FCIDM_SHBROWSER_OPTIONS 0xA123
99#define FCIDM_CABINET_NT5_GOTO_DRIVES 0xA132
100#define FCIDM_CABINET_TOGGLEITBAR 0xA201
101#define FCIDM_CABINET_TOGGLESTATUSBAR 0xA202
102#define FCIDM_CABINET_REFRESH 0xA220
103
104/*****************************************************************************
105 * CGID_Explorer (IShellBrowser OLECMD IDs)
106 */
107#define SBCMDID_ENABLESHOWTREE 0 // (First ID from NT4 SDK)
108#define SBCMDID_SHOWCONTROL 1 // VT_I4:MAKELONG(FCW_*, SBSC_*)
109#define SBCMDID_CANCELNAVIGATION 2
110#define SBCMDID_MAYSAVECHANGES 3 // About to close and may save changes
111#define SBCMDID_SETHLINKFRAME 4 // VT_I4:phlinkframe
112#define SBCMDID_ENABLESTOP 5 // VT_BOOL:fEnable
113#define SBCMDID_OPTIONS 6 // (Last ID from NT4 SDK)
114#define SBCMDID_EXPLORERBARFOLDERS 35 // Query/Toggle
115#define SBCMDID_MIXEDZONE 39
116#define SBCMDID_ONVIEWMOVETOTOP 60
117//SBCMDID_SELECTHISTPIDL ?
118//SBCMDID_GETPANE ? // This is in the official SDK but only the panes are defined
119#define PANE_NONE ((DWORD)-1)
120#define PANE_ZONE 1
121#define PANE_OFFLINE 2
122#define PANE_PRINTER 3
123#define PANE_SSL 4
124#define PANE_NAVIGATION 5
125#define PANE_PROGRESS 6
126#define PANE_PRIVACY 7 // (_WIN32_IE >= _WIN32_IE_IE60)
127
128/*****************************************************************************
129 * CGID_ShellDocView OLECMD IDs
130 */
131#define SHDVID_FINALTITLEAVAIL 0 // BSTR
132
133/*****************************************************************************
134 * CGID_DefView OLECMD IDs
135 */
136#define DVCMDID_SET_DEFAULTFOLDER_SETTINGS 0
137#define DVCMDID_RESET_DEFAULTFOLDER_SETTINGS 1
138
139/*****************************************************************************
140 * IInitializeObject interface
141 */
142#undef INTERFACE
143#define INTERFACE IInitializeObject
144
145DECLARE_INTERFACE_(IInitializeObject, IUnknown)//, "4622AD16-FF23-11d0-8D34-00A0C90F2719")
146{
150
152};
153#undef INTERFACE
154#if !defined(__cplusplus) || defined(CINTERFACE)
155#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
156#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
157#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
158#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
159#endif
160
161
162/*****************************************************************************
163 * IBanneredBar interface
164 */
165enum
166{
170#define INTERFACE IBanneredBar
171DECLARE_INTERFACE_(IBanneredBar, IUnknown)//, "596A9A94-013E-11d1-8D34-00A0C90F2719")
172{
176
181
182};
183#undef INTERFACE
184
185#if !defined(__cplusplus) || defined(CINTERFACE)
186#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
187#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
188#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
189#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
190#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
191#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
192#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
193#endif
194
195/*****************************************************************************
196 * IGlobalFolderSettings interface
197 */
199{
200#ifdef __cplusplus
201 enum { SIZE_NT4 = 8, SIZE_IE4 = 36, SIZE_XP = 40 };
202 enum { VER_98 = 0, VER_2000 = 3, VER_XP = 4 }; // Win98SE with IE5 writes 0, not 3 as the version
203#endif
204 UINT Statusbar : 1; // "StatusBarOther" is the new location for this
205 UINT Toolbar : 1; // Not used when Explorer uses ReBar
207 SHELLVIEWID vid;
209 UINT Counter; // Incremented every time default folder settings are applied. Invalidates a cache?
210 UINT ViewPriority; // VIEW_PRIORITY_*
211};
212
213#undef INTERFACE
214#define INTERFACE IGlobalFolderSettings
215DECLARE_INTERFACE_(IGlobalFolderSettings, IUnknown)
216{
217 /*** IUnknown ***/
221 /*** IGlobalFolderSettings ***/
223 STDMETHOD(Set)(THIS_ const struct DEFFOLDERSETTINGS *pFDS, UINT cb, UINT unknown) PURE;
224};
225#undef INTERFACE
226
227/*****************************************************************************
228 * IStartMenuCallback interface
229 */
230#define INTERFACE IStartMenuCallback
231DECLARE_INTERFACE_(IStartMenuCallback, IOleWindow)
232{
233 /*** IUnknown ***/
237 /*** IOleWindow methods ***/
239 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
240 /*** IStartMenuCallback ***/
244};
245#undef INTERFACE
246
247#ifdef COBJMACROS
248#define IStartMenuCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
249#define IStartMenuCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
250#define IStartMenuCallback_Release(T) (T)->lpVtbl->Release(T)
251#define IStartMenuCallback_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
252#define IStartMenuCallback_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
253#define IStartMenuCallback_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
254#define IStartMenuCallback_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
255#define IStartMenuCallback_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
256#endif
257
258/*****************************************************************************
259 * IBandSiteStreamCallback interface
260 */
261#define INTERFACE IBandSiteStreamCallback
262DECLARE_INTERFACE_(IBandSiteStreamCallback, IUnknown)
263{
264 /*** IUnknown ***/
268 /*** IBandSiteStreamCallback ***/
269 STDMETHOD_(HRESULT,OnLoad)(THIS_ IStream *pStm, REFIID riid, PVOID *pvObj) PURE;
271};
272#undef INTERFACE
273
274#ifdef COBJMACROS
275#define IBandSiteStreamCallback_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
276#define IBandSiteStreamCallback_AddRef(T) (T)->lpVtbl->AddRef(T)
277#define IBandSiteStreamCallback_Release(T) (T)->lpVtbl->Release(T)
278#define IBandSiteStreamCallback_OnLoad(T,a,b,c) (T)->lpVtbl->OnLoad(T,a,b,c)
279#define IBandSiteStreamCallback_OnSave(T,a,b) (T)->lpVtbl->OnSave(T,a,b)
280#endif
281
282/*****************************************************************************
283 * IShellDesktopTray interface
284 */
285#define INTERFACE IShellDesktopTray
286DECLARE_INTERFACE_(IShellDesktopTray, IUnknown)
287{
288 /*** IUnknown ***/
292 /*** IShellDesktopTray ***/
294 STDMETHOD(GetTrayWindow)(THIS_ HWND*) PURE;
295 STDMETHOD(RegisterDesktopWindow)(THIS_ HWND) PURE;
297};
298#undef INTERFACE
299
300#ifdef COBJMACROS
301#define IShellDesktopTray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
302#define IShellDesktopTray_AddRef(T) (T)->lpVtbl->AddRef(T)
303#define IShellDesktopTray_Release(T) (T)->lpVtbl->Release(T)
304#define IShellDesktopTray_GetState(T) (T)->lpVtbl->GetState(T)
305#define IShellDesktopTray_GetTrayWindow(T,a) (T)->lpVtbl->GetTrayWindow(T,a)
306#define IShellDesktopTray_RegisterDesktopWindow(T,a) (T)->lpVtbl->RegisterDesktopWindow(T,a)
307#define IShellDesktopTray_Unknown(T,a,b) (T)->lpVtbl->Unknown(T,a,b)
308#endif
309
310/*****************************************************************************
311 * INscTree interface
312 */
313#define INTERFACE INscTree
315{
316 /*** IUnknown ***/
320 /*** INscTree ***/
321 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
322 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
323 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
325 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
326 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
327 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
328 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
329 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
330 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
332 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
333 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
334};
335#undef INTERFACE
336
337#ifdef COBJMACROS
338#define INscTree_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
339#define INscTree_AddRef(T) (T)->lpVtbl->AddRef(T)
340#define INscTree_Release(T) (T)->lpVtbl->Release(T)
341#define INscTree_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
342#define INscTree_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
343#define INscTree_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
344#define INscTree_Refresh(T) (T)->lpVtbl->Refresh(T)
345#define INscTree_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
346#define INscTree_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
347#define INscTree_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
348#define INscTree_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
349#define INscTree_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
350#define INscTree_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
351#define INscTree_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
352#define INscTree_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
353#define INscTree_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
354#endif
355
356/*****************************************************************************
357 * INscTree2 interface
358 */
359#define INTERFACE INscTree2
360DECLARE_INTERFACE_(INscTree2, INscTree)
361{
362 /*** IUnknown ***/
366 /*** INscTree ***/
367 STDMETHOD(CreateTree)(THIS_ long paramC, long param10, long param14) PURE;
368 STDMETHOD(Initialize)(THIS_ long paramC, long param10, long param14) PURE;
369 STDMETHOD(ShowWindow)(THIS_ long paramC) PURE;
371 STDMETHOD(GetSelectedItem)(THIS_ long paramC, long param10) PURE;
372 STDMETHOD(SetSelectedItem)(THIS_ long paramC, long param10, long param14, long param18) PURE;
373 STDMETHOD(GetNscMode)(THIS_ long paramC) PURE;
374 STDMETHOD(SetNscMode)(THIS_ long paramC) PURE;
375 STDMETHOD(GetSelectedItemName)(THIS_ long paramC, long param10) PURE;
376 STDMETHOD(BindToSelectedItemParent)(THIS_ long paramC, long param10, long param14) PURE;
378 STDMETHOD(RightPaneNavigationStarted)(THIS_ long paramC) PURE;
379 STDMETHOD(RightPaneNavigationFinished)(THIS_ long paramC) PURE;
380 /*** INscTree2 ***/
381 STDMETHOD(CreateTree2)(THIS_ long paramC, long param10, long param14, long param18) PURE;
382};
383#undef INTERFACE
384
385#ifdef COBJMACROS
386#define INscTree2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
387#define INscTree2_AddRef(T) (T)->lpVtbl->AddRef(T)
388#define INscTree2_Release(T) (T)->lpVtbl->Release(T)
389#define INscTree2_CreateTree(T,a,b,c) (T)->lpVtbl->CreateTree(T,a,b,c)
390#define INscTree2_Initialize(T,a,b,c) (T)->lpVtbl->Initialize(T,a,b,c)
391#define INscTree2_ShowWindow(T,a) (T)->lpVtbl->ShowWindow(T,a)
392#define INscTree2_Refresh(T) (T)->lpVtbl->Refresh(T)
393#define INscTree2_GetSelectedItem(T,a,b) (T)->lpVtbl->GetSelectedItem(T,a,b)
394#define INscTree2_SetSelectedItem(T,a,b,c,d) (T)->lpVtbl->SetSelectedItem(T,a,b,c,d)
395#define INscTree2_GetNscMode(T,a) (T)->lpVtbl->GetNscMode(T,a)
396#define INscTree2_SetNscMode(T,a) (T)->lpVtbl->SetNscMode(T,a)
397#define INscTree2_GetSelectedItemName(T,a,b) (T)->lpVtbl->GetSelectedItemName(T,a,b)
398#define INscTree2_BindToSelectedItemParent(T,a,b,c) (T)->lpVtbl->BindToSelectedItemParent(T,a,b,c)
399#define INscTree2_InLabelEdit(T) (T)->lpVtbl->InLabelEdit(T)
400#define INscTree2_RightPaneNavigationStarted(T,a) (T)->lpVtbl->RightPaneNavigationStarted(T,a)
401#define INscTree2_RightPaneNavigationFinished(T,a) (T)->lpVtbl->RightPaneNavigationFinished(T,a)
402#define INscTree2_CreateTree2(T,a,b,c,d) (T)->lpVtbl->CreateTree2(T,a,b,c,d)
403#endif
404
405/*****************************************************************************
406 * IAddressEditBox interface
407 */
408#define INTERFACE IAddressEditBox
410{
411 /*** IUnknown ***/
415 /*** IAddressEditBox ***/
416 STDMETHOD(Init)(THIS_ HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) PURE;
417 STDMETHOD(SetCurrentDir)(THIS_ PCWSTR pszPath) PURE;
418 STDMETHOD(ParseNow)(THIS_ long paramC) PURE;
419 STDMETHOD(Execute)(THIS_ long paramC) PURE;
420 STDMETHOD(Save)(THIS_ long paramC) PURE;
421};
422#undef INTERFACE
423
424#ifdef COBJMACROS
425#define IAddressEditBox_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
426#define IAddressEditBox_AddRef(T) (T)->lpVtbl->AddRef(T)
427#define IAddressEditBox_Release(T) (T)->lpVtbl->Release(T)
428#define IAddressEditBox_Init(T,a,b,c,d) (T)->lpVtbl->Init(T,a,b,c,d)
429#define IAddressEditBox_SetCurrentDir(T,a) (T)->lpVtbl->SetCurrentDir(T,a)
430#define IAddressEditBox_ParseNow(T,a) (T)->lpVtbl->ParseNow(T,a)
431#define IAddressEditBox_Execute(T,a) (T)->lpVtbl->Execute(T,a)
432#define IAddressEditBox_Save(T,a) (T)->lpVtbl->Save(T,a)
433#endif
434
435/*****************************************************************************
436 * IBandProxy interface
437 */
438#define INTERFACE IBandProxy
440{
441 /*** IUnknown ***/
445 /*** IBandProxy ***/
446 STDMETHOD(SetSite)(THIS_ IUnknown *paramC) PURE;
447 STDMETHOD(CreateNewWindow)(THIS_ long paramC) PURE;
448 STDMETHOD(GetBrowserWindow)(THIS_ IUnknown **paramC) PURE;
449 STDMETHOD(IsConnected)(THIS) PURE;
450 STDMETHOD(NavigateToPIDL)(THIS_ LPCITEMIDLIST pidl) PURE;
451 STDMETHOD(NavigateToURL)(THIS_ long paramC, long param10) PURE;
452};
453#undef INTERFACE
454
455#ifdef COBJMACROS
456#define IBandProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
457#define IBandProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
458#define IBandProxy_Release(T) (T)->lpVtbl->Release(T)
459#define IBandProxy_SetSite(T,a) (T)->lpVtbl->SetSite(T,a)
460#define IBandProxy_CreateNewWindow(T,a) (T)->lpVtbl->CreateNewWindow(T,a)
461#define IBandProxy_GetBrowserWindow(T,a) (T)->lpVtbl->GetBrowserWindow(T,a)
462#define IBandProxy_IsConnected(T) (T)->lpVtbl->IsConnected(T)
463#define IBandProxy_NavigateToPIDL(T,a) (T)->lpVtbl->NavigateToPIDL(T,a)
464#define IBandProxy_NavigateToURL(T,a,b) (T)->lpVtbl->NavigateToURL(T,a,b)
465#endif
466
467/*****************************************************************************
468 * IExplorerToolbar interface
469 */
470#define INTERFACE IExplorerToolbar
471DECLARE_INTERFACE_(IExplorerToolbar, IUnknown)
472{
473 /*** IUnknown ***/
477 /*** IExplorerToolbar ***/
478 STDMETHOD(SetCommandTarget)(THIS_ IUnknown *theTarget, GUID *category, long param14) PURE;
479 STDMETHOD(Unknown1)(THIS) PURE;
480 STDMETHOD(AddButtons)(THIS_ const GUID *pguidCmdGroup, long buttonCount, TBBUTTON *buttons) PURE;
481 STDMETHOD(AddString)(THIS_ const GUID *pguidCmdGroup, HINSTANCE param10, LPCTSTR param14, long *param18) PURE;
482 STDMETHOD(GetButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
483 STDMETHOD(GetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long *theState) PURE;
484 STDMETHOD(SetState)(THIS_ const GUID *pguidCmdGroup, long commandID, long theState) PURE;
485 STDMETHOD(AddBitmap)(THIS_ const GUID *pguidCmdGroup, long param10, long buttonCount, TBADDBITMAP *lParam, long *newIndex, COLORREF param20) PURE;
486 STDMETHOD(GetBitmapSize)(THIS_ long *paramC) PURE;
487 STDMETHOD(SendToolbarMsg)(THIS_ const GUID *pguidCmdGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *result) PURE;
488 STDMETHOD(SetImageList)(THIS_ const GUID *pguidCmdGroup, HIMAGELIST param10, HIMAGELIST param14, HIMAGELIST param18) PURE;
489 STDMETHOD(ModifyButton)(THIS_ const GUID *paramC, long param10, long param14) PURE;
490};
491#undef INTERFACE
492
493#ifdef COBJMACROS
494#define IExplorerToolbar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
495#define IExplorerToolbar_AddRef(T) (T)->lpVtbl->AddRef(T)
496#define IExplorerToolbar_Release(T) (T)->lpVtbl->Release(T)
497#define IExplorerToolbar_SetCommandTarget(T,a,b,c) (T)->lpVtbl->SetCommandTarget(T,a,b,c)
498#define IExplorerToolbar_Unknown1(T) (T)->lpVtbl->Unknown1(T)
499#define IExplorerToolbar_AddButtons(T,a,b,c) (T)->lpVtbl->AddButtons(T,a,b,c)
500#define IExplorerToolbar_AddString(T,a,b,c,d) (T)->lpVtbl->AddString(T,a,b,c,d)
501#define IExplorerToolbar_GetButton(T,a,b,c) (T)->lpVtbl->GetButton(T,a,b,c)
502#define IExplorerToolbar_GetState(T,a,b,c) (T)->lpVtbl->GetState(T,a,b,c)
503#define IExplorerToolbar_SetState(T,a,b,c) (T)->lpVtbl->SetState(T,a,b,c)
504#define IExplorerToolbar_AddBitmap(T,a,b,c,d,e,f) (T)->lpVtbl->AddBitmap(T,a,b,c,d,e,f)
505#define IExplorerToolbar_GetBitmapSize(T,a) (T)->lpVtbl->GetBitmapSize(T,a)
506#define IExplorerToolbar_SendToolbarMsg(T,a,b,c,d,e) (T)->lpVtbl->SendToolbarMsg(T,a,b,c,d,e)
507#define IExplorerToolbar_SetImageList(T,a,b,c,d) (T)->lpVtbl->SetImageList(T,a,b,c,d)
508#define IExplorerToolbar_ModifyButton(T,a,b,c) (T)->lpVtbl->ModifyButton(T,a,b,c)
509#endif
510
511/*****************************************************************************
512 * IRegTreeOptions interface
513 */
515{
521
522#define HKEY_REGTREEOPTION_GRAYED ( (HKEY)INVALID_HANDLE_VALUE ) /* ROS extension */
523
524#define INTERFACE IRegTreeOptions
526{
527 /*** IUnknown ***/
531 /*** IRegTreeOptions ***/
532 STDMETHOD(InitTree)(THIS_ HWND hTV, HKEY hKey, LPCSTR SubKey, char const *pUnknown) PURE;
534 STDMETHOD(ToggleItem)(THIS_ HTREEITEM hTI) PURE;
535 STDMETHOD(ShowHelp)(THIS_ HTREEITEM hTI, unsigned long Unknown) PURE;
536};
537#undef INTERFACE
538
539#ifdef COBJMACROS
540#define IRegTreeOptions_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
541#define IRegTreeOptions_AddRef(T) (T)->lpVtbl->AddRef(T)
542#define IRegTreeOptions_Release(T) (T)->lpVtbl->Release(T)
543#define IRegTreeOptions_InitTree(T,a,b,c,d) (T)->lpVtbl->InitTree(T,a,b,c,d)
544#define IRegTreeOptions_WalkTree(T,a) (T)->lpVtbl->WalkTree(T,a)
545#define IRegTreeOptions_ToggleItem(T,a) (T)->lpVtbl->ToggleItem(T,a)
546#define IRegTreeOptions_ShowHelp(T,a,b) (T)->lpVtbl->ShowHelp(T,a,b)
547#endif
548
549/*****************************************************************************
550 * IBandNavigate interface
551 */
552#define INTERFACE IBandNavigate
554{
555 /*** IUnknown ***/
559 /*** IBandNavigate ***/
560 STDMETHOD(Select)(THIS_ LPCITEMIDLIST pidl) PURE;
561};
562#undef INTERFACE
563
564#ifdef COBJMACROS
565#define IBandNavigate_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
566#define IBandNavigate_AddRef(T) (T)->lpVtbl->AddRef(T)
567#define IBandNavigate_Release(T) (T)->lpVtbl->Release(T)
568#define IBandNavigate_Select(T,a) (T)->lpVtbl->Select(T,a)
569#endif
570
571/*****************************************************************************
572 * INamespaceProxy interface
573 */
574#define INTERFACE INamespaceProxy
576{
577 /*** IUnknown ***/
581 /*** INamespaceProxy ***/
582 STDMETHOD(GetNavigateTarget)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl, _Out_ PIDLIST_ABSOLUTE *ppidlTarget, _Out_ ULONG *pulAttrib) PURE;
584 STDMETHOD(OnSelectionChanged)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
585 STDMETHOD(RefreshFlags)(THIS_ _Out_ DWORD *pdwStyle, _Out_ DWORD *pdwExStyle, _Out_ DWORD *dwEnum) PURE;
586 STDMETHOD(CacheItem)(THIS_ _In_ PCIDLIST_ABSOLUTE pidl) PURE;
587};
588#undef INTERFACE
589
590#ifdef COBJMACROS
591#define INamespaceProxy_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
592#define INamespaceProxy_AddRef(T) (T)->lpVtbl->AddRef(T)
593#define INamespaceProxy_Release(T) (T)->lpVtbl->Release(T)
594#define INamespaceProxy_GetNavigateTarget(T,a,b,c) (T)->lpVtbl->GetNavigateTarget(T,a,b,c)
595#define INamespaceProxy_Invoke(T,a) (T)->lpVtbl->Invoke(T,a)
596#define INamespaceProxy_OnSelectionChanged(T,a) (T)->lpVtbl->OnSelectionChanged(T,a)
597#define INamespaceProxy_RefreshFlags(T,a,b,c) (T)->lpVtbl->RefreshFlags(T,a,b,c)
598#define INamespaceProxy_CacheItem(T,a) (T)->lpVtbl->CacheItem(T,a)
599#endif
600
601/*****************************************************************************
602 * IShellMenu2 interface
603 */
604#define INTERFACE IShellMenu2
606{
607 /*** IUnknown ***/
611 /*** IShellMenu ***/
613 STDMETHOD(GetMenuInfo)(THIS_ IShellMenuCallback **ppsmc, UINT *puId, UINT *puIdAncestor, DWORD *pdwFlags) PURE;
614 STDMETHOD(SetShellFolder)(THIS_ IShellFolder *psf, LPCITEMIDLIST pidlFolder, HKEY hKey, DWORD dwFlags) PURE;
615 STDMETHOD(GetShellFolder)(THIS_ DWORD *pdwFlags, LPITEMIDLIST *ppidl, REFIID riid, void **ppv) PURE;
617 STDMETHOD(GetMenu)(THIS_ HMENU *phmenu, HWND *phwnd, DWORD *pdwFlags) PURE;
618 STDMETHOD(InvalidateItem)(THIS_ LPSMDATA psmd, DWORD dwFlags) PURE;
620 STDMETHOD(SetMenuToolbar)(THIS_ IUnknown *punk, DWORD dwFlags) PURE;
621 /*** IShellMenu2 ***/
623 STDMETHOD(SetToolbar)(THIS) PURE;
624 STDMETHOD(SetMinWidth)(THIS) PURE;
625 STDMETHOD(SetNoBorder)(THIS) PURE;
626 STDMETHOD(SetTheme)(THIS) PURE;
627};
628#undef INTERFACE
629
630#ifdef COBJMACROS
631#define IShellMenu2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
632#define IShellMenu2_AddRef(T) (T)->lpVtbl->AddRef(T)
633#define IShellMenu2_Release(T) (T)->lpVtbl->Release(T)
634#define IShellMenu2_Initialize(T,a,b,c,d) (T)->lpVtbl->Initialize(T,a,b,c,d)
635#define IShellMenu2_GetMenuInfo(T,a,b,c,d) (T)->lpVtbl->GetMenuInfo(T,a,b,c,d)
636#define IShellMenu2_SetShellFolder(T,a,b,c,d) (T)->lpVtbl->SetShellFolder(T,a,b,c,d)
637#define IShellMenu2_GetShellFolder(T,a,b,c,d) (T)->lpVtbl->GetShellFolder(T,a,b,c,d)
638#define IShellMenu2_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
639#define IShellMenu2_GetMenu(T,a,b,c) (T)->lpVtbl->GetMenu(T,a,b,c)
640#define IShellMenu2_InvalidateItem(T,a,b) (T)->lpVtbl->InvalidateItem(T,a,b)
641#define IShellMenu2_GetState(T,a) (T)->lpVtbl->GetState(T,a)
642#define IShellMenu2_SetMenuToolbar(T,a,b) (T)->lpVtbl->SetMenuToolbar(T,a,b)
643#define IShellMenu2_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
644#define IShellMenu2_SetToolbar(T) (T)->lpVtbl->SetToolbar(T)
645#define IShellMenu2_SetMinWidth(T) (T)->lpVtbl->SetMinWidth(T)
646#define IShellMenu2_SetNoBorder(T) (T)->lpVtbl->SetNoBorder(T)
647#define IShellMenu2_SetTheme(T) (T)->lpVtbl->SetTheme(T)
648#endif
649
650/*****************************************************************************
651 * IWinEventHandler interface
652 */
653#define INTERFACE IWinEventHandler
654DECLARE_INTERFACE_(IWinEventHandler, IUnknown)
655{
656 /*** IUnknown ***/
660 /*** IWinEventHandler ***/
661 STDMETHOD(OnWinEvent)(THIS_ HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) PURE;
662 STDMETHOD(IsWindowOwner)(THIS_ HWND hWnd) PURE;
663};
664#undef INTERFACE
665
666#ifdef COBJMACROS
667#define IWinEventHandler_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
668#define IWinEventHandler_AddRef(T) (T)->lpVtbl->AddRef(T)
669#define IWinEventHandler_Release(T) (T)->lpVtbl->Release(T)
670#define IWinEventHandler_OnWinEvent(T,a,b,c,d,e) (T)->lpVtbl->OnWinEvent(T,a,b,c,d,e)
671#define IWinEventHandler_IsWindowOwner(T,a) (T)->lpVtbl->IsWindowOwner(T,a)
672#endif
673
674/*****************************************************************************
675 * IAddressBand interface
676 */
677#define INTERFACE IAddressBand
679{
680 /*** IUnknown ***/
684 /*** IAddressBand ***/
685 STDMETHOD(FileSysChange)(THIS_ long param8, long paramC) PURE;
686 STDMETHOD(Refresh)(THIS_ long param8) PURE;
687};
688#undef INTERFACE
689
690#ifdef COBJMACROS
691#define IAddressBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
692#define IAddressBand_AddRef(T) (T)->lpVtbl->AddRef(T)
693#define IAddressBand_Release(T) (T)->lpVtbl->Release(T)
694#define IAddressBand_FileSysChange(T,a,b) (T)->lpVtbl->FileSysChange(T,a,b)
695#define IAddressBand_Refresh(T,a) (T)->lpVtbl->Refresh(T,a)
696#endif
697
698/*****************************************************************************
699 * IShellMenuAcc interface
700 */
701#define INTERFACE IShellMenuAcc
703{
704 /*** IUnknown ***/
708 /*** IShellMenuAcc ***/
709 STDMETHOD(GetTop)(THIS) PURE;
710 STDMETHOD(GetBottom)(THIS) PURE;
711 STDMETHOD(GetTracked)(THIS) PURE;
712 STDMETHOD(GetParentSite)(THIS) PURE;
714 STDMETHOD(DoDefaultAction)(THIS) PURE;
717};
718#undef INTERFACE
719
720#ifdef COBJMACROS
721#define IShellMenuAcc_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
722#define IShellMenuAcc_AddRef(T) (T)->lpVtbl->AddRef(T)
723#define IShellMenuAcc_Release(T) (T)->lpVtbl->Release(T)
724#define IShellMenuAcc_GetTop(T) (T)->lpVtbl->GetTop(T)
725#define IShellMenuAcc_GetBottom(T) (T)->lpVtbl->GetBottom(T)
726#define IShellMenuAcc_GetTracked(T) (T)->lpVtbl->GetTracked(T)
727#define IShellMenuAcc_GetParentSite(T) (T)->lpVtbl->GetParentSite(T)
728#define IShellMenuAcc_GetState(T) (T)->lpVtbl->GetState(T)
729#define IShellMenuAcc_DoDefaultAction(T) (T)->lpVtbl->DoDefaultAction(T)
730#define IShellMenuAcc_GetSubMenu(T) (T)->lpVtbl->GetSubMenu(T)
731#define IShellMenuAcc_IsEmpty(T) (T)->lpVtbl->IsEmpty(T)
732#endif
733
734/*****************************************************************************
735 * IAddressBand interface
736 */
737#define INTERFACE IBandSiteHelper
739{
740 /*** IUnknown ***/
744 /*** IBandSiteHelper ***/
745 STDMETHOD(LoadFromStreamBS)(THIS_ IStream *, REFGUID, void **) PURE;
746 STDMETHOD(SaveToStreamBS)(THIS_ IUnknown *, IStream *) PURE;
747};
748#undef INTERFACE
749
750#ifdef COBJMACROS
751#define IBandSiteHelper_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
752#define IBandSiteHelper_AddRef(T) (T)->lpVtbl->AddRef(T)
753#define IBandSiteHelper_Release(T) (T)->lpVtbl->Release(T)
754#define IBandSiteHelper_LoadFromStreamBS(T,a,b) (T)->lpVtbl->LoadFromStreamBS(T,a,b)
755#define IBandSiteHelper_SaveToStreamBS(T,a,b) (T)->lpVtbl->SaveToStreamBS(T,a,b)
756#endif
757
758/*****************************************************************************
759 * IAddressBand interface
760 */
761#define INTERFACE IShellBrowserService
762DECLARE_INTERFACE_(IShellBrowserService, IUnknown)
763{
764 /*** IUnknown ***/
768 /*** IShellBrowserService ***/
769 STDMETHOD(GetPropertyBag)(THIS_ long flags, REFIID riid, void **ppvObject) PURE;
770};
771#undef INTERFACE
772
773#ifdef COBJMACROS
774#define IShellBrowserService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
775#define IShellBrowserService_AddRef(T) (T)->lpVtbl->AddRef(T)
776#define IShellBrowserService_Release(T) (T)->lpVtbl->Release(T)
777#define IShellBrowserService_GetPropertyBag(T,a,b,c) (T)->lpVtbl->GetPropertyBag(T,a,b,c)
778#endif
779
780/*****************************************************************************
781 * IMruDataList interface
782 */
783#define INTERFACE IMruDataList
785{
786 /*** IUnknown ***/
790 /*** IMruDataList ***/
793 STDMETHOD(FindData)(THIS_ LPCVOID , DWORD, UINT*) PURE;
795 STDMETHOD(QueryInfo)(THIS_ UINT, UINT*, DWORD*) PURE;
797};
798#undef INTERFACE
799
800#ifdef COBJMACROS
801#define IMruDataList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
802#define IMruDataList_AddRef(T) (T)->lpVtbl->AddRef(T)
803#define IMruDataList_Release(T) (T)->lpVtbl->Release(T)
804#define IMruDataList_InitData(T,a,b,c,d,e) (T)->lpVtbl->InitData(T,a,b,c,d,e)
805#define IMruDataList_AddData(T,a,b,c) (T)->lpVtbl->AddData(T,a,b,c)
806#define IMruDataList_FindData(T,a,b,c) (T)->lpVtbl->FindData(T,a,b,c)
807#define IMruDataList_GetData(T,a,b,c) (T)->lpVtbl->GetData(T,a,b,c)
808#define IMruDataList_QueryInfo(T,a,b,c) (T)->lpVtbl->QueryInfo(T,a,b,c)
809#define IMruDataList_Delete(T,a) (T)->lpVtbl->Delete(T,a)
810#endif
811
812/*****************************************************************************
813 * IMruPidlList interface
814 */
815#define INTERFACE IMruPidlList
817{
818 /*** IUnknown ***/
822 /*** IMruPidlList ***/
823 STDMETHOD(InitList)(THIS_ UINT, HKEY, LPCWSTR) PURE;
825 STDMETHOD(QueryPidl)(THIS_ LPCITEMIDLIST, UINT, UINT*, UINT*) PURE;
826 STDMETHOD(PruneKids)(THIS_ LPCITEMIDLIST) PURE;
827};
828#undef INTERFACE
829
830#ifdef COBJMACROS
831#define IMruPidlList_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
832#define IMruPidlList_AddRef(T) (T)->lpVtbl->AddRef(T)
833#define IMruPidlList_Release(T) (T)->lpVtbl->Release(T)
834#define IMruPidlList_InitList(T,a,b,c) (T)->lpVtbl->InitList(T,a,b,c)
835#define IMruPidlList_UsePidl(T,a,b) (T)->lpVtbl->UsePidl(T,a,b)
836#define IMruPidlList_QueryPidl(T,a,b,c,d) (T)->lpVtbl->QueryPidl(T,a,b,c,d)
837#define IMruPidlList_PruneKids(T,a) (T)->lpVtbl->PruneKids(T,a)
838#endif
839
840/*****************************************************************************
841 * ITrayPriv interface
842 */
843#define INTERFACE ITrayPriv
845{
846 /*** IUnknown ***/
850 /*** IOleWindow methods ***/
852 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
853 /*** ITrayPriv ***/
857};
858#undef INTERFACE
859
860#ifdef COBJMACROS
861#define ITrayPriv_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
862#define ITrayPriv_AddRef(T) (T)->lpVtbl->AddRef(T)
863#define ITrayPriv_Release(T) (T)->lpVtbl->Release(T)
864#define ITrayPriv_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
865#define ITrayPriv_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
866#define ITrayPriv_Execute(T,a,b) (T)->lpVtbl->Execute(T,a,b)
867#define ITrayPriv_Unknown(T,a,b,c,d) (T)->lpVtbl->Unknown(T,a,b,c,d)
868#define ITrayPriv_AppendMenu(T,a) (T)->lpVtbl->AppendMenu(T,a)
869#endif
870
871/*****************************************************************************
872 * IQuerySourceOld interface
873 *
874 * @see IQuerySource
875 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
876 */
877#define INTERFACE IQuerySourceOld
878DECLARE_INTERFACE_(IQuerySourceOld, IUnknown) // {C7478486-7583-49E7-A6C2-FAF8F02BC30E}
879{
880 /*** IUnknown ***/
884 /*** IQuerySourceOld ***/
887 STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
888 STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
890 STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
891 STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, BOOL bCreate, IQuerySourceOld **ppSource) PURE;
892 STDMETHOD(SetValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD dwType, DWORD cbData, LPCVOID pbData) PURE;
893};
894#undef INTERFACE
895
896#ifdef COBJMACROS
897#define IQuerySourceOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
898#define IQuerySourceOld_AddRef(T) (T)->lpVtbl->AddRef(T)
899#define IQuerySourceOld_Release(T) (T)->lpVtbl->Release(T)
900#define IQuerySourceOld_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
901#define IQuerySourceOld_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
902#define IQuerySourceOld_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
903#define IQuerySourceOld_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
904#define IQuerySourceOld_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
905#define IQuerySourceOld_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
906#define IQuerySourceOld_OpenSource(T,a,b,c) (T)->lpVtbl->OpenSource(T,a,b,c)
907#define IQuerySourceOld_SetValueDirect(T,a,b,c,d,e) (T)->lpVtbl->SetValueDirect(T,a,b,c,d,e)
908#endif
909
910/*****************************************************************************
911 * IQuerySource interface (new version)
912 *
913 * @see IQuerySourceOld
914 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iquerysource.htm
915 */
916#define INTERFACE IQuerySource
917DECLARE_INTERFACE_(IQuerySource, IUnknown) // {7BC28AC2-0D9C-4941-BB9A-72BECB184FAC}
918{
919 /*** IUnknown ***/
923 /*** IQuerySource ***/
925 STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
926 STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
928 STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName) PURE;
929 STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
931 STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, IQuerySource **ppSource) PURE;
932};
933#undef INTERFACE
934
935#ifdef COBJMACROS
936#define IQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
937#define IQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
938#define IQuerySource_Release(T) (T)->lpVtbl->Release(T)
939#define IQuerySource_EnumValues(T,a) (T)->lpVtbl->EnumValues(T,a)
940#define IQuerySource_QueryValueString(T,a,b,c) (T)->lpVtbl->QueryValueString(T,a,b,c)
941#define IQuerySource_QueryValueDword(T,a,b,c) (T)->lpVtbl->QueryValueDword(T,a,b,c)
942#define IQuerySource_QueryValueGuid(T,a,b,c) (T)->lpVtbl->QueryValueGuid(T,a,b,c)
943#define IQuerySource_QueryValueExists(T,a,b) (T)->lpVtbl->QueryValueExists(T,a,b)
944#define IQuerySource_QueryValueDirect(T,a,b,c) (T)->lpVtbl->QueryValueDirect(T,a,b,c)
945#define IQuerySource_EnumSources(T,a) (T)->lpVtbl->EnumSources(T,a)
946#define IQuerySource_OpenSource(T,a,b) (T)->lpVtbl->OpenSource(T,a,b)
947#endif
948
949/*****************************************************************************
950 * IObjectWithQuerySource interface
951 *
952 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iobjectwithquerysource.htm
953 */
954#define INTERFACE IObjectWithQuerySource
955DECLARE_INTERFACE_(IObjectWithQuerySource, IUnknown) // {B3DCB623-4280-4EB1-84B3-8D07E84F299A}
956{
957 /*** IUnknown ***/
961 /*** IObjectWithQuerySource ***/
962 STDMETHOD(SetSource)(THIS_ IQuerySource *pSource) PURE;
964};
965#undef INTERFACE
966
967#ifdef COBJMACROS
968#define IObjectWithQuerySource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
969#define IObjectWithQuerySource_AddRef(T) (T)->lpVtbl->AddRef(T)
970#define IObjectWithQuerySource_Release(T) (T)->lpVtbl->Release(T)
971#define IObjectWithQuerySource_SetSource(T,a) (T)->lpVtbl->SetSource(T,a)
972#define IObjectWithQuerySource_GetSource(T,a,b) (T)->lpVtbl->GetSource(T,a,b)
973#endif
974
975/*****************************************************************************
976 * IAssociationElementOld interface
977 *
978 * @see IAssociationElement
979 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
980 */
981#define INTERFACE IAssociationElementOld
982DECLARE_INTERFACE_(IAssociationElementOld, IUnknown) // {E58B1ABF-9596-4DBA-8997-89DCDEF46992}
983{
984 /*** IUnknown ***/
988 /*** IAssociationElementOld ***/
992 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
994};
995#undef INTERFACE
996
997#ifdef COBJMACROS
998#define IAssociationElementOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
999#define IAssociationElementOld_AddRef(T) (T)->lpVtbl->AddRef(T)
1000#define IAssociationElementOld_Release(T) (T)->lpVtbl->Release(T)
1001#define IAssociationElementOld_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1002#define IAssociationElementOld_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1003#define IAssociationElementOld_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1004#define IAssociationElementOld_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1005#define IAssociationElementOld_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1006#endif
1007
1008/*****************************************************************************
1009 * IAssociationElement interface (new version)
1010 *
1011 * @see IAssociationElementOld
1012 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iassociationelement.htm
1013 */
1014#define INTERFACE IAssociationElement
1015DECLARE_INTERFACE_(IAssociationElement, IUnknown) // {D8F6AD5B-B44F-4BCC-88FD-EB3473DB7502}
1016{
1017 /*** IUnknown ***/
1021 /*** IAssociationElement ***/
1026 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
1028};
1029#undef INTERFACE
1030
1031#ifdef COBJMACROS
1032#define IAssociationElement_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1033#define IAssociationElement_AddRef(T) (T)->lpVtbl->AddRef(T)
1034#define IAssociationElement_Release(T) (T)->lpVtbl->Release(T)
1035#define IAssociationElement_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1036#define IAssociationElement_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1037#define IAssociationElement_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
1038#define IAssociationElement_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1039#define IAssociationElement_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1040#define IAssociationElement_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1041#endif
1042
1043/*****************************************************************************
1044 * IEnumAssociationElements interface
1045 *
1046 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ienumassociationelements.htm
1047 */
1048#define INTERFACE IEnumAssociationElements
1049DECLARE_INTERFACE_(IEnumAssociationElements, IUnknown) // {A6B0FB57-7523-4439-9425-EBE99823B828}
1050{
1051 /*** IUnknown ***/
1055 /*** IEnumAssociationElements ***/
1056 STDMETHOD(Next)(THIS_ ULONG celt, IAssociationElement *pElement, ULONG *pceltFetched) PURE;
1059 STDMETHOD(Clone)(THIS_ IEnumAssociationElements **ppNew) PURE;
1060};
1061#undef INTERFACE
1062
1063#ifdef COBJMACROS
1064#define IEnumAssociationElements_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1065#define IEnumAssociationElements_AddRef(T) (T)->lpVtbl->AddRef(T)
1066#define IEnumAssociationElements_Release(T) (T)->lpVtbl->Release(T)
1067#define IEnumAssociationElements_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
1068#define IEnumAssociationElements_Skip(T,a) (T)->lpVtbl->Skip(T,a)
1069#define IEnumAssociationElements_Reset(T) (T)->lpVtbl->Reset(T)
1070#define IEnumAssociationElements_Clone(T,a) (T)->lpVtbl->Clone(T,a)
1071#endif
1072
1073/*****************************************************************************
1074 * IAssociationArrayOld interface
1075 *
1076 * @see IAssociationArray
1077 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
1078 */
1079#define INTERFACE IAssociationArrayOld
1080DECLARE_INTERFACE_(IAssociationArrayOld, IUnknown) // {3B877E3C-67DE-4F9A-B29B-17D0A1521C6A}
1081{
1082 /*** IUnknown ***/
1086 /*** IAssociationArrayOld ***/
1087 STDMETHOD(EnumElements)(THIS_ ULONG flags, IEnumAssociationElements **ppEnum) PURE;
1093};
1094#undef INTERFACE
1095
1096#ifdef COBJMACROS
1097#define IAssociationArrayOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1098#define IAssociationArrayOld_AddRef(T) (T)->lpVtbl->AddRef(T)
1099#define IAssociationArrayOld_Release(T) (T)->lpVtbl->Release(T)
1100#define IAssociationArrayOld_EnumElements(T,a,b) (T)->lpVtbl->EnumElements(T,a,b)
1101#define IAssociationArrayOld_QueryString(T,a,b,c,d) (T)->lpVtbl->QueryString(T,a,b,c,d)
1102#define IAssociationArrayOld_QueryDword(T,a,b,c,d) (T)->lpVtbl->QueryDword(T,a,b,c,d)
1103#define IAssociationArrayOld_QueryExists(T,a,b,c) (T)->lpVtbl->QueryExists(T,a,b,c)
1104#define IAssociationArrayOld_QueryDirect(T,a,b,c,d) (T)->lpVtbl->QueryDirect(T,a,b,c,d)
1105#define IAssociationArrayOld_QueryObject(T,a,b,c,d,e) (T)->lpVtbl->QueryObject(T,a,b,c,d,e)
1106#endif
1107
1108/*****************************************************************************
1109 * IAssociationArray interface
1110 *
1111 * @see IAssociationArrayOld
1112 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarray.htm
1113 */
1114#define INTERFACE IAssociationArray
1115DECLARE_INTERFACE_(IAssociationArray, IUnknown) // {19ADBAFD-1C5F-4FC7-94EE-846702DFB58B}
1116{
1117 /*** IUnknown ***/
1121 /*** IAssociationArray ***/
1126 STDMETHOD(QueryDirect)(THIS_ ASSOCQUERY query, PCWSTR key, FLAGGED_BYTE_BLOB **ppBlob) PURE;
1128};
1129#undef INTERFACE
1130
1131#ifdef COBJMACROS
1132#define IAssociationArray_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1133#define IAssociationArray_AddRef(T) (T)->lpVtbl->AddRef(T)
1134#define IAssociationArray_Release(T) (T)->lpVtbl->Release(T)
1135#define IAssociationArray_QueryString(T,a,b,c) (T)->lpVtbl->QueryString(T,a,b,c)
1136#define IAssociationArray_QueryDword(T,a,b,c) (T)->lpVtbl->QueryDword(T,a,b,c)
1137#define IAssociationArray_QueryGuid(T,a,b,c) (T)->lpVtbl->QueryGuid(T,a,b,c)
1138#define IAssociationArray_QueryExists(T,a,b) (T)->lpVtbl->QueryExists(T,a,b)
1139#define IAssociationArray_QueryDirect(T,a,b,c) (T)->lpVtbl->QueryDirect(T,a,b,c)
1140#define IAssociationArray_QueryObject(T,a,b,c,d) (T)->lpVtbl->QueryObject(T,a,b,c,d)
1141#endif
1142
1143/*****************************************************************************
1144 * IAssociationArrayInitialize interface
1145 *
1146 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/iassociationarrayinitialize.htm
1147 */
1148#define INTERFACE IAssociationArrayInitialize
1149DECLARE_INTERFACE_(IAssociationArrayInitialize, IUnknown) // {EE9165BF-A4D9-474B-8236-6735CB7E28B6}
1150{
1151 /*** IUnknown ***/
1155 /*** IAssociationArrayInitialize ***/
1157 STDMETHOD(InsertElements)(ULONG flags, IEnumAssociationElements *pEnum) PURE;
1159};
1160#undef INTERFACE
1161
1162#ifdef COBJMACROS
1163#define IAssociationArrayInitialize_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1164#define IAssociationArrayInitialize_AddRef(T) (T)->lpVtbl->AddRef(T)
1165#define IAssociationArrayInitialize_Release(T) (T)->lpVtbl->Release(T)
1166#define IAssociationArrayInitialize_InitClassElements(T,a,b) (T)->lpVtbl->InitClassElements(T,a,b)
1167#define IAssociationArrayInitialize_InsertElements(T,a,b) (T)->lpVtbl->InsertElements(T,a,b)
1168#define IAssociationArrayInitialize_FilterElements(T,a) (T)->lpVtbl->FilterElements(T,a)
1169#endif
1170
1171/*****************************************************************************
1172 * IPersistString2 interface
1173 *
1174 * @sse IPersist
1175 * @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ipersiststring2.htm
1176 */
1177#define INTERFACE IPersistString2
1178DECLARE_INTERFACE_(IPersistString2, IPersist) // {3C44BA76-DE0E-4049-B6E4-6B31A5262707}
1179{
1180 /*** IUnknown ***/
1184 /*** IPersist ***/
1186 /*** IPersistString2 ***/
1189};
1190#undef INTERFACE
1191
1192#ifdef COBJMACROS
1193#define IPersistString2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1194#define IPersistString2_AddRef(T) (T)->lpVtbl->AddRef(T)
1195#define IPersistString2_Release(T) (T)->lpVtbl->Release(T)
1196#define IPersistString2_SetString(T,a) (T)->lpVtbl->SetString(T,a)
1197#define IPersistString2_GetString(T,a) (T)->lpVtbl->GetString(T,a)
1198#endif
1199
1200/*****************************************************************************
1201 * IObjectWithRegistryKeyOld interface
1202 *
1203 * @see IObjectWithRegistryKey
1204 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
1205 */
1206#define INTERFACE IObjectWithRegistryKeyOld
1207DECLARE_INTERFACE_(IObjectWithRegistryKeyOld, IUnknown) // {5747C63F-1DE8-423F-980F-00CB07F4C45B}
1208{
1209 /*** IUnknown ***/
1213 /*** IObjectWithRegistryKeyOld ***/
1216};
1217#undef INTERFACE
1218
1219#ifdef COBJMACROS
1220#define IObjectWithRegistryKeyOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1221#define IObjectWithRegistryKeyOld_AddRef(T) (T)->lpVtbl->AddRef(T)
1222#define IObjectWithRegistryKeyOld_Release(T) (T)->lpVtbl->Release(T)
1223#define IObjectWithRegistryKeyOld_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
1224#define IObjectWithRegistryKeyOld_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
1225#endif
1226
1227/*****************************************************************************
1228 * IObjectWithRegistryKey interface (new version)
1229 *
1230 * @see IObjectWithRegistryKeyOld
1231 * @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
1232 */
1233#define INTERFACE IObjectWithRegistryKey
1234DECLARE_INTERFACE_(IObjectWithRegistryKey, IUnknown) // {D960050C-F4E1-4294-AC4B-598913605923}
1235{
1236 /*** IUnknown ***/
1240 /*** IObjectWithRegistryKey ***/
1242 STDMETHOD(GetKey)(THIS_ REGSAM samDesired, HKEY *phKey) PURE;
1243};
1244#undef INTERFACE
1245
1246#ifdef COBJMACROS
1247#define IObjectWithRegistryKey_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
1248#define IObjectWithRegistryKey_AddRef(T) (T)->lpVtbl->AddRef(T)
1249#define IObjectWithRegistryKey_Release(T) (T)->lpVtbl->Release(T)
1250#define IObjectWithRegistryKey_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
1251#define IObjectWithRegistryKey_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
1252#endif
1253
1254HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
1257
1258#ifdef __cplusplus
1259} /* extern "C" */
1260#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:5043
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
@ BMICON_SMALL
Definition: shlobj_undoc.h:168
@ BMICON_LARGE
Definition: shlobj_undoc.h:167
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
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:515
@ WALK_TREE_REFRESH
Definition: shlobj_undoc.h:519
@ WALK_TREE_DESTROY
Definition: shlobj_undoc.h:517
@ WALK_TREE_DEFAULT
Definition: shlobj_undoc.h:518
@ WALK_TREE_SAVE
Definition: shlobj_undoc.h:516
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:207
FOLDERSETTINGS FolderSettings
Definition: shlobj_undoc.h:206
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