home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / LordLucifer / win32asm / files / shlobj.inc < prev    next >
Encoding:
Text File  |  2000-05-25  |  22.2 KB  |  608 lines

  1. ; Shlobj.inc
  2. ; Version 1.0 - April 9, 1999 - by Lord Lucifer
  3. ;--------------------------------------------------------------------------------------------------
  4.  
  5. includelib shell32.lib
  6.  
  7. ; Structures and Equates
  8. ;-------------------------------------------------------------------------------------------------
  9.  
  10. SHITEMID struct DWORD
  11.     cb        WORD    ?
  12.     abID    BYTE    ?
  13. SHITEMID ends
  14. LPSHITEMID        typedef    PTR SHITEMID
  15.  
  16. ITEMIDLIST struct DWORD
  17.     mkid    SHITEMID    <?>
  18. ITEMIDLIST ends
  19. LPITEMIDLIST    typedef PTR ITEMIDLIST
  20. LPPITEMIDLIST    typedef PTR LPITEMIDLIST
  21.  
  22. STRRET_WSTR                equ    0000h
  23. STRRET_OFFSET            equ 0001h
  24. STRRET_CSTR                equ    0002h
  25.  
  26. STRRET struct DWORD
  27.        uType                DWORD    ?        
  28. union
  29.     pOleStr                DWORD    ? 
  30.     uOffset                DWORD    ? 
  31.     cStr                BYTE    MAX_PATH dup (?)
  32. ends
  33. STRRET ends
  34. LPSTRRET        typedef PTR STRRET
  35.  
  36. CSIDL_DESKTOP           equ 0000h
  37. CSIDL_PROGRAMS          equ 0002h
  38. CSIDL_CONTROLS          equ 0003h
  39. CSIDL_PRINTERS          equ 0004h
  40. CSIDL_PERSONAL          equ 0005h
  41. CSIDL_FAVORITES         equ 0006h
  42. CSIDL_STARTUP           equ 0007h
  43. CSIDL_RECENT            equ 0008h
  44. CSIDL_SENDTO            equ 0009h
  45. CSIDL_BITBUCKET         equ 000ah
  46. CSIDL_STARTMENU         equ 000bh
  47. CSIDL_DESKTOPDIRECTORY  equ 0010h
  48. CSIDL_DRIVES            equ 0011h
  49. CSIDL_NETWORK           equ 0012h
  50. CSIDL_NETHOOD           equ 0013h
  51. CSIDL_FONTS                 equ 0014h
  52. CSIDL_TEMPLATES         equ 0015h
  53.  
  54. BROWSEINFO struct DWORD
  55.     hwndOwner            DWORD     ?
  56.     pidlRoot            DWORD     ?
  57.     pszDisplayName        DWORD     ?
  58.     lpszTitle            DWORD     ?
  59.     ulFlags                DWORD     ?
  60.     lpfn                DWORD     ?
  61.     lParam                DWORD     ?
  62.     iImage                DWORD     ?
  63. BROWSEINFO ends
  64. LPBROWSEINFO    typedef    PTR BROWSEINFO
  65.  
  66. BIF_RETURNONLYFSDIRS       equ    0001h  ; For finding a folder to start document searching
  67. BIF_DONTGOBELOWDOMAIN      equ    0002h  ; For starting the Find Computer
  68. BIF_STATUSTEXT             equ    0004h
  69. BIF_RETURNFSANCESTORS      equ    0008h
  70.  
  71. BIF_BROWSEFORCOMPUTER      equ    1000h  ; Browsing for Computers.
  72. BIF_BROWSEFORPRINTER       equ    2000h  ; Browsing for Printers
  73.  
  74. BFFM_INITIALIZED        equ    1
  75. BFFM_SELCHANGED         equ    2
  76.  
  77. BFFM_SETSTATUSTEXT      equ    WM_USER + 100
  78. BFFM_ENABLEOK           equ    WM_USER + 101
  79. BFFM_SETSELECTION       equ    WM_USER + 102
  80.  
  81. DVASPECT_SHORTNAME        equ    2
  82.  
  83. NRESARRAY struct DWORD
  84.     cItems                DWORD    ?
  85.     nr                    NETRESOURCE <?>
  86. NRESARRAY ends
  87. LPNRESARRAY    typedef        PTR NRESARRAY
  88.  
  89. CIDA struct DWORD
  90.     cidl                DWORD    ?
  91.     aoffset                DWORD    ?
  92. CIDA ends
  93. LPCIDA        typedef        PTR CIDA
  94.  
  95. FD_CLSID                equ 0001h
  96. FD_SIZEPOINT            equ 0002h
  97. FD_ATTRIBUTES           equ 0004h
  98. FD_CREATETIME           equ 0008h
  99. FD_ACCESSTIME           equ 0010h
  100. FD_WRITESTIME           equ 0020h
  101. FD_FILESIZE                equ 0040h
  102. FD_LINKUI                equ 8000h
  103.  
  104.  
  105. FILEDESCRIPTOR struct DWORD
  106.     dwFlags                DWORD    ?
  107.     clsid                GUID    <?>
  108.     sizel                SIZEL    <?>
  109.     pointl                POINTL    <?>
  110.  
  111.     dwFileAttributes    DWORD    ?
  112.     ftCreationTime        FILETIME    <?>
  113.     ftLastAccessTime    FILETIME    <?>
  114.     ftLastWriteTime        FILETIME     <?>
  115.     nFileSizeHigh        DWORD    ?
  116.     nFileSizeLow        DWORD    ?
  117.     cFileName            BYTE    MAX_PATH dup (?)
  118. FILEDESCRIPTOR ends
  119. LPFILEDESCRIPTOR         typedef PTR FILEDESCRIPTOR
  120.  
  121. FILEGROUPDESCRIPTOR struct DWORD
  122.      cItems                DWORD    ?
  123.      fgd                FILEDESCRIPTOR <?>
  124. FILEGROUPDESCRIPTOR ends
  125. LPFILEGROUPDESCRIPTOR    typedef PTR FILEGROUPDESCRIPTOR
  126.  
  127. DROPFILES struct DWORD
  128.        pFiles              DWORD     ?
  129.     pt                    POINT     <?>
  130.        fNC                    DWORD    ?                      
  131.     fWide                DWORD    ?
  132. DROPFILES ends
  133. LPDROPFILES        typedef    PTR DROPFILES
  134.  
  135. SHCNE_RENAMEITEM           equ 00000001h
  136. SHCNE_CREATE               equ 00000002h
  137. SHCNE_DELETE               equ 00000004h
  138. SHCNE_MKDIR                   equ 00000008h
  139. SHCNE_RMDIR             equ 00000010h
  140. SHCNE_MEDIAINSERTED     equ 00000020h
  141. SHCNE_MEDIAREMOVED      equ 00000040h
  142. SHCNE_DRIVEREMOVED      equ 00000080h
  143. SHCNE_DRIVEADD          equ 00000100h
  144. SHCNE_NETSHARE          equ 00000200h
  145. SHCNE_NETUNSHARE        equ 00000400h
  146. SHCNE_ATTRIBUTES        equ 00000800h
  147. SHCNE_UPDATEDIR         equ 00001000h
  148. SHCNE_UPDATEITEM           equ 00002000h
  149. SHCNE_SERVERDISCONNECT     equ 00004000h
  150. SHCNE_UPDATEIMAGE       equ 00008000h
  151. SHCNE_DRIVEADDGUI       equ 00010000h
  152. SHCNE_RENAMEFOLDER      equ 00020000h
  153. SHCNE_FREESPACE         equ 00040000h
  154. SHCNE_ASSOCCHANGED      equ 08000000h
  155. SHCNE_DISKEVENTS        equ 0002381Fh
  156. SHCNE_GLOBALEVENTS      equ 0C0581E0h 
  157. SHCNE_ALLEVENTS         equ 7FFFFFFFh
  158. SHCNE_INTERRUPT         equ 80000000h 
  159.                                           
  160. SHCNF_IDLIST              equ 0000h    
  161. SHCNF_PATH                equ 0001h    
  162. SHCNF_PRINTER             equ 0002h    
  163. SHCNF_DWORD               equ 0003h
  164. SHCNF_TYPE                equ 00FFh
  165. SHCNF_FLUSH               equ 1000h
  166. SHCNF_FLUSHNOWAIT         equ 2000h
  167.  
  168. SHARD_PIDL                equ    00000001h
  169. SHARD_PATH                 equ    00000002h
  170.  
  171.  
  172. ; Shell Functions
  173. ;-------------------------------------------------------------------------------------------------
  174.  
  175. SHGetMalloc PROTO :DWORD
  176. SHGetPathFromIDList PROTO :DWORD, :DWORD
  177. SHGetSpecialFolderLocation PROTO :DWORD, :DWORD, :DWORD
  178. SHBrowseForFolder PROTO :DWORD
  179. SHLoadInProc PROTO :DWORD
  180. SHGetDesktopFolder PROTO STDCALL :DWORD
  181. SHChangeNotify PROTO :DWORD, :DWORD, :DWORD, :DWORD
  182. SHAddToRecentDocs PROTO :DWORD, :DWORD
  183. SHGetInstanceExplorer PROTO :DWORD
  184. SHGetFileInfo PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  185.  
  186.  
  187. ; IContextMenu interface
  188. ;-------------------------------------------------------------------------------------------------
  189.  
  190. CMF_NORMAL                 equ    00000000h
  191. CMF_DEFAULTONLY          equ    00000001h
  192. CMF_VERBSONLY            equ    00000002h
  193. CMF_EXPLORE             equ    00000004h
  194. CMF_RESERVED             equ    0ffff0000h
  195.  
  196. GCS_VERB                 equ    00000000h         ; canonical verb
  197. GCS_HELPTEXT             equ    00000001h        ; help text (for status bar)
  198. GCS_VALIDATE             equ    00000002h        ; validate command exists
  199.     
  200. CMIC_MASK_HOTKEY        equ    SEE_MASK_HOTKEY
  201. CMIC_MASK_ICON            equ    SEE_MASK_ICON
  202. CMIC_MASK_FLAG_NO_UI    equ    SEE_MASK_FLAG_NO_UI
  203. CMIC_MASK_MODAL         equ    80000000h                ; Internal
  204.  
  205. CMIC_VALID_SEE_FLAGS    equ    SEE_VALID_CMIC_FLAGS    ; Internal 
  206.  
  207. CMINVOKECOMMANDINFO struct DWORD
  208.     cbSize                DWORD     ?         ; must be sizeof(CMINVOKECOMMANDINFO)
  209.     fMask                DWORD     ?        ; any combination of CMIC_MASK_*
  210.     hwnd                DWORD    ?        ; might be NULL (indicating no owner window)
  211.     lpVerb                DWORD    ?        ; either a string of MAKEINTRESOURCE(idOffset)
  212.     lpParameters        DWORD    ?        ; might be NULL (indicating no parameter)
  213.     lpDirectory            DWORD    ?        ; might be NULL (indicating no specific directory)
  214.     nShow                 DWORD    ?        ; one of SW_ values for ShowWindow() API
  215.     dwHotKey            DWORD    ?
  216.     hIcon                DWORD    ?
  217. CMINVOKECOMMANDINFO ends 
  218. LPCMINVOKECOMMANDINFO typedef ptr CMINVOKECOMMANDINFO
  219.  
  220. LPCONTEXTMENU            typedef     DWORD
  221. LPPCONTEXTMENU            typedef        PTR LPCONTEXTMENU
  222.  
  223. IContextMenu_QueryContextMenuProto    typedef proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  224. IContextMenu_InvokeCommandProto        typedef proto :DWORD, :LPCMINVOKECOMMANDINFO
  225. IContextMenu_GetCommandStringProto    typedef proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  226. IContextMenu_QueryContextMenu        typedef ptr IContextMenu_QueryContextMenuProto
  227. IContextMenu_InvokeCommand            typedef ptr IContextMenu_InvokeCommandProto
  228. IContextMenu_GetCommandString        typedef ptr IContextMenu_GetCommandStringProto
  229.  
  230. IContextMenu struct DWORD
  231.     QueryInterface        IUnknown_QueryInterface         ?
  232.     AddRef                IUnknown_AddRef                    ?
  233.     Release                IUnknown_Release                ?
  234.     QueryContextMenu    IContextMenu_QueryContextMenu    ?
  235.     InvokeCommand        IContextMenu_InvokeCommand        ?
  236.     GetCommandString    IContextMenu_GetCommandString    ?
  237. IContextMenu ends
  238.  
  239.  
  240. ; IShellExtInit interface
  241. ;-------------------------------------------------------------------------------------------------
  242.  
  243. LPSHELLEXTINIT                    typedef    DWORD
  244. LPPSHELLEXTINIT                    typedef    PTR LPSHELLEXTINIT
  245. IShellExtInit_InitializeProto    typedef proto :DWORD, :LPITEMIDLIST, :DWORD, :DWORD
  246. IShellExtInit_Initialize        typedef ptr IShellExtInit_InitializeProto
  247.  
  248. IShellExtInit struct DWORD
  249.     QueryInterface        IUnknown_QueryInterface         ?
  250.     AddRef                IUnknown_AddRef                    ?
  251.     Release                IUnknown_Release                ?
  252.     Initialize            IShellExtInit_Initialize         ?
  253. IShellExtInit ends
  254.  
  255.  
  256. ; IShellPropSheetExt
  257. ;-------------------------------------------------------------------------------------------------
  258.  
  259. LPSHELLPROPSHEETEXT                    typedef    DWORD        
  260. LPPSHELLPROPSHEETEXT                typedef    PTR LPSHELLPROPSHEETEXT
  261. IShellPropSheetExt_AddPagesProto    typedef proto :DWORD, :DWORD, :DWORD
  262. IShellPropSheetExt_ReplacePageProto    typedef proto :DWORD, :DWORD, :DWORD, :DWORD
  263. IShellPropSheetExt_AddPages            typedef ptr IShellPropSheetExt_AddPagesProto
  264. IShellPropSheetExt_ReplacePage        typedef ptr IShellPropSheetExt_ReplacePageProto
  265.  
  266. IShellPropSheetExt struct DWORD
  267.     QueryInterface        IUnknown_QueryInterface         ?
  268.     AddRef                IUnknown_AddRef                    ?
  269.     Release                IUnknown_Release                ?
  270.     AddPages            IShellPropSheetExt_AddPages        ?
  271.     ReplacePage            IShellPropSheetExt_ReplacePage    ?
  272. IShellPropSheetExt ends
  273.  
  274.  
  275. ; IExtractIcon
  276. ;-------------------------------------------------------------------------------------------------
  277.  
  278. GIL_OPENICON            equ 0001h      ; allows containers to specify an "open" look
  279. GIL_FORSHELL             equ    0002h      ; icon is to be displayed in a ShellFolder
  280.  
  281. GIL_SIMULATEDOC          equ    0001h      ; simulate this document icon for this
  282. GIL_PERINSTANCE          equ    0002h      ; icons from this class are per instance (each file has its own)
  283. GIL_PERCLASS             equ    0004h      ; icons from this class per class (shared for all files of this type)
  284. GIL_NOTFILENAME          equ    0008h      ; location is not a filename, must call ::Extract
  285. GIL_DONTCACHE            equ    0010h      ; this icon should not be cached
  286.  
  287. LPEXTRACTICON            typedef            DWORD
  288. LPPEXTRACTICON            typedef         PTR LPEXTRACTICON
  289.  
  290. IExtractIcon_GetIconLocationProto        typedef proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  291. IExtractIcon_ExtractProto                typedef proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  292. IExtractIcon_GetIconLocation            typedef ptr IExtractIcon_GetIconLocationProto
  293. IExtractIcon_Extract                    typedef ptr IExtractIcon_ExtractProto
  294.  
  295. IExtractIcon struct DWORD
  296.     QueryInterface        IUnknown_QueryInterface         ?
  297.     AddRef                IUnknown_AddRef                    ?
  298.     Release                IUnknown_Release                ?
  299.     GetIconLocation        IExtractIcon_GetIconLocation    ?
  300.     Extract                IExtractIcon_Extract            ?
  301. IExtractIcon ends
  302.  
  303.  
  304. ; IShellLink Interface
  305. ;-------------------------------------------------------------------------------------------------
  306.  
  307. SLR_NO_UI                equ 0001h
  308. SLR_ANY_MATCH            equ 0002h
  309. SLR_UPDATE              equ 0004h
  310.  
  311. SLGP_SHORTPATH            equ 0001h
  312. SLGP_UNCPRIORITY        equ 0002h
  313.  
  314. IShellLink_GetIDListProto            typedef proto :DWORD, :LPPITEMIDLIST
  315. IShellLink_SetIDListProto            typedef proto :DWORD, :LPITEMIDLIST
  316. IShellLink_GetDescriptionProto        typedef proto :DWORD, :DWORD, :DWORD
  317. IShellLink_SetDescriptionProto        typedef proto :DWORD, :DWORD
  318. IShellLink_GetWorkingDirectoryProto    typedef proto :DWORD, :DWORD, :DWORD
  319. IShellLink_SetWorkingDirectoryProto    typedef proto :DWORD, :DWORD
  320. IShellLink_GetArgumentsProto        typedef proto :DWORD, :DWORD, :DWORD
  321. IShellLink_SetArgumentsProto        typedef proto :DWORD, :DWORD
  322. IShellLink_GetHotkeyProto            typedef proto :DWORD, :DWORD
  323. IShellLink_SetHotkeyProto            typedef proto :DWORD, :WORD 
  324. IShellLink_GetShowCmdProto            typedef proto :DWORD, :DWORD
  325. IShellLink_SetShowCmdProto            typedef proto :DWORD, :DWORD
  326. IShellLink_GetIconLocationProto        typedef proto :DWORD, :DWORD, :DWORD, :DWORD
  327. IShellLink_SetIconLocationProto        typedef proto :DWORD, :DWORD, :DWORD
  328. IShellLink_SetRelativePathProto        typedef proto :DWORD, :DWORD, :LPITEMIDLIST
  329. IShellLink_ResolveProto                typedef proto :DWORD, :DWORD, :DWORD
  330. IShellLink_SetPathProto                typedef proto :DWORD, :DWORD
  331.  
  332. IShellLink_GetIDList                typedef ptr IShellLink_GetIDListProto
  333. IShellLink_SetIDList                typedef ptr IShellLink_SetIDListProto
  334. IShellLink_GetDescription            typedef ptr IShellLink_GetDescriptionProto
  335. IShellLink_SetDescription            typedef ptr IShellLink_SetDescriptionProto
  336. IShellLink_GetWorkingDirectory        typedef ptr IShellLink_GetWorkingDirectoryProto
  337. IShellLink_SetWorkingDirectory        typedef ptr IShellLink_SetWorkingDirectoryProto
  338. IShellLink_GetArguments                typedef ptr IShellLink_GetArgumentsProto
  339. IShellLink_SetArguments                typedef ptr IShellLink_SetArgumentsProto
  340. IShellLink_GetHotkey                typedef ptr IShellLink_GetHotkeyProto
  341. IShellLink_SetHotkey                typedef ptr IShellLink_SetHotkeyProto
  342. IShellLink_GetShowCmd                typedef ptr IShellLink_GetShowCmdProto
  343. IShellLink_SetShowCmd                typedef ptr IShellLink_SetShowCmdProto
  344. IShellLink_GetIconLocation            typedef ptr IShellLink_GetIconLocationProto
  345. IShellLink_SetIconLocation            typedef ptr IShellLink_SetIconLocationProto
  346. IShellLink_SetRelativePath            typedef ptr IShellLink_SetRelativePathProto
  347. IShellLink_Resolve                    typedef ptr IShellLink_ResolveProto
  348. IShellLink_SetPath                    typedef ptr IShellLink_SetPathProto
  349.  
  350. IShellLink struct DWORD
  351.     QueryInterface        IUnknown_QueryInterface         ?
  352.     AddRef                IUnknown_AddRef                    ?
  353.     Release                IUnknown_Release                ?
  354.     GetIDList            IShellLink_GetIDList            ?
  355.     SetIDList            IShellLink_SetIDList            ?
  356.     GetDescription        IShellLink_GetDescription        ?
  357.     SetDescription        IShellLink_SetDescription        ?
  358.     GetWorkingDirectory    IShellLink_GetWorkingDirectory    ?    
  359.     SetWorkingDirectory    IShellLink_SetWorkingDirectory    ?    
  360.     GetArguments        IShellLink_GetArguments            ?
  361.     SetArguments        IShellLink_SetArguments            ?
  362.     GetHotkey            IShellLink_GetHotkey            ?
  363.     SetHotkey            IShellLink_SetHotkey            ?
  364.     GetShowCmd            IShellLink_GetShowCmd            ?
  365.     SetShowCmd            IShellLink_SetShowCmd            ?
  366.     GetIconLocation        IShellLink_GetIconLocation        ?
  367.     SetIconLocation        IShellLink_SetIconLocation        ?
  368.     SetRelativePath        IShellLink_SetRelativePath        ?
  369.     Resolve                IShellLink_Resolve                ?
  370.     SetPath                IShellLink_SetPath                ?
  371. IShellLink ends
  372.  
  373.  
  374. ; ICopyHook interface
  375. ;-------------------------------------------------------------------------------------------------
  376.  
  377. FO_MOVE                  equ 0001h
  378. FO_COPY                   equ    0002h
  379. FO_DELETE                 equ    0003h
  380. FO_RENAME                 equ    0004h
  381.  
  382. FOF_MULTIDESTFILES      equ 0001h
  383. FOF_CONFIRMMOUSE        equ    0002h
  384. FOF_SILENT              equ    0004h  ; don't create progress/report
  385. FOF_RENAMEONCOLLISION   equ    0008h
  386. FOF_NOCONFIRMATION      equ    0010h  ; Don't prompt the user.
  387. FOF_WANTMAPPINGHANDLE   equ    0020h  ; Fill in SHFILEOPSTRUCT.hNameMappings
  388.                                    ; Must be freed using SHFreeNameMappings
  389. FOF_ALLOWUNDO           equ    0040h
  390. FOF_FILESONLY           equ    0080h  ; on *.*, do only files
  391. FOF_SIMPLEPROGRESS      equ    0100h  ; means don't show names of files
  392. FOF_NOCONFIRMMKDIR      equ    0200h  ; don't confirm making any needed dirs
  393.  
  394. PO_DELETE                equ    0013h  ; printer is being deleted
  395. PO_RENAME                equ    0014h  ; printer is being renamed
  396. PO_PORTCHANGE            equ    0020h  ; port this printer connected to is being changed
  397. PO_REN_PORT                equ    0034h  ; PO_RENAME and PO_PORTCHANGE at same time.
  398.  
  399. LPCOPYHOOK                            typedef DWORD
  400. LPPCOPYHOOK                            typedef PTR LPCOPYHOOK
  401. ICopyHook_CopyCallbackProto            typedef    proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
  402. ICopyHook_CopyCallback                typedef ptr ICopyHook_CopyCallbackProto
  403.  
  404. ICopyHook struct DWORD
  405.     QueryInterface        IUnknown_QueryInterface         ?
  406.     AddRef                IUnknown_AddRef                    ?
  407.     Release                IUnknown_Release                ?
  408.     CopyCallback        ICopyHook_CopyCallback            ?
  409. ICopyHook ends
  410.  
  411.  
  412. ; IFileViewerSite Interface
  413. ;-------------------------------------------------------------------------------------------------
  414.  
  415. LPFILEVIEWERSITE        typedef        DWORD
  416. LPPFILEVIEWERSITE        typedef        PTR LPFILEVIEWERSITE
  417. IFileViewerSite_SetPinnedWindowProto    typedef proto :DWORD, :DWORD
  418. IFileViewerSite_GetPinnedWindowProto    typedef proto :DWORD, :DWORD
  419. IFileViewerSite_SetPinnedWindow            typedef ptr IFileViewerSite_SetPinnedWindowProto
  420. IFileViewerSite_GetPinnedWindow            typedef ptr IFileViewerSite_GetPinnedWindowProto
  421.  
  422. IFileViewerSite struct DWORD
  423.     QueryInterface        IUnknown_QueryInterface         ?
  424.     AddRef                IUnknown_AddRef                    ?
  425.     Release                IUnknown_Release                ?
  426.     SetPinnedWindow        IFileViewerSite_SetPinnedWindow ?
  427.     GetPinnedWindow        IFileViewerSite_GetPinnedWindow    ?
  428. IFileViewerSite ends
  429.  
  430.  
  431. ; IFileViewer
  432. ;-------------------------------------------------------------------------------------------------
  433.  
  434. FVSHOWINFO struct DWORD
  435.     cbSize                DWORD    ?
  436.     hwndOwner            DWORD    ?
  437.     iShow                DWORD    ?
  438.     dwFlags                DWORD    ?
  439.     rect                RECT    <?>
  440.     punkRel                DWORD    ?
  441.     strNewFile            BYTE     MAX_PATH dup (?)    ;OLECHAR[MAX_PATH]
  442. FVSHOWINFO ends
  443. LPFVSHOWINFO            typedef ptr FVSHOWFILEINFO
  444.  
  445. FVSIF_RECT              equ    00000001h      ; The rect variable has valid data.
  446. FVSIF_PINNED            equ 00000002h      ; We should Initialize pinned
  447. FVSIF_NEWFAILED         equ    08000000h      ; The new file passed back failed                                     
  448. FVSIF_NEWFILE           equ    80000000h      ; A new file to view has been returned
  449. FVSIF_CANVIEWIT         equ    40000000h      ; The viewer can view it.
  450.  
  451. LPFILEVIEWER            typedef        DWORD
  452. LPPFILEVIEWER            typedef        DWORD
  453. IFileViewer_ShowInitializeProto        typedef proto :DWORD, :LPFILEVIEWERSITE
  454. IFileViewer_ShowProto                typedef proto :DWORD, :LPFVSHOWINFO
  455. IFileViewer_PrintToProto            typedef proto :DWORD, :DWORD, :DWORD
  456.  
  457. IFileViewer_ShowInitialize            typedef ptr IFileViewer_ShowInitializeProto
  458. IFileViewer_Show                    typedef ptr IFileViewer_ShowProto
  459. IFileViewer_PrintTo                    typedef    ptr IFileViewer_PrintToProto
  460.  
  461. IFileViewer struct DWORD
  462.     QueryInterface        IUnknown_QueryInterface     ?
  463.     AddRef                IUnknown_AddRef                ?
  464.     Release                IUnknown_Release            ?
  465.     ShowInintialize        IFileViewer_ShowInitialize    ?
  466.     Show                IFileViewer_Show            ?
  467.     PrintTo                IFileViewer_PrintTo            ?
  468. IFileViewer ends
  469.  
  470.  
  471. ; IEnumIDList interface
  472. ;-------------------------------------------------------------------------------------------------
  473.  
  474. LPENUMIDLIST            typedef DWORD
  475. LPPENUMIDLIST            typedef PTR LPENUMIDLIST
  476. IEnumIDList_NextProto    typedef proto :DWORD, :DWORD, :LPPITEMIDLIST, :DWORD
  477. IEnumIDList_SkipProto    typedef proto :DWORD, :DWORD
  478. IEnumIDList_ResetProto    typedef proto :DWORD
  479. IEnumIDList_CloneProto    typedef proto :DWORD, :LPPENUMIDLIST
  480. IEnumIDList_Next        typedef ptr IEnumIDList_NextProto
  481. IEnumIDList_Skip        typedef ptr IEnumIDList_SkipProto
  482. IEnumIDList_Reset         typedef ptr IEnumIDList_ResetProto
  483. IEnumIDList_Clone        typedef ptr IEnumIDList_CloneProto
  484.  
  485. IEnumIDList struct DWORD
  486.     QueryInterface    IUnknown_QueryInterface ?
  487.     AddRef            IUnknown_AddRef            ?
  488.     Release            IUnknown_Release        ?
  489.     Next            IEnumIDList_Next        ?
  490.     Skip            IEnumIDList_Skip        ?
  491.     Reset            IEnumIDList_Reset        ?
  492.     Clone            IEnumIDList_Clone        ?
  493. IEnumIDList ends
  494.  
  495.  
  496. ; IShellFolder
  497. ;-------------------------------------------------------------------------------------------------
  498.  
  499. SHGDN_NORMAL            equ 0
  500. SHGDN_INFOLDER          equ 1      
  501. SHGDN_FORPARSING        equ 8000h  
  502.  
  503. SHCONTF_FOLDERS         equ 32
  504. SHCONTF_NONFOLDERS      equ 64
  505. SHCONTF_INCLUDEHIDDEN   equ 128    
  506.  
  507. SFGAO_CANCOPY           equ DROPEFFECT_COPY 
  508. SFGAO_CANMOVE           equ DROPEFFECT_MOVE
  509. SFGAO_CANLINK           equ DROPEFFECT_LINK 
  510. SFGAO_CANRENAME         equ 00000010h     
  511. SFGAO_CANDELETE         equ 00000020h     
  512. SFGAO_HASPROPSHEET      equ 00000040h    
  513. SFGAO_DROPTARGET        equ 00000100h
  514. SFGAO_CAPABILITYMASK    equ 00000177h
  515. SFGAO_LINK              equ 00010000h
  516. SFGAO_SHARE             equ 00020000h
  517. SFGAO_READONLY          equ 00040000h 
  518. SFGAO_GHOSTED           equ 00080000h  
  519. SFGAO_DISPLAYATTRMASK   equ 000F0000h
  520. SFGAO_FILESYSANCESTOR   equ 10000000h    
  521. SFGAO_FOLDER            equ 20000000h     
  522. SFGAO_FILESYSTEM        equ 40000000h     
  523. SFGAO_HASSUBFOLDER      equ 80000000h     
  524. SFGAO_CONTENTSMASK      equ 80000000h
  525. SFGAO_VALIDATE          equ 01000000h    
  526. SFGAO_REMOVABLE         equ 02000000h    
  527.  
  528. LPSHELLFOLDER                        typedef DWORD
  529. LPPSHELLFOLDER                        typedef DWORD
  530. IShellFolder_ParseDisplayNameProto    typedef proto :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :LPPENUMIDLIST, :DWORD 
  531. IShellFolder_EnumObjectsProto        typedef proto :DWORD, :DWORD, :DWORD, :LPPENUMIDLIST
  532. IShellFolder_BindToObjectProto        typedef proto :DWORD, :LPITEMIDLIST, :DWORD, :DWORD, :DWORD 
  533. IShellFolder_BindToStorageProto        typedef proto :DWORD 
  534. IShellFolder_CompareIDsProto        typedef proto :DWORD, :DWORD, :LPITEMIDLIST, :LPITEMIDLIST
  535. IShellFolder_CreateViewObjectProto    typedef proto :DWORD, :DWORD, :DWORD, :DWORD
  536. IShellFolder_GetAttributesOfProto    typedef proto :DWORD, :DWORD, :LPITEMIDLIST, :DWORD 
  537. IShellFolder_GetUIObjectOfProto        typedef proto :DWORD, :DWORD, :DWORD, :LPPITEMIDLIST, :DWORD, :DWORD, :DWORD 
  538. IShellFolder_GetDisplayNameOfProto    typedef proto :DWORD, :LPITEMIDLIST, :DWORD, :LPSTRRET 
  539. IShellFolder_SetNameOfProto            typedef proto :DWORD, :DWORD, :LPITEMIDLIST, :DWORD, :DWORD, :LPPITEMIDLIST
  540.  
  541. IShellFolder_ParseDisplayName        typedef ptr IShellFolder_ParseDisplayNameProto
  542. IShellFolder_EnumObjects            typedef ptr IShellFolder_EnumObjectsProto
  543. IShellFolder_BindToObject            typedef ptr IShellFolder_BindToObjectProto
  544. IShellFolder_BindToStorage            typedef ptr IShellFolder_BindToStorageProto
  545. IShellFolder_CompareIDs                typedef ptr IShellFolder_CompareIDsProto
  546. IShellFolder_CreateViewObject        typedef ptr IShellFolder_CreateViewObjectProto
  547. IShellFolder_GetAttributesOf        typedef ptr IShellFolder_GetAttributesOfProto
  548. IShellFolder_GetUIObjectOf            typedef ptr IShellFolder_GetUIObjectOfProto
  549. IShellFolder_GetDisplayNameOf        typedef ptr IShellFolder_GetDisplayNameOfProto
  550. IShellFolder_SetNameOf                typedef ptr IShellFolder_SetNameOfProto
  551.  
  552. IShellFolder struct DWORD
  553.     QueryInterface        IUnknown_QueryInterface         ?
  554.     AddRef                IUnknown_AddRef                    ?
  555.     Release                IUnknown_Release                ?
  556.     ParseDisplayName    IShellFolder_ParseDisplayName    ?
  557.     EnumObjects            IShellFolder_EnumObjects        ?
  558.     BindToObject        IShellFolder_BindToObject        ?
  559.     BindToStorage        IShellFolder_BindToStorage        ?
  560.     CompareIDs            IShellFolder_CompareIDs            ?
  561.     CreateViewObject    IShellFolder_CreateViewObject    ?
  562.     GetAttributesOf        IShellFolder_GetAttributesOf    ?
  563.     GetUIObjectOf        IShellFolder_GetUIObjectOf        ?
  564.     GetDisplayNameOf    IShellFolder_GetDisplayNameOf    ?
  565.     SetNameOf            IShellFolder_SetNameOf            ?
  566. IShellFolder ends
  567.  
  568.  
  569. ;-------------------------------------------------------------------------------------------------
  570. ; Guids and Clsids
  571.  
  572. externdef    CLSID_ShellDesktop:IID
  573. externdef    CLSID_ShellLink:IID
  574.  
  575. externdef    IDD_IUnknown:IID
  576. externdef    IID_IContextMenu:IID
  577. externdef    IID_IShellExtInit:IID
  578. externdef    IID_IShellPropSheetExt:IID
  579. externdef    IID_IExtractIcon:IID
  580. externdef    IID_IShellLink:IID
  581. externdef    IID_IShellCopyHook:IID
  582. externdef    ID_IFileViewerSite:IID
  583. externdef    IID_IFileViewer:IID
  584. externdef    IID_IEnumIDList:IID
  585. externdef    IID_IShellFolder:IID
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.