# Functions exported by the Win95 shell32.dll
# (these need to have these exact ordinals, for some
#  win95 and winNT dlls import shell32.dll by ordinal)
# This list was updated to dll version 4.72

   2 stdcall SHChangeNotifyRegister(long long long long long long)
   4 stdcall SHChangeNotifyDeregister (long)
   5 stdcall SHChangeNotifyUpdateEntryList (long long long long)
   9 stub PifMgr_OpenProperties@16
  10 stub PifMgr_GetProperties@20
  11 stub PifMgr_SetProperties@20
  13 stub PifMgr_CloseProperties@8
  15 stdcall ILGetDisplayName(ptr ptr)
  16 stdcall ILFindLastID(ptr)
  17 stdcall ILRemoveLastID(ptr)
  18 stdcall ILClone(ptr)
  19 stdcall ILCloneFirst (ptr)
  20 stdcall ILGlobalClone (ptr)
  21 stdcall ILIsEqual (ptr ptr)
  23 stdcall ILIsParent (ptr ptr long)
  24 stdcall ILFindChild (ptr ptr)
  25 stdcall ILCombine(ptr ptr)
  26 stdcall ILLoadFromStream (ptr ptr)
  27 stdcall ILSaveToStream(ptr ptr)
  28 stdcall SHILCreateFromPath(ptr ptr ptr) SHILCreateFromPathAW
  29 stdcall PathIsRoot(ptr) PathIsRootAW
  30 stdcall PathBuildRoot(ptr long) PathBuildRootAW
  31 stdcall PathFindExtension(ptr) PathFindExtensionAW
  32 stdcall PathAddBackslash(ptr) PathAddBackslashAW
  33 stdcall PathRemoveBlanks(ptr) PathRemoveBlanksAW
  34 stdcall PathFindFileName(ptr) PathFindFileNameAW
  35 stdcall PathRemoveFileSpec(ptr) PathRemoveFileSpecAW
  36 stdcall PathAppend(ptr ptr) PathAppendAW
  37 stdcall PathCombine(ptr ptr ptr) PathCombineAW
  38 stdcall PathStripPath(ptr)PathStripPathAW
  39 stdcall PathIsUNC (ptr) PathIsUNCAW
  40 stdcall PathIsRelative (ptr) PathIsRelativeAW
  43 stdcall PathIsExe (ptr) PathIsExeAW
  45 stdcall PathFileExists(ptr) PathFileExistsAW
  46 stdcall PathMatchSpec (ptr ptr) PathMatchSpecAW
  47 stdcall PathMakeUniqueName (ptr long ptr ptr ptr)PathMakeUniqueNameAW
  48 stdcall PathSetDlgItemPath (long long ptr) PathSetDlgItemPathAW
  49 stdcall PathQualify (ptr) PathQualifyAW
  50 stdcall PathStripToRoot (ptr) PathStripToRootAW
  51 stdcall PathResolve(str long long) PathResolveAW
  52 stdcall PathGetArgs(str) PathGetArgsAW
  53 stdcall DoEnvironmentSubst (long long) DoEnvironmentSubstAW
  54 stdcall DragAcceptFiles(long long)
  55 stdcall PathQuoteSpaces (ptr) PathQuoteSpacesAW
  56 stdcall PathUnquoteSpaces(str) PathUnquoteSpacesAW
  57 stdcall PathGetDriveNumber (str) PathGetDriveNumberAW
  58 stdcall ParseField(str long ptr long) ParseFieldAW
  59 stub RestartDialog@12
  60 stdcall ExitWindowsDialog(long)
  61 stdcall RunFileDlg(long long long str str long)
  62 stdcall PickIconDlg(long long long long)
  63 stdcall GetFileNameFromBrowse(long long long long str str str)
  64 stdcall DriveType (long)
  65 stub InvalidateDriveType
  66 stdcall IsNetDrive(long)
  67 stdcall Shell_MergeMenus (long long long long long long)
  68 stdcall SHGetSetSettings(ptr long long)
  69 stub SHGetNetResource
  70 stdcall SHCreateDefClassObject(long long long long long)
  71 stdcall Shell_GetImageList(ptr ptr)
  72 stdcall Shell_GetCachedImageIndex(ptr ptr long) Shell_GetCachedImageIndexAW
  73 stdcall SHShellFolderView_Message(long long long)
  74 stdcall SHCreateStdEnumFmtEtc(long ptr ptr)
  75 stdcall PathYetAnotherMakeUniqueName(ptr ptr ptr ptr) PathYetAnotherMakeUniqueNameA
  76 stub DragQueryInfo
  77 stdcall SHMapPIDLToSystemImageListIndex(ptr ptr ptr)
  78 stdcall OleStrToStrN(str long wstr long) OleStrToStrNAW
  79 stdcall StrToOleStrN(wstr long str long) StrToOleStrNAW
  80 stdcall DragFinish(long)
  81 stdcall DragQueryFile(long long ptr long) DragQueryFileA
  82 stdcall DragQueryFileA(long long ptr long)
  83 stdcall CIDLData_CreateFromIDArray(ptr long ptr ptr)
  84 stub SHIsBadInterfacePtr
  85 stdcall OpenRegStream(long str str long) shlwapi.SHOpenRegStreamA
  86 stdcall SHRegisterDragDrop(long ptr)
  87 stdcall SHRevokeDragDrop(long)
  88 stdcall SHDoDragDrop(long ptr ptr long ptr)
  89 stdcall SHCloneSpecialIDList(long long long)
  90 stub SHFindFiles
  91 stub SHFindComputer
  92 stdcall PathGetShortPath (ptr) PathGetShortPathAW
  93 stdcall Win32CreateDirectory(wstr ptr) Win32CreateDirectoryAW
  94 stdcall Win32RemoveDirectory(wstr) Win32RemoveDirectoryAW
  95 stdcall SHLogILFromFSIL (ptr)
  96 stdcall StrRetToStrN (ptr long ptr ptr) StrRetToStrNAW
  97 stdcall SHWaitForFileToOpen (long long long)
  98 stdcall SHGetRealIDL (long long long)
  99 stdcall SetAppStartingCursor (long long)
 100 stdcall SHRestricted(long)
 102 stdcall SHCoCreateInstance(ptr ptr long ptr ptr)
 103 stdcall SignalFileOpen(long)
 104 stdcall FileMenu_DeleteAllItems(long)
 105 stdcall FileMenu_DrawItem(long ptr)
 106 stdcall FileMenu_FindSubMenuByPidl(long ptr)
 107 stdcall FileMenu_GetLastSelectedItemPidls(long ptr ptr)
 108 stdcall FileMenu_HandleMenuChar(long long)
 109 stdcall FileMenu_InitMenuPopup (long)
 110 stdcall FileMenu_InsertUsingPidl (long long ptr long long ptr)
 111 stdcall FileMenu_Invalidate (long)
 112 stdcall FileMenu_MeasureItem(long ptr)
 113 stdcall FileMenu_ReplaceUsingPidl (long long ptr long ptr)
 114 stdcall FileMenu_Create (long long long long long)
 115 stdcall FileMenu_AppendItem (long ptr long long long long) FileMenu_AppendItemAW
 116 stdcall FileMenu_TrackPopupMenuEx (long long long long long long)
 117 stdcall FileMenu_DeleteItemByCmd(long long)
 118 stdcall FileMenu_Destroy (long)
 119 stdcall IsLFNDrive(str) IsLFNDriveA
 120 stdcall FileMenu_AbortInitMenu ()
 121 stdcall SHFlushClipboard ()
 122 stdcall RunDLL_CallEntry16 (long long long long long) #name wrong?
 123 stdcall SHFreeUnusedLibraries ()
 124 stdcall FileMenu_AppendFilesForPidl(long ptr long)
 125 stdcall FileMenu_AddFilesForPidl(long long long ptr long long ptr)
 126 stdcall SHOutOfMemoryMessageBox (long long long)
 127 stdcall SHWinHelp (long long long long)
 128 stdcall DllGetClassObject(long long ptr) SHELL32_DllGetClassObject
 129 stdcall DAD_AutoScroll(long ptr ptr)
 130 stdcall DAD_DragEnter(long)
 131 stdcall DAD_DragEnterEx(long long long)
 132 stdcall DAD_DragLeave()
 133 stdcall DragQueryFileW(long long ptr long)
 134 stdcall DAD_DragMove(long long)
 135 stdcall DragQueryPoint(long ptr)
 136 stdcall DAD_SetDragImage(long long)
 137 stdcall DAD_ShowDragImage (long)
 139 stub Desktop_UpdateBriefcaseOnEvent
 140 stdcall FileMenu_DeleteItemByIndex(long long)
 141 stdcall FileMenu_DeleteItemByFirstID(long long)
 142 stdcall FileMenu_DeleteSeparator(long)
 143 stdcall FileMenu_EnableItemByCmd(long long long)
 144 stdcall FileMenu_GetItemExtent (long long)
 145 stdcall PathFindOnPath (ptr ptr) PathFindOnPathAW
 146 stdcall RLBuildListOfPaths()
 147 stdcall SHCLSIDFromString(long long) SHCLSIDFromStringAW
 149 stdcall SHFind_InitMenuPopup(long long long long)
 151 stdcall SHLoadOLE (long)
 152 stdcall ILGetSize(ptr)
 153 stdcall ILGetNext(ptr)
 154 stdcall ILAppend (long long long)
 155 stdcall ILFree (ptr)
 156 stdcall ILGlobalFree (ptr)
 157 stdcall ILCreateFromPath (ptr) ILCreateFromPathAW
 158 stdcall PathGetExtension(str long long) PathGetExtensionAW
 159 stdcall PathIsDirectory(ptr)PathIsDirectoryAW
 160 stub SHNetConnectionDialog
 161 stdcall SHRunControlPanel (long long)
 162 stdcall SHSimpleIDListFromPath (ptr) SHSimpleIDListFromPathAW
 163 stdcall StrToOleStr (wstr str) StrToOleStrAW
 164 stdcall Win32DeleteFile(str) Win32DeleteFileAW
 165 stdcall SHCreateDirectory(long ptr)
 166 stdcall CallCPLEntry16(long long long long long long)
 167 stdcall SHAddFromPropSheetExtArray(long long long)
 168 stdcall SHCreatePropSheetExtArray(long str long)
 169 stdcall SHDestroyPropSheetExtArray(long)
 170 stdcall SHReplaceFromPropSheetExtArray(long long long long)
 171 stdcall PathCleanupSpec(ptr ptr) PathCleanupSpecAW
 172 stub SHCreateLinks
 173 stdcall SHValidateUNC(long long long)
 174 stdcall SHCreateShellFolderViewEx (ptr ptr)
 175 stdcall SHGetSpecialFolderPath(long long long long) SHGetSpecialFolderPathAW
 176 stdcall SHSetInstanceExplorer (long)
 177 stub DAD_SetDragImageFromListView
 178 stub SHObjectProperties
 179 stub SHGetNewLinkInfoA
 180 stub SHGetNewLinkInfoW
 181 stdcall RegisterShellHook(long long)
 182 varargs ShellMessageBoxW(long long long str long)
 183 varargs ShellMessageBoxA(long long long str long)
 184 stdcall ArrangeWindows(long long long long long)
 185 stub SHHandleDiskFull
 195 stdcall SHFree(ptr)
 196 stdcall SHAlloc(long)
 197 stub SHGlobalDefect
 198 stdcall SHAbortInvokeCommand ()
 199 stub SHGetFileIcon
 200 stub SHLocalAlloc
 201 stub SHLocalFree
 202 stub SHLocalReAlloc
 203 stub AddCommasW
 204 stub ShortSizeFormatW
 205 stub Printer_LoadIconsW
 206 stub Link_AddExtraDataSection
 207 stub Link_ReadExtraDataSection
 208 stub Link_RemoveExtraDataSection
 209 stub Int64ToString
 210 stub LargeIntegerToString
 211 stub Printers_GetPidl
 212 stub Printers_AddPrinterPropPages
 213 stub Printers_RegisterWindowW
 214 stub Printers_UnregisterWindow
 215 stub SHStartNetConnectionDialog@12
 243 stdcall @(long long) shell32_243
 244 stdcall SHInitRestricted(ptr ptr)
 247 stdcall SHGetDataFromIDListA (ptr ptr long ptr long)
 248 stdcall SHGetDataFromIDListW (ptr ptr long ptr long)
 249 stdcall PathParseIconLocation (ptr) PathParseIconLocationAW
 250 stdcall PathRemoveExtension (ptr) PathRemoveExtensionAW
 251 stdcall PathRemoveArgs (ptr) PathRemoveArgsAW
 271 stub SheChangeDirA
 272 stub SheChangeDirExA
 273 stub SheChangeDirExW
 274 stdcall SheChangeDirW(wstr)
 275 stub SheConvertPathW
 276 stub SheFullPathA
 277 stub SheFullPathW
 278 stub SheGetCurDrive
 279 stub SheGetDirA@8
 280 stub SheGetDirExW@12
 281 stdcall SheGetDirW (long long)
 282 stub SheGetPathOffsetW
 283 stub SheRemoveQuotesA
 284 stub SheRemoveQuotesW
 285 stub SheSetCurDrive
 286 stub SheShortenPathA
 287 stub SheShortenPathW
 288 stdcall ShellAboutA(long str str long)
 289 stdcall ShellAboutW(long wstr wstr long)
 290 stdcall ShellExecuteA(long str str str str long)
 291 stdcall ShellExecuteEx (long) ShellExecuteExAW
 292 stdcall ShellExecuteExA (long)
 293 stdcall ShellExecuteExW (long)
 294 stdcall ShellExecuteW (long wstr wstr wstr wstr long)
 296 stdcall Shell_NotifyIcon(long ptr) Shell_NotifyIconA
 297 stdcall Shell_NotifyIconA(long ptr)
 298 stdcall Shell_NotifyIconW(long ptr)
 299 stub Shl1632_ThunkData32
 300 stub Shl3216_ThunkData32
 301 stdcall StrChrA(str long) shlwapi.StrChrA
 302 stdcall StrChrIA(str long) shlwapi.StrChrIA
 303 stdcall StrChrIW(wstr long) shlwapi.StrChrIW
 304 stdcall StrChrW(wstr long) shlwapi.StrChrW
 305 stdcall StrCmpNA(str str long) shlwapi.StrCmpNA
 306 stdcall StrCmpNIA(str str long) shlwapi.StrCmpNIA
 307 stdcall StrCmpNIW(wstr wstr long) shlwapi.StrCmpNIW
 308 stdcall StrCmpNW(wstr wstr long) shlwapi.StrCmpNW
 309 stdcall StrCpyNA (ptr str long) lstrcpynA
 310 stdcall StrCpyNW(wstr wstr long) shlwapi.StrCpyNW
 311 stdcall StrNCmpA(str str long) shlwapi.StrCmpNA
 312 stdcall StrNCmpIA(str str long) shlwapi.StrCmpNIA
 313 stdcall StrNCmpIW(wstr wstr long) shlwapi.StrCmpNIW
 314 stdcall StrNCmpW(wstr wstr long) shlwapi.StrCmpNW
 315 stdcall StrNCpyA (ptr str long) lstrcpynA
 316 stdcall StrNCpyW(wstr wstr long) shlwapi.StrCpyNW
 317 stdcall StrRChrA(str str long) shlwapi.StrRChrA
 318 stdcall StrRChrIA(str str long) shlwapi.StrRChrIA
 319 stdcall StrRChrIW(str str long) shlwapi.StrRChrIW
 320 stdcall StrRChrW(wstr wstr long) shlwapi.StrRChrW
 321 stub StrRStrA
 322 stdcall StrRStrIA(str str str) shlwapi.StrRStrIA
 323 stdcall StrRStrIW(wstr wstr wstr) shlwapi.StrRStrIW
 324 stub StrRStrW
 325 stdcall StrStrA(str str) shlwapi.StrStrA
 326 stdcall StrStrIA(str str) shlwapi.StrStrIA
 327 stdcall StrStrIW(wstr wstr) shlwapi.StrStrIW
 328 stdcall StrStrW(wstr wstr) shlwapi.StrStrW

 505 stdcall SHRegCloseKey (long)
 506 stdcall SHRegOpenKeyA (long str long)
 507 stdcall SHRegOpenKeyW (long wstr long)
 508 stub SHRegQueryValueA@16
 509 stdcall SHRegQueryValueExA(long str ptr ptr ptr ptr)
 510 stdcall SHRegQueryValueW (long long long long)
 511 stdcall SHRegQueryValueExW (long wstr ptr ptr ptr ptr)
 512 stdcall SHRegDeleteKeyW (long wstr)

 520 stdcall SHAllocShared (long long long)
 521 stdcall SHLockShared (long long)
 522 stdcall SHUnlockShared (long)
 523 stdcall SHFreeShared (long long)
 524 stub RealDriveType@8
 525 stub RealDriveTypeFlags@8

 640 stdcall NTSHChangeNotifyRegister (long long long long long long)
 641 stdcall NTSHChangeNotifyDeregister (long)

 643 stub SHChangeNotifyReceive@16
 644 stub SHChangeNotification_Lock@16
 645 stub SHChangeNotification_Unlock@4
 646 stub SHChangeRegistrationReceive@8
 647 stub ReceiveAddToRecentDocs@8
 648 stub SHWaitOp_Operate@8

 650 stdcall PathIsSameRoot(ptr ptr)PathIsSameRootAW

