Module shellapi

Types

HDROP* = THandle
UINT_PTR* = ptr UINT
DWORD_PTR* = ptr DWORD
pHICON* = ptr HICON
pBool* = ptr BOOL
STARTUPINFOW* {.final.} = object 
  cb*: DWORD
  lpReserved*: LPTSTR
  lpDesktop*: LPTSTR
  lpTitle*: LPTSTR
  dwX*: DWORD
  dwY*: DWORD
  dwXSize*: DWORD
  dwYSize*: DWORD
  dwXCountChars*: DWORD
  dwYCountChars*: DWORD
  dwFillAttribute*: DWORD
  dwFlags*: DWORD
  wShowWindow*: int16
  cbReserved2*: int16
  lpReserved2*: LPBYTE
  hStdInput*: HANDLE
  hStdOutput*: HANDLE
  hStdError*: HANDLE
LPSTARTUPINFOW* = ptr STARTUPINFOW
TSTARTUPINFOW* = STARTUPINFOW
PSTARTUPINFOW* = ptr STARTUPINFOW
DRAGINFOA* {.final.} = object 
  uSize*: UINT
  pt*: POINT
  fNC*: BOOL
  lpFileList*: LPSTR
  grfKeyState*: DWORD
TDRAGINFOA* = DRAGINFOA
LPDRAGINFOA* = ptr DRAGINFOA
DRAGINFOW* {.final.} = object 
  uSize*: UINT
  pt*: POINT
  fNC*: BOOL
  lpFileList*: LPWSTR
  grfKeyState*: DWORD
TDRAGINFOW* = DRAGINFOW
LPDRAGINFOW* = ptr DRAGINFOW
DRAGINFO* = DRAGINFOW
TDRAGINFO* = DRAGINFOW
LPDRAGINFO* = LPDRAGINFOW
AppBarData* {.final.} = object 
  cbSize*: DWORD
  hWnd*: HWND
  uCallbackMessage*: UINT
  uEdge*: UINT
  rc*: RECT
  lParam*: LPARAM
TAPPBARDATA* = AppBarData
PAPPBARDATA* = ptr AppBarData
FILEOP_FLAGS* = int16
PRINTEROP_FLAGS* = int16
SHFILEOPSTRUCTA* {.final.} = object 
  hwnd*: HWND
  wFunc*: UINT
  pFrom*: LPCSTR
  pTo*: LPCSTR
  fFlags*: FILEOP_FLAGS
  fAnyOperationsAborted*: BOOL
  hNameMappings*: LPVOID
  lpszProgressTitle*: LPCSTR
TSHFILEOPSTRUCTA* = SHFILEOPSTRUCTA
LPSHFILEOPSTRUCTA* = ptr SHFILEOPSTRUCTA
SHFILEOPSTRUCTW* {.final.} = object 
  hwnd*: HWND
  wFunc*: UINT
  pFrom*: LPCWSTR
  pTo*: LPCWSTR
  fFlags*: FILEOP_FLAGS
  fAnyOperationsAborted*: BOOL
  hNameMappings*: LPVOID
  lpszProgressTitle*: LPCWSTR
TSHFILEOPSTRUCTW* = SHFILEOPSTRUCTW
LPSHFILEOPSTRUCTW* = ptr SHFILEOPSTRUCTW
SHFILEOPSTRUCT* = SHFILEOPSTRUCTW
TSHFILEOPSTRUCT* = SHFILEOPSTRUCTW
LPSHFILEOPSTRUCT* = LPSHFILEOPSTRUCTW
SHNAMEMAPPINGA* {.final.} = object 
  pszOldPath*: LPSTR
  pszNewPath*: LPSTR
  cchOldPath*: int32
  cchNewPath*: int32
TSHNAMEMAPPINGA* = SHNAMEMAPPINGA
LPSHNAMEMAPPINGA* = ptr SHNAMEMAPPINGA
SHNAMEMAPPINGW* {.final.} = object 
  pszOldPath*: LPWSTR
  pszNewPath*: LPWSTR
  cchOldPath*: int32
  cchNewPath*: int32
TSHNAMEMAPPINGW* = SHNAMEMAPPINGW
LPSHNAMEMAPPINGW* = ptr SHNAMEMAPPINGW
SHNAMEMAPPING* = SHNAMEMAPPINGW
TSHNAMEMAPPING* = SHNAMEMAPPINGW
LPSHNAMEMAPPING* = LPSHNAMEMAPPINGW
SHELLEXECUTEINFOA* {.final.} = object 
  cbSize*: DWORD
  fMask*: ULONG
  hwnd*: HWND
  lpVerb*: LPCSTR
  lpFile*: LPCSTR
  lpParameters*: LPCSTR
  lpDirectory*: LPCSTR
  nShow*: int32
  hInstApp*: HINST
  lpIDList*: LPVOID
  lpClass*: LPCSTR
  hkeyClass*: HKEY
  dwHotKey*: DWORD
  hMonitor*: HANDLE
  hProcess*: HANDLE
