ReactOS  0.4.14-dev-608-gd495a4f
undocshell.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999, 2000 Juergen Schmied
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef __WINE_UNDOCSHELL_H
20 #define __WINE_UNDOCSHELL_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* defined(__cplusplus) */
25 
26 
27 #if (NTDDI_VERSION < NTDDI_LONGHORN)
28 #define DBIMF_NOGRIPPER 0x0800
29 #define DBIMF_ALWAYSGRIPPER 0x1000
30 #define DBIMF_NOMARGINS 0x2000
31 #endif // NTDDI_LONGHORN
32 
33 #if defined (_SHELLAPI_H) || defined (_INC_SHELLAPI)
34 
35 /****************************************************************************
36  * Taskbar interface WM_COPYDATA structures
37  * See http://www.geoffchappell.com/studies/windows/shell/shell32/api/shlnot/copydata.htm
38  */
39 /* Data structure for Shell_NotifyIcon messages */
40 typedef struct _TRAYNOTIFYDATAW
41 {
42  DWORD dwSignature;
43  DWORD dwMessage;
44  NOTIFYICONDATAW nid; // Always use the latest NOTIFYICONDATAW structure version.
45 } TRAYNOTIFYDATAW, *PTRAYNOTIFYDATAW;
46 // Note: One could also introduce TRAYNOTIFYDATAA
47 
48 #define NI_NOTIFY_SIG 0x34753423 /* TRAYNOTIFYDATA */
49 
50 #endif /* defined (_SHELLAPI_H) || defined (_INC_SHELLAPI) */
51 
52 
53 /****************************************************************************
54  * Taskbar WM_COMMAND identifiers
55  */
56 #define TWM_DOEXITWINDOWS (WM_USER + 342)
57 #define TWM_CYCLEFOCUS (WM_USER + 348)
58 
59 
60 /****************************************************************************
61  * IDList Functions
62  */
64  LPCITEMIDLIST pidl,
65  LPVOID path);
66 
67 /* type parameter for ILGetDisplayNameEx() */
68 #define ILGDN_FORPARSING 0
69 #define ILGDN_NORMAL 1
70 #define ILGDN_INFOLDER 2
71 
73  LPSHELLFOLDER psf,
74  LPCITEMIDLIST pidl,
75  LPVOID path,
76  DWORD type);
77 
82 
84  LPCSTR path,
85  LPITEMIDLIST * ppidl,
86  DWORD *attributes);
87 
89  LPCWSTR path,
90  LPITEMIDLIST * ppidl,
91  DWORD *attributes);
92 
93 /*
94  string functions
95 */
98 
99 
100 /****************************************************************************
101  * SHChangeNotifyRegister API
102  */
103 #define SHCNRF_InterruptLevel 0x0001
104 #define SHCNRF_ShellLevel 0x0002
105 #define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */
106 #define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */
107 
108 
109 /****************************************************************************
110  * Shell Common Dialogs
111  */
112 
113 /* RunFileDlg flags */
114 #define RFF_NOBROWSE 0x01 /* Removes the browse button */
115 #define RFF_NODEFAULT 0x02 /* No default item selected */
116 #define RFF_CALCDIRECTORY 0x04 /* Calculates the working directory from the file name */
117 #define RFF_NOLABEL 0x08 /* Removes the edit box label */
118 #define RFF_NOSEPARATEMEM 0x20 /* Removes the Separate Memory Space check box (Windows NT only) */
119 
120 /* RunFileFlg notification value and structure */
121 #define RFN_VALIDATE (-510)
122 #if 0 // Deprecated ANSI structure
123 typedef struct _NMRUNFILEDLGA
124 {
125  NMHDR hdr;
126  LPCSTR lpFile;
128  UINT nShow;
129 } NMRUNFILEDLGA, *PNMRUNFILEDLGA, *LPNMRUNFILEDLGA;
130 #endif
131 typedef struct _NMRUNFILEDLGW
132 {
138 
142 
143 /* RunFileDlg notification return values */
144 #define RF_OK 0x00
145 #define RF_CANCEL 0x01
146 #define RF_RETRY 0x02
147 
148 void WINAPI RunFileDlg(
149  HWND hWndOwner,
150  HICON hIcon,
151  LPCWSTR lpstrDirectory,
152  LPCWSTR lpstrTitle,
153  LPCWSTR lpstrDescription,
154  UINT uFlags);
155 
156 int WINAPI LogoffWindowsDialog(HWND hWndOwner);
157 void WINAPI ExitWindowsDialog(HWND hWndOwner);
158 
160  LPCITEMIDLIST pidlRoot,
161  LPCITEMIDLIST pidlSavedSearch);
162 
163 void WINAPI SHHandleDiskFull(HWND hwndOwner,
164  UINT uDrive);
165 
167  HWND hwndOwner,
168  LPCSTR lpCaption,
169  UINT uType);
170 
172  HWND hwndOwner,
173  LPCWSTR lpstrRemoteName,
174  DWORD dwType);
175 
176 /****************************************************************************
177  * Cabinet Window Messages
178  */
179 
180 #define CWM_SETPATH (WM_USER + 2)
181 #define CWM_WANTIDLE (WM_USER + 3)
182 #define CWM_GETSETCURRENTINFO (WM_USER + 4)
183 #define CWM_SELECTITEM (WM_USER + 5)
184 #define CWM_SELECTITEMSTR (WM_USER + 6)
185 #define CWM_GETISHELLBROWSER (WM_USER + 7)
186 #define CWM_TESTPATH (WM_USER + 9)
187 #define CWM_STATECHANGE (WM_USER + 10)
188 #define CWM_GETPATH (WM_USER + 12)
189 
190 #define WM_GETISHELLBROWSER CWM_GETISHELLBROWSER
191 
192 /* CWM_TESTPATH types */
193 #define CWTP_ISEQUAL 0
194 #define CWTP_ISCHILD 1
195 
196 /* CWM_TESTPATH structure */
197 typedef struct
198 {
202 
203 /****************************************************************************
204  * System Imagelist Routines
205  */
206 
208  LPCSTR lpszFileName,
209  int nIconIndex,
210  UINT bSimulateDoc);
211 
213  HIMAGELIST *lphimlLarge,
214  HIMAGELIST *lphimlSmall);
215 
218  LPCSTR lpszPath,
220  UINT uFlags);
221 
222 BOOL WINAPI FileIconInit(BOOL bFullInit);
223 
224 /****************************************************************************
225  * File Menu Routines
226  */
227 /* FileMenu_Create nSelHeight constants */
228 #define FM_DEFAULT_SELHEIGHT -1
229 #define FM_FULL_SELHEIGHT 0
230 
231 /* FileMenu_Create flags */
232 #define FMF_SMALL_ICONS 0x00
233 #define FMF_LARGE_ICONS 0x08
234 #define FMF_NO_COLUMN_BREAK 0x10
235 
237  COLORREF crBorderColor,
238  int nBorderWidth,
239  HBITMAP hBorderBmp,
240  int nSelHeight,
241  UINT uFlags);
242 
243 void WINAPI FileMenu_Destroy(HMENU hMenu);
244 
245 /* FileMenu_AppendItem constants */
246 #define FM_SEPARATOR (LPCSTR)1
247 #define FM_BLANK_ICON -1
248 #define FM_DEFAULT_HEIGHT 0
249 
251  HMENU hMenu,
252  LPCSTR lpszText,
253  UINT uID,
254  int iIcon,
255  HMENU hMenuPopup,
256  int nItemHeight);
257 
258 /* FileMenu_InsertUsingPidl flags */
259 #define FMF_NO_EMPTY_ITEM 0x01
260 #define FMF_NO_PROGRAM_GROUPS 0x04
261 
262 /* FileMenu_InsertUsingPidl callback function */
263 typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
264 
266  HMENU hMenu,
267  UINT uID,
268  LPCITEMIDLIST pidl,
269  UINT uFlags,
270  UINT uEnumFlags,
271  LPFNFMCALLBACK lpfnCallback);
272 
274  HMENU hMenu,
275  UINT uID,
276  LPCITEMIDLIST pidl,
277  UINT uEnumFlags,
278  LPFNFMCALLBACK lpfnCallback);
279 
280 void WINAPI FileMenu_Invalidate(HMENU hMenu);
281 
283  HMENU hMenu,
284  LPCITEMIDLIST pidl);
285 
287  HMENU hMenu,
288  UINT uFlags,
289  int x,
290  int y,
291  HWND hWnd,
292  LPTPMPARAMS lptpm);
293 
295  UINT uReserved,
296  LPCITEMIDLIST *ppidlFolder,
297  LPCITEMIDLIST *ppidlItem);
298 
300  HWND hWnd,
301  LPMEASUREITEMSTRUCT lpmis);
302 
304  HWND hWnd,
305  LPDRAWITEMSTRUCT lpdis);
306 
308 
309 void WINAPI FileMenu_AbortInitMenu(void);
310 
312  HMENU hMenu,
313  WPARAM wParam);
314 
316 
318  HMENU hMenu,
319  UINT uID);
320 
322  HMENU hMenu,
323  UINT uPos);
324 
326  HMENU hMenu,
327  UINT uID);
328 
330 
332  HMENU hMenu,
333  UINT uID,
334  BOOL bEnable);
335 
337  HMENU hMenu,
338  UINT uPos);
339 
341  HMENU hMenu,
342  LPCITEMIDLIST pidl,
343  BOOL bAddSeparator);
344 
346  HMENU hMenu,
347  UINT uReserved,
348  UINT uID,
349  LPCITEMIDLIST pidl,
350  UINT uFlags,
351  UINT uEnumFlags,
352  LPFNFMCALLBACK lpfnCallback);
353 
354 /****************************************************************************
355  * Drag And Drop Routines
356  */
357 
359  HWND hWnd,
360  LPDROPTARGET lpDropTarget);
361 
363 
365 
367  HWND hWnd,
368  POINT pt);
369 
371 
372 /****************************************************************************
373  * Path Manipulation Routines
374  */
375 
376 BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2);
377 
378 LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
379 
381 
382 LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive);
383 
385 
387 
388 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2);
389 
391 
393 
394 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
395 
397 
398 void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath);
399 
400 BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
401 
403 
405 
406 BOOL WINAPI PathIsExeAW(LPCVOID lpszPath);
407 
409 
411 
412 BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
413 
415  LPVOID lpszBuffer,
416  DWORD dwBuffSize,
417  LPCVOID lpszShortName,
418  LPCVOID lpszLongName,
419  LPCVOID lpszPathName);
420 
422  LPWSTR lpszBuffer,
423  LPCWSTR lpszPathName,
424  LPCWSTR lpszShortName,
425  LPCWSTR lpszLongName);
426 
428 
429 
430 /* PathResolve flags */
431 #define PRF_CHECKEXISTANCE 0x01
432 #define PRF_EXECUTABLE 0x02
433 #define PRF_QUALIFYONPATH 0x04
434 #define PRF_WINDOWS31 0x08
435 
436 BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags);
437 
439 
440 /* PathProcessCommand flags */
441 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */
442 #define PPCF_INCLUDEARGS 0x02
443 //#define PPCF_NODIRECTORIES 0x10 move to shlobj
444 #define PPCF_DONTRESOLVE 0x20
445 #define PPCF_PATHISRELATIVE 0x40
446 
448  DWORD dwBuffSize, DWORD dwFlags);
449 
450 void WINAPI PathStripPathAW(LPVOID lpszPath);
451 
453 
454 void WINAPI PathRemoveArgsAW(LPVOID lpszPath);
455 
456 void WINAPI PathRemoveExtensionAW(LPVOID lpszPath);
457 
459 
460 BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2);
461 
462 BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID *sOtherDirs);
463 
464 /****************************************************************************
465  * Shell File Operations error codes
466  */
467 
468 /* Error codes could be pre-Win32 */
469 #define DE_SAMEFILE 0x71
470 #define DE_MANYSRC1DEST 0x72
471 #define DE_DIFFDIR 0x73
472 #define DE_OPCANCELLED 0x75
473 #define DE_DESTSUBTREE 0x76
474 #define DE_INVALIDFILES 0x7C
475 #define DE_DESTSAMETREE 0x7D
476 #define DE_FLDDESTISFILE 0x7E
477 #define DE_FILEDESTISFLD 0x80
478 
479 /****************************************************************************
480  * Shell Namespace Routines
481  */
482 
483 /* Generic structure used by several messages */
484 typedef struct
485 {
491 typedef const SFVCBINFO * LPCSFVCBINFO;
492 
493 /* SFVCB_SELECTIONCHANGED structure */
494 typedef struct
495 {
502 
503 /* SFVCB_COPYHOOKCALLBACK structure */
504 typedef struct
505 {
515 
516 /* SFVCB_GETDETAILSOF structure */
517 typedef struct
518 {
520  int fmt;
521  int cx;
524 
525 /****************************************************************************
526  * Misc Stuff
527  */
528 
529 BOOL WINAPI
530 RegenerateUserEnvironment(LPVOID *lpEnvironment, BOOL bUpdateSelf);
531 
532 /* SHWaitForFileToOpen flags */
533 #define SHWFF_ADD 0x01
534 #define SHWFF_REMOVE 0x02
535 #define SHWFF_WAIT 0x04
536 
538  LPCITEMIDLIST pidl,
539  DWORD dwFlags,
540  DWORD dwTimeout);
541 
545  LPCRECT lpRect,
546  WORD cKids,
547  CONST HWND * lpKids);
548 
549 /* Flags for ShellExecCmdLine */
550 #define SECL_NO_UI 0x2
551 #define SECL_LOG_USAGE 0x8
552 #define SECL_USE_IDLIST 0x10
553 #define SECL_ALLOW_NONEXE 0x20
554 #define SECL_RUNAS 0x40
555 
557  HWND hwnd,
558  LPCWSTR pwszCommand,
559  LPCWSTR pwszStartDir,
560  int nShow,
561  LPVOID pUnused,
562  DWORD dwSeclFlags);
563 
564 /* RegisterShellHook types */
565 #define RSH_DEREGISTER 0
566 #define RSH_REGISTER 1
567 #define RSH_REGISTER_PROGMAN 2
568 #define RSH_REGISTER_TASKMAN 3
569 
571  HWND hWnd,
572  DWORD dwType);
573 
574 /* SHCreateDefClassObject callback function */
576  LPUNKNOWN pUnkOuter,
577  REFIID riidObject,
578  LPVOID *ppvObject);
579 
581  REFIID riidFactory,
582  LPVOID *ppvFactory,
583  LPFNCDCOCALLBACK lpfnCallback,
584  LPDWORD lpdwUsage,
585  REFIID riidObject);
586 
587 void WINAPI SHFreeUnusedLibraries(void);
588 
589 /* SHCreateLinks flags */
590 #define SHCLF_PREFIXNAME 0x01
591 #define SHCLF_CREATEONDESKTOP 0x02
592 
594  HWND hWnd,
595  LPCSTR lpszDir,
596  LPDATAOBJECT lpDataObject,
597  UINT uFlags,
598  LPITEMIDLIST *lppidlLinks);
599 
602 
603 /* policy functions */
605 
606 #define CSIDL_FOLDER_MASK 0x00ff
607 
608 /* Utility functions */
609 #include <stdio.h>
610 
611 #define SMC_EXEC 4
612 INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
613 
614 HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv);
615 
617  _In_ PCWSTR psz,
618  _Out_ LPGUID pguid
619  );
620 
621 /*****************************************************************************
622  * Shell32 resources
623  */
624 // these resources are in shell32.dll
625 #define IDB_GOBUTTON_NORMAL 0x0e6
626 #define IDB_GOBUTTON_HOT 0x0e7
627 
628 // band ids in internet toolbar
629 #define ITBBID_MENUBAND 1
630 #define ITBBID_BRANDBAND 5
631 #define ITBBID_TOOLSBAND 2
632 #define ITBBID_ADDRESSBAND 4
633 
634 // commands in the CGID_PrivCITCommands command group handled by the internet toolbar
635 // there seems to be some support for hiding the menubar and an auto hide feature that are
636 // unavailable in the UI
637 #define ITID_TEXTLABELS 3
638 #define ITID_TOOLBARBANDSHOWN 4
639 #define ITID_ADDRESSBANDSHOWN 5
640 #define ITID_LINKSBANDSHOWN 6
641 #define ITID_MENUBANDSHOWN 12
642 #define ITID_AUTOHIDEENABLED 13
643 #define ITID_CUSTOMIZEENABLED 20
644 #define ITID_TOOLBARLOCKED 27
645 
646 // commands in the CGID_BrandCmdGroup command group handled by the brand band
647 #define BBID_STARTANIMATION 1
648 #define BBID_STOPANIMATION 2
649 
650 // undocumented flags for IShellMenu::SetShellFolder
651 #define SMSET_UNKNOWN08 0x08
652 #define SMSET_UNKNOWN10 0x10
653 
654 // explorer tray commands
655 #define TRAYCMD_STARTMENU 305
656 #define TRAYCMD_RUN_DIALOG 401
657 #define TRAYCMD_LOGOFF_DIALOG 402
658 #define TRAYCMD_CASCADE 403
659 #define TRAYCMD_TILE_H 404
660 #define TRAYCMD_TILE_V 405
661 #define TRAYCMD_TOGGLE_DESKTOP 407
662 #define TRAYCMD_DATE_AND_TIME 408
663 #define TRAYCMD_TASKBAR_PROPERTIES 413
664 #define TRAYCMD_MINIMIZE_ALL 415
665 #define TRAYCMD_RESTORE_ALL 416
666 #define TRAYCMD_SHOW_DESKTOP 419
667 #define TRAYCMD_SHOW_TASK_MGR 420
668 #define TRAYCMD_CUSTOMIZE_TASKBAR 421
669 #define TRAYCMD_LOCK_TASKBAR 424
670 #define TRAYCMD_HELP_AND_SUPPORT 503
671 #define TRAYCMD_CONTROL_PANEL 505
672 #define TRAYCMD_SHUTDOWN_DIALOG 506
673 #define TRAYCMD_PRINTERS_AND_FAXES 510
674 #define TRAYCMD_LOCK_DESKTOP 517
675 #define TRAYCMD_SWITCH_USER_DIALOG 5000
676 #define TRAYCMD_SEARCH_FILES 41093
677 #define TRAYCMD_SEARCH_COMPUTERS 41094
678 
679 void WINAPI ShellDDEInit(BOOL bInit);
681 
683 
685 
686 /*****************************************************************************
687  * Shell Link
688  */
689 #include <pshpack1.h>
690 
691 typedef struct tagSHELL_LINK_HEADER
692 {
693  /* The size of this structure (always 0x0000004C) */
695  /* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
697  /* Flags (SHELL_LINK_DATA_FLAGS) */
699  /* Informations about the link target: */
704  DWORD nFileSizeLow; /* only the least significant 32 bits */
705  /* The index of an icon (signed?) */
707  /* The expected window state of an application launched by the link */
709  /* The keystrokes used to launch the application */
711  /* Reserved (must be zero) */
716 
717 /*****************************************************************************
718  * SHELL_LINK_INFOA/W
719  * If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
720  * If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
721  */
722 typedef struct tagSHELL_LINK_INFOA
723 {
724  /* Size of the link info data */
726  /* Size of this structure (ANSI: = 0x0000001C) */
728  /* Specifies which fields are present/populated (SLI_*) */
730  /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
732  /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
734  /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
736  /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
739 
740 typedef struct tagSHELL_LINK_INFOW
741 {
742  /* Size of the link info data */
744  /* Size of this structure (Unicode: >= 0x00000024) */
746  /* Specifies which fields are present/populated (SLI_*) */
748  /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
750  /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
752  /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
754  /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
756  /* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
758  /* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
761 
762 /* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
763 #define SLI_VALID_LOCAL 0x00000001
764 /* CommonNetworkRelativeLink is present */
765 #define SLI_VALID_NETWORK 0x00000002
766 
767 /*****************************************************************************
768  * SHELL_LINK_INFO_VOLUME_IDA/W
769  * If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
770  * SHELL_LINK_INFO_VOLUME_IDA
771  * If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
772  */
774 {
775  /* Size of the VolumeID field (> 0x00000010) */
777  /* Drive type of the drive the link target is stored on (DRIVE_*) */
779  /* Serial number of the volume the link target is stored on */
781  /* Offset of the volume label (ANSI, NULL-terminated string).
782  Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
785 
787 {
788  /* Size of the VolumeID field (> 0x00000010) */
790  /* Drive type of the drive the link target is stored on (DRIVE_*) */
792  /* Serial number of the volume the link target is stored on */
794  /* Offset of the volume label (ANSI, NULL-terminated string).
795  If the value of this field is 0x00000014, ignore it and use
796  cbVolumeLabelUnicodeOffset! */
798  /* Offset of the volume label (Unicode, NULL-terminated string).
799  If the value of the VolumeLabelOffset field is not 0x00000014,
800  this field must be ignored (==> it doesn't exists ==> ANSI). */
803 
804 /*****************************************************************************
805  * SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
806  * If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
807  * If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
808  */
810 {
811  /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
813  /* Specifies which fields are present/populated (SLI_CNR_*) */
815  /* Offset of the NetName field (ANSI, NULL–terminated string) */
817  /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
819  /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
822 
824 {
825  /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
827  /* Specifies which fields are present/populated (SLI_CNR_*) */
829  /* Offset of the NetName field (ANSI, NULL–terminated string) */
831  /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
833  /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
835  /* Offset of the NetNameUnicode field (Unicode, NULL–terminated string) */
837  /* Offset of the DeviceNameUnicode field (Unicode, NULL–terminated string) */
840 
841 /* DeviceName is present */
842 #define SLI_CNR_VALID_DEVICE 0x00000001
843 /* NetworkProviderType is present */
844 #define SLI_CNR_VALID_NET_TYPE 0x00000002
845 
846 /*****************************************************************************
847  * Shell Link Extra Data (IShellLinkDataList)
848  */
849 typedef struct tagEXP_TRACKER
850 {
851  /* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
853  /* Length >= 0x00000058 */
855  /* Must be 0x00000000 */
857  /* NetBIOS name (ANSI, unused bytes are set to zero) */
858  CHAR szMachineID[16]; /* "variable" >= 16 (?) */
859  /* Some GUIDs for the Link Tracking service (from the FS?) */
865 
866 typedef struct tagEXP_SHIM
867 {
868  /* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
870  /* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
871  WCHAR szwLayerName[64]; /* "variable" >= 64 */
872 } EXP_SHIM, *LPEXP_SHIM;
873 
874 typedef struct tagEXP_KNOWN_FOLDER
875 {
876  /* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
878  /* A GUID value that identifies a known folder */
880  /* Specifies the location of the ItemID of the first child
881  segment of the IDList specified by guidKnownFolder */
884 
885 typedef struct tagEXP_VISTA_ID_LIST
886 {
887  /* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
889  /* Specifies an alternate IDList that can be used instead
890  of the "normal" IDList (SLDF_HAS_ID_LIST) */
891  /* LPITEMIDLIST pIDList; (variable) */
893 
894 #define EXP_TRACKER_SIG 0xa0000003
895 #define EXP_SHIM_SIG 0xa0000008
896 #define EXP_KNOWN_FOLDER_SIG 0xa000000b
897 #define EXP_VISTA_ID_LIST_SIG 0xa000000c
898 
899 /* Not compatible yet */
901 {
907 
908 #include <poppack.h>
909 
910 #ifdef __cplusplus
911 } /* extern "C" */
912 #endif /* defined(__cplusplus) */
913 
914 #endif /* __WINE_UNDOCSHELL_H */
int WINAPI PathParseIconLocationAW(LPVOID lpszPath)
LRESULT WINAPI FileMenu_MeasureItem(HWND hWnd, LPMEASUREITEMSTRUCT lpmis)
Definition: shlmenu.c:559
BOOL WINAPI FileMenu_GetLastSelectedItemPidls(UINT uReserved, LPCITEMIDLIST *ppidlFolder, LPCITEMIDLIST *ppidlItem)
Definition: shlmenu.c:541
struct _NMRUNFILEDLGW * PNMRUNFILEDLGW
DWORD dwReserved2
Definition: undocshell.h:487
BOOL WINAPI FileMenu_DeleteItemByIndex(HMENU hMenu, UINT uPos)
Definition: shlmenu.c:728
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lphimlLarge, HIMAGELIST *lphimlSmall)
Definition: iconcache.cpp:706
HRESULT WINAPI SHRegisterDragDrop(HWND hWnd, LPDROPTARGET lpDropTarget)
Definition: shellord.c:451
#define HRESULT
Definition: msvc.h:7
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
GUID guidDroidBirthVolume
Definition: undocshell.h:862
int WINAPI FileMenu_AddFilesForPidl(HMENU hMenu, UINT uReserved, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:505
const uint16_t * PCWSTR
Definition: typedefs.h:55
LPCSTR pszDestFile
Definition: undocshell.h:511
VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath)
static HICON
Definition: imagelist.c:84
DWORD dwSrcAttribs
Definition: undocshell.h:510
BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2)
LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath)
#define REFIID
Definition: guiddef.h:118
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
ITEMIDLIST idl
Definition: undocshell.h:200
struct tagEXP_KNOWN_FOLDER EXP_KNOWN_FOLDER
char hdr[14]
Definition: iptest.cpp:33
int WINAPI Shell_GetCachedImageIndexA(LPCSTR lpszFileName, int nIconIndex, UINT bSimulateDoc)
int WINAPI LogoffWindowsDialog(HWND hWndOwner)
Definition: dialogs.cpp:1094
struct tagSHELL_LINK_HEADER SHELL_LINK_HEADER
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
HRESULT WINAPI SHCreateDefClassObject(REFIID riidFactory, LPVOID *ppvFactory, LPFNCDCOCALLBACK lpfnCallback, LPDWORD lpdwUsage, REFIID riidObject)
PNMRUNFILEDLGW PNMRUNFILEDLG
Definition: undocshell.h:140
struct tagSHELL_LINK_INFO_CNR_LINKA * LPSHELL_LINK_INFO_CNR_LINKA
struct SFVM_CUSTOMVIEWINFO_DATA * LPSFVM_CUSTOMVIEWINFO_DATA
BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(HMENU hMenu, UINT uID)
struct _NMRUNFILEDLGW NMRUNFILEDLGW
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:392
NOTIFYICONDATA nid
Definition: magnifier.c:44
BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath)
Definition: shellpath.c:110
#define pt(x, y)
Definition: drawing.c:79
REFIID riid
Definition: precomp.h:44
BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu)
Definition: shlmenu.c:647
char CHAR
Definition: xmlstorage.h:175
struct tagSHELL_LINK_INFOW * LPSHELL_LINK_INFOW
HRESULT WINAPI SHCreateLinks(HWND hWnd, LPCSTR lpszDir, LPDATAOBJECT lpDataObject, UINT uFlags, LPITEMIDLIST *lppidlLinks)
void WINAPI ShellDDEInit(BOOL bInit)
Definition: shdocvw_main.c:227
void WINAPI ExitWindowsDialog(HWND hWndOwner)
Definition: dialogs.cpp:1145
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
void WINAPI FileMenu_AbortInitMenu(void)
Definition: shlmenu.c:803
#define CALLBACK
Definition: compat.h:27
DWORD WINAPI CheckEscapesA(LPSTR string, DWORD len)
Definition: shellstring.c:232
HWND hWnd
Definition: settings.c:17
REFIID LPVOID * ppv
Definition: atlbase.h:39
BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey)
struct tagSHELL_LINK_INFOA SHELL_LINK_INFOA
struct tagEXP_SHIM * LPEXP_SHIM
struct tagSHELL_LINK_INFO_VOLUME_IDA * LPSHELL_LINK_INFO_VOLUME_IDA
BOOL WINAPI RegisterShellHook(HWND hWnd, DWORD dwType)
Definition: shellord.c:308
BOOL WINAPI FileIconInit(BOOL bFullInit)
Definition: shellord.c:1298
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
_In_ int nIDDlgItem
Definition: winuser.h:4594
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LPCWSTR lpDirectory
Definition: undocshell.h:135
struct tagEXP_TRACKER EXP_TRACKER
UINT_PTR WPARAM
Definition: windef.h:207
struct SFVCBINFO * LPSFVCBINFO
LRESULT WINAPI FileMenu_DrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpdis)
Definition: shlmenu.c:587
UINT uFlags
Definition: api.c:59
char * LPSTR
Definition: xmlstorage.h:182
BOOL WINAPI GUIDFromStringW(_In_ PCWSTR psz, _Out_ LPGUID pguid)
int32_t INT
Definition: typedefs.h:56
WPARAM wParam
Definition: combotst.c:138
LPVOID WINAPI PathFindExtensionAW(LPCVOID path)
BOOL WINAPI FileMenu_TrackPopupMenuEx(HMENU hMenu, UINT uFlags, int x, int y, HWND hWnd, LPTPMPARAMS lptpm)
Definition: shlmenu.c:525
void WINAPI RunFileDlg(HWND hWndOwner, HICON hIcon, LPCWSTR lpstrDirectory, LPCWSTR lpstrTitle, LPCWSTR lpstrDescription, UINT uFlags)
Definition: dialogs.cpp:397
BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2)
Definition: shellpath.c:64
DWORD dwReserved
Definition: undocshell.h:486
struct SFVCOLUMNINFO * LPSFVCOLUMNINFO
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath)
Definition: pidl.c:1089
WORD unused[29]
Definition: crypt.c:1155
CHAR szMachineID[16]
Definition: undocshell.h:858
BOOL WINAPI PathYetAnotherMakeUniqueName(LPWSTR lpszBuffer, LPCWSTR lpszPathName, LPCWSTR lpszShortName, LPCWSTR lpszLongName)
Definition: shellpath.c:320
WORD WINAPI ArrangeWindows(HWND hwndParent, DWORD dwReserved, LPCRECT lpRect, WORD cKids, CONST HWND *lpKids)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
DWORD WINAPI CheckEscapesW(LPWSTR string, DWORD len)
Definition: shellstring.c:258
unsigned int BOOL
Definition: ntddk_ex.h:94
INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc)
Definition: iconcache.cpp:861
static LPUNKNOWN
Definition: ndr_ole.c:49
BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl, LPVOID path)
Definition: pidl.c:174
void WINAPI FileMenu_Destroy(HMENU hMenu)
Definition: shlmenu.c:285
void(CALLBACK * LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile)
Definition: undocshell.h:263
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
Definition: shellord.c:2013
struct tagSHELL_LINK_HEADER * LPSHELL_LINK_HEADER
struct tagSHELL_LINK_INFO_CNR_LINKA SHELL_LINK_INFO_CNR_LINKA
DATABLOCK_HEADER dbh
Definition: undocshell.h:852
static HWND hwndParent
Definition: cryptui.c:300
HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
Definition: shellpath.c:514
#define _Out_
Definition: no_sal2.h:323
BOOL WINAPI FileMenu_EnableItemByCmd(HMENU hMenu, UINT uID, BOOL bEnable)
Definition: shlmenu.c:771
BOOL WINAPI DAD_DragEnter(HWND hWnd)
Definition: shellord.c:1152
BOOL WINAPI RegenerateUserEnvironment(LPVOID *lpEnvironment, BOOL bUpdateSelf)
Definition: shell32.cpp:71
const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO
Definition: undocshell.h:514
struct CWTESTPATHSTRUCT * LPCWTESTPATHSTRUCT
BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu)
Definition: shlmenu.c:670
const char * LPCSTR
Definition: xmlstorage.h:183
BOOL WINAPI SHWaitForFileToOpen(LPCITEMIDLIST pidl, DWORD dwFlags, DWORD dwTimeout)
Definition: shellord.c:1386
GUID guidDroidBirthObject
Definition: undocshell.h:863
struct tagEXP_VISTA_ID_LIST EXP_VISTA_ID_LIST
void WINAPI PathStripPathAW(LPVOID lpszPath)
BOOL WINAPI PathIsRootAW(LPCVOID x)
Definition: shellpath.c:168
LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2)
WCHAR szwLayerName[64]
Definition: undocshell.h:871
BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID *sOtherDirs)
LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl)
Definition: pidl.c:460
NMRUNFILEDLGW NMRUNFILEDLG
Definition: undocshell.h:139
_In_opt_ LPCSTR lpDirectory
Definition: shellapi.h:482
LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive)
BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath)
DWORD WINAPI WinList_Init(void)
Definition: misc.cpp:68
VOID WINAPI PathQuoteSpacesAW(LPVOID path)
__wchar_t WCHAR
Definition: xmlstorage.h:180
LPCITEMIDLIST pidl
Definition: undocshell.h:488
int WINAPI FileMenu_ReplaceUsingPidl(HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:440
LONG HRESULT
Definition: typedefs.h:77
DWORD COLORREF
Definition: windef.h:300
struct tagSHELL_LINK_INFO_VOLUME_IDA SHELL_LINK_INFO_VOLUME_IDA
LPCWSTR lpFile
Definition: undocshell.h:134
#define WINAPI
Definition: msvc.h:6
struct SFVSELECTSTATE * LPSFVSELECTSTATE
LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile)
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
LPCSTR pszSrcFile
Definition: undocshell.h:509
BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec)
GUID guidDroidObject
Definition: undocshell.h:861
void WINAPI PathRemoveBlanksAW(LPVOID lpszPath)
BOOL WINAPI StrRetToStrNW(LPWSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:84
LPCITEMIDLIST pidl
Definition: undocshell.h:498
STRRET lpText
Definition: undocshell.h:522
int WINAPI SHOutOfMemoryMessageBox(HWND hwndOwner, LPCSTR lpCaption, UINT uType)
Definition: shellord.c:1365
void WINAPI PathRemoveArgsAW(LPVOID lpszPath)
void WINAPI FileMenu_Invalidate(HMENU hMenu)
Definition: shlmenu.c:460
LPDWORD lpdwUser
Definition: undocshell.h:499
struct tagEXP_SHIM EXP_SHIM
BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath)
DATABLOCK_HEADER dbh
Definition: undocshell.h:877
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
struct tagSHELL_LINK_INFO_CNR_LINKW SHELL_LINK_INFO_CNR_LINKW
struct SFVCOPYHOOKINFO * LPSFVCOPYHOOKINFO
GLenum GLsizei len
Definition: glext.h:6722
BOOL WINAPI PathMakeUniqueNameAW(LPVOID lpszBuffer, DWORD dwBuffSize, LPCVOID lpszShortName, LPCVOID lpszLongName, LPCVOID lpszPathName)
Definition: shellpath.c:305
REFIID LPVOID * ppvObject
Definition: precomp.h:44
struct tagSHELL_LINK_INFO_VOLUME_IDW SHELL_LINK_INFO_VOLUME_IDW
LPVOID WINAPI PathAddBackslashAW(LPVOID path)
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
BOOL WINAPI StrRetToStrNA(LPSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:53
HRESULT(CALLBACK * LPFNCDCOCALLBACK)(LPUNKNOWN pUnkOuter, REFIID riidObject, LPVOID *ppvObject)
Definition: undocshell.h:575
LPNMRUNFILEDLGW LPNMRUNFILEDLG
Definition: undocshell.h:141
struct tagSHELL_LINK_INFOA * LPSHELL_LINK_INFOA
BOOL WINAPI DAD_SetDragImageFromListView(HWND hWnd, POINT pt)
Definition: stubs.cpp:1007
#define _In_
Definition: no_sal2.h:204
BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags)
Definition: shellpath.c:471
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081
DWORD WINAPI SHNetConnectionDialog(HWND hwndOwner, LPCWSTR lpstrRemoteName, DWORD dwType)
Definition: stubs.cpp:994
void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath)
const SFVCBINFO * LPCSFVCBINFO
Definition: undocshell.h:491
const SFVSELECTSTATE * LPCSFVSELECTSTATE
Definition: undocshell.h:501
BOOL WINAPI PathStripToRootAW(LPVOID lpszPath)
DATABLOCK_HEADER dbh
Definition: undocshell.h:869
struct tagSHELL_LINK_INFOW SHELL_LINK_INFOW
struct tagSHELL_LINK_INFO_VOLUME_IDW * LPSHELL_LINK_INFO_VOLUME_IDW
HRESULT WINAPI ShellExecCmdLine(HWND hwnd, LPCWSTR pwszCommand, LPCWSTR pwszStartDir, int nShow, LPVOID pUnused, DWORD dwSeclFlags)
Definition: shlexec.cpp:2387
_In_ BOOL bEnable
Definition: winddi.h:3426
BOOL WINAPI FileMenu_DeleteItemByCmd(HMENU hMenu, UINT uID)
Definition: shlmenu.c:705
LPVOID WINAPI PathFindFileNameAW(LPCVOID path)
HICON hIcon
Definition: msconfig.c:44
LPDWORD lpdwUser
Definition: undocshell.h:489
LPCWSTR szPath
Definition: env.c:35
BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath)
HMENU WINAPI FileMenu_Create(COLORREF crBorderColor, int nBorderWidth, HBITMAP hBorderBmp, int nSelHeight, UINT uFlags)
Definition: shlmenu.c:251
struct SFVM_CUSTOMVIEWINFO_DATA SFVM_CUSTOMVIEWINFO_DATA
BOOL WINAPI DAD_ShowDragImage(BOOL bShow)
Definition: shellord.c:1203
void WINAPI SHHandleDiskFull(HWND hwndOwner, UINT uDrive)
Definition: stubs.cpp:1018
ACCESS_MASK REGSAM
Definition: winreg.h:69
unsigned int UINT
Definition: ndis.h:50
struct _NMRUNFILEDLGW * LPNMRUNFILEDLGW
void WINAPI PathRemoveExtensionAW(LPVOID lpszPath)
void WINAPI SHFreeUnusedLibraries(void)
Definition: shellord.c:1134
DWORD dwDestAttribs
Definition: undocshell.h:512
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
BOOL WINAPI SHFindComputer(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: stubs.cpp:33
struct tagEXP_VISTA_ID_LIST * LPEXP_VISTA_ID_LIST
int WINAPI FileMenu_AppendFilesForPidl(HMENU hMenu, LPCITEMIDLIST pidl, BOOL bAddSeparator)
Definition: shlmenu.c:479
CONST void * LPCVOID
Definition: windef.h:191
DWORD dwFileAttributes
HRESULT WINAPI SHRevokeDragDrop(HWND hWnd)
Definition: shellord.c:486
BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath)
Definition: shellpath.c:226
uint32_t * LPDWORD
Definition: typedefs.h:57
unsigned int ULONG
Definition: retypes.h:1
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath)
Definition: pidl.c:1111
int WINAPI FileMenu_InsertUsingPidl(HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:415
struct tagSHELL_LINK_INFO_CNR_LINKW * LPSHELL_LINK_INFO_CNR_LINKW
LPCITEMIDLIST pidl
Definition: undocshell.h:519
static HBITMAP
Definition: button.c:44
DATABLOCK_HEADER dbh
Definition: undocshell.h:888
DWORD WINAPI FileMenu_GetItemExtent(HMENU hMenu, UINT uPos)
Definition: shlmenu.c:786
GUID guidDroidVolume
Definition: undocshell.h:860
struct tagEXP_KNOWN_FOLDER * LPEXP_KNOWN_FOLDER
WCHAR * LPWSTR
Definition: xmlstorage.h:184
LONG_PTR LRESULT
Definition: windef.h:209
HMENU WINAPI FileMenu_FindSubMenuByPidl(HMENU hMenu, LPCITEMIDLIST pidl)
Definition: shlmenu.c:468
BOOL WINAPI FileMenu_AppendItem(HMENU hMenu, LPCSTR lpszText, UINT uID, int iIcon, HMENU hMenuPopup, int nItemHeight)
#define EXTERN_C
Definition: basetyps.h:12
void WINAPI ILGlobalFree(LPITEMIDLIST pidl)
Definition: pidl.c:945
IStream *WINAPI SHGetViewStream(LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR)
HICON WINAPI SHGetFileIcon(DWORD dwReserved, LPCSTR lpszPath, DWORD dwFileAttributes, UINT uFlags)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
BOOL WINAPI PathIsExeAW(LPCVOID lpszPath)
Definition: shellpath.c:216
#define CONST
Definition: pedump.c:81
LRESULT WINAPI FileMenu_HandleMenuChar(HMENU hMenu, WPARAM wParam)
Definition: shlmenu.c:656
BOOL WINAPI PathQualifyAW(LPCVOID path)
Definition: shellpath.c:449
HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:380
BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu)
Definition: shlmenu.c:762
EXTERN_C HRESULT WINAPI SHCreateSessionKey(REGSAM samDesired, PHKEY phKey)
Definition: shellreg.c:151
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
Definition: pidl.c:162
struct tagEXP_TRACKER * LPEXP_TRACKER