# nt40/win98
 651 stdcall ReadCabinetState (long long) # OldReadCabinetState
 652 stdcall WriteCabinetState (long)
 653 stdcall PathProcessCommand (long long long long) PathProcessCommandAW

# win98
 654 stdcall @(long long)shell32_654 # ReadCabinetState@8
 660 stdcall FileIconInit(long)
 680 stdcall IsUserAdmin()

# >= NT5
 714 stdcall @(ptr)SHELL32_714 # PathIsTemporaryW

1217 stub FOOBAR1217   # no joke! This is the real name!!

#
# version 4.0 (win95)
# _WIN32_IE >= 0x0200
#
@ stdcall CheckEscapesA(str long)
@ stdcall CheckEscapesW(wstr long)
@ stdcall CommandLineToArgvW(wstr ptr)
@ stdcall Control_FillCache_RunDLL(long long long long)
@ stub Control_FillCache_RunDLLA
@ stub Control_FillCache_RunDLLW
@ stdcall Control_RunDLL(ptr ptr str long) Control_RunDLLA
@ stdcall Control_RunDLLA(ptr ptr str long)
@ stdcall Control_RunDLLW(ptr ptr wstr long)
@ stdcall DllInstall(long wstr)SHELL32_DllInstall
@ stdcall DoEnvironmentSubstA(str str)
@ stdcall DoEnvironmentSubstW(wstr wstr)
@ stub DragQueryFileAorW
@ stdcall DuplicateIcon(long long)
@ stdcall ExtractAssociatedIconA(long ptr long)
@ stdcall ExtractAssociatedIconExA(long str long long)
@ stdcall ExtractAssociatedIconExW(long wstr long long)
@ stub ExtractAssociatedIconW
@ stdcall ExtractIconA(long str long)
@ stdcall ExtractIconEx(ptr long ptr ptr long)ExtractIconExAW
@ stdcall ExtractIconExA(str long ptr ptr long)
@ stdcall ExtractIconExW(wstr long ptr ptr long)
@ stdcall ExtractIconW(long wstr long)
@ stub ExtractIconResInfoA
@ stub ExtractIconResInfoW
@ stub ExtractVersionResource16W
@ stub FindExeDlgProc
@ stdcall FindExecutableA(ptr ptr ptr)
@ stdcall FindExecutableW(wstr wstr wstr)
@ stdcall FreeIconList(long)
@ stub InternalExtractIconListA
@ stub InternalExtractIconListW
@ stub OpenAs_RunDLL
@ stub OpenAs_RunDLLA
@ stub OpenAs_RunDLLW
@ stub PrintersGetCommand_RunDLL
@ stub PrintersGetCommand_RunDLLA
@ stub PrintersGetCommand_RunDLLW
@ stub RealShellExecuteA
@ stub RealShellExecuteExA
@ stub RealShellExecuteExW
@ stub RealShellExecuteW
@ stub RegenerateUserEnvironment
@ stdcall SHAddToRecentDocs (long ptr)
@ stdcall SHAppBarMessage(long ptr)
@ stdcall SHBrowseForFolder(ptr) SHBrowseForFolderA
@ stdcall SHBrowseForFolderA(ptr)
@ stdcall SHBrowseForFolderW(ptr)
@ stdcall SHChangeNotify (long long ptr ptr)
@ stdcall SHCreateDirectoryExA(long str ptr)
@ stdcall SHCreateDirectoryExW(long wstr ptr)
@ stub ShellHookProc
@ stub SHEmptyRecycleBinA@12
@ stub SHEmptyRecycleBinW@12
@ stdcall SHFileOperation(ptr)SHFileOperationAW
@ stdcall SHFileOperationA(ptr)
@ stdcall SHFileOperationW(ptr)
@ stub SHFormatDrive@16
@ stub SHFreeNameMappings@4
@ stdcall SHGetDesktopFolder(ptr)
@ stdcall SHGetFileInfo(ptr long ptr long long)SHGetFileInfoAW
@ stdcall SHGetFileInfoA(ptr long ptr long long)
@ stdcall SHGetFileInfoW(ptr long ptr long long)
@ stdcall SHGetInstanceExplorer(long)
@ stdcall SHGetMalloc(ptr)
@ stub SHGetNewLinkInfo@20
@ stdcall SHGetPathFromIDList(ptr ptr)SHGetPathFromIDListAW
@ stdcall SHGetPathFromIDListA(ptr ptr)
@ stdcall SHGetPathFromIDListW(ptr ptr)
@ stdcall SHGetSettings(ptr long)
@ stdcall SHGetSpecialFolderLocation(long long ptr)
@ stdcall SHHelpShortcuts_RunDLL(long long long long)
@ stub SHHelpShortcuts_RunDLLA@16
@ stub SHHelpShortcuts_RunDLLW@16
@ stdcall SHLoadInProc(long)
@ stub SHQueryRecycleBinA@8
@ stub SHQueryRecycleBinW@8
@ stub SHUpdateRecycleBinIcon@0
@ stub WOWShellExecute@28