TSHELLEXECUTEINFOA* = SHELLEXECUTEINFOA
LPSHELLEXECUTEINFOA* = ptr SHELLEXECUTEINFOA
SHELLEXECUTEINFOW* {.final.} = object 
  cbSize*: DWORD
  fMask*: ULONG
  hwnd*: HWND
  lpVerb*: lpcwstr
  lpFile*: lpcwstr
  lpParameters*: lpcwstr
  lpDirectory*: lpcwstr
  nShow*: int32
  hInstApp*: HINST
  lpIDList*: LPVOID
  lpClass*: LPCWSTR
  hkeyClass*: HKEY
  dwHotKey*: DWORD
  hMonitor*: HANDLE
  hProcess*: HANDLE
TSHELLEXECUTEINFOW* = SHELLEXECUTEINFOW
LPSHELLEXECUTEINFOW* = ptr SHELLEXECUTEINFOW
SHELLEXECUTEINFO* = SHELLEXECUTEINFOW
TSHELLEXECUTEINFO* = SHELLEXECUTEINFOW
LPSHELLEXECUTEINFO* = LPSHELLEXECUTEINFOW
SHCREATEPROCESSINFOW* {.final.} = object 
  cbSize*: DWORD
  fMask*: ULONG
  hwnd*: HWND
  pszFile*: LPCWSTR
  pszParameters*: LPCWSTR
  pszCurrentDirectory*: LPCWSTR
  hUserToken*: HANDLE
  lpProcessAttributes*: LPSECURITY_ATTRIBUTES
  lpThreadAttributes*: LPSECURITY_ATTRIBUTES
  bInheritHandles*: BOOL
  dwCreationFlags*: DWORD
  lpStartupInfo*: LPSTARTUPINFOW
  lpProcessInformation*: LPPROCESS_INFORMATION
TSHCREATEPROCESSINFOW* = SHCREATEPROCESSINFOW
PSHCREATEPROCESSINFOW* = ptr SHCREATEPROCESSINFOW
SHQUERYRBINFO* {.final.} = object 
  cbSize*: DWORD
  i64Size*: int64
  i64NumItems*: int64
TSHQUERYRBINFO* = SHQUERYRBINFO
LPSHQUERYRBINFO* = ptr SHQUERYRBINFO
NOTIFYICONDATAA* {.final.} = object 
  cbSize*: DWORD
  hWnd*: HWND
  uID*: UINT
  uFlags*: UINT
  uCallbackMessage*: UINT
  hIcon*: HICON
  szTip*: array[0 .. 127, CHAR]
  dwState*: DWORD
  dwStateMask*: DWORD
  szInfo*: array[0 .. 255, CHAR]
  uTimeout*: UINT
  szInfoTitle*: array[0 .. 63, CHAR]
  dwInfoFlags*: DWORD
  guidItem*: TGUID
TNOTIFYICONDATAA* = NOTIFYICONDATAA
PNOTIFYICONDATAA* = ptr NOTIFYICONDATAA
NOTIFYICONDATAW* {.final.} = object 
  cbSize*: DWORD
  hWnd*: HWND
  uID*: UINT
  uFlags*: UINT
  uCallbackMessage*: UINT
  hIcon*: HICON
  szTip*: array[0 .. 127, WCHAR]
  dwState*: DWORD
  dwStateMask*: DWORD
  szInfo*: array[0 .. 255, WCHAR]
  uTimeout*: UINT
  szInfoTitle*: array[0 .. 63, CHAR]
  dwInfoFlags*: DWORD
  guidItem*: TGUID
TNOTIFYICONDATAW* = NOTIFYICONDATAW
PNOTIFYICONDATAW* = ptr NOTIFYICONDATAW
NOTIFYICONDATA* = NOTIFYICONDATAW
TNOTIFYICONDATA* = NOTIFYICONDATAW
PNOTIFYICONDATA* = PNOTIFYICONDATAW
SHFILEINFOA* {.final.} = object 
  hIcon*: HICON
  iIcon*: int32
  dwAttributes*: DWORD
  szDisplayName*: array[0 .. (MAX_PATH) - 1, CHAR]
  szTypeName*: array[0 .. 79, CHAR]
TSHFILEINFOA* = SHFILEINFOA
pSHFILEINFOA* = ptr SHFILEINFOA
SHFILEINFOW* {.final.} = object 
  hIcon*: HICON
  iIcon*: int32
  dwAttributes*: DWORD
  szDisplayName*: array[0 .. (MAX_PATH) - 1, WCHAR]
  szTypeName*: array[0 .. 79, WCHAR]
TSHFILEINFOW* = SHFILEINFOW
pSHFILEINFOW* = ptr SHFILEINFOW
SHFILEINFO* = SHFILEINFOW
TSHFILEINFO* = SHFILEINFOW
pFILEINFO* = SHFILEINFOW

