LIBRARY SHELL32 EXPORTS ;; ;; !!! READ THIS !!! ;; ;; private exports use NONAME and define an ordinal ;; public APIs should not use an ordinal ;; ;; what ordinals are available. The fewer the gaps, the smaller ;; the table. Keep this list up to date. DragAcceptFiles DragFinish DragQueryPoint DragQueryFileA DragQueryFile=DragQueryFileA ShellExecuteA FindExecutableA ShellAboutA FreeIconList DoEnvironmentSubstA ExtractIconA ExtractAssociatedIconA SheGetCurDrive SheSetCurDrive DuplicateIcon CheckEscapesA CheckEscapesW DragQueryFileAorW SheChangeDirA SheFullPathA SheGetDirA RealShellExecuteA RealShellExecuteExA RegenerateUserEnvironment SheChangeDirW SheFullPathW SheGetDirW RealShellExecuteW RealShellExecuteExW ShellExecuteW FindExecutableW ShellAboutW ExtractAssociatedIconW ExtractAssociatedIconExA ExtractAssociatedIconExW ExtractIconW ExtractIconResInfoA ExtractIconResInfoW DragQueryFileW InternalExtractIconListA InternalExtractIconListW DoEnvironmentSubstW ExtractVersionResource16W SheGetDirExW SheChangeDirExW SheGetPathOffsetW ; Forward all of these old string functions over to SHLWAPI.DLL ; ; These functions are ULTRAPRIVATE because nobody should be ; linking to them. Everybody should be using the shlwapi versions. ; They exist here only for backwards compat reasons. ; StrChrA ULTRAPRIVATE StrRChrA ULTRAPRIVATE StrChrIA ULTRAPRIVATE StrRChrIA ULTRAPRIVATE StrCmpNA ULTRAPRIVATE StrCmpNIA ULTRAPRIVATE StrStrA ULTRAPRIVATE StrStrIA ULTRAPRIVATE StrRStrIA ULTRAPRIVATE StrChrW ULTRAPRIVATE StrRChrW ULTRAPRIVATE StrChrIW ULTRAPRIVATE StrRChrIW ULTRAPRIVATE StrCmpNW ULTRAPRIVATE StrCmpNIW ULTRAPRIVATE StrStrW ULTRAPRIVATE StrStrIW ULTRAPRIVATE StrRStrIW ULTRAPRIVATE ; ; These are NOT in comctl32. We exported them from shell32, so we keep doing so ; god only knows who uses them... ; StrCpyNA = Shell32_StrCpyNA ULTRAPRIVATE ; need wrapper since this is slightly different (return # bytes copied, not cch) StrCpyNW = Shell32_StrCpyNW ULTRAPRIVATE ; need wrapper since this is slightly different (return # bytes copied, not cch) StrNCmpA ULTRAPRIVATE StrNCmpW ULTRAPRIVATE StrNCmpIA ULTRAPRIVATE StrNCmpIW ULTRAPRIVATE StrNCpyA ULTRAPRIVATE StrNCpyW ULTRAPRIVATE StrRStrA ULTRAPRIVATE StrRStrW ULTRAPRIVATE SheChangeDirExA SheRemoveQuotesA SheRemoveQuotesW SheConvertPathW SheShortenPathA SheShortenPathW CommandLineToArgvW FindExeDlgProc ShellHookProc WOWShellExecute SHLoadInProc SHEnableServiceObject PRIVATE SHGetInstanceExplorer SHAddToRecentDocs SHGetDataFromIDListA SHGetDataFromIDListW SHGetMalloc SHGetDesktopFolder SHChangeNotify SHGetSpecialFolderLocation ExtractIconEx = ExtractIconExA SHGetFileInfo = SHGetFileInfoA ShellExecuteEx = ShellExecuteExA Shell_NotifyIcon = Shell_NotifyIconA SHGetPathFromIDList = SHGetPathFromIDListA SHBrowseForFolder = SHBrowseForFolderA SHFileOperation = SHFileOperationA SHInvokePrinterCommandA SHInvokePrinterCommandW SHFreeNameMappings SHAppBarMessage SHFormatDrive SHGetSettings SHGetDiskFreeSpaceA = SHGetDiskFreeSpaceExA SHGetDiskFreeSpaceExA SHGetDiskFreeSpaceExW SHExtractIconsW SHGetSpecialFolderPathA SHGetSpecialFolderPathW SHGetFolderPathA SHGetFolderPathW SHGetFolderLocation ; X86 emulation mode on Alpha requires this! SHUpdateRecycleBinIcon ExtractIconExA ExtractIconExW SHGetFileInfoA SHGetFileInfoW SHGetPathFromIDListA SHGetPathFromIDListW SHBrowseForFolderA SHBrowseForFolderW ShellExecuteExA ShellExecuteExW Shell_NotifyIconA Shell_NotifyIconW SHFileOperationA SHFileOperationW SHQueryRecycleBinA SHQueryRecycleBinW SHEmptyRecycleBinA SHEmptyRecycleBinW SHCreateProcessAsUserW SHBindToParent SHCreateShellItem SHSetLocalizedName SHEnumerateUnreadMailAccountsW SHGetUnreadMailCountW SHSetUnreadMailCountW SHCreateQueryCancelAutoPlayMoniker SHParseDisplayName ; Exports to be GetProcAddressed. ; marked ULTRAPRIVATE so then dont end up in SHELL32.LIB DllGetClassObject ULTRAPRIVATE DllCanUnloadNow ULTRAPRIVATE DllGetVersion = CCDllGetVersion ULTRAPRIVATE DllInstall ULTRAPRIVATE DllRegisterServer ULTRAPRIVATE DllUnregisterServer ULTRAPRIVATE Control_RunDLL PRIVATE Control_RunDLLA = Control_RunDLL PRIVATE Control_RunDLLW PRIVATE Control_RunDLLAsUserW PRIVATE Control_FillCache_RunDLL PRIVATE Control_FillCache_RunDLLA = Control_FillCache_RunDLL PRIVATE Control_FillCache_RunDLLW PRIVATE OpenAs_RunDLL PRIVATE OpenAs_RunDLLA = OpenAs_RunDLL PRIVATE OpenAs_RunDLLW PRIVATE PrintersGetCommand_RunDLL PRIVATE PrintersGetCommand_RunDLLA = PrintersGetCommand_RunDLL PRIVATE PrintersGetCommand_RunDLLW PRIVATE SHHelpShortcuts_RunDLL PRIVATE SHHelpShortcuts_RunDLLA = SHHelpShortcuts_RunDLL PRIVATE SHHelpShortcuts_RunDLLW PRIVATE ShellExec_RunDLLA PRIVATE ShellExec_RunDLLW PRIVATE ShellExec_RunDLL = ShellExec_RunDLLA PRIVATE Options_RunDLLA PRIVATE Options_RunDLLW PRIVATE Options_RunDLL = Options_RunDLLA PRIVATE AppCompat_RunDLLW PRIVATE Activate_RunDLL PRIVATE ; Make sure to keep SHChangeNotifyRegisterORD updated in shlobj.h SHChangeNotifyRegister @2 SHDefExtractIconA @3 ; Make sure to keep SHChangeNotifyDeregisterORD updated in shlobj.h SHChangeNotifyDeregister @4 SHChangeNotifyUpdateEntryList @5 NONAME PRIVATE SHDefExtractIconW @6 SHLookupIconIndexA @7 NONAME PRIVATE SHLookupIconIndexW @8 NONAME PRIVATE PifMgr_OpenProperties @9 PifMgr_GetProperties @10 PifMgr_SetProperties @11 SHStartNetConnectionDialogA @12 NONAME PRIVATE PifMgr_CloseProperties @13 SHStartNetConnectionDialogW @14 ILGetDisplayName @15 NONAME PRIVATE ILFindLastID @16 ILRemoveLastID @17 ILClone @18 ILCloneFirst @19 ILGlobalClone @20 NONAME PRIVATE ILIsEqual @21 DAD_DragEnterEx2 @22 ILIsParent @23 ILFindChild @24 ILCombine @25 ILLoadFromStream @26 ILSaveToStream @27 SHILCreateFromPath @28 PathIsRoot @29 NONAME PRIVATE PathBuildRoot = shlwapi.PathBuildRootW @30 NONAME PRIVATE ; Ordinal #define'd in SHSEMIP.H PathFindExtension @31 NONAME PRIVATE PathAddBackslash @32 NONAME PRIVATE ; Ordinal #define'd in SHSEMIP.H PathRemoveBlanks @33 NONAME PRIVATE ; Ordinal #define'd in SHSEMIP.H PathFindFileName @34 NONAME PRIVATE PathRemoveFileSpec @35 NONAME PRIVATE PathAppend @36 NONAME PRIVATE PathCombine = shlwapi.PathCombineW @37 NONAME PRIVATE PathStripPath @38 NONAME PRIVATE PathIsUNC = shlwapi.PathIsUNCW @39 NONAME PRIVATE PathIsRelative = shlwapi.PathIsRelativeW @40 NONAME PRIVATE IsLFNDriveA @41 IsLFNDriveW @42 PathIsExe @43 PathFileExists @45 NONAME PRIVATE PathMatchSpec @46 NONAME PRIVATE PathMakeUniqueName @47 PathSetDlgItemPath @48 NONAME PRIVATE PathQualify @49 PathStripToRoot @50 NONAME PRIVATE PathResolve @51 PathGetArgs @52 NONAME PRIVATE IsSuspendAllowed @53 NONAME PRIVATE LogoffWindowsDialog @54 NONAME PRIVATE PathQuoteSpaces @55 NONAME PRIVATE PathUnquoteSpaces @56 NONAME PRIVATE PathGetDriveNumber = shlwapi.PathGetDriveNumberW @57 NONAME PRIVATE ParseField @58 NONAME PRIVATE RestartDialog @59 ExitWindowsDialog @60 NONAME PRIVATE RunFileDlg @61 NONAME PRIVATE PickIconDlg @62 GetFileNameFromBrowse @63 DriveType @64 InvalidateDriveType @65 NONAME PRIVATE IsNetDrive @66 Shell_MergeMenus @67 SHGetSetSettings @68 SHGetNetResource @69 NONAME PRIVATE SHCreateDefClassObject @70 NONAME PRIVATE Shell_GetImageLists @71 Shell_GetCachedImageIndex @72 SHShellFolderView_Message @73 SHCreateStdEnumFmtEtc @74 PathYetAnotherMakeUniqueName @75 DragQueryInfo @76 NONAME PRIVATE SHMapPIDLToSystemImageListIndex @77 OleStrToStrN @78 NONAME PRIVATE StrToOleStrN @79 NONAME PRIVATE SHOpenPropSheetW @80 DDECreatePostNotify @82 NONAME PRIVATE CIDLData_CreateFromIDArray @83 NONAME PRIVATE SHIsBadInterfacePtr @84 NONAME PRIVATE OpenRegStream @85 SHRegisterDragDrop @86 NONAME PRIVATE SHRevokeDragDrop @87 NONAME PRIVATE SHDoDragDrop @88 SHCloneSpecialIDList @89 SHFindFiles @90 SHFindComputer @91 NONAME PRIVATE PathGetShortPath @92 Win32CreateDirectory @93 NONAME PRIVATE Win32RemoveDirectory @94 NONAME PRIVATE SHLogILFromFSIL @95 NONAME PRIVATE StrRetToStrN @96 NONAME PRIVATE SHWaitForFileToOpen @97 NONAME PRIVATE SHGetRealIDL @98 SetAppStartingCursor @99 NONAME PRIVATE SHRestricted @100 SHCoCreateInstance @102 SignalFileOpen @103 IsLFNDrive = IsLFNDriveW @119 ; old TCHAR export needs to be maintaied for compat SHFlushClipboard @121 RunDll_CallEntry16 @122 NONAME PRIVATE SHFreeUnusedLibraries @123 NONAME PRIVATE SHOutOfMemoryMessageBox @126 NONAME PRIVATE SHWinHelp @127 NONAME PRIVATE SHDllGetClassObject = DllGetClassObject @128 NONAME PRIVATE DAD_AutoScroll @129 DAD_DragEnter @130 NONAME PRIVATE DAD_DragEnterEx @131 DAD_DragLeave @132 DAD_DragMove @134 DAD_SetDragImage @136 DAD_ShowDragImage @137 ; (unused) Desktop_UpdateBriefcaseOnEvent @139 NONAME PRIVATE PathFindOnPath @145 NONAME PRIVATE RLBuildListOfPaths @146 NONAME PRIVATE SHCLSIDFromString @147 SHMapIDListToImageListIndexAsync @148 SHFind_InitMenuPopup @149 SHLoadOLE @151 ILGetSize @152 ILGetNext @153 ILAppendID @154 ILFree @155 ILGlobalFree @156 NONAME PRIVATE ILCreateFromPath = ILCreateFromPathW @157 ; Ordinal #define'd in SHSEMIP.H PathGetExtension @158 NONAME PRIVATE PathIsDirectory @159 NONAME PRIVATE SHNetConnectionDialog @160 NONAME PRIVATE SHRunControlPanel @161 SHSimpleIDListFromPath @162 StrToOleStr @163 NONAME PRIVATE Win32DeleteFile @164 SHCreateDirectory @165 CallCPLEntry16 @166 SHAddFromPropSheetExtArray @167 SHCreatePropSheetExtArray @168 SHDestroyPropSheetExtArray @169 SHReplaceFromPropSheetExtArray @170 PathCleanupSpec @171 SHCreateLinks @172 NONAME PRIVATE ; Make sure to keep SHValidateUNCORD updated in shellp.h SHValidateUNC @173 SHCreateShellFolderViewEx @174 SHGetSpecialFolderPath = SHGetSpecialFolderPathW @175 NONAME SHSetInstanceExplorer @176 DAD_SetDragImageFromListView @177 NONAME PRIVATE SHObjectProperties @178 ; SHGetNewLinkInfo=SHGetNewLinkInfoA was internal on Win95, ; but was exported by name NT4. keep the ordianls the same ; but export by name now since these are documented APIs SHGetNewLinkInfoA @179 SHGetNewLinkInfoW @180 SHGetNewLinkInfo = SHGetNewLinkInfoA ;Internal RegisterShellHook @181 NONAME PRIVATE ; Only the TCHAR version of ShellMessageBox existed on ; Win95 as export 183. A/W versions were added in Nashville ; and NT SUR. ShellMessageBoxW = ShellMessageBoxWrapW @182 ; can't use forwarder since shlwapi.ShellMessageBoxWrapW is exported by ordinal only ShellMessageBoxA @183 ArrangeWindows @184 NONAME PRIVATE SHHandleDiskFull @185 NONAME PRIVATE ILGetDisplayNameEx @186 NONAME PRIVATE ILGetPseudoNameW @187 NONAME PRIVATE ShellDDEInit @188 NONAME PRIVATE ILCreateFromPathA @189 ILCreateFromPathW @190 SHUpdateImageA @191 SHUpdateImageW @192 SHHandleUpdateImage @193 SHCreatePropSheetExtArrayEx @194 NONAME PRIVATE SHFree @195 SHAlloc @196 SHGlobalDefect @197 NONAME PRIVATE SHAbortInvokeCommand @198 NONAME PRIVATE ; For explorer/shdocvw to create the desktop SHCreateDesktop @200 NONAME PRIVATE SHDesktopMessageLoop @201 NONAME PRIVATE DDEHandleViewFolderNotify @202 NONAME PRIVATE // PRINTQ AddCommasW = AddCommasExportW @203 NONAME PRIVATE ShortSizeFormatW = ShortSizeFormatExportW @204 NONAME PRIVATE Printer_LoadIconsW @205 NONAME PRIVATE Int64ToString @209 NONAME PRIVATE LargeIntegerToString @210 NONAME PRIVATE Printers_GetPidl @211 NONAME PRIVATE Printer_AddPrinterPropPages @212 NONAME PRIVATE Printers_RegisterWindowW @213 NONAME PRIVATE Printers_UnregisterWindow @214 NONAME PRIVATE SHStartNetConnectionDialog = SHStartNetConnectionDialogW @215 NONAME PRIVATE FirstUserLogon @230 NONAME PRIVATE SHSetFolderPathA @231 NONAME PRIVATE SHSetFolderPathW @232 NONAME PRIVATE SHGetUserPicturePathW @233 NONAME PRIVATE SHSetUserPicturePathW @234 NONAME PRIVATE SHOpenEffectiveToken @235 NONAME PRIVATE SHTestTokenPrivilegeW @236 NONAME PRIVATE SHShouldShowWizards @237 NONAME PRIVATE ;unused @238 NONAME PRIVATE PathIsSlowW @239 PathIsSlowA @240 SHGetUserDisplayName @241 NONAME PRIVATE ; For shdocvw to call Win95's private GetProcessDword SHGetProcessDword @242 NONAME PRIVATE SHSetShellWindowEx @243 NONAME PRIVATE SHSettingsChanged @244 NONAME PRIVATE SHTestTokenMembership @245 SHInvokePrivilegedFunctionW @246 NONAME PRIVATE SHGetActiveConsoleSessionId @247 NONAME PRIVATE SHGetUserSessionId @248 NONAME PRIVATE PathParseIconLocation @249 NONAME PRIVATE PathRemoveExtension @250 NONAME PRIVATE PathRemoveArgs @251 NONAME PRIVATE PathIsURL @252 NONAME PRIVATE SHIsCurrentProcessConsoleSession @253 NONAME PRIVATE DisconnectWindowsDialog @254 NONAME PRIVATE SHCreateShellFolderView @256 SHGetShellFolderViewCB @257 NONAME PRIVATE ; link window LinkWindow_RegisterClass @258 NONAME PRIVATE LinkWindow_UnregisterClass @259 NONAME PRIVATE SHGetFolderPathAndSubDirA SHGetFolderPathAndSubDirW #if defined(ALIGNMENT_MACHINE) ; Private unaligned string functions forward to shlwapi.dll ; NOTE: we can use forwarders here since these are NT only functions SHLualstrcpynW = shlwapi.ualstrcpynW @500 NONAME PRIVATE SHLualstrcmpiW = shlwapi.ualstrcmpiW @501 NONAME PRIVATE SHLualstrcmpW = shlwapi.ualstrcmpW @502 NONAME PRIVATE SHLualstrlenW = shlwapi.ualstrlenW @503 NONAME PRIVATE SHLualstrcpyW = shlwapi.ualstrcpyW @504 NONAME PRIVATE #endif ; Shared memory mapping stuff SHAllocShared = _SHAllocShared @520 SHLockShared = _SHLockShared @521 SHUnlockShared = _SHUnlockShared @522 SHFreeShared = _SHFreeShared @523 RealDriveType @524 RealDriveTypeFlags @525 NONAME PRIVATE SHFlushSFCache @526 ; Make sure to keep SHChangeNotifyRegisterORD updated in shlobj.h ; NOTE:: Even though we converted back to one set of APIS, ; we can't remove these since IE5 shdocvw uses them... NTSHChangeNotifyRegister @640 NONAME PRIVATE ; Make sure to keep SHChangeNotifyDeregisterORD updated in shlobj.h NTSHChangeNotifyDeregister @641 NONAME PRIVATE SHChangeNotifyReceive @643 NONAME PRIVATE SHChangeNotification_Lock @644 SHChangeNotification_Unlock @645 SHChangeRegistrationReceive @646 NONAME PRIVATE ; (unused) ReceiveAddToRecentDocs @647 NONAME PRIVATE SHWaitOp_Operate @648 NONAME PRIVATE PathIsSameRoot @650 NONAME PRIVATE OldReadCabinetState @651 NONAME PRIVATE WriteCabinetState @652 PathProcessCommand @653 ReadCabinetState @654 FileIconInit @660 NONAME PRIVATE IsUserAnAdmin @680 SHGetAppCompatFlags @681 NONAME PRIVATE SHStgOpenStorageW @683 NONAME PRIVATE SHStgOpenStorageA @684 NONAME PRIVATE SHPropStgCreate @685 SHPropStgReadMultiple @688 SHPropStgWriteMultiple @689 SHIsLegacyAnsiProperty @690 NONAME PRIVATE SHFileSysBindToStorage @691 NONAME PRIVATE ; Exported for the OLE DS name space extension CDefFolderMenu_Create @700 CDefFolderMenu_Create2 @701 CDefFolderMenu_MergeMenu @702 NONAME PRIVATE GUIDFromStringA @703 NONAME PRIVATE ; can't use linker forwarder since only exported from shlwapi by ordinal GUIDFromStringW @704 NONAME PRIVATE ; can't use linker forwarder since only exported from shlwapi by ordinal SHOpenPropSheetA @707 NONAME PRIVATE SHGetSetFolderCustomSettingsA @708 NONAME PRIVATE SHGetSetFolderCustomSettingsW @709 CheckWinIniForAssocs @711 NONAME PRIVATE SHCopyMonikerToTemp @712 NONAME PRIVATE PathIsTemporaryA @713 NONAME PRIVATE PathIsTemporaryW @714 NONAME PRIVATE SHCreatePropertyBag @715 NONAME PRIVATE SHMultiFileProperties @716 SHChangeNotifySuspendResume PRIVATE SHCreateDirectoryExA SHCreateDirectoryExW SHPathPrepareForWriteA SHPathPrepareForWriteW SHLoadNonloadedIconOverlayIdentifiers SHGetIconOverlayIndexA SHGetIconOverlayIndexW SHIsFileAvailableOffline SHCreateLocalServerRunDll PRIVATE SHParseDarwinIDFromCacheW @719 NONAME PRIVATE MakeShellURLFromPathA @720 NONAME PRIVATE MakeShellURLFromPathW @721 NONAME PRIVATE SHCreateInstance @722 NONAME PRIVATE SHCreateSessionKey @723 NONAME PRIVATE SHOpenFolderAndSelectItems SHIsTempDisplayMode @724 NONAME PRIVATE GetFileDescriptor @725 NONAME PRIVATE CopyStreamUI @726 NONAME PRIVATE SHGetImageList @727 #ifdef FEATURE_STARTPAGE SetPeekMsgEx @728 NONAME PRIVATE SetStartPageHWND @729 NONAME PRIVATE #endif RestartDialogEx @730 SHRegisterDarwinLink @731 NONAME PRIVATE SHReValidateDarwinCache @732 NONAME PRIVATE CheckDiskSpace @733 NONAME PRIVATE SHCreateFileDataObject @740 NONAME PRIVATE SHCreateFileExtractIconW @743 Create_IEnumUICommand @744 NONAME PRIVATE Create_IUIElement @745 NONAME PRIVATE SHLimitInputEdit @747 SHLimitInputCombo @748 NONAME PRIVATE SHGetShellStyleHInstance @749 SHGetAttributesFromDataObject @750 SHSimulateDropOnClsid @751 NONAME PRIVATE SHGetComputerDisplayNameW @752 NONAME PRIVATE CheckStagingArea @753 NONAME PRIVATE SHLimitInputEditWithFlags @754 NONAME PRIVATE PathIsEqualOrSubFolder @755 NONAME PRIVATE DeleteFileThumbnail @756 NONAME PRIVATE