ReactOS  0.4.13-dev-259-g5ca9c9c
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 static inline ULONG
622 Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
623 {
624  char szMsg[512];
625  char *szMsgStart;
626  const char *fname;
627  va_list vl;
628  ULONG uRet;
629 
630  fname = strrchr(filename, '\\');
631  if (fname == NULL)
632  {
633  fname = strrchr(filename, '/');
634  if (fname != NULL)
635  fname++;
636  }
637  else
638  fname++;
639 
640  if (fname == NULL)
641  fname = filename;
642 
643  szMsgStart = szMsg + sprintf(szMsg, "%s:%d: ", fname, line);
644 
645  va_start(vl, lpFormat);
646  uRet = (ULONG) vsprintf(szMsgStart, lpFormat, vl);
647  va_end(vl);
648 
649  OutputDebugStringA(szMsg);
650 
651  return uRet;
652 }
653 
654 #define DbgPrint(fmt, ...) \
655  Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
656 
657 static inline void DbgDumpMenuInternal(HMENU hmenu, char* padding, int padlevel)
658 {
659  WCHAR label[128];
660  int i;
662 
663  padding[padlevel] = '.';
664  padding[padlevel + 1] = '.';
665  padding[padlevel + 2] = 0;
666 
667  for (i = 0; i < count; i++)
668  {
669  MENUITEMINFOW mii = { 0 };
670 
671  mii.cbSize = sizeof(mii);
673  mii.dwTypeData = label;
674  mii.cch = _countof(label);
675 
676  GetMenuItemInfoW(hmenu, i, TRUE, &mii);
677 
678  if (mii.fType & MFT_BITMAP)
679  DbgPrint("%s%2d - %08x: BITMAP %08p (state=%d, has submenu=%s)\n", padding, i, mii.wID, mii.hbmpItem, mii.fState, mii.hSubMenu ? "TRUE" : "FALSE");
680  else if (mii.fType & MFT_SEPARATOR)
681  DbgPrint("%s%2d - %08x ---SEPARATOR---\n", padding, i, mii.wID);
682  else
683  DbgPrint("%s%2d - %08x: %S (state=%d, has submenu=%s)\n", padding, i, mii.wID, mii.dwTypeData, mii.fState, mii.hSubMenu ? "TRUE" : "FALSE");
684 
685  if (mii.hSubMenu)
686  DbgDumpMenuInternal(mii.hSubMenu, padding, padlevel + 2);
687 
688  }
689 
690  padding[padlevel] = 0;
691 }
692 
693 static __inline void DbgDumpMenu(HMENU hmenu)
694 {
695  char padding[128];
697 }
698 
699 
700 static inline
702 {
703  DbgPrint("Begin IDList Dump\n");
704 
705  for (; pcidl != NULL; pcidl = ILGetNext(pcidl))
706  {
707  int i;
708  int cb = pcidl->mkid.cb;
709  BYTE * sh = (BYTE*) &(pcidl->mkid);
710  if (cb == 0) // ITEMIDLISTs are terminatedwith a null SHITEMID.
711  break;
712  DbgPrint("Begin SHITEMID (cb=%d)\n", cb);
713  if ((cb & 3) != 0)
714  DbgPrint(" - WARNING: cb is not a multiple of 4\n");
715  for (i = 0; (i + 4) <= cb; i += 4)
716  {
717  DbgPrint(" - abID[%08x]: %02x %02x %02x %02x\n",
718  i,
719  sh[i + 0],
720  sh[i + 1],
721  sh[i + 2],
722  sh[i + 3]);
723  }
724  if (i < cb)
725  {
726  cb -= i;
727  if (cb == 3)
728  {
729  DbgPrint(" - abID[%08x]: %02x %02x %02x --\n",
730  i,
731  sh[i + 0],
732  sh[i + 1],
733  sh[i + 2]);
734  }
735  else if (cb == 2)
736  {
737  DbgPrint(" - abID[%08x]: %02x %02x -- --\n",
738  i,
739  sh[i + 0],
740  sh[i + 1]);
741  }
742  else if (cb == 1)
743  {
744  DbgPrint(" - abID[%08x]: %02x -- -- --\n",
745  i,
746  sh[i + 0]);
747  }
748  }
749  DbgPrint("End SHITEMID\n");
750  }
751  DbgPrint("End IDList Dump.\n");
752 }
753 
754 
755 /*****************************************************************************
756  * Shell32 resources
757  */
758 // these resources are in shell32.dll
759 #define IDB_GOBUTTON_NORMAL 0x0e6
760 #define IDB_GOBUTTON_HOT 0x0e7
761 
762 // band ids in internet toolbar
763 #define ITBBID_MENUBAND 1
764 #define ITBBID_BRANDBAND 5
765 #define ITBBID_TOOLSBAND 2
766 #define ITBBID_ADDRESSBAND 4
767 
768 // commands in the CGID_PrivCITCommands command group handled by the internet toolbar
769 // there seems to be some support for hiding the menubar and an auto hide feature that are
770 // unavailable in the UI
771 #define ITID_TEXTLABELS 3
772 #define ITID_TOOLBARBANDSHOWN 4
773 #define ITID_ADDRESSBANDSHOWN 5
774 #define ITID_LINKSBANDSHOWN 6
775 #define ITID_MENUBANDSHOWN 12
776 #define ITID_AUTOHIDEENABLED 13
777 #define ITID_CUSTOMIZEENABLED 20
778 #define ITID_TOOLBARLOCKED 27
779 
780 // commands in the CGID_BrandCmdGroup command group handled by the brand band
781 #define BBID_STARTANIMATION 1
782 #define BBID_STOPANIMATION 2
783 
784 // undocumented flags for IShellMenu::SetShellFolder
785 #define SMSET_UNKNOWN08 0x08
786 #define SMSET_UNKNOWN10 0x10
787 
788 void WINAPI ShellDDEInit(BOOL bInit);
790 
792 
794 
795 /*****************************************************************************
796  * Shell Link
797  */
798 #include <pshpack1.h>
799 
800 typedef struct tagSHELL_LINK_HEADER
801 {
802  /* The size of this structure (always 0x0000004C) */
804  /* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
806  /* Flags (SHELL_LINK_DATA_FLAGS) */
808  /* Informations about the link target: */
813  DWORD nFileSizeLow; /* only the least significant 32 bits */
814  /* The index of an icon (signed?) */
816  /* The expected window state of an application launched by the link */
818  /* The keystrokes used to launch the application */
820  /* Reserved (must be zero) */
825 
826 /*****************************************************************************
827  * SHELL_LINK_INFOA/W
828  * If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
829  * If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
830  */
831 typedef struct tagSHELL_LINK_INFOA
832 {
833  /* Size of the link info data */
835  /* Size of this structure (ANSI: = 0x0000001C) */
837  /* Specifies which fields are present/populated (SLI_*) */
839  /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
841  /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
843  /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
845  /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
848 
849 typedef struct tagSHELL_LINK_INFOW
850 {
851  /* Size of the link info data */
853  /* Size of this structure (Unicode: >= 0x00000024) */
855  /* Specifies which fields are present/populated (SLI_*) */
857  /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
859  /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
861  /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
863  /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
865  /* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
867  /* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
870 
871 /* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
872 #define SLI_VALID_LOCAL 0x00000001
873 /* CommonNetworkRelativeLink is present */
874 #define SLI_VALID_NETWORK 0x00000002
875 
876 /*****************************************************************************
877  * SHELL_LINK_INFO_VOLUME_IDA/W
878  * If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
879  * SHELL_LINK_INFO_VOLUME_IDA
880  * If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
881  */
883 {
884  /* Size of the VolumeID field (> 0x00000010) */
886  /* Drive type of the drive the link target is stored on (DRIVE_*) */
888  /* Serial number of the volume the link target is stored on */
890  /* Offset of the volume label (ANSI, NULL-terminated string).
891  Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
894 
896 {
897  /* Size of the VolumeID field (> 0x00000010) */
899  /* Drive type of the drive the link target is stored on (DRIVE_*) */
901  /* Serial number of the volume the link target is stored on */
903  /* Offset of the volume label (ANSI, NULL-terminated string).
904  If the value of this field is 0x00000014, ignore it and use
905  cbVolumeLabelUnicodeOffset! */
907  /* Offset of the volume label (Unicode, NULL-terminated string).
908  If the value of the VolumeLabelOffset field is not 0x00000014,
909  this field must be ignored (==> it doesn't exists ==> ANSI). */
912 
913 /*****************************************************************************
914  * SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
915  * If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
916  * If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
917  */
919 {
920  /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
922  /* Specifies which fields are present/populated (SLI_CNR_*) */
924  /* Offset of the NetName field (ANSI, NULL–terminated string) */
926  /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
928  /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
931 
933 {
934  /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
936  /* Specifies which fields are present/populated (SLI_CNR_*) */
938  /* Offset of the NetName field (ANSI, NULL–terminated string) */
940  /* Offset of the DeviceName field (ANSI, NULL–terminated string) */
942  /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
944  /* Offset of the NetNameUnicode field (Unicode, NULL–terminated string) */
946  /* Offset of the DeviceNameUnicode field (Unicode, NULL–terminated string) */
949 
950 /* DeviceName is present */
951 #define SLI_CNR_VALID_DEVICE 0x00000001
952 /* NetworkProviderType is present */
953 #define SLI_CNR_VALID_NET_TYPE 0x00000002
954 
955 /*****************************************************************************
956  * Shell Link Extra Data (IShellLinkDataList)
957  */
958 typedef struct tagEXP_TRACKER
959 {
960  /* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
962  /* Length >= 0x00000058 */
964  /* Must be 0x00000000 */
966  /* NetBIOS name (ANSI, unused bytes are set to zero) */
967  CHAR szMachineID[16]; /* "variable" >= 16 (?) */
968  /* Some GUIDs for the Link Tracking service (from the FS?) */
974 
975 typedef struct tagEXP_SHIM
976 {
977  /* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
979  /* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
980  WCHAR szwLayerName[64]; /* "variable" >= 64 */
981 } EXP_SHIM, *LPEXP_SHIM;
982 
983 typedef struct tagEXP_KNOWN_FOLDER
984 {
985  /* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
987  /* A GUID value that identifies a known folder */
989  /* Specifies the location of the ItemID of the first child
990  segment of the IDList specified by guidKnownFolder */
993 
994 typedef struct tagEXP_VISTA_ID_LIST
995 {
996  /* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
998  /* Specifies an alternate IDList that can be used instead
999  of the "normal" IDList (SLDF_HAS_ID_LIST) */
1000  /* LPITEMIDLIST pIDList; (variable) */
1002 
1003 #define EXP_TRACKER_SIG 0xa0000003
1004 #define EXP_SHIM_SIG 0xa0000008
1005 #define EXP_KNOWN_FOLDER_SIG 0xa000000b
1006 #define EXP_VISTA_ID_LIST_SIG 0xa000000c
1007 
1008 /* Not compatible yet */
1010 {
1016 
1017 #include <poppack.h>
1018 
1019 #ifdef __cplusplus
1020 } /* extern "C" */
1021 #endif /* defined(__cplusplus) */
1022 
1023 #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:9
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
GUID guidDroidBirthVolume
Definition: undocshell.h:971
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
#define MIIM_FTYPE
Definition: winuser.h:724
DWORD dwSrcAttribs
Definition: undocshell.h:510
BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2)
LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath)
#define REFIID
Definition: guiddef.h:113
#define TRUE
Definition: types.h:120
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
static HMENU hmenu
Definition: win.c:66
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:46
BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath)
Definition: shellpath.c:109
#define pt(x, y)
Definition: drawing.c:79
REFIID riid
Definition: precomp.h:44
BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu)
Definition: shlmenu.c:647
#define _countof(array)
Definition: fontsub.cpp:30
GLuint GLuint GLsizei count
Definition: gl.h:1545
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
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
Definition: pidl.c:851
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:4488
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
LPCWSTR lpDirectory
Definition: undocshell.h:135
struct tagEXP_TRACKER EXP_TRACKER
LPWSTR dwTypeData
Definition: winuser.h:3211
#define MFT_BITMAP
Definition: winuser.h:733
UINT_PTR WPARAM
Definition: windef.h:207
struct SFVCBINFO * LPSFVCBINFO
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
LRESULT WINAPI FileMenu_DrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpdis)
Definition: shlmenu.c:587
UINT uFlags
Definition: api.c:60
char * LPSTR
Definition: xmlstorage.h:182
const char * filename
Definition: ioapi.h:135
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:63
DWORD dwReserved
Definition: undocshell.h:486
struct SFVCOLUMNINFO * LPSFVCOLUMNINFO
#define sprintf(buf, format,...)
Definition: sprintf.c:55
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath)
Definition: pidl.c:1089
WORD unused[29]
Definition: crypt.c:1155
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define MIIM_SUBMENU
Definition: winuser.h:718
CHAR szMachineID[16]
Definition: undocshell.h:967
BOOL WINAPI PathYetAnotherMakeUniqueName(LPWSTR lpszBuffer, LPCWSTR lpszPathName, LPCWSTR lpszShortName, LPCWSTR lpszLongName)
Definition: shellpath.c:319
#define va_end(ap)
Definition: acmsvcex.h:90
static void DumpIdList(LPCITEMIDLIST pcidl)
Definition: undocshell.h:701
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
#define MIIM_STATE
Definition: winuser.h:716
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
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
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:2007
struct tagSHELL_LINK_HEADER * LPSHELL_LINK_HEADER
struct tagSHELL_LINK_INFO_CNR_LINKA SHELL_LINK_INFO_CNR_LINKA
smooth NULL
Definition: ftsmooth.c:416
DATABLOCK_HEADER dbh
Definition: undocshell.h:961
static HWND hwndParent
Definition: cryptui.c:300
HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
Definition: shellpath.c:513
static void DbgDumpMenuInternal(HMENU hmenu, char *padding, int padlevel)
Definition: undocshell.h:657
#define _Out_
Definition: no_sal2.h:323
Definition: parser.c:48
char * va_list
Definition: acmsvcex.h:78
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:972
struct tagEXP_VISTA_ID_LIST EXP_VISTA_ID_LIST
void WINAPI PathStripPathAW(LPVOID lpszPath)
BOOL WINAPI PathIsRootAW(LPCVOID x)
Definition: shellpath.c:167
LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2)
#define MIIM_ID
Definition: winuser.h:717
WCHAR szwLayerName[64]
Definition: undocshell.h:980
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)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
DWORD WINAPI WinList_Init(void)
Definition: misc.cpp:68
unsigned int padding
Definition: isohybrid.c:50
static __inline void DbgDumpMenu(HMENU hmenu)
Definition: undocshell.h:693
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:285
struct tagSHELL_LINK_INFO_VOLUME_IDA SHELL_LINK_INFO_VOLUME_IDA
LPCWSTR lpFile
Definition: undocshell.h:134
#define WINAPI
Definition: msvc.h:8
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:970
void WINAPI PathRemoveBlanksAW(LPVOID lpszPath)
static DWORD cb
Definition: integrity.c:41
BOOL WINAPI StrRetToStrNW(LPWSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:84
LPCITEMIDLIST pidl
Definition: undocshell.h:498
#define MFT_SEPARATOR
Definition: winuser.h:739
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:986
_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
unsigned char BYTE
Definition: mem.h:68
BOOL WINAPI PathMakeUniqueNameAW(LPVOID lpszBuffer, DWORD dwBuffSize, LPCVOID lpszShortName, LPCVOID lpszLongName, LPCVOID lpszPathName)
Definition: shellpath.c:304
REFIID LPVOID * ppvObject
Definition: precomp.h:44
struct tagSHELL_LINK_INFO_VOLUME_IDW SHELL_LINK_INFO_VOLUME_IDW
LPCWSTR lpFormat
Definition: trayclock.cpp:32
LPVOID WINAPI PathAddBackslashAW(LPVOID path)
interface IDataObject * LPDATAOBJECT
Definition: objfwd.h:21
BOOL WINAPI StrRetToStrNA(LPSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
Definition: shellstring.c:53
uint8_t label[11]
Definition: fsck.fat.h:65
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
short sh
Definition: format.c:272
#define _In_
Definition: no_sal2.h:204
BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags)
Definition: shellpath.c:470
_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
#define MIIM_STRING
Definition: winuser.h:722
BOOL WINAPI PathStripToRootAW(LPVOID lpszPath)
DATABLOCK_HEADER dbh
Definition: undocshell.h:978
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:2377
_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
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
Definition: sprintf.c:733
Definition: services.c:325
void WINAPI SHHandleDiskFull(HWND hwndOwner, UINT uDrive)
Definition: stubs.cpp:1018
static ULONG Win32DbgPrint(const char *filename, int line, const char *lpFormat,...)
Definition: undocshell.h:622
ACCESS_MASK REGSAM
Definition: winreg.h:69
#define va_start(ap, A)
Definition: acmsvcex.h:91
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:225
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
#define DbgPrint(fmt,...)
Definition: undocshell.h:654
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:997
DWORD WINAPI FileMenu_GetItemExtent(HMENU hMenu, UINT uPos)
Definition: shlmenu.c:786
GUID guidDroidVolume
Definition: undocshell.h:969
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:215
void WINAPI SHIM_OBJ_NAME() OutputDebugStringA(LPCSTR lpOutputString)
Definition: ignoredbgout.c:18
#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:448
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