Consts

ABM_NEW* = 0x00000000
ABM_REMOVE* = 0x00000001
ABM_QUERYPOS* = 0x00000002
ABM_SETPOS* = 0x00000003
ABM_GETSTATE* = 0x00000004
ABM_GETTASKBARPOS* = 0x00000005
ABM_ACTIVATE* = 0x00000006
ABM_GETAUTOHIDEBAR* = 0x00000007
ABM_SETAUTOHIDEBAR* = 0x00000008
ABM_WINDOWPOSCHANGED* = 0x00000009
ABM_SETSTATE* = 0x0000000A
ABN_STATECHANGE* = 0x00000000
ABN_POSCHANGED* = 0x00000001
ABN_FULLSCREENAPP* = 0x00000002
ABN_WINDOWARRANGE* = 0x00000003
ABS_AUTOHIDE* = 0x00000001
ABS_ALWAYSONTOP* = 0x00000002
ABE_LEFT* = 0
ABE_TOP* = 1
ABE_RIGHT* = 2
ABE_BOTTOM* = 3
FO_MOVE* = 0x00000001
FO_COPY* = 0x00000002
FO_DELETE* = 0x00000003
FO_RENAME* = 0x00000004
FOF_MULTIDESTFILES* = 0x00000001
FOF_CONFIRMMOUSE* = 0x00000002
FOF_SILENT* = 0x00000004
FOF_RENAMEONCOLLISION* = 0x00000008
FOF_NOCONFIRMATION* = 0x00000010
FOF_WANTMAPPINGHANDLE* = 0x00000020
FOF_ALLOWUNDO* = 0x00000040
FOF_FILESONLY* = 0x00000080
FOF_SIMPLEPROGRESS* = 0x00000100
FOF_NOCONFIRMMKDIR* = 0x00000200
FOF_NOERRORUI* = 0x00000400
FOF_NOCOPYSECURITYATTRIBS* = 0x00000800
FOF_NORECURSION* = 0x00001000
FOF_NO_CONNECTED_ELEMENTS* = 0x00002000
FOF_WANTNUKEWARNING* = 0x00004000
FOF_NORECURSEREPARSE* = 0x00008000
PO_DELETE* = 0x00000013
PO_RENAME* = 0x00000014
PO_PORTCHANGE* = 0x00000020
PO_REN_PORT* = 0x00000034
SE_ERR_FNF* = 2
SE_ERR_PNF* = 3
SE_ERR_ACCESSDENIED* = 5
SE_ERR_OOM* = 8
SE_ERR_DLLNOTFOUND* = 32
SE_ERR_SHARE* = 26
SE_ERR_ASSOCINCOMPLETE* = 27
SE_ERR_DDETIMEOUT* = 28
SE_ERR_DDEFAIL* = 29
SE_ERR_DDEBUSY* = 30
SE_ERR_NOASSOC* = 31
SEE_MASK_CLASSNAME* = 0x00000001
SEE_MASK_CLASSKEY* = 0x00000003
SEE_MASK_IDLIST* = 0x00000004
SEE_MASK_INVOKEIDLIST* = 0x0000000C
SEE_MASK_ICON* = 0x00000010
SEE_MASK_HOTKEY* = 0x00000020
SEE_MASK_NOCLOSEPROCESS* = 0x00000040
SEE_MASK_CONNECTNETDRV* = 0x00000080
SEE_MASK_FLAG_DDEWAIT* = 0x00000100
SEE_MASK_DOENVSUBST* = 0x00000200
SEE_MASK_FLAG_NO_UI* = 0x00000400
SEE_MASK_UNICODE* = 0x00004000
SEE_MASK_NO_CONSOLE* = 0x00008000
SEE_MASK_ASYNCOK* = 0x00100000
SEE_MASK_HMONITOR* = 0x00200000
SEE_MASK_NOQUERYCLASSSTORE* = 0x01000000
SEE_MASK_WAITFORINPUTIDLE* = 0x02000000
SEE_MASK_FLAG_LOG_USAGE* = 0x04000000
SHERB_NOCONFIRMATION* = 0x00000001
SHERB_NOPROGRESSUI* = 0x00000002
SHERB_NOSOUND* = 0x00000004
NIN_SELECT* = WM_USER + 0
NINF_KEY* = 0x00000001
NIN_KEYSELECT* = NIN_SELECT or NINF_KEY
NIN_BALLOONSHOW* = WM_USER + 2
NIN_BALLOONHIDE* = WM_USER + 3
NIN_BALLOONTIMEOUT* = WM_USER + 4
NIN_BALLOONUSERCLICK* = WM_USER + 5
NIM_ADD* = 0x00000000
NIM_MODIFY* = 0x00000001
NIM_DELETE* = 0x00000002
NIM_SETFOCUS* = 0x00000003
NIM_SETVERSION* = 0x00000004
NOTIFYICON_VERSION* = 3
NIF_MESSAGE* = 0x00000001
NIF_ICON* = 0x00000002
NIF_TIP* = 0x00000004
NIF_STATE* = 0x00000008
NIF_INFO* = 0x00000010
NIF_GUID* = 0x00000020
NIS_HIDDEN* = 0x00000001
NIS_SHAREDICON* = 0x00000002
NIIF_NONE* = 0x00000000
NIIF_INFO* = 0x00000001
NIIF_WARNING* = 0x00000002
NIIF_ERROR* = 0x00000003
NIIF_ICON_MASK* = 0x0000000F
NIIF_NOSOUND* = 0x00000010
SHGFI_ICON* = 0x00000100
SHGFI_DISPLAYNAME* = 0x00000200
SHGFI_TYPENAME* = 0x00000400
SHGFI_ATTRIBUTES* = 0x00000800
SHGFI_ICONLOCATION* = 0x00001000
SHGFI_EXETYPE* = 0x00002000
SHGFI_SYSICONINDEX* = 0x00004000
SHGFI_LINKOVERLAY* = 0x00008000
SHGFI_SELECTED* = 0x00010000
SHGFI_ATTR_SPECIFIED* = 0x00020000
SHGFI_LARGEICON* = 0x00000000
SHGFI_SMALLICON* = 0x00000001
SHGFI_OPENICON* = 0x00000002
SHGFI_SHELLICONSIZE* = 0x00000004
SHGFI_PIDL* = 0x00000008
SHGFI_USEFILEATTRIBUTES* = 0x00000010
SHGFI_ADDOVERLAYS* = 0x00000020
SHGFI_OVERLAYINDEX* = 0x00000040
SHGNLI_PIDL* = 0x00000001
SHGNLI_PREFIXNAME* = 0x00000002
SHGNLI_NOUNIQUE* = 0x00000004
SHGNLI_NOLNK* = 0x00000008
PRINTACTION_OPEN* = 0
PRINTACTION_PROPERTIES* = 1
PRINTACTION_NETINSTALL* = 2
PRINTACTION_NETINSTALLLINK* = 3
PRINTACTION_TESTPAGE* = 4
PRINTACTION_OPENNETPRN* = 5
PRINTACTION_DOCUMENTDEFAULTS* = 6
PRINTACTION_SERVERPROPERTIES* = 7
OFFLINE_STATUS_LOCAL* = 0x00000001
OFFLINE_STATUS_REMOTE* = 0x00000002
OFFLINE_STATUS_INCOMPLETE* = 0x00000004
SHIL_LARGE* = 0
SHIL_SMALL* = 1
SHIL_EXTRALARGE* = 2
SHIL_SYSSMALL* = 3
SHIL_LAST* = SHIL_SYSSMALL