#
# version 4.70 (IE3.0)
# _WIN32_IE >= 0x0300
#

#
# version 4.71 (IE4.0)
# _WIN32_IE >= 0x0400
#
@ stdcall DllCanUnloadNow() SHELL32_DllCanUnloadNow
@ stdcall DllGetVersion(ptr)SHELL32_DllGetVersion
@ stub SHGetFreeDiskSpace
@ stdcall SHGetSpecialFolderPathA(long ptr long long)
@ stdcall SHGetSpecialFolderPathW(long ptr long long)
#
# version 4.72 (IE4.01)
# _WIN32_IE >= 0x0401
# no new exports
#

#
# version 5.00 (Win2K)
# _WIN32_IE >= 0x0500
#
@ stdcall SHGetDiskFreeSpaceA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
@ stdcall SHGetDiskFreeSpaceExA(str ptr ptr ptr) kernel32.GetDiskFreeSpaceExA
@ stdcall SHGetDiskFreeSpaceExW(wstr ptr ptr ptr) kernel32.GetDiskFreeSpaceExW
@ stdcall SHGetFolderPathA(long long long long ptr)
@ stdcall SHGetFolderPathW(long long long long ptr)
@ stdcall SHGetFolderLocation(long long long long ptr)

# version 6.0 (WinXP)
# _WIN32_IE >= 0x600
@ stdcall SHDefExtractIconA(str long long ptr ptr long)
@ stdcall SHDefExtractIconW(wstr long long ptr ptr long)
