]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/shell32/shell32.factor
inverse: Fix docs
[factor.git] / basis / windows / shell32 / shell32.factor
1 ! Copyright (C) 2006, 2008 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors alien alien.c-types alien.data alien.strings
4 alien.syntax assocs classes.struct io.backend kernel literals
5 math sequences vocabs windows windows.com windows.com.syntax
6 windows.kernel32 windows.messages windows.ole32 windows.types ;
7 IN: windows.shell32
8
9 CONSTANT: CSIDL_DESKTOP 0x00
10 CONSTANT: CSIDL_INTERNET 0x01
11 CONSTANT: CSIDL_PROGRAMS 0x02
12 CONSTANT: CSIDL_CONTROLS 0x03
13 CONSTANT: CSIDL_PRINTERS 0x04
14 CONSTANT: CSIDL_PERSONAL 0x05
15 CONSTANT: CSIDL_FAVORITES 0x06
16 CONSTANT: CSIDL_STARTUP 0x07
17 CONSTANT: CSIDL_RECENT 0x08
18 CONSTANT: CSIDL_SENDTO 0x09
19 CONSTANT: CSIDL_BITBUCKET 0x0a
20 CONSTANT: CSIDL_STARTMENU 0x0b
21 CONSTANT: CSIDL_MYDOCUMENTS 0x0c
22 CONSTANT: CSIDL_MYMUSIC 0x0d
23 CONSTANT: CSIDL_MYVIDEO 0x0e
24 CONSTANT: CSIDL_DESKTOPDIRECTORY 0x10
25 CONSTANT: CSIDL_DRIVES 0x11
26 CONSTANT: CSIDL_NETWORK 0x12
27 CONSTANT: CSIDL_NETHOOD 0x13
28 CONSTANT: CSIDL_FONTS 0x14
29 CONSTANT: CSIDL_TEMPLATES 0x15
30 CONSTANT: CSIDL_COMMON_STARTMENU 0x16
31 CONSTANT: CSIDL_COMMON_PROGRAMS 0x17
32 CONSTANT: CSIDL_COMMON_STARTUP 0x18
33 CONSTANT: CSIDL_COMMON_DESKTOPDIRECTORY 0x19
34 CONSTANT: CSIDL_APPDATA 0x1a
35 CONSTANT: CSIDL_PRINTHOOD 0x1b
36 CONSTANT: CSIDL_LOCAL_APPDATA 0x1c
37 CONSTANT: CSIDL_ALTSTARTUP 0x1d
38 CONSTANT: CSIDL_COMMON_ALTSTARTUP 0x1e
39 CONSTANT: CSIDL_COMMON_FAVORITES 0x1f
40 CONSTANT: CSIDL_INTERNET_CACHE 0x20
41 CONSTANT: CSIDL_COOKIES 0x21
42 CONSTANT: CSIDL_HISTORY 0x22
43 CONSTANT: CSIDL_COMMON_APPDATA 0x23
44 CONSTANT: CSIDL_WINDOWS 0x24
45 CONSTANT: CSIDL_SYSTEM 0x25
46 CONSTANT: CSIDL_PROGRAM_FILES 0x26
47 CONSTANT: CSIDL_MYPICTURES 0x27
48 CONSTANT: CSIDL_PROFILE 0x28
49 CONSTANT: CSIDL_SYSTEMX86 0x29
50 CONSTANT: CSIDL_PROGRAM_FILESX86 0x2a
51 CONSTANT: CSIDL_PROGRAM_FILES_COMMON 0x2b
52 CONSTANT: CSIDL_PROGRAM_FILES_COMMONX86 0x2c
53 CONSTANT: CSIDL_COMMON_TEMPLATES 0x2d
54 CONSTANT: CSIDL_COMMON_DOCUMENTS 0x2e
55 CONSTANT: CSIDL_COMMON_ADMINTOOLS 0x2f
56 CONSTANT: CSIDL_ADMINTOOLS 0x30
57 CONSTANT: CSIDL_CONNECTIONS 0x31
58 CONSTANT: CSIDL_COMMON_MUSIC 0x35
59 CONSTANT: CSIDL_COMMON_PICTURES 0x36
60 CONSTANT: CSIDL_COMMON_VIDEO 0x37
61 CONSTANT: CSIDL_RESOURCES 0x38
62 CONSTANT: CSIDL_RESOURCES_LOCALIZED 0x39
63 CONSTANT: CSIDL_COMMON_OEM_LINKS 0x3a
64 CONSTANT: CSIDL_CDBURN_AREA 0x3b
65 CONSTANT: CSIDL_COMPUTERSNEARME 0x3d
66 CONSTANT: CSIDL_PROFILES 0x3e
67 CONSTANT: CSIDL_FOLDER_MASK 0xff
68 CONSTANT: CSIDL_FLAG_PER_USER_INIT 0x800
69 CONSTANT: CSIDL_FLAG_NO_ALIAS 0x1000
70 CONSTANT: CSIDL_FLAG_DONT_VERIFY 0x4000
71 CONSTANT: CSIDL_FLAG_CREATE 0x8000
72 CONSTANT: CSIDL_FLAG_MASK 0xff00
73
74 CONSTANT: SHGFP_TYPE_CURRENT 0
75 CONSTANT: SHGFP_TYPE_DEFAULT 1
76
77 LIBRARY: shell32
78
79 FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner,
80                                      int nFolder,
81                                      HANDLE hToken,
82                                      DWORD dwReserved,
83                                      LPTSTR pszPath )
84 ALIAS: SHGetFolderPath SHGetFolderPathW
85
86 FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd,
87                                     LPCTSTR lpOperation,
88                                     LPCTSTR lpFile,
89                                     LPCTSTR lpParameters,
90                                     LPCTSTR lpDirectory, INT nShowCmd )
91 ALIAS: ShellExecute ShellExecuteW
92
93 CONSTANT: SHGFI_ICON 0x000000100
94 CONSTANT: SHGFI_DISPLAYNAME 0x000000200
95 CONSTANT: SHGFI_TYPENAME 0x000000400
96 CONSTANT: SHGFI_ATTRIBUTES 0x000000800
97 CONSTANT: SHGFI_ICONLOCATION 0x000001000
98 CONSTANT: SHGFI_EXETYPE 0x000002000
99 CONSTANT: SHGFI_SYSICONINDEX 0x000004000
100 CONSTANT: SHGFI_LINKOVERLAY 0x000008000
101 CONSTANT: SHGFI_SELECTED 0x000010000
102 CONSTANT: SHGFI_ATTR_SPECIFIED 0x000020000
103 CONSTANT: SHGFI_LARGEICON 0x000000000
104 CONSTANT: SHGFI_SMALLICON 0x000000001
105 CONSTANT: SHGFI_OPENICON 0x000000002
106 CONSTANT: SHGFI_SHELLICONSIZE 0x000000004
107 CONSTANT: SHGFI_PIDL 0x000000008
108 CONSTANT: SHGFI_USEFILEATTRIBUTES 0x000000010
109 CONSTANT: SHGFI_ADDOVERLAYS 0x000000020
110 CONSTANT: SHGFI_OVERLAYINDEX 0x000000040
111
112 STRUCT: SHFILEINFO
113     { hIcon HICON }
114     { iIcon int }
115     { dwAttributes DWORD }
116     { szDisplayName TCHAR[MAX_PATH] }
117     { szTypeName TCHAR[80] } ;
118
119 FUNCTION: DWORD_PTR SHGetFileInfoW ( LPCTSTR pszPath,
120                                      DWORD dwFileAttributes,
121                                      SHFILEINFO *psfi,
122                                      UINT cbFileInfo,
123                                      UINT uFlags )
124
125 : shell32-file-info ( path -- err struct )
126     normalize-path
127     0
128     SHFILEINFO new
129     [ dup byte-length SHGFI_EXETYPE SHGetFileInfoW ] keep ;
130
131 SINGLETONS:
132     +dos-executable+
133     +win32-console-executable+
134     +win32-vxd-executable+
135     +win32-os2-executable+
136     +win32-nt-executable+ ;
137
138 MIXIN: windows-executable
139 INSTANCE: +dos-executable+ windows-executable        ! mz
140 INSTANCE: +win32-console-executable+ windows-executable
141 INSTANCE: +win32-vxd-executable+ windows-executable  ! le
142 INSTANCE: +win32-os2-executable+ windows-executable  ! ne
143 INSTANCE: +win32-nt-executable+ windows-executable   ! pe
144
145 : shell32-directory ( n -- str )
146     f swap f SHGFP_TYPE_DEFAULT
147     MAX_UNICODE_PATH ushort <c-array>
148     [ SHGetFolderPath drop ] keep alien>native-string ;
149
150 : desktop ( -- str )
151     CSIDL_DESKTOPDIRECTORY shell32-directory ;
152
153 : my-documents ( -- str )
154     CSIDL_PERSONAL shell32-directory ;
155
156 : application-data ( -- str )
157     CSIDL_APPDATA shell32-directory ;
158
159 : local-application-data ( -- str )
160     CSIDL_LOCAL_APPDATA shell32-directory ;
161
162 : common-application-data ( -- str )
163     CSIDL_COMMON_APPDATA shell32-directory ;
164
165 : windows-directory ( -- str )
166     CSIDL_WINDOWS shell32-directory ;
167
168 : programs ( -- str )
169     CSIDL_PROGRAMS shell32-directory ;
170
171 : program-files ( -- str )
172     CSIDL_PROGRAM_FILES shell32-directory ;
173
174 : program-files-x86 ( -- str )
175     CSIDL_PROGRAM_FILESX86 shell32-directory ;
176
177 : program-files-common ( -- str )
178     CSIDL_PROGRAM_FILES_COMMON shell32-directory ;
179
180 : program-files-common-x86 ( -- str )
181     CSIDL_PROGRAM_FILES_COMMONX86 shell32-directory ;
182
183 CONSTANT: SHCONTF_FOLDERS 32
184 CONSTANT: SHCONTF_NONFOLDERS 64
185 CONSTANT: SHCONTF_INCLUDEHIDDEN 128
186 CONSTANT: SHCONTF_INIT_ON_FIRST_NEXT 256
187 CONSTANT: SHCONTF_NETPRINTERSRCH 512
188 CONSTANT: SHCONTF_SHAREABLE 1024
189 CONSTANT: SHCONTF_STORAGE 2048
190
191 TYPEDEF: DWORD SHCONTF
192
193 CONSTANT: SHGDN_NORMAL 0
194 CONSTANT: SHGDN_INFOLDER 1
195 CONSTANT: SHGDN_FOREDITING 0x1000
196 CONSTANT: SHGDN_INCLUDE_NONFILESYS 0x2000
197 CONSTANT: SHGDN_FORADDRESSBAR 0x4000
198 CONSTANT: SHGDN_FORPARSING 0x8000
199
200 TYPEDEF: DWORD SHGDNF
201
202 ALIAS: SFGAO_CANCOPY           DROPEFFECT_COPY
203 ALIAS: SFGAO_CANMOVE           DROPEFFECT_MOVE
204 ALIAS: SFGAO_CANLINK           DROPEFFECT_LINK
205 CONSTANT: SFGAO_CANRENAME         0x00000010
206 CONSTANT: SFGAO_CANDELETE         0x00000020
207 CONSTANT: SFGAO_HASPROPSHEET      0x00000040
208 CONSTANT: SFGAO_DROPTARGET        0x00000100
209 CONSTANT: SFGAO_CAPABILITYMASK    0x00000177
210 CONSTANT: SFGAO_LINK              0x00010000
211 CONSTANT: SFGAO_SHARE             0x00020000
212 CONSTANT: SFGAO_READONLY          0x00040000
213 CONSTANT: SFGAO_GHOSTED           0x00080000
214 CONSTANT: SFGAO_HIDDEN            0x00080000
215 CONSTANT: SFGAO_DISPLAYATTRMASK   0x000F0000
216 CONSTANT: SFGAO_FILESYSANCESTOR   0x10000000
217 CONSTANT: SFGAO_FOLDER            0x20000000
218 CONSTANT: SFGAO_FILESYSTEM        0x40000000
219 CONSTANT: SFGAO_HASSUBFOLDER      0x80000000
220 CONSTANT: SFGAO_CONTENTSMASK      0x80000000
221 CONSTANT: SFGAO_VALIDATE          0x01000000
222 CONSTANT: SFGAO_REMOVABLE         0x02000000
223 CONSTANT: SFGAO_COMPRESSED        0x04000000
224 CONSTANT: SFGAO_BROWSABLE         0x08000000
225 CONSTANT: SFGAO_NONENUMERATED     0x00100000
226 CONSTANT: SFGAO_NEWCONTENT        0x00200000
227
228 TYPEDEF: ULONG SFGAOF
229
230 STRUCT: DROPFILES
231     { pFiles DWORD }
232     { pt POINT }
233     { fNC BOOL }
234     { fWide BOOL } ;
235 TYPEDEF: DROPFILES* LPDROPFILES
236 TYPEDEF: DROPFILES* LPCDROPFILES
237
238 STRUCT: SHITEMID
239     { cb USHORT }
240     { abID BYTE[1] } ;
241 TYPEDEF: SHITEMID* LPSHITEMID
242 TYPEDEF: SHITEMID* LPCSHITEMID
243
244 STRUCT: ITEMIDLIST
245     { mkid SHITEMID } ;
246 TYPEDEF: ITEMIDLIST* LPITEMIDLIST
247 TYPEDEF: ITEMIDLIST* LPCITEMIDLIST
248 TYPEDEF: ITEMIDLIST ITEMID_CHILD
249 TYPEDEF: ITEMID_CHILD* PITEMID_CHILD
250 TYPEDEF: ITEMID_CHILD* PCUITEMID_CHILD
251 TYPEDEF: ITEMIDLIST ITEMIDLIST_RELATIVE
252 TYPEDEF: ITEMIDLIST ITEMIDLIST_ABSOLUTE
253 TYPEDEF: ITEMIDLIST_ABSOLUTE* PIDLIST_ABSOLUTE
254 TYPEDEF: ITEMIDLIST_ABSOLUTE* PCIDLIST_ABSOLUTE
255
256 CONSTANT: STRRET_WSTR 0
257 CONSTANT: STRRET_OFFSET 1
258 CONSTANT: STRRET_CSTR 2
259
260 UNION-STRUCT: STRRET-union
261     { pOleStr LPWSTR }
262     { uOffset UINT }
263     { cStr char[260] } ;
264 STRUCT: STRRET
265     { uType int }
266     { value STRRET-union } ;
267
268 COM-INTERFACE: IEnumIDList IUnknown {000214F2-0000-0000-C000-000000000046}
269     HRESULT Next ( ULONG celt, LPITEMIDLIST* rgelt, ULONG* pceltFetched )
270     HRESULT Skip ( ULONG celt )
271     HRESULT Reset ( )
272     HRESULT Clone ( IEnumIDList** ppenum ) ;
273
274 COM-INTERFACE: IShellFolder IUnknown {000214E6-0000-0000-C000-000000000046}
275     HRESULT ParseDisplayName ( HWND hwndOwner,
276                                void* pbcReserved,
277                                LPOLESTR lpszDisplayName,
278                                ULONG* pchEaten,
279                                LPITEMIDLIST* ppidl,
280                                ULONG* pdwAttributes )
281     HRESULT EnumObjects ( HWND hwndOwner,
282                           SHCONTF grfFlags,
283                           IEnumIDList** ppenumIDList )
284     HRESULT BindToObject ( LPCITEMIDLIST pidl,
285                            void* pbcReserved,
286                            REFGUID riid,
287                            void** ppvOut )
288     HRESULT BindToStorage ( LPCITEMIDLIST pidl,
289                             void* pbcReserved,
290                             REFGUID riid,
291                             void** ppvObj )
292     HRESULT CompareIDs ( LPARAM lParam,
293                          LPCITEMIDLIST pidl1,
294                          LPCITEMIDLIST pidl2 )
295     HRESULT CreateViewObject ( HWND hwndOwner,
296                                REFGUID riid,
297                                void** ppvOut )
298     HRESULT GetAttributesOf ( UINT cidl,
299                               LPCITEMIDLIST* apidl,
300                               SFGAOF* rgfInOut )
301     HRESULT GetUIObjectOf ( HWND hwndOwner,
302                             UINT cidl,
303                             LPCITEMIDLIST* apidl,
304                             REFGUID riid,
305                             UINT* prgfInOut,
306                             void** ppvOut )
307     HRESULT GetDisplayNameOf ( LPCITEMIDLIST pidl,
308                                SHGDNF uFlags,
309                                STRRET* lpName )
310     HRESULT SetNameOf ( HWND hwnd,
311                         LPCITEMIDLIST pidl,
312                         LPCOLESTR lpszName,
313                         SHGDNF uFlags,
314                         LPITEMIDLIST* ppidlOut ) ;
315
316 FUNCTION: HRESULT SHGetDesktopFolder ( IShellFolder** ppshf )
317
318 FUNCTION: void DragAcceptFiles ( HWND hWnd, BOOL fAccept )
319
320 FUNCTION: UINT DragQueryFileW ( HDROP hDrop,
321                                 UINT iFile,
322                                 LPWSTR lpszFile,
323                                 UINT cch )
324 ALIAS: DragQueryFile DragQueryFileW
325
326 FUNCTION: BOOL DragQueryPoint ( HDROP hDrop, POINT* lppt )
327
328 FUNCTION: void DragFinish ( HDROP hDrop )
329
330 FUNCTION: BOOL IsUserAnAdmin ( )
331
332
333 CONSTANT: NIM_ADD 0
334 CONSTANT: NIM_MODIFY 1
335 CONSTANT: NIM_DELETE 2
336 CONSTANT: NIM_SETFOCUS 3
337 CONSTANT: NIM_SETVERSION 4
338
339 CONSTANT: NIF_MESSAGE 0x1
340 CONSTANT: NIF_ICON 0x2
341 CONSTANT: NIF_TIP 0x4
342 CONSTANT: NIF_STATE 0x8
343 CONSTANT: NIF_INFO 0x10
344 CONSTANT: NIF_GUID 0x20
345 CONSTANT: NIF_REALTIME 0x40
346 CONSTANT: NIF_SHOWTIP 0x80
347
348 CONSTANT: NIIF_NONE 0x0
349 CONSTANT: NIIF_INFO 0x1
350 CONSTANT: NIIF_WARNING 0x2
351 CONSTANT: NIIF_ERROR 0x3
352 CONSTANT: NIIF_USER 0x4
353 CONSTANT: NIIF_ICON_MASK 0xF
354 CONSTANT: NIIF_NOSOUND 0x10
355
356 CONSTANT: NIS_HIDDEN 1
357 CONSTANT: NIS_SHAREDICON 2
358
359 CONSTANT: NOTIFYICON_VERSION 3
360 CONSTANT: NOTIFYICON_VERSION_4 4
361
362 ! >= 0x0500
363 CONSTANT: NIN_SELECT $[ WM_USER 0 + ]
364 CONSTANT: NIN_KEYSELECT $[ WM_USER 1 + ]
365 ! >= 0x0501
366 CONSTANT: NIN_BALLOONSHOW $[ WM_USER 2 + ]
367 CONSTANT: NIN_BALLOONHIDE $[ WM_USER 3 + ]
368 CONSTANT: NIN_BALLOONTIMEOUT $[ WM_USER 4 + ]
369 CONSTANT: NIN_BALLOONUSERCLICK $[ WM_USER 5 + ]
370
371 UNION-STRUCT: timeout-version-union { uTimeout UINT } { uVersion UINT } ;
372 STRUCT: NOTIFYICONDATA
373     { cbSize DWORD }
374     { hWnd HWND }
375     { uID UINT }
376     { uFlags UINT }
377     { uCallbackMessage UINT }
378     { hIcon HICON }
379     { szTip TCHAR[64] }
380     { dwState DWORD }
381     { dwStateMask DWORD }
382     { szInfo TCHAR[256] }
383     { timeout-version timeout-version-union } ! { uVersion UINT } ! c-union here1
384     { szInfoTitle TCHAR[64] }
385     { dwInfoFlags DWORD }
386     { guidItem GUID }
387     { hBalloonIcon HICON } ;
388
389 TYPEDEF: NOTIFYICONDATA* PNOTIFYICONDATA
390
391 FUNCTION: BOOL Shell_NotifyIcon ( DWORD dwMessage, PNOTIFYICONDATA lpdata )
392
393 TYPEDEF: HRESULT SHSTDAPI
394
395 FUNCTION: SHSTDAPI SHBindToParent (
396     PCIDLIST_ABSOLUTE pidl,
397     REFIID            riid,
398     void              **ppv,
399     PCUITEMID_CHILD   *ppidlLast
400 )
401
402 ! FUNCTION: AppCompat_RunDLLW
403 ! FUNCTION: AssocCreateForClasses
404 ! FUNCTION: AssocGetDetailsOfPropKey
405 ! FUNCTION: CDefFolderMenu_Create2
406 ! FUNCTION: CheckEscapesW
407 ! FUNCTION: CIDLData_CreateFromIDArray
408 ! FUNCTION: CommandLineToArgvW
409 ! FUNCTION: Control_RunDLL
410 ! FUNCTION: Control_RunDLLA
411 ! FUNCTION: Control_RunDLLAsUserW
412 ! FUNCTION: Control_RunDLLW
413 ! FUNCTION: CreateStorageItemFromPath_FullTrustCaller
414 ! FUNCTION: CreateStorageItemFromPath_FullTrustCaller_ForPackage
415 ! FUNCTION: CreateStorageItemFromPath_PartialTrustCaller
416 ! FUNCTION: CreateStorageItemFromShellItem_FullTrustCaller
417 ! FUNCTION: CreateStorageItemFromShellItem_FullTrustCaller_ForPackage
418 ! FUNCTION: CreateStorageItemFromShellItem_FullTrustCaller_ForPackage_WithProcessHandle
419 ! FUNCTION: CreateStorageItemFromShellItem_FullTrustCaller_UseImplicitFlagsAndPackage
420 ! FUNCTION: CStorageItem_GetValidatedStorageItemObject
421 ! FUNCTION: DAD_AutoScroll
422 ! FUNCTION: DAD_DragEnterEx
423 ! FUNCTION: DAD_DragEnterEx2
424 ! FUNCTION: DAD_DragLeave
425 ! FUNCTION: DAD_DragMove
426 ! FUNCTION: DAD_SetDragImage
427 ! FUNCTION: DAD_ShowDragImage
428 ! FUNCTION: DllCanUnloadNow
429 ! FUNCTION: DllGetActivationFactory
430 ! FUNCTION: DllGetClassObject
431 ! FUNCTION: DllGetVersion
432 ! FUNCTION: DllInstall
433 ! FUNCTION: DllRegisterServer
434 ! FUNCTION: DllUnregisterServer
435 ! FUNCTION: DoEnvironmentSubstA
436 ! FUNCTION: DoEnvironmentSubstW
437 ! FUNCTION: DragQueryFileA
438 ! FUNCTION: DragQueryFileAorW
439 ! FUNCTION: DriveType
440 ! FUNCTION: DuplicateIcon
441 ! FUNCTION: ExtractAssociatedIconA
442 ! FUNCTION: ExtractAssociatedIconExA
443 ! FUNCTION: ExtractAssociatedIconExW
444 ! FUNCTION: ExtractAssociatedIconW
445 ! FUNCTION: ExtractIconA
446 ! FUNCTION: ExtractIconEx
447 ! FUNCTION: ExtractIconExA
448 ! FUNCTION: ExtractIconExW
449 ! FUNCTION: ExtractIconW
450 ! FUNCTION: FindExecutableA
451 ! FUNCTION: FindExecutableW
452 ! FUNCTION: FreeIconList
453 ! FUNCTION: GetCurrentProcessExplicitAppUserModelID
454 ! FUNCTION: GetFileNameFromBrowse
455 ! FUNCTION: GetSystemPersistedStorageItemList
456 ! FUNCTION: ILAppendID
457 ! FUNCTION: ILClone
458 ! FUNCTION: ILCloneFirst
459 ! FUNCTION: ILCombine
460 ! FUNCTION: ILCreateFromPath
461 ! FUNCTION: ILCreateFromPathA
462 ! FUNCTION: ILCreateFromPathW
463 ! FUNCTION: ILFindChild
464 ! FUNCTION: ILFindLastID
465 ! FUNCTION: ILFree
466 ! FUNCTION: ILGetNext
467 ! FUNCTION: ILGetSize
468 ! FUNCTION: ILIsEqual
469 ! FUNCTION: ILIsParent
470 ! FUNCTION: ILLoadFromStreamEx
471 ! FUNCTION: ILRemoveLastID
472 ! FUNCTION: ILSaveToStream
473 ! FUNCTION: InitNetworkAddressControl
474 ! FUNCTION: InternalExtractIconListA
475 ! FUNCTION: InternalExtractIconListW
476 ! FUNCTION: IsDesktopExplorerProcess
477 ! FUNCTION: IsLFNDrive
478 ! FUNCTION: IsLFNDriveA
479 ! FUNCTION: IsLFNDriveW
480 ! FUNCTION: IsNetDrive
481 ! FUNCTION: IsProcessAnExplorer
482 ! FUNCTION: LaunchMSHelp_RunDLLW
483 ! FUNCTION: OpenAs_RunDLL
484 ! FUNCTION: OpenAs_RunDLLA
485 ! FUNCTION: OpenAs_RunDLLW
486 ! FUNCTION: OpenRegStream
487 ! FUNCTION: Options_RunDLL
488 ! FUNCTION: Options_RunDLLA
489 ! FUNCTION: Options_RunDLLW
490 ! FUNCTION: PathCleanupSpec
491 ! FUNCTION: PathGetShortPath
492 ! FUNCTION: PathIsExe
493 ! FUNCTION: PathIsSlowA
494 ! FUNCTION: PathIsSlowW
495 ! FUNCTION: PathMakeUniqueName
496 ! FUNCTION: PathQualify
497 ! FUNCTION: PathResolve
498 ! FUNCTION: PathYetAnotherMakeUniqueName
499 ! FUNCTION: PickIconDlg
500 ! FUNCTION: PifMgr_CloseProperties
501 ! FUNCTION: PifMgr_GetProperties
502 ! FUNCTION: PifMgr_OpenProperties
503 ! FUNCTION: PifMgr_SetProperties
504 ! FUNCTION: PrepareDiscForBurnRunDllW
505 ! FUNCTION: PrintersGetCommand_RunDLL
506 ! FUNCTION: PrintersGetCommand_RunDLLA
507 ! FUNCTION: PrintersGetCommand_RunDLLW
508 ! FUNCTION: ReadCabinetState
509 ! FUNCTION: RealDriveType
510 ! FUNCTION: RealShellExecuteA
511 ! FUNCTION: RealShellExecuteExA
512 ! FUNCTION: RealShellExecuteExW
513 ! FUNCTION: RealShellExecuteW
514 ! FUNCTION: RegenerateUserEnvironment
515 ! FUNCTION: RestartDialog
516 ! FUNCTION: RestartDialogEx
517 ! FUNCTION: RunAsNewUser_RunDLLW
518 ! FUNCTION: SetCurrentProcessExplicitAppUserModelID
519 ! FUNCTION: SHAddDefaultPropertiesByExt
520 ! FUNCTION: SHAddFromPropSheetExtArray
521 ! FUNCTION: SHAddToRecentDocs
522 ! FUNCTION: SHAlloc
523 ! FUNCTION: SHAppBarMessage
524 ! FUNCTION: SHAssocEnumHandlers
525 ! FUNCTION: SHAssocEnumHandlersForProtocolByApplication
526 ! FUNCTION: SHBindToFolderIDListParent
527 ! FUNCTION: SHBindToFolderIDListParentEx
528 ! FUNCTION: SHBindToObject
529 ! FUNCTION: SHBrowseForFolder
530 ! FUNCTION: SHBrowseForFolderA
531 ! FUNCTION: SHBrowseForFolderW
532 ! FUNCTION: SHChangeNotification_Lock
533 ! FUNCTION: SHChangeNotification_Unlock
534 ! FUNCTION: SHChangeNotify
535 ! FUNCTION: SHChangeNotifyDeregister
536 ! FUNCTION: SHChangeNotifyRegister
537 ! FUNCTION: SHChangeNotifyRegisterThread
538 ! FUNCTION: SHChangeNotifySuspendResume
539 ! FUNCTION: SHCloneSpecialIDList
540 ! FUNCTION: SHCLSIDFromString
541 ! FUNCTION: SHCoCreateInstance
542 ! FUNCTION: SHCoCreateInstanceWorker
543 ! FUNCTION: SHCreateAssociationRegistration
544 ! FUNCTION: SHCreateCategoryEnum
545 ! FUNCTION: SHCreateDataObject
546 ! FUNCTION: SHCreateDefaultContextMenu
547 ! FUNCTION: SHCreateDefaultExtractIcon
548 ! FUNCTION: SHCreateDefaultPropertiesOp
549 ! FUNCTION: SHCreateDirectory
550 ! FUNCTION: SHCreateDirectoryExA
551 ! FUNCTION: SHCreateDirectoryExW
552 ! FUNCTION: SHCreateDrvExtIcon
553 ! FUNCTION: SHCreateFileExtractIconW
554 ! FUNCTION: SHCreateItemFromIDList
555 ! FUNCTION: SHCreateItemFromParsingName
556 ! FUNCTION: SHCreateItemFromRelativeName
557 ! FUNCTION: SHCreateItemInKnownFolder
558 ! FUNCTION: SHCreateItemWithParent
559 ! FUNCTION: SHCreateLocalServerRunDll
560 ! FUNCTION: SHCreateProcessAsUserW
561 ! FUNCTION: SHCreatePropSheetExtArray
562 ! FUNCTION: SHCreateQueryCancelAutoPlayMoniker
563 ! FUNCTION: SHCreateShellFolderView
564 ! FUNCTION: SHCreateShellFolderViewEx
565 ! FUNCTION: SHCreateShellItem
566 ! FUNCTION: SHCreateShellItemArray
567 ! FUNCTION: SHCreateShellItemArrayFromDataObject
568 ! FUNCTION: SHCreateShellItemArrayFromIDLists
569 ! FUNCTION: SHCreateShellItemArrayFromShellItem
570 ! FUNCTION: SHCreateStdEnumFmtEtc
571 ! FUNCTION: SHDefExtractIconA
572 ! FUNCTION: SHDefExtractIconW
573 ! FUNCTION: SHDestroyPropSheetExtArray
574 ! FUNCTION: SHDoDragDrop
575 ! FUNCTION: SheChangeDirA
576 ! FUNCTION: SheChangeDirExW
577 ! FUNCTION: SheGetDirA
578 ! FUNCTION: SHELL32_AddToBackIconTable
579 ! FUNCTION: SHELL32_AddToFrontIconTable
580 ! FUNCTION: SHELL32_AreAllItemsAvailable
581 ! FUNCTION: SHELL32_BindToFilePlaceholderHandler
582 ! FUNCTION: SHELL32_CallFileCopyHooks
583 ! FUNCTION: SHELL32_CanDisplayWin8CopyDialog
584 ! FUNCTION: SHELL32_CCommonPlacesFolder_CreateInstance
585 ! FUNCTION: SHELL32_CDBurn_CloseSession
586 ! FUNCTION: SHELL32_CDBurn_DriveSupportedForDataBurn
587 ! FUNCTION: SHELL32_CDBurn_Erase
588 ! FUNCTION: SHELL32_CDBurn_GetCDInfo
589 ! FUNCTION: SHELL32_CDBurn_GetLiveFSDiscInfo
590 ! FUNCTION: SHELL32_CDBurn_GetStagingPathOrNormalPath
591 ! FUNCTION: SHELL32_CDBurn_GetTaskInfo
592 ! FUNCTION: SHELL32_CDBurn_IsBlankDisc
593 ! FUNCTION: SHELL32_CDBurn_IsBlankDisc2
594 ! FUNCTION: SHELL32_CDBurn_IsLiveFS
595 ! FUNCTION: SHELL32_CDBurn_OnDeviceChange
596 ! FUNCTION: SHELL32_CDBurn_OnEject
597 ! FUNCTION: SHELL32_CDBurn_OnMediaChange
598 ! FUNCTION: SHELL32_CDefFolderMenu_Create2
599 ! FUNCTION: SHELL32_CDefFolderMenu_Create2Ex
600 ! FUNCTION: SHELL32_CDefFolderMenu_MergeMenu
601 ! FUNCTION: SHELL32_CDrives_CreateSFVCB
602 ! FUNCTION: SHELL32_CDrivesContextMenu_Create
603 ! FUNCTION: SHELL32_CDrivesDropTarget_Create
604 ! FUNCTION: SHELL32_CFillPropertiesTask_CreateInstance
605 ! FUNCTION: SHELL32_CFSDropTarget_CreateInstance
606 ! FUNCTION: SHELL32_CFSFolderCallback_Create
607 ! FUNCTION: SHELL32_CLibraryDropTarget_CreateInstance
608 ! FUNCTION: SHELL32_CLocationContextMenu_Create
609 ! FUNCTION: SHELL32_CLocationFolderUI_CreateInstance
610 ! FUNCTION: SHELL32_CloseAutoplayPrompt
611 ! FUNCTION: SHELL32_CMountPoint_DoAutorun
612 ! FUNCTION: SHELL32_CMountPoint_DoAutorunPrompt
613 ! FUNCTION: SHELL32_CMountPoint_IsAutoRunDriveAndEnabledByPolicy
614 ! FUNCTION: SHELL32_CMountPoint_ProcessAutoRunFile
615 ! FUNCTION: SHELL32_CMountPoint_WantAutorunUI
616 ! FUNCTION: SHELL32_CMountPoint_WantAutorunUIGetReady
617 ! FUNCTION: SHELL32_CommandLineFromMsiDescriptor
618 ! FUNCTION: SHELL32_CopyFilePlaceholderToNewFile
619 ! FUNCTION: SHELL32_CopySecondaryTiles
620 ! FUNCTION: SHELL32_CPL_CategoryIdArrayFromVariant
621 ! FUNCTION: SHELL32_CPL_IsLegacyCanonicalNameListedUnderKey
622 ! FUNCTION: SHELL32_CPL_ModifyWowDisplayName
623 ! FUNCTION: SHELL32_Create_IEnumUICommand
624 ! FUNCTION: SHELL32_CreateConfirmationInterrupt
625 ! FUNCTION: SHELL32_CreateConflictInterrupt
626 ! FUNCTION: SHELL32_CreateDefaultOperationDataProvider
627 ! FUNCTION: SHELL32_CreateFileFolderContextMenu
628 ! FUNCTION: SHELL32_CreateLinkInfoW
629 ! FUNCTION: SHELL32_CreatePlaceholderFile
630 ! FUNCTION: SHELL32_CreateQosRecorder
631 ! FUNCTION: SHELL32_CreateSharePointView
632 ! FUNCTION: SHELL32_CRecentDocsContextMenu_CreateInstance
633 ! FUNCTION: SHELL32_CSyncRootManager_CreateInstance
634 ! FUNCTION: SHELL32_CTransferConfirmation_CreateInstance
635 ! FUNCTION: SHELL32_DestroyLinkInfo
636 ! FUNCTION: SHELL32_EncryptDirectory
637 ! FUNCTION: SHELL32_EncryptedFileKeyInfo
638 ! FUNCTION: SHELL32_EnumCommonTasks
639 ! FUNCTION: SHELL32_FilePlaceholder_BindToPrimaryStream
640 ! FUNCTION: SHELL32_FilePlaceholder_CreateInstance
641 ! FUNCTION: SHELL32_FreeEncryptedFileKeyInfo
642 ! FUNCTION: SHELL32_GenerateAppID
643 ! FUNCTION: SHELL32_GetAppIDRoot
644 ! FUNCTION: SHELL32_GetCommandProviderForFolderType
645 ! FUNCTION: SHELL32_GetDiskCleanupPath
646 ! FUNCTION: SHELL32_GetDPIAdjustedLogicalSize
647 ! FUNCTION: SHELL32_GetFileNameFromBrowse
648 ! FUNCTION: SHELL32_GetIconOverlayManager
649 ! FUNCTION: SHELL32_GetLinkInfoData
650 ! FUNCTION: SHELL32_GetPlaceholderStatesFromFileAttributesAndReparsePointTag
651 ! FUNCTION: SHELL32_GetRatingBucket
652 ! FUNCTION: SHELL32_GetSkyDriveNetworkStates
653 ! FUNCTION: SHELL32_GetSqmableFileName
654 ! FUNCTION: SHELL32_GetThumbnailAdornerFromFactory
655 ! FUNCTION: SHELL32_GetThumbnailAdornerFromFactory2
656 ! FUNCTION: SHELL32_HandleUnrecognizedFileSystem
657 ! FUNCTION: SHELL32_IconCache_AboutToExtractIcons
658 ! FUNCTION: SHELL32_IconCache_DoneExtractingIcons
659 ! FUNCTION: SHELL32_IconCache_ExpandEnvAndSearchPath
660 ! FUNCTION: SHELL32_IconCache_RememberRecentlyExtractedIconsW
661 ! FUNCTION: SHELL32_IconCacheCreate
662 ! FUNCTION: SHELL32_IconCacheDestroy
663 ! FUNCTION: SHELL32_IconCacheHandleAssociationChanged
664 ! FUNCTION: SHELL32_IconCacheRestore
665 ! FUNCTION: SHELL32_IconOverlayManagerInit
666 ! FUNCTION: SHELL32_IsGetKeyboardLayoutPresent
667 ! FUNCTION: SHELL32_IsSystemUpgradeInProgress
668 ! FUNCTION: SHELL32_IsValidLinkInfo
669 ! FUNCTION: SHELL32_LegacyEnumSpecialTasksByType
670 ! FUNCTION: SHELL32_LegacyEnumTasks
671 ! FUNCTION: SHELL32_LookupBackIconIndex
672 ! FUNCTION: SHELL32_LookupFrontIconIndex
673 ! FUNCTION: SHELL32_NormalizeRating
674 ! FUNCTION: SHELL32_NotifyLinkTrackingServiceOfMove
675 ! FUNCTION: SHELL32_PifMgr_CloseProperties
676 ! FUNCTION: SHELL32_PifMgr_GetProperties
677 ! FUNCTION: SHELL32_PifMgr_OpenProperties
678 ! FUNCTION: SHELL32_PifMgr_SetProperties
679 ! FUNCTION: SHELL32_Printers_CreateBindInfo
680 ! FUNCTION: SHELL32_Printjob_GetPidl
681 ! FUNCTION: SHELL32_PurgeSystemIcon
682 ! FUNCTION: SHELL32_RefreshOverlayImages
683 ! FUNCTION: SHELL32_ResolveLinkInfoW
684 ! FUNCTION: SHELL32_SendToMenu_InvokeTargetedCommand
685 ! FUNCTION: SHELL32_SendToMenu_VerifyTargetedCommand
686 ! FUNCTION: SHELL32_SetPlaceholderReparsePointAttribute
687 ! FUNCTION: SHELL32_SetPlaceholderReparsePointAttribute2
688 ! FUNCTION: SHELL32_SHAddSparseIcon
689 ! FUNCTION: SHELL32_SHCreateByValueOperationInterrupt
690 ! FUNCTION: SHELL32_SHCreateDefaultContextMenu
691 ! FUNCTION: SHELL32_SHCreateLocalServer
692 ! FUNCTION: SHELL32_SHCreateShellFolderView
693 ! FUNCTION: SHELL32_SHDuplicateEncryptionInfoFile
694 ! FUNCTION: SHELL32_SHEncryptFile
695 ! FUNCTION: SHELL32_SHFormatDriveAsync
696 ! FUNCTION: SHELL32_SHGetThreadUndoManager
697 ! FUNCTION: SHELL32_SHGetUserNameW
698 ! FUNCTION: SHELL32_SHIsVirtualDevice
699 ! FUNCTION: SHELL32_SHLaunchPropSheet
700 ! FUNCTION: SHELL32_SHLogILFromFSIL
701 ! FUNCTION: SHELL32_SHOpenWithDialog
702 ! FUNCTION: SHELL32_ShowHideIconOnlyOnDesktop
703 ! FUNCTION: SHELL32_SHStartNetConnectionDialogW
704 ! FUNCTION: SHELL32_SHUICommandFromGUID
705 ! FUNCTION: SHELL32_SimpleRatingToFilterCondition
706 ! FUNCTION: SHELL32_StampIconForFile
707 ! FUNCTION: SHELL32_SuspendUndo
708 ! FUNCTION: SHELL32_TryVirtualDiscImageDriveEject
709 ! FUNCTION: SHELL32_UpdateFilePlaceholderStates
710 ! FUNCTION: SHELL32_VerifySaferTrust
711 ! FUNCTION: Shell_GetCachedImageIndex
712 ! FUNCTION: Shell_GetCachedImageIndexA
713 ! FUNCTION: Shell_GetCachedImageIndexW
714 ! FUNCTION: Shell_GetImageLists
715 ! FUNCTION: Shell_MergeMenus
716 ! FUNCTION: Shell_NotifyIconA
717 ! FUNCTION: Shell_NotifyIconGetRect
718 ! FUNCTION: Shell_NotifyIconW
719 ! FUNCTION: ShellAboutA
720 ! FUNCTION: ShellAboutW
721 ! FUNCTION: ShellExec_RunDLL
722 ! FUNCTION: ShellExec_RunDLLA
723 ! FUNCTION: ShellExec_RunDLLW
724 ! FUNCTION: ShellExecuteA
725 ! FUNCTION: ShellExecuteEx
726 ! FUNCTION: ShellExecuteExA
727 ! FUNCTION: ShellExecuteExW
728 ! FUNCTION: ShellHookProc
729 ! FUNCTION: ShellMessageBoxA
730 ! FUNCTION: ShellMessageBoxW
731 ! FUNCTION: SHEmptyRecycleBinA
732 ! FUNCTION: SHEmptyRecycleBinW
733 ! FUNCTION: SHEnableServiceObject
734 ! FUNCTION: SHEnumerateUnreadMailAccountsW
735 ! FUNCTION: SheSetCurDrive
736 ! FUNCTION: SHEvaluateSystemCommandTemplate
737 ! FUNCTION: SHExtractIconsW
738 ! FUNCTION: SHFileOperation
739 ! FUNCTION: SHFileOperationA
740 ! FUNCTION: SHFileOperationW
741 ! FUNCTION: SHFind_InitMenuPopup
742 ! FUNCTION: SHFindFiles
743 ! FUNCTION: SHFlushSFCache
744 ! FUNCTION: SHFormatDrive
745 ! FUNCTION: SHFree
746 ! FUNCTION: SHFreeNameMappings
747 ! FUNCTION: SHGetAttributesFromDataObject
748 ! FUNCTION: SHGetDataFromIDListA
749 ! FUNCTION: SHGetDataFromIDListW
750 ! FUNCTION: SHGetDiskFreeSpaceA
751 ! FUNCTION: SHGetDiskFreeSpaceExA
752 ! FUNCTION: SHGetDiskFreeSpaceExW
753 ! FUNCTION: SHGetDriveMedia
754 ! FUNCTION: SHGetFileInfo
755 ! FUNCTION: SHGetFileInfoA
756 ! FUNCTION: SHGetFolderLocation
757 ! FUNCTION: SHGetFolderPathA
758 ! FUNCTION: SHGetFolderPathAndSubDirA
759 ! FUNCTION: SHGetFolderPathAndSubDirW
760 ! FUNCTION: SHGetFolderPathEx
761 ! FUNCTION: SHGetIconOverlayIndexA
762 ! FUNCTION: SHGetIconOverlayIndexW
763 ! FUNCTION: SHGetIDListFromObject
764 ! FUNCTION: SHGetImageList
765 ! FUNCTION: SHGetInstanceExplorer
766 ! FUNCTION: SHGetItemFromDataObject
767 ! FUNCTION: SHGetItemFromObject
768 ! FUNCTION: SHGetKnownFolderIDList
769 ! FUNCTION: SHGetKnownFolderItem
770
771 ! GUID: 905e63b6-c1bf-494e-b29c-65b732d3d21a 0 f 0 wchar_t <ref> [ SHGetKnownFolderPath ] keep
772 ! swap [ [ void* deref alien>native-string ] [ ] [ f ] if-zero
773
774 TYPEDEF: wchar_t* PWSTR
775 STRUCT: KNOWNFOLDERID
776     { guid GUID } ;
777 TYPEDEF: KNOWNFOLDERID* REFKNOWNFOLDERID
778 FUNCTION: HRESULT SHGetKnownFolderPath ( REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR* ppszPath )
779
780 : get-known-folder-path ( guid -- str )
781     0 f 0 wchar_t <ref> [ SHGetKnownFolderPath ] keep
782     swap
783     [ void* deref [ alien>native-string ] [ CoTaskMemFree ] bi ]
784     [ 2drop f ] if-zero ;
785
786 CONSTANT: FOLDERID_AccountPictures GUID: 008ca0b1-55b4-4c56-b8a8-4de4b299d3be
787 CONSTANT: FOLDERID_AddNewPrograms GUID: de61d971-5ebc-4f02-a3a9-6c82895e5c04
788 CONSTANT: FOLDERID_AdminTools GUID: 724EF170-A42D-4FEF-9F26-B60E846FBA4F
789 CONSTANT: FOLDERID_ApplicationShortcuts GUID: A3918781-E5F2-4890-B3D9-A7E54332328C
790 CONSTANT: FOLDERID_AppsFolder GUID: 905e63b6-c1bf-494e-b29c-65b732d3d21a
791 CONSTANT: FOLDERID_AppUpdates GUID: a305ce99-f527-492b-8b1a-7e76fa98d6e4
792 CONSTANT: FOLDERID_CameraRoll GUID: AB5FB87B-7CE2-4F83-915D-550846C9537B
793 CONSTANT: FOLDERID_CDBurning GUID: 9E52AB10-F80D-49DF-ACB8-4330F5687855
794 CONSTANT: FOLDERID_CommonAdminTools GUID: D0384E7D-BAC3-4797-8F14-CBA229B392B5
795 CONSTANT: FOLDERID_CommonOEMLinks GUID: C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D
796 CONSTANT: FOLDERID_CommonPrograms GUID: F7F1ED05-9F6D-47A2-AAAE-29D317C6F066
797 CONSTANT: FOLDERID_CommonStartMenu GUID: A4115719-D62E-491D-AA7C-E74B8BE3B067
798 CONSTANT: FOLDERID_CommonStartup GUID: 82A5EA35-D9CD-47C5-9629-E15D2F714E6E
799 CONSTANT: FOLDERID_CommonTemplates GUID: B94237E7-57AC-4347-9151-B08C6C32D1F7
800 CONSTANT: FOLDERID_ComputerFolder GUID: 0AC0837C-BBF8-452A-850D-79D08E667CA7
801 CONSTANT: FOLDERID_ConflictFolder GUID: 4bfefb45-347d-4006-a5be-ac0cb0567192
802 CONSTANT: FOLDERID_ConnectionsFolder GUID: 6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD
803 CONSTANT: FOLDERID_Contacts GUID: 56784854-C6CB-462b-8169-88E350ACB882
804 CONSTANT: FOLDERID_ControlPanelFolder GUID: 82A74AEB-AEB4-465C-A014-D097EE346D63
805 CONSTANT: FOLDERID_Cookies GUID: 2B0F765D-C0E9-4171-908E-08A611B84FF6
806 CONSTANT: FOLDERID_Desktop GUID: B4BFCC3A-DB2C-424C-B029-7FE99A87C641
807 CONSTANT: FOLDERID_DeviceMetadataStore GUID: 5ce4a5e9-e4eb-479d-b89f-130c02886155
808 CONSTANT: FOLDERID_DocumentsLibrary GUID: 7b0db17d-9cd2-4a93-9733-46cc89022e7c
809 CONSTANT: FOLDERID_Downloads GUID: 374de290-123f-4565-9164-39c4925e467b
810 CONSTANT: FOLDERID_Favorites GUID: 1777f761-68ad-4d8a-87bd-30b759fa33dd
811 CONSTANT: FOLDERID_Fonts GUID: fd228cb7-ae11-4ae3-864c-16f3910ab8fe
812 CONSTANT: FOLDERID_GameTasks GUID: 054fae61-4dd8-4787-80b6-090220c4b700
813 CONSTANT: FOLDERID_Games GUID: d3e34b21-9d75-101a-8c3d-00aa001a1652
814 CONSTANT: FOLDERID_History GUID: d9dc8a3b-b784-432e-a781-5a1130a75963
815 CONSTANT: FOLDERID_HomeGroup GUID: b4bfcc3a-db2c-424c-b029-7fe99a87c641
816 CONSTANT: FOLDERID_HomeGroupCurrentUser GUID: 9b74b6a3-0dfd-4f11-9e78-5f7800f2e772
817 CONSTANT: FOLDERID_ImplicitAppShortcuts GUID: bcb5256f-79f6-4cee-b725-dc34e402fd46
818 CONSTANT: FOLDERID_InternetCache GUID: 352481e8-33be-4251-ba85-6007caedcf9d
819 CONSTANT: FOLDERID_InternetFolder GUID: 4d9f7874-4e0c-4904-967b-40b0d20c3e4b
820 CONSTANT: FOLDERID_Libraries GUID: 1b3ea5dc-b587-4786-b4ef-bd1dc332aeae
821 CONSTANT: FOLDERID_Links GUID: bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968
822 CONSTANT: FOLDERID_LocalAppData GUID: f1b32785-6fba-4fcf-9d55-7b8e7f157091
823 CONSTANT: FOLDERID_LocalAppDataLow GUID: a520a1a4-1780-4ff6-bd18-167343c5af16
824 CONSTANT: FOLDERID_LocalizedResourcesDir GUID: 2a00375e-224c-49de-b8d1-440df7ef3ddc
825 CONSTANT: FOLDERID_MusicLibrary GUID: 2112ab0a-c86a-4ffe-a368-0de96e47012e
826 CONSTANT: FOLDERID_MusicGUID_Playlists GUID: 5f4eab9a-6833-4f61-899d-31cf46979d49
827 CONSTANT: FOLDERID_NetHood GUID: c5abbf53-e17f-4121-8900-86626fc2c973
828 CONSTANT: FOLDERID_NetworkFolder GUID: D20BEEC4-5CA8-4905-AE3B-BF251EA09B53
829 CONSTANT: FOLDERID_OriginalImages GUID: 2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39
830 CONSTANT: FOLDERID_PhotoAlbums GUID: 69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C
831 CONSTANT: FOLDERID_PicturesLibrary GUID: A990AE9F-A03B-4e80-94BC-9912D7504104
832 CONSTANT: FOLDERID_Playlists GUID: DE92C1C7-837F-4F69-A3BB-86E631204A23
833 CONSTANT: FOLDERID_PrintersFolder GUID: 76FC4E2D-D6AD-4519-A663-37BD56068185
834 CONSTANT: FOLDERID_PrintHood GUID: 9274BD8D-CFD1-41c3-B35E-B13F55A758F4
835 CONSTANT: FOLDERID_Profile GUID: 5E6C858F-0E22-4760-9AFE-EA3317B67173
836 CONSTANT: FOLDERID_ProgramData GUID: 62AB5D82-FDC1-4dc3-A9DD-070D1D495D97
837 CONSTANT: FOLDERID_ProgramFiles GUID: 905E63B6-C1BF-494E-B29C-65B732D3D21A
838 CONSTANT: FOLDERID_ProgramFilesCommon GUID: F7F1ED05-9F6D-47A2-AAAE-29D317C6F066
839 CONSTANT: FOLDERID_ProgramFilesCommonX64 GUID: 6365D5A7-0F0D-45E5-87F6-0DA56B6A4F7D
840 CONSTANT: FOLDERID_ProgramFilesCommonX86 GUID: DE974D24-D9C6-4D3E-BF91-F4455120B917
841 CONSTANT: FOLDERID_ProgramFilesX64 GUID: 6D809377-6AF0-444B-8957-A3773F02200E
842 CONSTANT: FOLDERID_ProgramFilesX86 GUID: 7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E
843 CONSTANT: FOLDERID_ProgramFilesX86_Common GUID: F7C73F05-CDFA-4831-9F2F-7AFA717B99E2
844 CONSTANT: FOLDERID_Programs GUID: A77F5D77-2E2B-44C3-A6A2-ABA601054A51
845 CONSTANT: FOLDERID_Public GUID: DFDF76A2-C82A-4D63-906A-5644AC457385
846 CONSTANT: FOLDERID_PublicDesktop GUID: C4AA340D-F20F-4863-AFEF-F87EF2E6BA25
847 CONSTANT: FOLDERID_PublicDocuments GUID: ED4824AF-DCE4-45A8-81E2-FC7965083634
848 CONSTANT: FOLDERID_PublicDownloads GUID: 3D644C9B-1FB8-4f30-9B45-F670235F79C0
849 CONSTANT: FOLDERID_PublicGameTasks GUID: debf2536-e1a8-4c59-b6a2-414586476aea
850 CONSTANT: FOLDERID_PublicLibraries GUID: 48daf80b-e6cf-4f4e-b800-0e69d84ee384
851 CONSTANT: FOLDERID_PublicMusic GUID: dfdf76a2-c82a-4d63-906a-5644ac457385
852 CONSTANT: FOLDERID_PublicPictures GUID: b6ebfb86-6907-413c-9af7-4fc2abf07cc5
853 CONSTANT: FOLDERID_PublicRingtones GUID: e555ab60-153b-4d17-9f04-a5fe99fc15ec
854 CONSTANT: FOLDERID_PublicUserTiles GUID: 0482af6c-08f1-4c34-8c90-e17ec98b1e17
855 CONSTANT: FOLDERID_PublicVideos GUID: 2400183a-6185-49fb-a2d8-4a392a602ba3
856 CONSTANT: FOLDERID_QuickLaunch GUID: 52a4f021-7b75-48a9-9f6b-4b87a210bc8f
857 CONSTANT: FOLDERID_RecordedTVLibrary GUID: 1a6fdba2-f42d-4358-a798-b74d745926c5
858 CONSTANT: FOLDERID_Ringtones GUID: c870044b-f49e-4126-a9c3-b52a1ff411e8
859 CONSTANT: FOLDERID_RoamingAppData GUID: 3eb685db-65f9-4cf6-a03a-e3ef65729f3d
860 CONSTANT: FOLDERID_RoamingTiles GUID: f3ce0f7c-4901-4acc-8648-d5d44b04ef8f
861 CONSTANT: FOLDERID_SampleMusic GUID: b250c668-f57d-4ee1-a63c-290ee7d1aa1f
862 CONSTANT: FOLDERID_SamplePictures GUID: c4900540-2379-4c75-844b-64e6faf8716b
863 CONSTANT: FOLDERID_SamplePlaylists GUID: 15ca69b3-30ee-49c1-ace1-6b5ec372afb5
864 CONSTANT: FOLDERID_SampleVideos GUID: 859edda-0a8d-4cfe-a27a-3e7a2077b0ad
865 CONSTANT: FOLDERID_SavedGames GUID: 4c5c32ff-bb9d-43b0-b5b4-2d72e54eaaa4
866 CONSTANT: FOLDERID_SavedSearches GUID: 7d1d3a04-debb-4115-95cf-2f29da2920da
867 CONSTANT: FOLDERID_Screenshots GUID: b7bede81-df94-4682-a7d8-57a52620b86f
868 CONSTANT: FOLDERID_SearchHistory GUID: 0d4c3db6-03a3-462f-a0e6-08924c41b5d4
869 CONSTANT: FOLDERID_SearchHome GUID: 190337d1-b8ca-4121-a639-6d472d1972a
870 CONSTANT: FOLDERID_SendTo GUID: 8983036C-27C0-404B-8F08-102D10DCFD74
871 CONSTANT: FOLDERID_Startup GUID: B97D20BB-F46A-4C97-BA10-5E3608430854
872 CONSTANT: FOLDERID_SyncManagerFolder GUID: 43668BF8-C14E-49B2-97C9-747784D784B7
873 CONSTANT: FOLDERID_SyncResultsFolder GUID: 289a9a43-be44-4057-a41b-587a76d7e7f9
874 CONSTANT: FOLDERID_SyncSetupFolder GUID: 0F214138-B1D3-4a90-BBA9-27CBC0C5389A
875 CONSTANT: FOLDERID_System GUID: 1AC14E77-02E7-4E5D-B744-2EB1AE5198B7
876 CONSTANT: FOLDERID_SystemX86 GUID: 7B396E54-9EC5-4300-BE0A-2482EBAE1A26
877 CONSTANT: FOLDERID_Templates GUID: A63293E8-664E-48DB-A079-DF759E0509F7
878 CONSTANT: FOLDERID_UserPinned GUID: 9E3995AB-1F9C-4F13-B827-48B24B6C7174
879 CONSTANT: FOLDERID_UserProfiles GUID: 0762D272-C50A-4BB0-A382-697DCD729B80
880 CONSTANT: FOLDERID_UserProgramFiles GUID: 5cd7aee2-2219-4a67-b85d-6c9ce15660cb
881 CONSTANT: FOLDERID_UserProgramFilesCommon GUID: Bcbd3057-ca5c-4622-b42d-bc56db0ae516
882 CONSTANT: FOLDERID_UsersFiles GUID: F3CE0F7C-4901-4ACC-8648-D5D44B04EF8F
883 CONSTANT: FOLDERID_UsersLibraries GUID: A302545D-DEFF-464b-ABE8-61C8648D939B
884 CONSTANT: FOLDERID_Videos GUID: 18989B1D-99B5-455B-841C-AB7C74E4DDFC
885 CONSTANT: FOLDERID_Windows GUID: F38BF404-1D43-42F2-9305-67DE0B28FC23
886
887 : all-folderid-dirs ( -- seq )
888     all-words [ name>> "FOLDERID_" head? ] filter
889     [ execute( -- obj ) get-known-folder-path ] zip-with ;
890
891
892
893 ! FUNCTION: SHGetLocalizedName
894 ! FUNCTION: SHGetMalloc
895 ! FUNCTION: SHGetNameFromIDList
896 ! FUNCTION: SHGetNewLinkInfo
897 ! FUNCTION: SHGetNewLinkInfoA
898 ! FUNCTION: SHGetNewLinkInfoW
899 ! FUNCTION: SHGetPathFromIDList
900 ! FUNCTION: SHGetPathFromIDListA
901 ! FUNCTION: SHGetPathFromIDListEx
902 ! FUNCTION: SHGetPathFromIDListW
903 ! FUNCTION: SHGetPropertyStoreForWindow
904 ! FUNCTION: SHGetPropertyStoreFromIDList
905 ! FUNCTION: SHGetPropertyStoreFromParsingName
906 ! FUNCTION: SHGetRealIDL
907 ! FUNCTION: SHGetSetFolderCustomSettings
908 ! FUNCTION: SHGetSetSettings
909 ! FUNCTION: SHGetSettings
910 ! FUNCTION: SHGetSpecialFolderLocation
911 ! FUNCTION: SHGetSpecialFolderPathA
912 ! FUNCTION: SHGetSpecialFolderPathW
913 ! FUNCTION: SHGetStockIconInfo
914 ! FUNCTION: SHGetTemporaryPropertyForItem
915 ! FUNCTION: SHGetUnreadMailCountW
916 ! FUNCTION: SHHandleUpdateImage
917 ! FUNCTION: SHHelpShortcuts_RunDLL
918 ! FUNCTION: SHHelpShortcuts_RunDLLA
919 ! FUNCTION: SHHelpShortcuts_RunDLLW
920 ! FUNCTION: SHILCreateFromPath
921 ! FUNCTION: SHInvokePrinterCommandA
922 ! FUNCTION: SHInvokePrinterCommandW
923 ! FUNCTION: SHIsFileAvailableOffline
924 ! FUNCTION: SHLimitInputEdit
925 ! FUNCTION: SHLoadInProc
926 ! FUNCTION: SHLoadNonloadedIconOverlayIdentifiers
927 ! FUNCTION: SHMapPIDLToSystemImageListIndex
928 ! FUNCTION: SHMultiFileProperties
929 ! FUNCTION: SHObjectProperties
930 ! FUNCTION: SHOpenFolderAndSelectItems
931 ! FUNCTION: SHOpenPropSheetW
932 ! FUNCTION: SHOpenWithDialog
933 ! FUNCTION: SHParseDisplayName
934 ! FUNCTION: SHPathPrepareForWriteA
935 ! FUNCTION: SHPathPrepareForWriteW
936 ! FUNCTION: SHPropStgCreate
937 ! FUNCTION: SHPropStgReadMultiple
938 ! FUNCTION: SHPropStgWriteMultiple
939 ! FUNCTION: SHQueryRecycleBinA
940 ! FUNCTION: SHQueryRecycleBinW
941 ! FUNCTION: SHQueryUserNotificationState
942 ! FUNCTION: SHRemoveLocalizedName
943 ! FUNCTION: SHReplaceFromPropSheetExtArray
944 ! FUNCTION: SHResolveLibrary
945 ! FUNCTION: SHRestricted
946 ! FUNCTION: SHSetDefaultProperties
947 ! FUNCTION: SHSetFolderPathA
948 ! FUNCTION: SHSetFolderPathW
949 ! FUNCTION: SHSetInstanceExplorer
950 ! FUNCTION: SHSetKnownFolderPath
951 ! FUNCTION: SHSetLocalizedName
952 ! FUNCTION: SHSetTemporaryPropertyForItem
953 ! FUNCTION: SHSetUnreadMailCountW
954 ! FUNCTION: SHShellFolderView_Message
955 ! FUNCTION: SHShowManageLibraryUI
956 ! FUNCTION: SHSimpleIDListFromPath
957 ! FUNCTION: SHStartNetConnectionDialogW
958 ! FUNCTION: SHTestTokenMembership
959 ! FUNCTION: SHUpdateImageA
960 ! FUNCTION: SHUpdateImageW
961 ! FUNCTION: SHUpdateRecycleBinIcon
962 ! FUNCTION: SHValidateUNC
963 ! FUNCTION: SignalFileOpen
964 ! FUNCTION: StgMakeUniqueName
965 ! FUNCTION: StrChrA
966 ! FUNCTION: StrChrIA
967 ! FUNCTION: StrChrIW
968 ! FUNCTION: StrChrW
969 ! FUNCTION: StrCmpNA
970 ! FUNCTION: StrCmpNIA
971 ! FUNCTION: StrCmpNIW
972 ! FUNCTION: StrCmpNW
973 ! FUNCTION: StrNCmpA
974 ! FUNCTION: StrNCmpIA
975 ! FUNCTION: StrNCmpIW
976 ! FUNCTION: StrNCmpW
977 ! FUNCTION: StrRChrA
978 ! FUNCTION: StrRChrIA
979 ! FUNCTION: StrRChrIW
980 ! FUNCTION: StrRChrW
981 ! FUNCTION: StrRStrA
982 ! FUNCTION: StrRStrIA
983 ! FUNCTION: StrRStrIW
984 ! FUNCTION: StrRStrW
985 ! FUNCTION: StrStrA
986 ! FUNCTION: StrStrIA
987 ! FUNCTION: StrStrIW
988 ! FUNCTION: StrStrW
989 ! FUNCTION: UsersLibrariesFolderUI_CreateInstance
990 ! FUNCTION: WaitForExplorerRestartW
991 ! FUNCTION: Win32DeleteFile
992 ! FUNCTION: WOWShellExecute
993 ! FUNCTION: WriteCabinetState