Procs

proc DragQueryFileA*(arg1: HDROP; arg2: UINT; arg3: LPSTR; arg4: UINT): UINT {.
    stdcall, dynlib: "shell32.dll", importc: "DragQueryFileA".}
proc DragQueryFileW*(arg1: HDROP; arg2: UINT; arg3: LPWSTR; arg4: UINT): UINT {.
    stdcall, dynlib: "shell32.dll", importc: "DragQueryFileW".}
proc DragQueryFile*(arg1: HDROP; arg2: UINT; arg3: LPSTR; arg4: UINT): UINT {.
    stdcall, dynlib: "shell32.dll", importc: "DragQueryFileA".}
proc DragQueryFile*(arg1: HDROP; arg2: UINT; arg3: LPWSTR; arg4: UINT): UINT {.
    stdcall, dynlib: "shell32.dll", importc: "DragQueryFileW".}
proc DragQueryPoint*(arg1: HDROP; arg2: LPPOINT): BOOL {.stdcall, 
    dynlib: "shell32.dll", importc: "DragQueryPoint".}
proc DragFinish*(arg1: HDROP) {.stdcall, dynlib: "shell32.dll", 
                                importc: "DragFinish".}
proc DragAcceptFiles*(hwnd: HWND; arg2: BOOL) {.stdcall, dynlib: "shell32.dll", 
    importc: "DragAcceptFiles".}
proc ShellExecuteA*(HWND: hwnd; lpOperation: LPCSTR; lpFile: LPCSTR; 
                    lpParameters: LPCSTR; lpDirectory: LPCSTR; nShowCmd: int32): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "ShellExecuteA".}
proc ShellExecuteW*(hwnd: HWND; lpOperation: LPCWSTR; lpFile: LPCWSTR; 
                    lpParameters: LPCWSTR; lpDirectory: LPCWSTR; nShowCmd: int32): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "ShellExecuteW".}
proc ShellExecute*(HWND: hwnd; lpOperation: LPCSTR; lpFile: LPCSTR; 
                   lpParameters: LPCSTR; lpDirectory: LPCSTR; nShowCmd: int32): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "ShellExecuteA".}
proc ShellExecute*(hwnd: HWND; lpOperation: LPCWSTR; lpFile: LPCWSTR; 
                   lpParameters: LPCWSTR; lpDirectory: LPCWSTR; nShowCmd: int32): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "ShellExecuteW".}
proc FindExecutableA*(lpFile: LPCSTR; lpDirectory: LPCSTR; lpResult: LPSTR): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "FindExecutableA".}
proc FindExecutableW*(lpFile: LPCWSTR; lpDirectory: LPCWSTR; lpResult: LPWSTR): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "FindExecutableW".}
proc FindExecutable*(lpFile: LPCSTR; lpDirectory: LPCSTR; lpResult: LPSTR): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "FindExecutableA".}
proc FindExecutable*(lpFile: LPCWSTR; lpDirectory: LPCWSTR; lpResult: LPWSTR): HInst {.
    stdcall, dynlib: "shell32.dll", importc: "FindExecutableW".}
proc CommandLineToArgvW*(lpCmdLine: LPCWSTR; pNumArgs: ptr int32): pLPWSTR {.
    stdcall, dynlib: "shell32.dll", importc: "CommandLineToArgvW".}
proc ShellAboutA*(HWND: hWnd; szApp: LPCSTR; szOtherStuff: LPCSTR; HICON: hIcon): int32 {.
    stdcall, dynlib: "shell32.dll", importc: "ShellAboutA".}
proc ShellAboutW*(HWND: hWnd; szApp: LPCWSTR; szOtherStuff: LPCWSTR; 
                  HICON: hIcon): int32 {.stdcall, dynlib: "shell32.dll", 
    importc: "ShellAboutW".}
proc ShellAbout*(HWND: hWnd; szApp: LPCSTR; szOtherStuff: LPCSTR; HICON: hIcon): int32 {.
    stdcall, dynlib: "shell32.dll", importc: "ShellAboutA".}
proc ShellAbout*(HWND: hWnd; szApp: LPCWSTR; szOtherStuff: LPCWSTR; HICON: hIcon): int32 {.
    stdcall, dynlib: "shell32.dll", importc: "ShellAboutW".}
proc DuplicateIcon*(inst: HINST; icon: HICON): HIcon {.stdcall, 
    dynlib: "shell32.dll", importc: "DuplicateIcon".}
proc ExtractAssociatedIconA*(hInst: HINST; lpIconPath: LPSTR; lpiIcon: LPWORD): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractAssociatedIconA".}
proc ExtractAssociatedIconW*(hInst: HINST; lpIconPath: LPWSTR; lpiIcon: LPWORD): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractAssociatedIconW".}
proc ExtractAssociatedIcon*(hInst: HINST; lpIconPath: LPSTR; lpiIcon: LPWORD): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractAssociatedIconA".}
proc ExtractAssociatedIcon*(hInst: HINST; lpIconPath: LPWSTR; lpiIcon: LPWORD): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractAssociatedIconW".}
proc ExtractIconA*(hInst: HINST; lpszExeFileName: LPCSTR; nIconIndex: UINT): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractIconA".}
proc ExtractIconW*(hInst: HINST; lpszExeFileName: LPCWSTR; nIconIndex: UINT): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractIconW".}
proc ExtractIcon*(hInst: HINST; lpszExeFileName: LPCSTR; nIconIndex: UINT): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractIconA".}
proc ExtractIcon*(hInst: HINST; lpszExeFileName: LPCWSTR; nIconIndex: UINT): HICON {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractIconW".}
proc SHAppBarMessage*(dwMessage: DWORD; pData: APPBARDATA): UINT_PTR {.stdcall, 
    dynlib: "shell32.dll", importc: "SHAppBarMessage".}
proc DoEnvironmentSubstA*(szString: LPSTR; cchString: UINT): DWORD {.stdcall, 
    dynlib: "shell32.dll", importc: "DoEnvironmentSubstA".}
proc DoEnvironmentSubstW*(szString: LPWSTR; cchString: UINT): DWORD {.stdcall, 
    dynlib: "shell32.dll", importc: "DoEnvironmentSubstW".}
proc DoEnvironmentSubst*(szString: LPSTR; cchString: UINT): DWORD {.stdcall, 
    dynlib: "shell32.dll", importc: "DoEnvironmentSubstA".}
proc DoEnvironmentSubst*(szString: LPWSTR; cchString: UINT): DWORD {.stdcall, 
    dynlib: "shell32.dll", importc: "DoEnvironmentSubstW".}
proc EIRESID*(x: int32): int32
proc ExtractIconExA*(lpszFile: LPCSTR; nIconIndex: int32; phiconLarge: pHICON; 
                     phiconSmall: pHIcon; nIcons: UINT): UINT {.stdcall, 
    dynlib: "shell32.dll", importc: "ExtractIconExA".}
proc ExtractIconExW*(lpszFile: LPCWSTR; nIconIndex: int32; phiconLarge: pHICON; 
                     phiconSmall: pHIcon; nIcons: UINT): UINT {.stdcall, 
    dynlib: "shell32.dll", importc: "ExtractIconExW".}
proc ExtractIconExA*(lpszFile: LPCSTR; nIconIndex: int32; 
                     phiconLarge: var HICON; phiconSmall: var HIcon; 
                     nIcons: UINT): UINT {.stdcall, dynlib: "shell32.dll", 
    importc: "ExtractIconExA".}
proc ExtractIconExW*(lpszFile: LPCWSTR; nIconIndex: int32; 
                     phiconLarge: var HICON; phiconSmall: var HIcon; 
                     nIcons: UINT): UINT {.stdcall, dynlib: "shell32.dll", 
    importc: "ExtractIconExW".}
proc ExtractIconEx*(lpszFile: LPCSTR; nIconIndex: int32; phiconLarge: pHICON; 
                    phiconSmall: pHIcon; nIcons: UINT): UINT {.stdcall, 
    dynlib: "shell32.dll", importc: "ExtractIconExA".}
proc ExtractIconEx*(lpszFile: LPCWSTR; nIconIndex: int32; phiconLarge: pHICON; 
                    phiconSmall: pHIcon; nIcons: UINT): UINT {.stdcall, 
    dynlib: "shell32.dll", importc: "ExtractIconExW".}
proc ExtractIconEx*(lpszFile: LPCSTR; nIconIndex: int32; phiconLarge: var HICON; 
                    phiconSmall: var HIcon; nIcons: UINT): UINT {.stdcall, 
    dynlib: "shell32.dll", importc: "ExtractIconExA".}
proc ExtractIconEx*(lpszFile: LPCWSTR; nIconIndex: int32; 
                    phiconLarge: var HICON; phiconSmall: var HIcon; nIcons: UINT): UINT {.
    stdcall, dynlib: "shell32.dll", importc: "ExtractIconExW".}
proc SHFileOperationA*(lpFileOp: LPSHFILEOPSTRUCTA): int32 {.stdcall, 
    dynlib: "shell32.dll", importc: "SHFileOperationA".}
proc SHFileOperationW*(lpFileOp: LPSHFILEOPSTRUCTW): int32 {.stdcall, 
    dynlib: "shell32.dll", importc: "SHFileOperationW".}
proc SHFileOperation*(lpFileOp: LPSHFILEOPSTRUCTA): int32 {.stdcall, 
    dynlib: "shell32.dll", importc: "SHFileOperationA".}
proc SHFileOperation*(lpFileOp: LPSHFILEOPSTRUCTW): int32 {.stdcall, 
    dynlib: "shell32.dll", importc: "SHFileOperationW".}
proc SHFreeNameMappings*(hNameMappings: THandle) {.stdcall, 
    dynlib: "shell32.dll", importc: "SHFreeNameMappings".}
proc ShellExecuteExA*(lpExecInfo: LPSHELLEXECUTEINFOA): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "ShellExecuteExA".}
proc ShellExecuteExW*(lpExecInfo: LPSHELLEXECUTEINFOW): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "ShellExecuteExW".}
proc ShellExecuteEx*(lpExecInfo: LPSHELLEXECUTEINFOA): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "ShellExecuteExA".}
proc ShellExecuteEx*(lpExecInfo: LPSHELLEXECUTEINFOW): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "ShellExecuteExW".}
proc WinExecErrorA*(HWND: hwnd; error: int32; lpstrFileName: LPCSTR; 
                    lpstrTitle: LPCSTR) {.stdcall, dynlib: "shell32.dll", 
    importc: "WinExecErrorA".}
proc WinExecErrorW*(HWND: hwnd; error: int32; lpstrFileName: LPCWSTR; 
                    lpstrTitle: LPCWSTR) {.stdcall, dynlib: "shell32.dll", 
    importc: "WinExecErrorW".}
proc WinExecError*(HWND: hwnd; error: int32; lpstrFileName: LPCSTR; 
                   lpstrTitle: LPCSTR) {.stdcall, dynlib: "shell32.dll", 
    importc: "WinExecErrorA".}
proc WinExecError*(HWND: hwnd; error: int32; lpstrFileName: LPCWSTR; 
                   lpstrTitle: LPCWSTR) {.stdcall, dynlib: "shell32.dll", 
    importc: "WinExecErrorW".}
