📄 shlobj.inc
字号:
; Shlobj.inc
; Version 1.0 - April 9, 1999- by Bill T.
; Version 1.01 - March 18, 2000 - E Murphy for omission of GetPath in IShellLink vtable
; Version 2.0 Dec 26, 2000 - E Murphy Interfaces revised for MASM32
;--------------------------------------------------------------------------------------------------
includelib shell32.lib
; Structures and Equates
;-------------------------------------------------------------------------------------------------
; THESE NOW DEFINED IN WINDOWS.INC
; SHITEMID struct DWORD
; cb WORD ?
; abID BYTE ?
; SHITEMID ends
; LPSHITEMID typedef PTR SHITEMID
;
; ITEMIDLIST struct DWORD
; mkid SHITEMID <?>
; ITEMIDLIST ends
; LPITEMIDLIST typedef PTR ITEMIDLIST
; LPPITEMIDLIST typedef PTR LPITEMIDLIST
STRRET_WSTR equ 0000h
STRRET_OFFSET equ 0001h
STRRET_CSTR equ 0002h
; THESE NOW DEFINED IN WINDOWS.INC
; STRRET struct DWORD
; uType DWORD ?
; union
; pOleStr DWORD ?
; uOffset DWORD ?
; cStr BYTE MAX_PATH dup (?)
; ends
; STRRET ends
; LPSTRRET typedef PTR STRRET
CSIDL_DESKTOP equ 0000h
CSIDL_PROGRAMS equ 0002h
CSIDL_CONTROLS equ 0003h
CSIDL_PRINTERS equ 0004h
CSIDL_PERSONAL equ 0005h
CSIDL_FAVORITES equ 0006h
CSIDL_STARTUP equ 0007h
CSIDL_RECENT equ 0008h
CSIDL_SENDTO equ 0009h
CSIDL_BITBUCKET equ 000ah
CSIDL_STARTMENU equ 000bh
CSIDL_DESKTOPDIRECTORY equ 0010h
CSIDL_DRIVES equ 0011h
CSIDL_NETWORK equ 0012h
CSIDL_NETHOOD equ 0013h
CSIDL_FONTS equ 0014h
CSIDL_TEMPLATES equ 0015h
; THESE NOW DEFINED IN WINDOWS.INC
; BROWSEINFO struct DWORD
; hwndOwner DWORD ?
; pidlRoot DWORD ?
; pszDisplayName DWORD ?
; lpszTitle DWORD ?
; ulFlags DWORD ?
; lpfn DWORD ?
; lParam DWORD ?
; iImage DWORD ?
; BROWSEINFO ends
; LPBROWSEINFO typedef PTR BROWSEINFO
BIF_RETURNONLYFSDIRS equ 0001h ; For finding a folder to start document searching
BIF_DONTGOBELOWDOMAIN equ 0002h ; For starting the Find Computer
BIF_STATUSTEXT equ 0004h
BIF_RETURNFSANCESTORS equ 0008h
BIF_BROWSEFORCOMPUTER equ 1000h ; Browsing for Computers.
BIF_BROWSEFORPRINTER equ 2000h ; Browsing for Printers
BFFM_INITIALIZED equ 1
BFFM_SELCHANGED equ 2
BFFM_SETSTATUSTEXT equ WM_USER + 100
BFFM_ENABLEOK equ WM_USER + 101
BFFM_SETSELECTION equ WM_USER + 102
DVASPECT_SHORTNAME equ 2
; THESE NOW DEFINED IN WINDOWS.INC
; NRESARRAY struct DWORD
; cItems DWORD ?
; nr NETRESOURCE <?>
; NRESARRAY ends
; LPNRESARRAY typedef PTR NRESARRAY
;
; CIDA struct DWORD
; cidl DWORD ?
; aoffset DWORD ?
; CIDA ends
; LPCIDA typedef PTR CIDA
FD_CLSID equ 0001h
FD_SIZEPOINT equ 0002h
FD_ATTRIBUTES equ 0004h
FD_CREATETIME equ 0008h
FD_ACCESSTIME equ 0010h
FD_WRITESTIME equ 0020h
FD_FILESIZE equ 0040h
FD_LINKUI equ 8000h
; THESE NOW DEFINED IN WINDOWS.INC
; FILEDESCRIPTOR struct DWORD
; dwFlags DWORD ?
; clsid GUID <?>
; sizel SIZEL <?>
; pointl POINTL <?>
; dwFileAttributes DWORD ?
; ftCreationTime FILETIME <?>
; ftLastAccessTime FILETIME <?>
; ftLastWriteTime FILETIME <?>
; nFileSizeHigh DWORD ?
; nFileSizeLow DWORD ?
; cFileName BYTE MAX_PATH dup (?)
; FILEDESCRIPTOR ends
; LPFILEDESCRIPTOR typedef PTR FILEDESCRIPTOR
;
; FILEGROUPDESCRIPTOR struct DWORD
; cItems DWORD ?
; fgd FILEDESCRIPTOR <?>
; FILEGROUPDESCRIPTOR ends
; LPFILEGROUPDESCRIPTOR typedef PTR FILEGROUPDESCRIPTOR
;
; DROPFILES struct DWORD
; pFiles DWORD ?
; pt POINT <?>
; fNC DWORD ?
; fWide DWORD ?
; DROPFILES ends
; LPDROPFILES typedef PTR DROPFILES
SHCNE_RENAMEITEM equ 00000001h
SHCNE_CREATE equ 00000002h
SHCNE_DELETE equ 00000004h
SHCNE_MKDIR equ 00000008h
SHCNE_RMDIR equ 00000010h
SHCNE_MEDIAINSERTED equ 00000020h
SHCNE_MEDIAREMOVED equ 00000040h
SHCNE_DRIVEREMOVED equ 00000080h
SHCNE_DRIVEADD equ 00000100h
SHCNE_NETSHARE equ 00000200h
SHCNE_NETUNSHARE equ 00000400h
SHCNE_ATTRIBUTES equ 00000800h
SHCNE_UPDATEDIR equ 00001000h
SHCNE_UPDATEITEM equ 00002000h
SHCNE_SERVERDISCONNECT equ 00004000h
SHCNE_UPDATEIMAGE equ 00008000h
SHCNE_DRIVEADDGUI equ 00010000h
SHCNE_RENAMEFOLDER equ 00020000h
SHCNE_FREESPACE equ 00040000h
SHCNE_ASSOCCHANGED equ 08000000h
SHCNE_DISKEVENTS equ 0002381Fh
SHCNE_GLOBALEVENTS equ 0C0581E0h
SHCNE_ALLEVENTS equ 7FFFFFFFh
SHCNE_INTERRUPT equ 80000000h
SHCNF_IDLIST equ 0000h
SHCNF_PATH equ 0001h
SHCNF_PRINTER equ 0002h
SHCNF_DWORD equ 0003h
SHCNF_TYPE equ 00FFh
SHCNF_FLUSH equ 1000h
SHCNF_FLUSHNOWAIT equ 2000h
SHARD_PIDL equ 00000001h
SHARD_PATH equ 00000002h
; Shell Functions
;-------------------------------------------------------------------------------------------------
SHGetMalloc PROTO :DWORD
SHGetPathFromIDList PROTO :DWORD, :DWORD
SHGetSpecialFolderLocation PROTO :DWORD, :DWORD, :DWORD
SHBrowseForFolder PROTO :DWORD
SHLoadInProc PROTO :DWORD
SHGetDesktopFolder PROTO STDCALL :DWORD
SHChangeNotify PROTO :DWORD, :DWORD, :DWORD, :DWORD
SHAddToRecentDocs PROTO :DWORD, :DWORD
SHGetInstanceExplorer PROTO :DWORD
SHGetFileInfo PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
; IContextMenu interface
;-------------------------------------------------------------------------------------------------
; public IUnknown
sIID_IContextMenu TEXTEQU <{0000214E4H, 00000H, 00000H, \
{0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 046H}}>
CMF_NORMAL equ 00000000h
CMF_DEFAULTONLY equ 00000001h
CMF_VERBSONLY equ 00000002h
CMF_EXPLORE equ 00000004h
CMF_RESERVED equ 0ffff0000h
GCS_VERB equ 00000000h ; canonical verb
GCS_HELPTEXT equ 00000001h ; help text (for status bar)
GCS_VALIDATE equ 00000002h ; validate command exists
CMIC_MASK_HOTKEY equ SEE_MASK_HOTKEY
CMIC_MASK_ICON equ SEE_MASK_ICON
CMIC_MASK_FLAG_NO_UI equ SEE_MASK_FLAG_NO_UI
CMIC_MASK_MODAL equ 80000000h ; Internal
CMIC_VALID_SEE_FLAGS equ SEE_VALID_CMIC_FLAGS ; Internal
; THESE NOW DEFINED IN WINDOWS.INC
; CMINVOKECOMMANDINFO struct DWORD
; cbSize DWORD ? ; must be sizeof(CMINVOKECOMMANDINFO)
; fMask DWORD ? ; any combination of CMIC_MASK_*
; hwnd DWORD ? ; might be NULL (indicating no owner window)
; lpVerb DWORD ? ; either a string of MAKEINTRESOURCE(idOffset)
; lpParameters DWORD ? ; might be NULL (indicating no parameter)
; lpDirectory DWORD ? ; might be NULL (indicating no specific directory)
; nShow DWORD ? ; one of SW_ values for ShowWindow() API
; dwHotKey DWORD ?
; hIcon DWORD ?
; CMINVOKECOMMANDINFO ends
; LPCMINVOKECOMMANDINFO typedef ptr CMINVOKECOMMANDINFO
LPCONTEXTMENU typedef DWORD
LPPCONTEXTMENU typedef PTR LPCONTEXTMENU
_vtIContextMenu MACRO CastName:REQ
; IUnknown methods
_vtIUnknown CastName
; IContextMenu methods
&CastName&_QueryContextMenu comethod6 ?
&CastName&_InvokeCommand comethod2 ?
&CastName&_GetCommandString comethod6 ?
ENDM
IContextMenu STRUCT
_vtIContextMenu IContextMenu
IContextMenu ENDS
; IShellExtInit interface
;-------------------------------------------------------------------------------------------------
; public IUnknown
sIID_IShellExtInit TEXTEQU <{0000214E8H, 00000H, 00000H, \
{0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 046H}}>
LPSHELLEXTINIT typedef DWORD
LPPSHELLEXTINIT typedef PTR LPSHELLEXTINIT
_vtIShellExtInit MACRO CastName:REQ
; IUnknown methods
_vtIUnknown CastName
; IShellExtInit methods
&CastName&_Initialize comethod4 ?
ENDM
IShellExtInit STRUCT
_vtIShellExtInit IShellExtInit
IShellExtInit ENDS
; IShellPropSheetExt
;-------------------------------------------------------------------------------------------------
; public IUnknown
sIID_IShellPropSheetExt TEXTEQU <{0000214E9H, 00000H, 00000H, \
{0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 046H}}>
LPSHELLPROPSHEETEXT typedef DWORD
LPPSHELLPROPSHEETEXT typedef PTR LPSHELLPROPSHEETEXT
_vtIShellPropSheetExt MACRO CastName:REQ
; IUnknown methods
_vtIUnknown CastName
; IShellPropSheetExt methods
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -