ReactOS 0.4.16-dev-1946-g52006dd
undocshell.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Shell
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Undocumented shell definitions
5 * COPYRIGHT: Copyright 1999, 2000 Juergen Schmied
6 * Copyright 2025 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
7 */
8
9#ifndef _UNDOCSHELL_H
10#define _UNDOCSHELL_H
11
12#pragma once
13
14#include <shellapi.h>
15
16#ifndef SHSTDAPI
17#if defined(_SHELL32_) /* DECLSPEC_IMPORT disabled because of CORE-6504: */ || TRUE
18#define SHSTDAPI_(type) type WINAPI
19#else
20#define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type WINAPI
21#endif
22#define SHSTDAPI SHSTDAPI_(HRESULT)
23#endif
24
25#ifdef __cplusplus
26extern "C" {
27#endif /* defined(__cplusplus) */
28
29// Because ReactOS installs as Server by default, we ignore OS_SERVERADMINUI
30// in certain places to present a Client/Server hybrid UI.
31
32// Windows defaults to FVM_DETAILS for Administrators on OS_ANYSERVER (instead of FVM_ICON).
33#define ROSPOLICY_DESKTOPFOLDER_DEFLARGEICONS 1
34#define ROSPOLICY_DRIVESFOLDER_DEFLARGEICONS 1
35#define ROSPOLICY_CONTROLSFOLDER_DEFLARGEICONS 1
36
37#define ROSPOLICY_SHELL_NODEFKEYBOARDCUES 1
38
39#if (NTDDI_VERSION < NTDDI_LONGHORN)
40#define DBIMF_NOGRIPPER 0x0800
41#define DBIMF_ALWAYSGRIPPER 0x1000
42#define DBIMF_NOMARGINS 0x2000
43#endif // NTDDI_LONGHORN
44
45#if defined (_SHELLAPI_H) || defined (_INC_SHELLAPI)
46
47/****************************************************************************
48 * Taskbar interface WM_COPYDATA structures
49 * See http://www.geoffchappell.com/studies/windows/shell/shell32/api/shlnot/copydata.htm
50 */
51/* Data structure for Shell_NotifyIcon messages */
52typedef struct _TRAYNOTIFYDATAW
53{
54 DWORD dwSignature;
55 DWORD dwMessage;
56 NOTIFYICONDATAW nid; // Always use the latest NOTIFYICONDATAW structure version.
57} TRAYNOTIFYDATAW, *PTRAYNOTIFYDATAW;
58// Note: One could also introduce TRAYNOTIFYDATAA
59
60#define NI_NOTIFY_SIG 0x34753423 /* TRAYNOTIFYDATA */
61
62#endif /* defined (_SHELLAPI_H) || defined (_INC_SHELLAPI) */
63
64/****************************************************************************
65 * Taskbar WM_COMMAND identifiers
66 */
67#define TWM_DOEXITWINDOWS (WM_USER + 342)
68#define TWM_CYCLEFOCUS (WM_USER + 348)
69
70/****************************************************************************
71 * ProgMan messages
72 */
73#define WM_PROGMAN_OPENSHELLSETTINGS (WM_USER + 22) /* wParam specifies the dialog (and tab page) */
74#define WM_PROGMAN_SAVESTATE (WM_USER + 77)
75
76/****************************************************************************
77 * IDList Functions
78 */
80 LPCITEMIDLIST pidl,
81 LPVOID path);
82
83/* type parameter for ILGetDisplayNameEx() */
84#define ILGDN_FORPARSING 0
85#define ILGDN_NORMAL 1
86#define ILGDN_INFOLDER 2
87
89 LPSHELLFOLDER psf,
90 LPCITEMIDLIST pidl,
92 DWORD type);
93
94#if (NTDDI_VERSION >= NTDDI_LONGHORN) || defined(_SHELL32_)
96 _In_ IShellFolder *psf,
99 _Out_ LPWSTR pszBuf,
101#endif
102
107
109 LPCSTR path,
110 LPITEMIDLIST * ppidl,
111 DWORD *attributes);
112
115 LPITEMIDLIST * ppidl,
116 DWORD *attributes);
117
119 HWND hWnd,
120 IShellFolder* lpFolder,
121 LPCITEMIDLIST lpApidl,
122 LPCSTR lpVerb);
126 _In_ IContextMenu* pCM,
127 _In_ UINT fCMIC,
128 _In_opt_ LPCSTR pszVerb);
130 _In_ IContextMenu *pContextMenu,
131 _In_ HWND hwnd,
132 _In_ LPCSTR lpVerb,
134
135/*
136 string functions
137*/
140
141/****************************************************************************
142 * SHChangeNotifyRegister API
143 */
144#define SHCNRF_InterruptLevel 0x0001
145#define SHCNRF_ShellLevel 0x0002
146#define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
147#define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */
148
149/****************************************************************************
150 * SHChangeNotify
151 */
152
154{
156 // More info,,,
158
159//
160// Add missing types for print job notifications.
161//
162#define SHCNF_PRINTJOBA 0x0004
163#define SHCNF_PRINTJOBW 0x0007
164
166
167/****************************************************************************
168 * Shell Common Dialogs
169 */
170
171/* RunFileDlg flags */
172#define RFF_NOBROWSE 0x01 /* Removes the browse button */
173#define RFF_NODEFAULT 0x02 /* No default item selected */
174#define RFF_CALCDIRECTORY 0x04 /* Calculates the working directory from the file name */
175#define RFF_NOLABEL 0x08 /* Removes the edit box label */
176#define RFF_NOSEPARATEMEM 0x20 /* Removes the Separate Memory Space check box (Windows NT only) */
177
178/* RunFileFlg notification value and structure */
179#define RFN_VALIDATE (-510)
180#if 0 // Deprecated ANSI structure
181typedef struct _NMRUNFILEDLGA
182{
183 NMHDR hdr;
184 LPCSTR lpFile;
186 UINT nShow;
187} NMRUNFILEDLGA, *PNMRUNFILEDLGA, *LPNMRUNFILEDLGA;
188#endif
189typedef struct _NMRUNFILEDLGW
190{
196
200
201/* RunFileDlg notification return values */
202#define RF_OK 0x00
203#define RF_CANCEL 0x01
204#define RF_RETRY 0x02
205
206void WINAPI RunFileDlg(
207 HWND hWndOwner,
208 HICON hIcon,
209 LPCWSTR lpstrDirectory,
210 LPCWSTR lpstrTitle,
211 LPCWSTR lpstrDescription,
212 UINT uFlags);
213
214int WINAPI LogoffWindowsDialog(HWND hWndOwner);
215void WINAPI ExitWindowsDialog(HWND hWndOwner);
216
218 LPCITEMIDLIST pidlRoot,
219 LPCITEMIDLIST pidlSavedSearch);
220
221void WINAPI SHHandleDiskFull(HWND hwndOwner,
222 UINT uDrive);
223
225 HWND hwndOwner,
226 LPCSTR lpCaption,
227 UINT uType);
228
230
232 HWND hwndOwner,
233 LPCWSTR lpstrRemoteName,
234 DWORD dwType);
235
237
240 _Out_writes_to_(*puSize, *puSize) PWSTR pName,
241 _Inout_ PULONG puSize);
242
243/****************************************************************************
244 * Cabinet Window Messages
245 */
246
247#define CWM_SETPATH (WM_USER + 2)
248#define CWM_WANTIDLE (WM_USER + 3)
249#define CWM_GETSETCURRENTINFO (WM_USER + 4)
250#define CWM_SELECTITEM (WM_USER + 5)
251#define CWM_SELECTITEMSTR (WM_USER + 6)
252#define CWM_GETISHELLBROWSER (WM_USER + 7)
253#define CWM_TESTPATH (WM_USER + 9)
254#define CWM_STATECHANGE (WM_USER + 10)
255#define CWM_GETPATH (WM_USER + 12)
256
257#define WM_GETISHELLBROWSER CWM_GETISHELLBROWSER
258
259/* CWM_TESTPATH types */
260#define CWTP_ISEQUAL 0
261#define CWTP_ISCHILD 1
262
263/* CWM_TESTPATH structure */
264typedef struct
265{
269
270/****************************************************************************
271 * System Imagelist Routines
272 */
273
275 LPCSTR lpszFileName,
276 int nIconIndex,
277 UINT bSimulateDoc);
278
280 HIMAGELIST *lphimlLarge,
281 HIMAGELIST *lphimlSmall);
282
285 LPCSTR lpszPath,
287 UINT uFlags);
288
289BOOL WINAPI FileIconInit(BOOL bFullInit);
290
293 _In_ HANDLE hHandle,
295 _In_ WORD wIndex,
296 _Out_ LPWORD lpSize,
297 _Out_ LPHANDLE lpIcon);
298
301 _In_ HANDLE hHandle,
303 _In_ WORD wIndex,
304 _Out_ LPWORD lpSize,
305 _Out_ LPHANDLE lpIcon);
306
307/****************************************************************************
308 * File Menu Routines
309 */
310
311/* FileMenu_Create nSelHeight constants */
312#define FM_DEFAULT_SELHEIGHT -1
313#define FM_FULL_SELHEIGHT 0
314
315/* FileMenu_Create flags */
316#define FMF_SMALL_ICONS 0x00
317#define FMF_LARGE_ICONS 0x08
318#define FMF_NO_COLUMN_BREAK 0x10
319
321 COLORREF crBorderColor,
322 int nBorderWidth,
323 HBITMAP hBorderBmp,
324 int nSelHeight,
325 UINT uFlags);
326
327void WINAPI FileMenu_Destroy(HMENU hMenu);
328
329/* FileMenu_AppendItem constants */
330#define FM_SEPARATOR (LPCSTR)1
331#define FM_BLANK_ICON -1
332#define FM_DEFAULT_HEIGHT 0
333
335 HMENU hMenu,
336 LPCSTR lpszText,
337 UINT uID,
338 int iIcon,
339 HMENU hMenuPopup,
340 int nItemHeight);
341
342/* FileMenu_InsertUsingPidl flags */
343#define FMF_NO_EMPTY_ITEM 0x01
344#define FMF_NO_PROGRAM_GROUPS 0x04
345
346/* FileMenu_InsertUsingPidl callback function */
347typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
348
350 HMENU hMenu,
351 UINT uID,
352 LPCITEMIDLIST pidl,
353 UINT uFlags,
354 UINT uEnumFlags,
355 LPFNFMCALLBACK lpfnCallback);
356
358 HMENU hMenu,
359 UINT uID,
360 LPCITEMIDLIST pidl,
361 UINT uEnumFlags,
362 LPFNFMCALLBACK lpfnCallback);
363
365
367 HMENU hMenu,
368 LPCITEMIDLIST pidl);
369
371 HMENU hMenu,
372 UINT uFlags,
373 int x,
374 int y,
375 HWND hWnd,
376 LPTPMPARAMS lptpm);
377
379 UINT uReserved,
380 LPCITEMIDLIST *ppidlFolder,
381 LPCITEMIDLIST *ppidlItem);
382
384 HWND hWnd,
385 LPMEASUREITEMSTRUCT lpmis);
386
388 HWND hWnd,
389 LPDRAWITEMSTRUCT lpdis);
390
392
394
396 HMENU hMenu,
397 WPARAM wParam);
398
400
402 HMENU hMenu,
403 UINT uID);
404
406 HMENU hMenu,
407 UINT uPos);
408
410 HMENU hMenu,
411 UINT uID);
412
414
416 HMENU hMenu,
417 UINT uID,
418 BOOL bEnable);
419
421 HMENU hMenu,
422 UINT uPos);
423
425 HMENU hMenu,
426 LPCITEMIDLIST pidl,
427 BOOL bAddSeparator);
428
430 HMENU hMenu,
431 UINT uReserved,
432 UINT uID,
433 LPCITEMIDLIST pidl,
434 UINT uFlags,
435 UINT uEnumFlags,
436 LPFNFMCALLBACK lpfnCallback);
437
438/****************************************************************************
439 * Drag And Drop Routines
440 */
441
443 HWND hWnd,
444 LPDROPTARGET lpDropTarget);
445
447
449
451 HWND hWnd,
452 POINT pt);
453
455
456/****************************************************************************
457 * Path Manipulation Routines
458 */
459
460BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2);
461
462LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
463
465
467
469
471
473
475
477
479
481
483
485
487
489
491
493
495
497
499 LPVOID lpszBuffer,
500 DWORD dwBuffSize,
501 LPCVOID lpszShortName,
502 LPCVOID lpszLongName,
503 LPCVOID lpszPathName);
504
506 LPWSTR lpszBuffer,
507 LPCWSTR lpszPathName,
508 LPCWSTR lpszShortName,
509 LPCWSTR lpszLongName);
510
514
515/* PathResolve flags */
516#define PRF_CHECKEXISTANCE 0x01
517#define PRF_EXECUTABLE 0x02
518#define PRF_QUALIFYONPATH 0x04
519#define PRF_WINDOWS31 0x08
520
523BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags);
524
526
527/* PathProcessCommand flags */
528#define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
529#define PPCF_INCLUDEARGS 0x02
530//#define PPCF_NODIRECTORIES 0x10 move to shlobj
531#define PPCF_DONTRESOLVE 0x20
532#define PPCF_PATHISRELATIVE 0x40
533
535 DWORD dwBuffSize, DWORD dwFlags);
536
538
540
542
544
546
548
550
551BOOL WINAPI PathIsEqualOrSubFolder(_In_ LPCWSTR pszFile1OrCSIDL, _In_ LPCWSTR pszFile2);
552
555
556/****************************************************************************
557 * Shell File Operations error codes - SHFileOperationA/W
558 */
559
560/* Error codes could be pre-Win32 */
561#define DE_SAMEFILE 0x71
562#define DE_MANYSRC1DEST 0x72
563#define DE_DIFFDIR 0x73
564#define DE_ROOTDIR 0x74
565#define DE_OPCANCELLED 0x75
566#define DE_DESTSUBTREE 0x76
567#define DE_ACCESSDENIEDSRC 0x78
568#define DE_PATHTOODEEP 0x79
569#define DE_MANYDEST 0x7A
570#define DE_INVALIDFILES 0x7C
571#define DE_DESTSAMETREE 0x7D
572#define DE_FLDDESTISFILE 0x7E
573#define DE_FILEDESTISFLD 0x80
574#define DE_FILENAMETOOLONG 0x81
575#define DE_DEST_IS_CDROM 0x82
576#define DE_DEST_IS_DVD 0x83
577#define DE_DEST_IS_CDRECORD 0x84
578#define DE_FILE_TOO_LARGE 0x85
579#define DE_SRC_IS_CDROM 0x86
580#define DE_SRC_IS_DVD 0x87
581#define DE_SRC_IS_CDRECORD 0x88
582// #define DE_ERROR_MAX
583#define ERRORONDEST 0x10000
584
585/****************************************************************************
586 * Shell settings
587 */
588
589typedef struct _REGSHELLSTATE
590{
594#define REGSHELLSTATE_SIZE 0x24
595#define REGSHELLSTATE_VERSION 0xD
597
598/****************************************************************************
599 * Shell Namespace Routines
600 */
601
602/* Generic structure used by several messages */
603typedef struct
604{
610typedef const SFVCBINFO *LPCSFVCBINFO;
611
612/* SFVCB_SELECTIONCHANGED structure */
613typedef struct
614{
621
622/* SFVCB_COPYHOOKCALLBACK structure */
623typedef struct
624{
634
635/* SFVCB_GETDETAILSOF structure */
636typedef struct
637{
639 int fmt;
640 int cx;
643
644/****************************************************************************
645 * Misc Stuff
646 */
647
649RegenerateUserEnvironment(LPVOID *lpEnvironment, BOOL bUpdateSelf);
650
651/* SHWaitForFileToOpen flags */
652#define SHWFF_ADD 0x01
653#define SHWFF_REMOVE 0x02
654#define SHWFF_WAIT 0x04
655
657 LPCITEMIDLIST pidl,
659 DWORD dwTimeout);
660
664 LPCRECT lpRect,
665 WORD cKids,
666 CONST HWND * lpKids);
667
668/* Flags for ShellExecCmdLine */
669#define SECL_NO_UI 0x2
670#define SECL_LOG_USAGE 0x8
671#define SECL_USE_IDLIST 0x10
672#define SECL_ALLOW_NONEXE 0x20
673#define SECL_RUNAS 0x40
674
676 HWND hwnd,
677 LPCWSTR pwszCommand,
678 LPCWSTR pwszStartDir,
679 int nShow,
680 LPVOID pUnused,
681 DWORD dwSeclFlags);
682
683/*
684 * Undocumented SEE_MASK_* flags for the SHELLEXECUTEINFO::fMask member
685 * used by ShellExecuteEx(). These are absent from the official Windows SDK.
686 * However they are used in shobjidl.idl to define some CMIC_MASK_* flags,
687 * these ones being mentioned in the MSDN documentation of the
688 * CMINVOKECOMMANDINFOEX structure.
689 */
690#define SEE_MASK_UNKNOWN_0x1000 0x00001000 // FIXME: Name
691#define SEE_MASK_NO_HOOKS 0x00002000 // https://www.yisu.com/ask/30968554.html
692#define SEE_MASK_HASLINKNAME 0x00010000
693#define SEE_MASK_FLAG_SEPVDM 0x00020000
694#define SEE_MASK_USE_RESERVED 0x00040000
695#define SEE_MASK_HASTITLE 0x00080000
696#define SEE_MASK_FILEANDURL 0x00400000 // https://textslashplain.com/2019/09/25/web-to-app-communication-directinvoke/
697
701 _In_opt_ LPCSTR lpOperation,
702 _In_opt_ LPCSTR lpFile,
703 _In_opt_ LPCSTR lpParameters,
705 _In_opt_ LPSTR lpReturn,
708 _In_ INT nCmdShow,
709 _Out_opt_ PHANDLE lphProcess);
710
714 _In_opt_ LPCWSTR lpOperation,
715 _In_opt_ LPCWSTR lpFile,
716 _In_opt_ LPCWSTR lpParameters,
718 _In_opt_ LPWSTR lpReturn,
721 _In_ INT nCmdShow,
722 _Out_opt_ PHANDLE lphProcess);
723
727 _In_opt_ LPCSTR lpOperation,
728 _In_opt_ LPCSTR lpFile,
729 _In_opt_ LPCSTR lpParameters,
731 _In_opt_ LPSTR lpReturn,
734 _In_ INT nCmdShow,
735 _Out_opt_ PHANDLE lphProcess,
737
741 _In_opt_ LPCWSTR lpOperation,
742 _In_opt_ LPCWSTR lpFile,
743 _In_opt_ LPCWSTR lpParameters,
745 _In_opt_ LPWSTR lpReturn,
748 _In_ INT nCmdShow,
749 _Out_opt_ PHANDLE lphProcess,
751
756 _In_ PCSTR pszCmdLine,
757 _In_ INT nCmdShow);
758
763 _In_ PCSTR pszCmdLine,
764 _In_ INT nCmdShow);
765
770 _In_ PCWSTR pszCmdLine,
771 _In_ INT nCmdShow);
772
773/* RegisterShellHook types */
774#define RSH_DEREGISTER 0
775#define RSH_REGISTER 1
776#define RSH_REGISTER_PROGMAN 2
777#define RSH_REGISTER_TASKMAN 3
778
780 HWND hWnd,
781 DWORD dwType);
782
783/* SHCreateDefClassObject callback function */
785 LPUNKNOWN pUnkOuter,
786 REFIID riidObject,
787 LPVOID *ppvObject);
788
790 REFIID riidFactory,
791 LPVOID *ppvFactory,
792 LPFNCDCOCALLBACK lpfnCallback,
793 LPDWORD lpdwUsage,
794 REFIID riidObject);
795
797
799 _In_opt_ LPCWSTR aclsid,
800 _In_opt_ const CLSID *clsid,
801 _In_opt_ LPUNKNOWN pUnkOuter,
802 _In_ REFIID refiid,
803 _Out_ LPVOID *ppv);
804
805/* SHCreateLinks flags */
806#define SHCLF_PREFIXNAME 0x01
807#define SHCLF_CREATEONDESKTOP 0x02
808
810 HWND hWnd,
811 LPCSTR lpszDir,
812 LPDATAOBJECT lpDataObject,
813 UINT uFlags,
814 LPITEMIDLIST *lppidlLinks);
815
818
819/* policy functions */
821
822#define CSIDL_FOLDER_MASK 0x00ff
823
824/* Utility functions */
825#include <stdio.h>
826
827#define SMC_EXEC 4
829
832HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv);
833
835 _In_ PCSTR psz,
836 _Out_ LPGUID pguid);
837
839 _In_ PCWSTR psz,
840 _Out_ LPGUID pguid);
841
844 _In_ PCSTR pszSrc,
845 _In_opt_ PCSTR pszLast,
846 _In_ PCSTR pszSearch);
847
850 _In_ PCWSTR pszSrc,
851 _In_opt_ PCWSTR pszLast,
852 _In_ PCWSTR pszSearch);
853
856
857/* Flags for Int64ToString and LargeIntegerToString */
858#define FMT_USE_NUMDIGITS 0x01
859#define FMT_USE_LEADZERO 0x02
860#define FMT_USE_GROUPING 0x04
861#define FMT_USE_DECIMAL 0x08
862#define FMT_USE_THOUSAND 0x10
863#define FMT_USE_NEGNUMBER 0x20
864
867 _In_ LONGLONG llValue,
868 _Out_writes_z_(cchOut) LPWSTR pszOut,
869 _In_ UINT cchOut,
870 _In_ BOOL bUseFormat,
871 _In_opt_ const NUMBERFMTW *pNumberFormat,
872 _In_ DWORD dwNumberFlags);
873
876 _In_ const LARGE_INTEGER *pLargeInt,
877 _Out_writes_z_(cchOut) LPWSTR pszOut,
878 _In_ UINT cchOut,
879 _In_ BOOL bUseFormat,
880 _In_opt_ const NUMBERFMTW *pNumberFormat,
881 _In_ DWORD dwNumberFlags);
882
885 _In_ DWORD dwNumber,
886 _Out_writes_(0x8FFF) LPWSTR pszBuffer);
887
890
892
895 _In_z_ LPCWSTR pszName,
898
901
903
906 _In_ HWND hwnd,
909 _In_ INT cmdshow);
910
912
913/*****************************************************************************
914 * Shell32 resources
915 */
916// these resources are in shell32.dll
917#define IDB_GOBUTTON_NORMAL 0x0e6
918#define IDB_GOBUTTON_HOT 0x0e7
919
920// band ids in internet toolbar
921#define ITBBID_MENUBAND 1
922#define ITBBID_BRANDBAND 5
923#define ITBBID_TOOLSBAND 2
924#define ITBBID_ADDRESSBAND 4
925
926// commands in the CGID_PrivCITCommands command group handled by the internet toolbar
927// there seems to be some support for hiding the menubar and an auto hide feature that are
928// unavailable in the UI
929#define ITID_TEXTLABELS 3
930#define ITID_TOOLBARBANDSHOWN 4
931#define ITID_ADDRESSBANDSHOWN 5
932#define ITID_LINKSBANDSHOWN 6
933#define ITID_MENUBANDSHOWN 12
934#define ITID_AUTOHIDEENABLED 13
935#define ITID_CUSTOMIZEENABLED 20
936#define ITID_TOOLBARLOCKED 27
937
938// commands in the CGID_BrandCmdGroup command group handled by the brand band
939#define BBID_STARTANIMATION 1
940#define BBID_STOPANIMATION 2
941
942// undocumented flags for IShellMenu::SetShellFolder
943#define SMSET_UNKNOWN08 0x08
944#define SMSET_UNKNOWN10 0x10
945
946// explorer tray commands
947#define TRAYCMD_STARTMENU 305
948#define TRAYCMD_RUN_DIALOG 401
949#define TRAYCMD_LOGOFF_DIALOG 402
950#define TRAYCMD_CASCADE 403
951#define TRAYCMD_TILE_H 404
952#define TRAYCMD_TILE_V 405
953#define TRAYCMD_TOGGLE_DESKTOP 407
954#define TRAYCMD_DATE_AND_TIME 408
955#define TRAYCMD_TASKBAR_PROPERTIES 413
956#define TRAYCMD_MINIMIZE_ALL 415
957#define TRAYCMD_RESTORE_ALL 416
958#define TRAYCMD_SHOW_DESKTOP 419
959#define TRAYCMD_SHOW_TASK_MGR 420
960#define TRAYCMD_CUSTOMIZE_TASKBAR 421
961#define TRAYCMD_LOCK_TASKBAR 424
962#define TRAYCMD_HELP_AND_SUPPORT 503
963#define TRAYCMD_CONTROL_PANEL 505
964#define TRAYCMD_SHUTDOWN_DIALOG 506
965#define TRAYCMD_PRINTERS_AND_FAXES 510
966#define TRAYCMD_LOCK_DESKTOP 517
967#define TRAYCMD_SWITCH_USER_DIALOG 5000
968#define TRAYCMD_SEARCH_FILES 41093
969#define TRAYCMD_SEARCH_COMPUTERS 41094
970
971// Explorer Tray Application Bar Data Message Commands
972#define TABDMC_APPBAR 0
973#define TABDMC_NOTIFY 1
974#define TABDMC_LOADINPROC 2
975
976void WINAPI ShellDDEInit(BOOL bInit);
977
979
980HRESULT WINAPI SHCreateSessionKey(REGSAM samDesired, PHKEY phKey);
981
983 HKEY hkey,
984 LPCSTR lpValueName,
986 LPDWORD lpType,
987 LPBYTE lpData,
988 LPDWORD lpcbData);
989
991 HKEY hkey,
993 LPDWORD pdwReserved,
997
998#ifdef UNICODE
999#define SHRegQueryValueEx SHRegQueryValueExW
1000#else
1001#define SHRegQueryValueEx SHRegQueryValueExA
1002#endif
1003
1006 _In_ LPCVOID pv,
1007 _In_ UINT_PTR ucb);
1008
1011 _In_ IStream *pSrc,
1012 _Out_ IStream *pDst,
1013 _Inout_opt_ IProgressDialog *pProgress,
1014 _In_opt_ DWORDLONG dwlSize);
1015
1016// Flags for SHGetComputerDisplayNameW
1017#define SHGCDN_NOCACHE 0x1
1018#define SHGCDN_NOSERVERNAME 0x10000
1019
1022 _In_opt_ LPWSTR pszServerName,
1024 _Out_writes_z_(cchNameMax) LPWSTR pszName,
1025 _In_ DWORD cchNameMax);
1026
1027/*****************************************************************************
1028 * INVALID_FILETITLE_CHARACTERS
1029 */
1030
1031#define INVALID_FILETITLE_CHARACTERSA "\\/:*?\"<>|"
1032#define INVALID_FILETITLE_CHARACTERSW L"\\/:*?\"<>|"
1033
1034#ifdef UNICODE
1035 #define INVALID_FILETITLE_CHARACTERS INVALID_FILETITLE_CHARACTERSW
1036#else
1037 #define INVALID_FILETITLE_CHARACTERS INVALID_FILETITLE_CHARACTERSA
1038#endif
1039
1040/*****************************************************************************
1041 * Shell Link
1042 */
1043#include <pshpack1.h>
1044
1046{
1047 /* The size of this structure (always 0x0000004C) */
1049 /* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
1051 /* Flags (SHELL_LINK_DATA_FLAGS) */
1053 /* Informations about the link target: */
1058 DWORD nFileSizeLow; /* only the least significant 32 bits */
1059 /* The index of an icon (signed?) */
1061 /* The expected window state of an application launched by the link */
1063 /* The keystrokes used to launch the application */
1065 /* Reserved (must be zero) */
1070
1071/*****************************************************************************
1072 * SHELL_LINK_INFOA/W
1073 * If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
1074 * If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
1075 */
1077{
1078 /* Size of the link info data */
1080 /* Size of this structure (ANSI: = 0x0000001C) */
1082 /* Specifies which fields are present/populated (SLI_*) */
1084 /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
1086 /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
1088 /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
1090 /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
1093
1095{
1096 /* Size of the link info data */
1098 /* Size of this structure (Unicode: >= 0x00000024) */
1100 /* Specifies which fields are present/populated (SLI_*) */
1102 /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
1104 /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
1106 /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
1108 /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
1110 /* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
1112 /* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
1115
1116/* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
1117#define SLI_VALID_LOCAL 0x00000001
1118/* CommonNetworkRelativeLink is present */
1119#define SLI_VALID_NETWORK 0x00000002
1120
1121/*****************************************************************************
1122 * SHELL_LINK_INFO_VOLUME_IDA/W
1123 * If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
1124 * SHELL_LINK_INFO_VOLUME_IDA
1125 * If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
1126 */
1128{
1129 /* Size of the VolumeID field (> 0x00000010) */
1131 /* Drive type of the drive the link target is stored on (DRIVE_*) */
1133 /* Serial number of the volume the link target is stored on */
1135 /* Offset of the volume label (ANSI, NULL-terminated string).
1136 Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
1139
1141{
1142 /* Size of the VolumeID field (> 0x00000010) */
1144 /* Drive type of the drive the link target is stored on (DRIVE_*) */
1146 /* Serial number of the volume the link target is stored on */
1148 /* Offset of the volume label (ANSI, NULL-terminated string).
1149 If the value of this field is 0x00000014, ignore it and use
1150 cbVolumeLabelUnicodeOffset! */
1152 /* Offset of the volume label (Unicode, NULL-terminated string).
1153 If the value of the VolumeLabelOffset field is not 0x00000014,
1154 this field must be ignored (==> it doesn't exists ==> ANSI). */
1157
1158/*****************************************************************************
1159 * SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
1160 * If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
1161 * If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
1162 */
1164{
1165 /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
1167 /* Specifies which fields are present/populated (SLI_CNR_*) */
1169 /* Offset of the NetName field (ANSI, NULL–terminated string) */
1171 /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
1173 /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
1176
1178{
1179 /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
1181 /* Specifies which fields are present/populated (SLI_CNR_*) */
1183 /* Offset of the NetName field (ANSI, NULL–terminated string) */
1185 /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
1187 /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
1189 /* Offset of the NetNameUnicode field (Unicode, NULL–terminated string) */
1191 /* Offset of the DeviceNameUnicode field (Unicode, NULL–terminated string) */
1194
1195/* DeviceName is present */
1196#define SLI_CNR_VALID_DEVICE 0x00000001
1197/* NetworkProviderType is present */
1198#define SLI_CNR_VALID_NET_TYPE 0x00000002
1199
1200/*****************************************************************************
1201 * Shell Link Extra Data (IShellLinkDataList)
1202 */
1203typedef struct tagEXP_TRACKER
1204{
1205 /* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
1207 /* Length >= 0x00000058 */
1209 /* Must be 0x00000000 */
1211 /* NetBIOS name (ANSI, unused bytes are set to zero) */
1212 CHAR szMachineID[16]; /* "variable" >= 16 (?) */
1213 /* Some GUIDs for the Link Tracking service (from the FS?) */
1219
1220typedef struct tagEXP_SHIM
1221{
1222 /* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
1224 /* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
1225 WCHAR szwLayerName[64]; /* "variable" >= 64 */
1227
1229{
1230 /* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
1232 /* A GUID value that identifies a known folder */
1234 /* Specifies the location of the ItemID of the first child
1235 segment of the IDList specified by guidKnownFolder */
1238
1240{
1241 /* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
1243 /* Specifies an alternate IDList that can be used instead
1244 of the "normal" IDList (SLDF_HAS_ID_LIST) */
1245 /* LPITEMIDLIST pIDList; (variable) */
1247
1248#define EXP_TRACKER_SIG 0xa0000003
1249#define EXP_SHIM_SIG 0xa0000008
1250#define EXP_KNOWN_FOLDER_SIG 0xa000000b
1251#define EXP_VISTA_ID_LIST_SIG 0xa000000c
1252
1253/* Not compatible yet */
1255{
1261
1262#include <poppack.h>
1263
1264#if defined(_WIN64) || defined(BUILD_WOW6432)
1265 typedef UINT64 APPBAR_OUTPUT;
1266#else
1268#endif
1269
1270/*
1271 * Private structures for internal AppBar messaging.
1272 * These structures can be sent from 32-bit shell32 to 64-bit Explorer.
1273 * See also: https://learn.microsoft.com/en-us/windows/win32/winprog64/interprocess-communication
1274 * > ... only the lower 32 bits are significant, so it is safe to truncate the handle
1275 * See also: https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-duplicatehandle
1276 * > DuplicateHandle can be used to duplicate a handle between a 32-bit process and a 64-bit process.
1277 */
1278#include <pshpack8.h>
1280{
1281 DWORD cbSize; /* == sizeof(APPBARDATAINTEROP) */
1288typedef struct tagAPPBAR_COMMAND
1289{
1292 APPBAR_OUTPUT hOutput; /* For shlwapi!SHAllocShared */
1295#include <poppack.h>
1296
1297#if defined(_WIN64) || defined(BUILD_WOW6432)
1298C_ASSERT(sizeof(APPBAR_COMMAND) == 0x40);
1299#else
1300C_ASSERT(sizeof(APPBAR_COMMAND) == 0x38);
1301#endif
1302
1303#ifdef __cplusplus
1304} /* extern "C" */
1305#endif /* defined(__cplusplus) */
1306
1307#endif /* _UNDOCSHELL_H */
unsigned long long UINT64
unsigned int UINT32
DWORD dwFileAttributes
#define ShellExecCmdLine
HWND hWnd
Definition: settings.c:17
HINSTANCE hInstance
Definition: charmap.c:19
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
static HWND hwndParent
Definition: cryptui.c:300
TCHAR lpTitle[80]
Definition: ctm.c:69
static LPVOID LPUNKNOWN
Definition: dinput.c:53
UINT uFlags
Definition: api.c:59
#define CALLBACK
Definition: compat.h:35
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
#define pt(x, y)
Definition: drawing.c:79
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLbitfield flags
Definition: glext.h:7161
GLenum GLsizei len
Definition: glext.h:6722
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
unsigned long long DWORDLONG
Definition: intsafe.h:93
#define C_ASSERT(e)
Definition: intsafe.h:73
char hdr[14]
Definition: iptest.cpp:33
NOTIFYICONDATA nid
Definition: magnifier.c:44
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
LPCWSTR szPath
Definition: env.c:37
static LPSTR pName
Definition: security.c:75
static HBITMAP
Definition: button.c:44
static HINSTANCE hinst
Definition: edit.c:551
static HICON
Definition: imagelist.c:80
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
WORD unused[29]
Definition: crypt.c:1155
HICON hIcon
Definition: msconfig.c:44
const CLSID * clsid
Definition: msctf.cpp:50
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
unsigned int UINT
Definition: ndis.h:50
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
Definition: netsh.h:116
#define _Out_writes_z_(s)
Definition: no_sal2.h:180
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _In_z_
Definition: no_sal2.h:164
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Out_writes_(s)
Definition: no_sal2.h:176
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_to_(s, c)
Definition: no_sal2.h:188
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF _Out_opt_ LPDWORD pdwType
Definition: shlwapi.h:783
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
Definition: shlwapi.h:757
_In_ UINT cchBuf
Definition: shlwapi.h:378
_In_ UINT uID
Definition: shlwapi.h:156
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
Definition: shlwapi.h:783
_In_opt_ LPCSTR lpDirectory
Definition: shellapi.h:496
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
TCHAR * cmdline
Definition: stretchblt.cpp:32
ITEMIDLIST idl
Definition: undocshell.h:267
LPDWORD lpdwUser
Definition: undocshell.h:608
DWORD dwReserved
Definition: undocshell.h:605
LPCITEMIDLIST pidl
Definition: undocshell.h:607
DWORD dwReserved2
Definition: undocshell.h:606
LPCITEMIDLIST pidl
Definition: undocshell.h:638
STRRET lpText
Definition: undocshell.h:641
DWORD dwDestAttribs
Definition: undocshell.h:631
DWORD dwSrcAttribs
Definition: undocshell.h:629
LPCSTR pszSrcFile
Definition: undocshell.h:628
LPCSTR pszDestFile
Definition: undocshell.h:630
LPCITEMIDLIST pidl
Definition: undocshell.h:617
LPDWORD lpdwUser
Definition: undocshell.h:618
LPCWSTR lpFile
Definition: undocshell.h:192
LPCWSTR lpDirectory
Definition: undocshell.h:193
SHELLSTATE ss
Definition: undocshell.h:592
APPBAR_OUTPUT hOutput
Definition: undocshell.h:1292
APPBARDATAINTEROP abd
Definition: undocshell.h:1290
DATABLOCK_HEADER dbh
Definition: undocshell.h:1231
WCHAR szwLayerName[64]
Definition: undocshell.h:1225
DATABLOCK_HEADER dbh
Definition: undocshell.h:1223
CHAR szMachineID[16]
Definition: undocshell.h:1212
GUID guidDroidObject
Definition: undocshell.h:1215
DATABLOCK_HEADER dbh
Definition: undocshell.h:1206
GUID guidDroidBirthVolume
Definition: undocshell.h:1216
GUID guidDroidVolume
Definition: undocshell.h:1214
GUID guidDroidBirthObject
Definition: undocshell.h:1217
DATABLOCK_HEADER dbh
Definition: undocshell.h:1242
Definition: windef.h:99
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
char * PSTR
Definition: typedefs.h:51
const uint16_t * PCWSTR
Definition: typedefs.h:57
unsigned char * LPBYTE
Definition: typedefs.h:53
int64_t LONGLONG
Definition: typedefs.h:68
uint16_t * LPWORD
Definition: typedefs.h:56
uint32_t * LPDWORD
Definition: typedefs.h:59
int32_t INT
Definition: typedefs.h:58
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG
Definition: typedefs.h:59
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath)
Definition: pidl.c:1217
int WINAPI FileMenu_AppendFilesForPidl(HMENU hMenu, LPCITEMIDLIST pidl, BOOL bAddSeparator)
Definition: shlmenu.c:478
HANDLE APPBAR_OUTPUT
Definition: undocshell.h:1267
LONG WINAPI SHRegQueryValueExW(HKEY hkey, LPCWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData)
Definition: shellreg.c:108
LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive)
BOOL WINAPI DAD_DragEnter(HWND hWnd)
Definition: shellord.c:1746
BOOL WINAPI PathIsTemporaryA(_In_ LPCSTR Str)
BOOL WINAPI GUIDFromStringA(_In_ PCSTR psz, _Out_ LPGUID pguid)
struct SFVSELECTSTATE * LPSFVSELECTSTATE
BOOL WINAPI FileMenu_DeleteItemByIndex(HMENU hMenu, UINT uPos)
Definition: shlmenu.c:727
BOOL WINAPI SHSettingsChanged(LPCVOID unused, LPCWSTR pszKey)
Definition: shpolicy.c:203
BOOL WINAPI IsSuspendAllowed(VOID)
Definition: utils.cpp:850
int WINAPI FileMenu_AddFilesForPidl(HMENU hMenu, UINT uReserved, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:504
BOOL WINAPI SHFindComputer(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: utils.cpp:1171
struct tagSHELL_LINK_INFO_VOLUME_IDW * LPSHELL_LINK_INFO_VOLUME_IDW
struct SFVCBINFO * LPSFVCBINFO
int WINAPI FileMenu_ReplaceUsingPidl(HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:439
struct tagSHELL_LINK_INFOW SHELL_LINK_INFOW
struct tagAPPBARDATAINTEROP * PAPPBARDATAINTEROP
const SFVCBINFO * LPCSFVCBINFO
Definition: undocshell.h:610
VOID WINAPI PathQualifyA(LPSTR pszPath)
Definition: shellpath.c:957
LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl)
Definition: pidl.c:472
BOOL WINAPI PathIsExeAW(LPCVOID lpszPath)
Definition: shellpath.c:557
HRESULT WINAPI SHCreateDefClassObject(REFIID riidFactory, LPVOID *ppvFactory, LPFNCDCOCALLBACK lpfnCallback, LPDWORD lpdwUsage, REFIID riidObject)
struct _NMRUNFILEDLGW * PNMRUNFILEDLGW
struct tagSHELL_LINK_INFO_CNR_LINKW SHELL_LINK_INFO_CNR_LINKW
struct SFVCOPYHOOKINFO * LPSFVCOPYHOOKINFO
LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2)
struct CWTESTPATHSTRUCT * LPCWTESTPATHSTRUCT
LPVOID WINAPI PathFindExtensionAW(LPCVOID path)
int WINAPI LogoffWindowsDialog(HWND hWndOwner)
Definition: dialogs.cpp:1541
HINSTANCE WINAPI RealShellExecuteW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_opt_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_opt_ LPWSTR lpReturn, _In_opt_ LPCWSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess)
Definition: shlexec.cpp:3207
BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec)
BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu)
Definition: shlmenu.c:646
HRESULT WINAPI SHLimitInputCombo(HWND hWnd, IShellFolder *psf)
BOOL WINAPI FileMenu_TrackPopupMenuEx(HMENU hMenu, UINT uFlags, int x, int y, HWND hWnd, LPTPMPARAMS lptpm)
Definition: shlmenu.c:524
void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath)
HRESULT WINAPI SHRegisterDragDrop(HWND hWnd, LPDROPTARGET lpDropTarget)
Definition: shellord.c:739
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:404
struct _SHCNF_PRINTJOB_INFO * PSHCNF_PRINTJOB_INFO
BOOL WINAPI RegisterShellHook(HWND hWnd, DWORD dwType)
Definition: shellord.c:510
LPWSTR WINAPI ShortSizeFormatW(_In_ DWORD dwNumber, _Out_writes_(0x8FFF) LPWSTR pszBuffer)
Definition: utils.cpp:696
BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu)
Definition: shlmenu.c:761
BOOL WINAPI StrRetToStrNW(LPWSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:85
void WINAPI SHFreeUnusedLibraries(void)
Definition: shellord.c:1728
DWORD WINAPI FileMenu_GetItemExtent(HMENU hMenu, UINT uPos)
Definition: shlmenu.c:785
HRESULT WINAPI SHInvokePrivilegedFunctionW(_In_z_ LPCWSTR pszName, _In_ PRIVILEGED_FUNCTION fn, _In_opt_ LPARAM lParam)
void WINAPI PathStripPathAW(LPVOID lpszPath)
#define REGSHELLSTATE_SIZE
Definition: undocshell.h:594
struct tagSHELL_LINK_INFOA * LPSHELL_LINK_INFOA
HRESULT WINAPI SHCreatePropertyBag(_In_ REFIID riid, _Out_ void **ppvObj)
Definition: utils.cpp:903
VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath)
LPNMRUNFILEDLGW LPNMRUNFILEDLG
Definition: undocshell.h:199
BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath)
HMENU WINAPI FileMenu_Create(COLORREF crBorderColor, int nBorderWidth, HBITMAP hBorderBmp, int nSelHeight, UINT uFlags)
Definition: shlmenu.c:250
VOID WINAPI ShellExec_RunDLLW(_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCWSTR pszCmdLine, _In_ INT nCmdShow)
Definition: shlexec.cpp:3430
PNMRUNFILEDLGW PNMRUNFILEDLG
Definition: undocshell.h:198
IStream *WINAPI SHGetViewStream(LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR)
BOOL WINAPI FileMenu_AppendItem(HMENU hMenu, LPCSTR lpszText, UINT uID, int iIcon, HMENU hMenuPopup, int nItemHeight)
BOOL WINAPI PathIsRootAW(LPCVOID x)
Definition: shellpath.c:511
LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath)
struct tagSHELL_LINK_INFO_CNR_LINKA SHELL_LINK_INFO_CNR_LINKA
BOOL WINAPI SHIsTempDisplayMode(VOID)
struct tagSHELL_LINK_INFO_CNR_LINKW * LPSHELL_LINK_INFO_CNR_LINKW
BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2)
Definition: shellpath.c:407
HMENU WINAPI FileMenu_FindSubMenuByPidl(HMENU hMenu, LPCITEMIDLIST pidl)
Definition: shlmenu.c:467
BOOL WINAPI IContextMenu_Invoke(_In_ IContextMenu *pContextMenu, _In_ HWND hwnd, _In_ LPCSTR lpVerb, _In_ UINT uFlags)
Definition: utils.cpp:196
void WINAPI ExitWindowsDialog(HWND hWndOwner)
Definition: dialogs.cpp:1604
struct tagEXP_TRACKER EXP_TRACKER
void WINAPI PathRemoveArgsAW(LPVOID lpszPath)
BOOL WINAPI PathStripToRootAW(LPVOID lpszPath)
WORD WINAPI ExtractIconResInfoW(_In_ HANDLE hHandle, _In_ LPCWSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
Definition: stubs.cpp:652
BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(HMENU hMenu, UINT uID)
INT WINAPI LargeIntegerToString(_In_ const LARGE_INTEGER *pLargeInt, _Out_writes_z_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO
Definition: undocshell.h:633
BOOL WINAPI PathIsEqualOrSubFolder(_In_ LPCWSTR pszFile1OrCSIDL, _In_ LPCWSTR pszFile2)
Definition: utils.cpp:1612
struct tagSHELL_LINK_INFO_VOLUME_IDA SHELL_LINK_INFO_VOLUME_IDA
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
Definition: shellord.c:2674
BOOL WINAPI FileMenu_GetLastSelectedItemPidls(UINT uReserved, LPCITEMIDLIST *ppidlFolder, LPCITEMIDLIST *ppidlItem)
Definition: shlmenu.c:540
struct tagSHELL_LINK_INFOA SHELL_LINK_INFOA
BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath)
Definition: shellpath.c:567
LRESULT WINAPI FileMenu_DrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpdis)
Definition: shlmenu.c:586
HRESULT WINAPI SHGetUserDisplayName(_Out_writes_to_(*puSize, *puSize) PWSTR pName, _Inout_ PULONG puSize)
Definition: utils.cpp:1895
BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl, LPVOID path)
Definition: pidl.c:184
INT WINAPI Int64ToString(_In_ LONGLONG llValue, _Out_writes_z_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
void WINAPI ShellDDEInit(BOOL bInit)
Definition: shdocvw_main.c:261
void WINAPI SHHandleDiskFull(HWND hwndOwner, UINT uDrive)
Definition: stubs.cpp:596
HRESULT WINAPI SHShouldShowWizards(_In_ IUnknown *pUnknown)
Definition: utils.cpp:216
struct tagSHELL_LINK_HEADER * LPSHELL_LINK_HEADER
struct tagEXP_KNOWN_FOLDER * LPEXP_KNOWN_FOLDER
VOID WINAPI PathQuoteSpacesAW(LPVOID path)
int WINAPI FileMenu_InsertUsingPidl(HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:414
BOOL WINAPI PathResolveW(LPWSTR path, LPCWSTR *dirs, DWORD flags)
struct tagEXP_TRACKER * LPEXP_TRACKER
BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2)
HRESULT WINAPI CopyStreamUI(_In_ IStream *pSrc, _Out_ IStream *pDst, _Inout_opt_ IProgressDialog *pProgress, _In_opt_ DWORDLONG dwlSize)
Definition: utils.cpp:1359
struct _NMRUNFILEDLGW NMRUNFILEDLGW
struct tagSHELL_LINK_INFO_VOLUME_IDW SHELL_LINK_INFO_VOLUME_IDW
BOOL WINAPI RegenerateUserEnvironment(LPVOID *lpEnvironment, BOOL bUpdateSelf)
Definition: shell32.cpp:71
void WINAPI FileMenu_Invalidate(HMENU hMenu)
Definition: shlmenu.c:459
BOOL WINAPI SHIsBadInterfacePtr(_In_ LPCVOID pv, _In_ UINT_PTR ucb)
Definition: utils.cpp:1871
BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu)
Definition: shlmenu.c:669
HRESULT WINAPI SHCreateLinks(HWND hWnd, LPCSTR lpszDir, LPDATAOBJECT lpDataObject, UINT uFlags, LPITEMIDLIST *lppidlLinks)
#define SHSTDAPI
Definition: undocshell.h:22
BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath)
LPSTR WINAPI SheRemoveQuotesA(LPSTR psz)
Definition: utils.cpp:1087
HINSTANCE WINAPI RealShellExecuteA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_opt_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_opt_ LPSTR lpReturn, _In_opt_ LPCSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess)
Definition: shlexec.cpp:3177
HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
Definition: shellpath.c:1154
BOOL WINAPI SHTestTokenPrivilegeW(_In_opt_ HANDLE hToken, _In_z_ LPCWSTR lpName)
const SFVSELECTSTATE * LPCSFVSELECTSTATE
Definition: undocshell.h:620
void WINAPI ILGlobalFree(LPITEMIDLIST pidl)
Definition: pidl.c:1065
struct tagAPPBARDATAINTEROP APPBARDATAINTEROP
int WINAPI PathParseIconLocationAW(LPVOID lpszPath)
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
Definition: pidl.c:172
void WINAPI PathRemoveBlanksAW(LPVOID lpszPath)
BOOL WINAPI GUIDFromStringW(_In_ PCWSTR psz, _Out_ LPGUID pguid)
WORD WINAPI ArrangeWindows(HWND hwndParent, DWORD dwReserved, LPCRECT lpRect, WORD cKids, CONST HWND *lpKids)
BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags)
Definition: shellpath.c:1109
HRESULT WINAPI SHExtCoCreateInstance(_In_opt_ LPCWSTR aclsid, _In_opt_ const CLSID *clsid, _In_opt_ LPUNKNOWN pUnkOuter, _In_ REFIID refiid, _Out_ LPVOID *ppv)
Definition: shellole.c:222
VOID WINAPI CheckEscapesW(LPWSTR string, DWORD len)
Definition: shellstring.c:252
BOOL WINAPI FileIconInit(BOOL bFullInit)
Definition: shellord.c:1889
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath)
Definition: pidl.c:1239
VOID WINAPI ShellExec_RunDLL(_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCSTR pszCmdLine, _In_ INT nCmdShow)
BOOL WINAPI FileMenu_EnableItemByCmd(HMENU hMenu, UINT uID, BOOL bEnable)
Definition: shlmenu.c:770
struct _REGSHELLSTATE REGSHELLSTATE
VOID WINAPI CheckEscapesA(LPSTR string, DWORD len)
Definition: shellstring.c:227
void WINAPI FileMenu_Destroy(HMENU hMenu)
Definition: shlmenu.c:284
BOOL WINAPI DAD_ShowDragImage(BOOL bShow)
Definition: shellord.c:1797
HRESULT WINAPI SHInvokeCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl, LPCSTR lpVerb)
BOOL WINAPI DAD_SetDragImageFromListView(HWND hWnd, POINT pt)
Definition: stubs.cpp:585
LPWSTR WINAPI SheRemoveQuotesW(LPWSTR psz)
Definition: utils.cpp:1112
struct tagSHELL_LINK_INFOW * LPSHELL_LINK_INFOW
struct tagSHELL_LINK_HEADER SHELL_LINK_HEADER
PSTR WINAPI StrRStrA(_In_ PCSTR pszSrc, _In_opt_ PCSTR pszLast, _In_ PCSTR pszSearch)
Definition: utils.cpp:40
struct _SHCNF_PRINTJOB_INFO SHCNF_PRINTJOB_INFO
void WINAPI FileMenu_AbortInitMenu(void)
Definition: shlmenu.c:802
BOOL WINAPI Activate_RunDLL(_In_ HWND hwnd, _In_ HINSTANCE hinst, _In_ LPCWSTR cmdline, _In_ INT cmdshow)
Definition: utils.cpp:1477
DWORD WINAPI SHGetUserSessionId(_In_opt_ HANDLE hToken)
Definition: utils.cpp:716
LRESULT WINAPI FileMenu_MeasureItem(HWND hWnd, LPMEASUREITEMSTRUCT lpmis)
Definition: shlmenu.c:558
HRESULT(CALLBACK * LPFNCDCOCALLBACK)(LPUNKNOWN pUnkOuter, REFIID riidObject, LPVOID *ppvObject)
Definition: undocshell.h:784
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
Definition: shellord.c:774
HRESULT WINAPI SHGetComputerDisplayNameW(_In_opt_ LPWSTR pszServerName, _In_ DWORD dwFlags, _Out_writes_z_(cchNameMax) LPWSTR pszName, _In_ DWORD cchNameMax)
VOID WINAPI PathQualifyW(LPWSTR pszPath)
Definition: shellpath.c:969
BOOL WINAPI PathMakeUniqueNameAW(LPVOID lpszBuffer, DWORD dwBuffSize, LPCVOID lpszShortName, LPCVOID lpszLongName, LPCVOID lpszPathName)
Definition: shellpath.c:833
PWSTR WINAPI StrRStrW(_In_ PCWSTR pszSrc, _In_opt_ PCWSTR pszLast, _In_ PCWSTR pszSearch)
Definition: utils.cpp:72
LPVOID WINAPI PathAddBackslashAW(LPVOID path)
LRESULT WINAPI FileMenu_HandleMenuChar(HMENU hMenu, WPARAM wParam)
Definition: shlmenu.c:655
SHSTDAPI DisplayNameOfW(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_ LPWSTR pszBuf, _In_ UINT cchBuf)
Definition: utils.cpp:432
VOID WINAPI ShellExec_RunDLLA(_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCSTR pszCmdLine, _In_ INT nCmdShow)
Definition: shlexec.cpp:3413
BOOL WINAPI PathResolveA(LPSTR path, LPCSTR *dirs, DWORD flags)
Definition: shellpath.c:986
HICON WINAPI SHGetFileIcon(DWORD dwReserved, LPCSTR lpszPath, DWORD dwFileAttributes, UINT uFlags)
INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc)
Definition: iconcache.cpp:844
HRESULT(CALLBACK * PRIVILEGED_FUNCTION)(LPARAM lParam)
Definition: undocshell.h:891
BOOL WINAPI SHWaitForFileToOpen(LPCITEMIDLIST pidl, DWORD dwFlags, DWORD dwTimeout)
Definition: shellord.c:1977
HRESULT WINAPI SHUpdateRecycleBinIcon(void)
BOOL WINAPI FileMenu_DeleteItemByCmd(HMENU hMenu, UINT uID)
Definition: shlmenu.c:704
BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey)
HINSTANCE WINAPI RealShellExecuteExA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_opt_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_opt_ LPSTR lpReturn, _In_opt_ LPCSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
Definition: shlexec.cpp:3043
void WINAPI PathRemoveExtensionAW(LPVOID lpszPath)
HINSTANCE WINAPI RealShellExecuteExW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_opt_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_opt_ LPWSTR lpReturn, _In_opt_ LPCWSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
Definition: shlexec.cpp:3110
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lphimlLarge, HIMAGELIST *lphimlSmall)
Definition: iconcache.cpp:689
HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:392
struct SFVCOLUMNINFO * LPSFVCOLUMNINFO
NMRUNFILEDLGW NMRUNFILEDLG
Definition: undocshell.h:197
BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath)
Definition: shellpath.c:453
struct tagEXP_SHIM EXP_SHIM
struct _NMRUNFILEDLGW * LPNMRUNFILEDLGW
int WINAPI Shell_GetCachedImageIndexA(LPCSTR lpszFileName, int nIconIndex, UINT bSimulateDoc)
struct tagEXP_VISTA_ID_LIST * LPEXP_VISTA_ID_LIST
LONG WINAPI SHRegQueryValueExA(HKEY hkey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
Definition: shellreg.c:78
struct tagSHELL_LINK_INFO_VOLUME_IDA * LPSHELL_LINK_INFO_VOLUME_IDA
LPVOID WINAPI PathFindFileNameAW(LPCVOID path)
BOOL WINAPI StrRetToStrNA(LPSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:54
WORD WINAPI ExtractIconResInfoA(_In_ HANDLE hHandle, _In_ LPCSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
Definition: utils.cpp:675
struct tagAPPBAR_COMMAND APPBAR_COMMAND
struct tagEXP_VISTA_ID_LIST EXP_VISTA_ID_LIST
HRESULT WINAPI SHInvokeCommandOnContextMenu(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_opt_ LPCSTR pszVerb)
Definition: utils.cpp:150
DWORD WINAPI SHNetConnectionDialog(HWND hwndOwner, LPCWSTR lpstrRemoteName, DWORD dwType)
Definition: stubs.cpp:572
struct tagEXP_SHIM * LPEXP_SHIM
BOOL WINAPI PathIsTemporaryW(_In_ LPCWSTR Str)
HRESULT WINAPI SHCreateSessionKey(REGSAM samDesired, PHKEY phKey)
Definition: shellreg.c:147
struct tagSHELL_LINK_INFO_CNR_LINKA * LPSHELL_LINK_INFO_CNR_LINKA
BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID *sOtherDirs)
BOOL WINAPI SHOpenEffectiveToken(_Out_ LPHANDLE phToken)
Definition: utils.cpp:707
int WINAPI SHOutOfMemoryMessageBox(HWND hwndOwner, LPCSTR lpCaption, UINT uType)
Definition: shellord.c:1956
void(CALLBACK * LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile)
Definition: undocshell.h:347
BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath)
LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile)
struct tagEXP_KNOWN_FOLDER EXP_KNOWN_FOLDER
struct _REGSHELLSTATE * PREGSHELLSTATE
VOID WINAPI PathQualifyAW(LPVOID path)
Definition: shellpath.c:978
BOOL WINAPI PathYetAnotherMakeUniqueName(LPWSTR lpszBuffer, LPCWSTR lpszPathName, LPCWSTR lpszShortName, LPCWSTR lpszLongName)
Definition: shellpath.c:848
void WINAPI RunFileDlg(HWND hWndOwner, HICON hIcon, LPCWSTR lpstrDirectory, LPCWSTR lpstrTitle, LPCWSTR lpstrDescription, UINT uFlags)
Definition: dialogs.cpp:400
struct tagAPPBAR_COMMAND * PAPPBAR_COMMAND
struct SFVM_CUSTOMVIEWINFO_DATA * LPSFVM_CUSTOMVIEWINFO_DATA
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2469
_In_ LPCSTR lpFileName
Definition: winbase.h:2824
_In_ LPCSTR lpName
Definition: winbase.h:2543
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
_In_ BOOL bEnable
Definition: winddi.h:3426
DWORD COLORREF
Definition: windef.h:94
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6
_In_ DWORD _In_ int _In_ int _In_opt_ LPNLSVERSIONINFO _In_opt_ LPVOID lpReserved
Definition: winnls.h:1268
ACCESS_MASK REGSAM
Definition: winreg.h:76
_In_ int nIDDlgItem
Definition: winuser.h:4721
const char * LPCSTR
Definition: xmlstorage.h:183
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
char * LPSTR
Definition: xmlstorage.h:182
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
char CHAR
Definition: xmlstorage.h:175