proc SHCreateProcessAsUserW*(pscpi: PSHCREATEPROCESSINFOW): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHCreateProcessAsUserW".}
proc SHQueryRecycleBinA*(pszRootPath: LPCSTR; pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHQueryRecycleBinA".}
proc SHQueryRecycleBinW*(pszRootPath: LPCWSTR; pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHQueryRecycleBinW".}
proc SHQueryRecycleBin*(pszRootPath: LPCSTR; pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHQueryRecycleBinA".}
proc SHQueryRecycleBin*(pszRootPath: LPCWSTR; pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHQueryRecycleBinW".}
proc SHEmptyRecycleBinA*(hwnd: HWND; pszRootPath: LPCSTR; dwFlags: DWORD): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHEmptyRecycleBinA".}
proc SHEmptyRecycleBinW*(hwnd: HWND; pszRootPath: LPCWSTR; dwFlags: DWORD): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHEmptyRecycleBinW".}
proc SHEmptyRecycleBin*(hwnd: HWND; pszRootPath: LPCSTR; dwFlags: DWORD): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHEmptyRecycleBinA".}
proc SHEmptyRecycleBin*(hwnd: HWND; pszRootPath: LPCWSTR; dwFlags: DWORD): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHEmptyRecycleBinW".}
proc Shell_NotifyIconA*(dwMessage: Dword; lpData: PNOTIFYICONDATAA): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "Shell_NotifyIconA".}
proc Shell_NotifyIconW*(dwMessage: Dword; lpData: PNOTIFYICONDATAW): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "Shell_NotifyIconW".}
proc Shell_NotifyIcon*(dwMessage: Dword; lpData: PNOTIFYICONDATAA): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "Shell_NotifyIconA".}
proc Shell_NotifyIcon*(dwMessage: Dword; lpData: PNOTIFYICONDATAW): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "Shell_NotifyIconW".}
proc SHGetFileInfoA*(pszPath: LPCSTR; dwFileAttributes: DWORD; 
                     psfi: pSHFILEINFOA; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoA".}
proc SHGetFileInfoW*(pszPath: LPCWSTR; dwFileAttributes: DWORD; 
                     psfi: pSHFILEINFOW; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoW".}
proc SHGetFileInfo*(pszPath: LPCSTR; dwFileAttributes: DWORD; 
                    psfi: pSHFILEINFOA; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoA".}
proc SHGetFileInfoA*(pszPath: LPCSTR; dwFileAttributes: DWORD; 
                     psfi: var TSHFILEINFOA; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoA".}
proc SHGetFileInfoW*(pszPath: LPCWSTR; dwFileAttributes: DWORD; 
                     psfi: var TSHFILEINFOW; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoW".}
proc SHGetFileInfo*(pszPath: LPCSTR; dwFileAttributes: DWORD; 
                    psfi: var TSHFILEINFOA; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoA".}
proc SHGetFileInfo*(pszPath: LPCWSTR; dwFileAttributes: DWORD; 
                    psfi: var TSHFILEINFOW; cbFileInfo, UFlags: UINT): DWORD {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetFileInfoW".}
proc SHGetDiskFreeSpaceExA*(pszDirectoryName: LPCSTR; 
                            pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                            pulTotalNumberOfBytes: pULARGE_INTEGER; 
                            pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExA".}
proc SHGetDiskFreeSpaceExW*(pszDirectoryName: LPCWSTR; 
                            pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                            pulTotalNumberOfBytes: pULARGE_INTEGER; 
                            pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExW".}
proc SHGetDiskFreeSpaceEx*(pszDirectoryName: LPCSTR; 
                           pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                           pulTotalNumberOfBytes: pULARGE_INTEGER; 
                           pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExA".}
proc SHGetDiskFreeSpace*(pszDirectoryName: LPCSTR; 
                         pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                         pulTotalNumberOfBytes: pULARGE_INTEGER; 
                         pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExA".}
proc SHGetDiskFreeSpaceEx*(pszDirectoryName: LPCWSTR; 
                           pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                           pulTotalNumberOfBytes: pULARGE_INTEGER; 
                           pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExW".}
proc SHGetDiskFreeSpace*(pszDirectoryName: LPCWSTR; 
                         pulFreeBytesAvailableToCaller: pULARGE_INTEGER; 
                         pulTotalNumberOfBytes: pULARGE_INTEGER; 
                         pulTotalNumberOfFreeBytes: pULARGE_INTEGER): Bool {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetDiskFreeSpaceExW".}
proc SHGetNewLinkInfoA*(pszLinkTo: LPCSTR; pszDir: LPCSTR; pszName: LPSTR; 
                        pfMustCopy: pBool; uFlags: UINT): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetNewLinkInfoA".}
proc SHGetNewLinkInfoW*(pszLinkTo: LPCWSTR; pszDir: LPCWSTR; pszName: LPWSTR; 
                        pfMustCopy: pBool; uFlags: UINT): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetNewLinkInfoW".}
proc SHGetNewLinkInfo*(pszLinkTo: LPCSTR; pszDir: LPCSTR; pszName: LPSTR; 
                       pfMustCopy: pBool; uFlags: UINT): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetNewLinkInfoA".}
proc SHGetNewLinkInfo*(pszLinkTo: LPCWSTR; pszDir: LPCWSTR; pszName: LPWSTR; 
                       pfMustCopy: pBool; uFlags: UINT): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetNewLinkInfoW".}
proc SHInvokePrinterCommandA*(HWND: hwnd; uAction: UINT; lpBuf1: LPCSTR; 
                              lpBuf2: LPCSTR; fModal: Bool): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHInvokePrinterCommandA".}
proc SHInvokePrinterCommandW*(HWND: hwnd; uAction: UINT; lpBuf1: LPCWSTR; 
                              lpBuf2: LPCWSTR; fModal: Bool): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHInvokePrinterCommandW".}
proc SHInvokePrinterCommand*(HWND: hwnd; uAction: UINT; lpBuf1: LPCSTR; 
                             lpBuf2: LPCSTR; fModal: Bool): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHInvokePrinterCommandA".}
proc SHInvokePrinterCommand*(HWND: hwnd; uAction: UINT; lpBuf1: LPCWSTR; 
                             lpBuf2: LPCWSTR; fModal: Bool): Bool {.stdcall, 
    dynlib: "shell32.dll", importc: "SHInvokePrinterCommandW".}
proc SHLoadNonloadedIconOverlayIdentifiers*(): HResult {.stdcall, 
    dynlib: "shell32.dll", importc: "SHInvokePrinterCommandW".}
proc SHIsFileAvailableOffline*(pwszPath: LPCWSTR; pdwStatus: LPDWORD): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHIsFileAvailableOffline".}
proc SHSetLocalizedName*(pszPath: LPWSTR; pszResModule: LPCWSTR; idsRes: int32): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHSetLocalizedName".}
proc SHEnumerateUnreadMailAccountsA*(hKeyUser: HKEY; dwIndex: DWORD; 
                                     pszMailAddress: LPSTR; 
                                     cchMailAddress: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHEnumerateUnreadMailAccountsA".}
proc SHEnumerateUnreadMailAccountsW*(hKeyUser: HKEY; dwIndex: DWORD; 
                                     pszMailAddress: LPWSTR; 
                                     cchMailAddress: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHEnumerateUnreadMailAccountsW".}
proc SHEnumerateUnreadMailAccounts*(hKeyUser: HKEY; dwIndex: DWORD; 
                                    pszMailAddress: LPWSTR; 
                                    cchMailAddress: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHEnumerateUnreadMailAccountsW".}
proc SHGetUnreadMailCountA*(hKeyUser: HKEY; pszMailAddress: LPCSTR; 
                            pdwCount: PDWORD; pFileTime: PFILETIME; 
                            pszShellExecuteCommand: LPSTR; 
                            cchShellExecuteCommand: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetUnreadMailCountA".}
proc SHGetUnreadMailCountW*(hKeyUser: HKEY; pszMailAddress: LPCWSTR; 
                            pdwCount: PDWORD; pFileTime: PFILETIME; 
                            pszShellExecuteCommand: LPWSTR; 
                            cchShellExecuteCommand: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetUnreadMailCountW".}
proc SHGetUnreadMailCount*(hKeyUser: HKEY; pszMailAddress: LPCSTR; 
                           pdwCount: PDWORD; pFileTime: PFILETIME; 
                           pszShellExecuteCommand: LPSTR; 
                           cchShellExecuteCommand: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetUnreadMailCountA".}
proc SHGetUnreadMailCount*(hKeyUser: HKEY; pszMailAddress: LPCWSTR; 
                           pdwCount: PDWORD; pFileTime: PFILETIME; 
                           pszShellExecuteCommand: LPWSTR; 
                           cchShellExecuteCommand: int32): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHGetUnreadMailCountW".}
proc SHSetUnreadMailCountA*(pszMailAddress: LPCSTR; dwCount: DWORD; 
                            pszShellExecuteCommand: LPCSTR): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHSetUnreadMailCountA".}
proc SHSetUnreadMailCountW*(pszMailAddress: LPCWSTR; dwCount: DWORD; 
                            pszShellExecuteCommand: LPCWSTR): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHSetUnreadMailCountW".}
proc SHSetUnreadMailCount*(pszMailAddress: LPCSTR; dwCount: DWORD; 
                           pszShellExecuteCommand: LPCSTR): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHSetUnreadMailCountA".}
proc SHSetUnreadMailCount*(pszMailAddress: LPCWSTR; dwCount: DWORD; 
                           pszShellExecuteCommand: LPCWSTR): HRESULT {.stdcall, 
    dynlib: "shell32.dll", importc: "SHSetUnreadMailCountW".}
proc SHGetImageList*(iImageList: int32; riid: TIID; ppvObj: ptr pointer): HRESULT {.
    stdcall, dynlib: "shell32.dll", importc: "SHGetImageList".}
Generated: 2014-03-11 21:26:34 UTC