SHELL32 Functions

The very large table on this page is this study’s master list of functions that appear in the export directory of any known version of SHELL32. It gives for each function just brief summaries of the applicable versions and of the function’s status with respect to Microsoft’s documentation.

This master list is the key to other lists. More detail on each function’s availability and documentation status is to be found by looking for the function in the history lists, according to the function’s first version and to whether it is exported by name or with an ordinal. A separate list covers usage by other executable modules distributed with Windows (though presently specific to Windows XP Service Pack 1a). Some functions link directly to an attempt at alternative documentation.

More explanatory notes follow the table.

Function Applicable Versions Documentation Status
Activate_RunDLL pre-Vista 6.00 builds (documented)
AddCommasW (203) NT only;
4.00 and higher
 
AppCompat_RunDLLW 6.00 and higher (documented)
ArrangeWindows (184) 4.00 and higher  
AssocCreateElement (764) Windows Vista and higher  
AssocCreateForClasses Windows Vista and higher documented
AssocGetDetailsOfPropKey Windows Vista and higher documented
AssocGetPropListForExt (778) Windows Vista and higher  
CallCPLEntry16 (166) 4.00 and higher documented for settlement
CDefFolderMenu_Create (700) 4.71 and higher  
CDefFolderMenu_Create2 (701) 4.71 and higher documented for settlement
CDefFolderMenu_MergeMenu (702) 4.71 and higher  
CheckDiskSpace (733) 6.00 and higher  
CheckEscapesA 1.30 and higher;
until discontinued in Windows Vista
 
CheckEscapesW 1.30 and higher  
CheckStagingArea (753) 6.00 and higher  
CheckWinIniForAssocs (711) 4.71 and higher  
CIDLData_CreateFromIDArray (83) 4.00 and higher documented
CommandLineToArgvW 1.30 and higher documented
Control_FillCache_RunDLL 1.30 and higher;
until discontinued in Windows Vista
(documented)
Control_FillCache_RunDLLA 4.00 (NT) and higher;
until discontinued in Windows Vista
(documented)
Control_FillCache_RunDLLW 4.00 (NT) and higher;
until discontinued in Windows Vista
(documented)
Control_RunDLL 1.30 and higher (documented)
Control_RunDLLA 4.00 (NT) and higher (documented)
Control_RunDLLW 4.00 (NT) and higher (documented)
Control_RunDLLAsUserW NT only;
5.00 and higher
(documented)
Control_RunDLLNoFallback (44) very late 6.00 server builds and higher (documented)
CopyStreamUI (726) 6.00 and higher  
CPL_ExecuteTask (856) Windows Vista and higher  
CPL_CreateCondition (857) Windows Vista and higher  
Create_IEnumUICommand (744) 6.00 and higher  
Create_IEnumUICommandFromDefArray (763) Windows Vista and higher  
Create_IUICommandFromDef (762) Windows Vista and higher  
Create_IUIElement (745) 6.00 and higher  
CreateConditionRange (845) Windows Vista and higher  
CreateInfoTipFromItem (260) Windows Vista and higher  
CreateInfoTipFromItem2 (264) Windows Vista and higher  
CreateSingleVisibleInList (839) Windows Vista and higher  
CreateVisibleInDescription (867) Windows Vista and higher  
CreateVisibleInList (868) Windows Vista and higher  
DAD_AutoScroll (129) 4.00 and higher documented for settlement
DAD_DragEnter (130) 4.00 and higher  
DAD_DragEnterEx (131) 4.00 and higher documented for settlement
DAD_DragEnterEx2 (22) 5.00 and higher documented for settlement
DAD_DragLeave (132) 4.00 and higher documented for settlement
DAD_DragMove (134) 4.00 and higher documented for settlement
DAD_SetDragImage (136) 4.00 and higher documented for settlement
DAD_SetDragImageFromListView (177) 4.00 and higher  
DAD_ShowDragImage (137) 4.00 and higher documented for settlement
DDECreatePostNotify (82) 4.71 and higher  
DDEHandleViewFolderNotify (202) 5.00 and higher  
DeleteFileThumbnail (756) post-settlement 6.00 builds and higher  
Desktop_UpdateBriefcaseOnEvent (139) 4.00 up to but not including 6.00  
DisconnectWindowsDialog (254) 6.00 and higher  
DisplayNameOfW (757) Windows Vista and higher  
DllCanUnloadNow 4.71 and higher (documented)
DllGetClassObject (128) 1.30 and higher (documented)
DllGetVersion 4.71 and higher (documented)
DllInstall 4.71 and higher (documented)
DllRegisterServer 5.00 and higher (documented)
DllUnregisterServer 5.00 and higher (documented)
DoEnvironmentSubstA 1.30 and higher documented
DoEnvironmentSubstW 1.30 and higher documented
DragAcceptFiles 1.30 and higher documented
DragFinish 1.30 and higher documented
DragQueryFile 1.30 and higher documented
DragQueryFileA 1.30 and higher documented
DragQueryFileW 1.30 and higher documented
DragQueryFileAorW 1.30 and higher  
DragQueryInfo (76) 4.00 (NT) and higher  
DragQueryPoint 1.30 and higher documented
DrawMenuItem (828) Windows Vista and higher  
DriveType (64) 4.00 and higher documented
DUI_Shell32_StartDeferUninitialization (870) Windows Vista and higher  
DUI_Shell32_EndDeferUninitialization (871) Windows Vista and higher  
DuplicateIcon 1.30 and higher  
ExitWindowsDialog (60) 4.00 and higher  
ExtractAssociatedIconA 1.30 and higher documented
ExtractAssociatedIconW 1.30 and higher  
ExtractAssociatedIconExA 1.30 and higher documented for settlement
ExtractAssociatedIconExW 1.30 and higher documented for settlement
ExtractIcon 1.30 only  
ExtractIconA 1.30 and higher documented
ExtractIconW 1.30 and higher documented
ExtractIconEx 1.30 and higher documented
ExtractIconExA 1.30 and higher documented
ExtractIconExW 1.30 and higher;
NT-only in 4.00
documented
ExtractIconResInfoA 1.30 and higher;
until discontinued in Windows Vista
 
ExtractIconResInfoW 1.30 and higher;
until discontinued in Windows Vista
 
ExtractVersionResource16W 1.30 and higher;
until discontinued in Windows Vista
 
FileIconInit (660) 4.00 (NT) and higher documented in 2004-2006
FileMenu_AbortInitMenu (120) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_AddFilesForPidl (125) 4.00 (NT) only  
FileMenu_AppendFilesForPidl (124) 4.00 (NT) and higher;
except for pre-Vista 6.00 builds
 
FileMenu_AppendItem (115) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_Create (114) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_CreateFromMenu (227) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DelayedInvalidate (224) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DeleteAllItems (104) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DeleteItemByCmd (117) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DeleteItemByIndex (140) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DeleteMenuItemByFirstID (141) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DeleteSeparator (142) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_Destroy (118) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_DrawItem (105) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_EditMode (221) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_EnableItemByCmd (143) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_FindSubMenuByPidl (106) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_GetItemExtent (144) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_GetLastSelectedItemPidls (107) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_GetPidl (220) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_HandleMenuChar (108) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_HandleMenuSelect (222) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_HandleNotify (101) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_InsertItem (218) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_InitMenuPopup (109) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_InsertSeparator (219) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_InsertUsingPidl (110) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_Invalidate (111) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_IsDelayedInvalid (225) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_IsFileMenu (216) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_IsUnexpanded (223) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_MeasureItem (112) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_ProcessCommand (217) 4.71 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_ReplaceUsingPidl (113) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FileMenu_TrackPopupMenuEx (116) 4.00 and higher;
except for pre-Vista 6.00 builds
 
FindExecutable 1.30 only  
FindExecutableA 1.30 and higher documented
FindExecutableW 1.30 and higher documented
FindExeDlgProc 1.30 and higher;
NT-only in 4.00;
until discontinued in Windows Vista
 
FirstUserLogon (230) 5.00 and higher  
FixupOptionalComponents late 5.00 builds only  
FreeIconList 1.30 and higher  
GetFileDescriptor (725) 6.00 and higher  
GetFileNameFromBrowse (63) 4.00 and higher documented for settlement
GetTryHarderIDList (863) Windows Vista and higher  
GUIDFromStringA (703) 4.71 and higher documented in 2004-2006
GUIDFromStringW (704) 4.71 and higher documented in 2004-2006
ILAppendID (154) 4.00 and higher documented for settlement
ILClone (18) 4.00 and higher documented for settlement
ILCloneFirst (19) 4.00 and higher documented for settlement
ILCombine (25) 4.00 and higher documented for settlement
ILCreateFromPath (157) 4.00 and higher documented in 2004-2006
ILCreateFromPathA (189) 4.71 and higher documented in 2004-2006
ILCreateFromPathW (190) 4.71 and higher documented for settlement
ILFindChild (24) 4.00 and higher documented for settlement
ILFindLastID (16) 4.00 and higher documented for settlement
ILFree (155) 4.00 and higher documented for settlement
ILGetDisplayName (15) 4.00 and higher  
ILGetDisplayNameEx (186) 4.71 and higher  
ILGetNext (153) 4.00 and higher documented for settlement
ILGetPseudoNameW (187) 5.00 and higher  
ILGetSize (152) 4.00 and higher documented for settlement
ILGlobalClone (20) 4.00 and higher  
ILGlobalFree (156) 4.00 and higher  
ILIsEqual (21) 4.00 and higher documented for settlement
ILIsParent (23) 4.00 and higher documented for settlement
ILLoadFromStream (26) 4.00 and higher documented for settlement
ILLoadFromStreamEx Windows Vista and higher documented
ILRemoveLastID (17) 4.00 and higher documented for settlement
ILSaveToStream (27) 4.00 and higher documented for settlement
InitNetworkAddressControl Windows Vista and higher documented
Int64ToString (209) NT only;
4.00 and higher
 
InternalExtractIconListA 1.30 and higher  
InternalExtractIconListW 1.30 and higher  
InvalidateDriveType (65) 4.00 and higher  
IsElevationRequired (865) Windows Vista and higher  
IsLFNDrive (119) 4.00 and higher  
IsLFNDriveA (41) 4.71 and higher  
IsLFNDriveW (42) 4.71 and higher  
IsNetDrive (66) 4.00 and higher documented for settlement
IsShellItemInSearchIndex (854) Windows Vista and higher  
IsSuspendAllowed (53) 4.71 and higher  
IsUserAnAdmin (680) 4.00 (NT) and higher documented for settlement
LargeIntegerToString (210) NT only;
4.00 and higher
 
LinkWindow_RegisterClass (258) 5.00 and higher documented in 2004-2006
LinkWindow_UnregisterClass (259) 5.00 and higher documented in 2004-2006
Link_AddExtraDataSection (206) NT only;
4.00 and higher;
until discontinued in 6.00
 
Link_ReadExtraDataSection (207) NT only;
4.00 and higher;
until discontinued in 6.00
 
Link_RemoveExtraDataSection (208) NT only;
4.00 and higher;
until discontinued in 6.00
 
LogoffWindowsDialog (54) 4.71 and higher  
MakeShellURLFromPathA (720) 5.50 and higher  
MakeShellURLFromPathW (721) 5.50 and higher  
MeasureMenuItem (829) Windows Vista and higher  
NTSHChangeNotifyDeregister (641) 4.00 (NT) and higher documented in 2004-2006
NTSHChangeNotifyRegister (640) 4.00 (NT) and higher documented in 2004-2006
OCInstall late 5.00 builds only  
OldReadCabinetState (651) 4.00 (NT) and higher  
OleStrToStrN (78) 4.00 and higher  
OpenAs_RunDLL 1.30 and higher (documented)
OpenAs_RunDLLA 4.00 (NT) and higher (documented)
OpenAs_RunDLLW 4.00 (NT) and higher (documented)
OpenRegStream (85) 4.00 and higher documented for settlement
Options_RunDLL 5.50 and higher (documented)
Options_RunDLLA 5.50 and higher (documented)
Options_RunDLLW 5.50 and higher (documented)
ParseField (58) 4.00 and higher documented
PathAddBackslash (32) 4.00 and higher documented (SHLWAPI)
PathAppend (36) 4.00 and higher documented (SHLWAPI)
PathBuildRoot (30) 4.00 and higher documented (SHLWAPI)
PathCleanupSpec (171) 4.00 and higher documented for settlement
PathCombine (37) 4.00 and higher documented (SHLWAPI)
PathComparePaths (850) Windows Vista and higher  
PathFileExists (45) 4.00 and higher documented (SHLWAPI)
PathFindExtension (31) 4.00 and higher documented (SHLWAPI)
PathFindFileName (34) 4.00 and higher documented (SHLWAPI)
PathFindOnPath (145) 4.00 and higher documented (SHLWAPI)
PathGetArgs (52) 4.00 and higher documented (SHLWAPI)
PathGetDriveNumber (57) 4.00 and higher documented (SHLWAPI)
PathGetExtension (158) 4.00 and higher  
PathGetPathDisplayName (840) Windows Vista and higher  
PathGetPathDisplayNameAlloc (869) Windows Vista and higher  
PathGetShortPath (92) 4.00 and higher documented for settlement
PathIsDirectory (159) 4.00 and higher documented (SHLWAPI)
PathIsEqualOrSubFolder (755) 6.00 and higher  
PathIsExe (43) 4.00 and higher documented for settlement
PathIsRelative (40) 4.00 and higher documented (SHLWAPI)
PathIsRoot (29) 4.00 and higher documented (SHLWAPI)
PathIsSameRoot (650) 4.00 (NT) and higher documented (SHLWAPI)
PathIsSlowA (240) 5.00 and higher documented for settlement
PathIsSlowW (239) 5.00 and higher documented for settlement
PathIsTemporaryA (713) 5.00 and higher  
PathIsTemporaryW (714) 5.00 and higher  
PathIsUNC (39) 4.00 and higher documented (SHLWAPI)
PathIsURL (252) 4.71 and higher documented (SHLWAPI)
PathMakeUniqueName (47) 4.00 and higher documented for settlement
PathMatchSpec (46) 4.00 and higher documented (SHLWAPI)
PathParseIconLocation (249) 4.00 (NT) and higher documented (SHLWAPI)
PathProcessCommand (653) 4.00 (NT) and higher documented for settlement
PathQualify (49) 4.00 and higher  
PathQuoteSpaces (55) 4.00 and higher documented (SHLWAPI)
PathRemoveArgs (251) 4.00 (NT) and higher documented (SHLWAPI)
PathRemoveBlanks (33) 4.00 and higher documented (SHLWAPI)
PathRemoveExtension (250) 4.00 (NT) and higher documented (SHLWAPI)
PathRemoveFileSpec (35) 4.00 and higher documented (SHLWAPI)
PathResolve (51) 4.00 and higher documented for settlement
PathSetDlgItemPath (48) 4.00 and higher documented (SHLWAPI)
PathStripPath (38) 4.00 (NT) and higher documented (SHLWAPI)
PathStripToRoot (50) 4.00 (NT) and higher documented (SHLWAPI)
PathUnquoteSpaces (56) 4.00 and higher documented (SHLWAPI)
PathYetAnotherMakeUniqueName (75) 4.00 and higher documented for settlement
PickIconDlg (62) 4.00 and higher documented for settlement
PifMgr_CloseProperties (13) 4.00 and higher documented for settlement
PifMgr_GetProperties (10) 4.00 and higher documented for settlement
PifMgr_OpenProperties (9) 4.00 and higher documented for settlement
PifMgr_SetProperties (11) 4.00 and higher documented for settlement
POOBE_CreateIndirectGraphic (858) Windows Vista and higher  
PrepareDiscForBurnRunDllW Windows Vista and higher (documented)
PrintersGetCommand_RunDLL 1.30 and higher (documented)
PrintersGetCommand_RunDLLA 4.00 (NT) and higher (documented)
PrintersGetCommand_RunDLLW 4.00 (NT) and higher (documented)
Printers_GetPidl (211) NT only;
4.00 and higher
 
Printers_RegisterWindowW (213) NT only;
4.00 and higher
 
Printers_UnregisterWindow (214) NT only;
4.00 and higher
 
Printer_AddPrinterPropPages (212) NT only;
4.00 and higher
 
Printer_LoadIconsW (205) NT only;
4.00 and higher
 
ReadCabinetState (654) 4.71 and higher documented for settlement
RealDriveType (524) 4.00 (NT) and higher documented for settlement
RealDriveTypeFlags (525) 4.00 (NT) and higher  
RealShellExecuteA 1.30 and higher  
RealShellExecuteW 1.30 and higher  
RealShellExecuteExA 1.30 and higher  
RealShellExecuteExW 1.30 and higher  
ReceiveAddToRecentDocs (647) 4.00 (NT) and higher;
until discontinued in 6.00
 
RegenerateUserEnvironment 1.30 and higher  
RegisterShellHook (181) 1.30 and higher  
RestartDialog (59) 4.00 and higher documented for settlement
RestartDialogEx (730) 6.00 and higher documented for settlement
RLBuildListOfPaths (146) 4.00 and higher  
RunDll_CallEntry16 (122) 4.00 and higher  
RunFileDlg (61) 4.00 and higher  
SetAppStartingCursor (99) 4.00 and higher  
SHAbortInvokeCommand (198) 4.00 and higher  
SHAddDefaultPropertiesByExt Windows Vista and higher documented
SHAddFromPropSheetExtArray (167) 4.00 and higher documented for settlement
SHAddToRecentDocs 1.30 and higher documented
SHAlloc (196) 4.00 and higher documented for settlement
SHAllocShared (520) 4.00 (NT) and higher documented for settlement
SHAppBarMessage 1.30 and higher documented
SHApplyPropertiesToItem (781) Windows Vista and higher  
SHAssocEnumHandlers Windows Vista and higher documented
SHBindToFolderIDListParent Windows Vista and higher documented
SHBindToFolderIDListParentEx Windows Vista and higher documented
SHBindToObject Windows Vista and higher documented
SHBindToParent 5.00 and higher documented
SHBrowseForFolder 1.30 and higher documented
SHBrowseForFolderA 1.30 and higher documented
SHBrowseForFolderW 1.30 and higher;
NT-only in 4.00
documented
SHChangeNotification_Lock (644) 4.00 (NT) and higher documented for settlement
SHChangeNotification_Unlock (645) 4.00 (NT) and higher documented for settlement
SHChangeNotify 1.30 and higher documented
SHChangeNotifyDeregister (4) 4.00 and higher documented for settlement
SHChangeNotifyDeregisterWindow (761) Windows Vista and higher  
SHChangeNotifyReceive (643) 4.00 (NT) and higher  
SHChangeNotifyRegister (2) 4.00 and higher documented for settlement
SHChangeNotifyRegisterThread Windows Vista and higher documented
SHChangeNotifySuspendResume 5.00 and higher  
SHChangeNotifyUpdateEntryList (5) 4.00 and higher  
SHChangeRegistrationReceive (646) 4.00 (NT) and higher  
SHCloneSpecialIDList (89) 4.00 and higher documented for settlement
SHCLSIDFromString (147) 4.00 and higher documented for settlement
SHCoCreateInstance (102) 4.00 and higher documented for settlement
SHCombineMultipleConditions (825) Windows Vista and higher  
SHCombineMultipleConditionsEx (847) Windows Vista and higher  
SHCompareIDsFull (862) Windows Vista and higher  
SHConfirmOperation (760) Windows Vista and higher  
SHCopyMonikerToTemp (712) 5.00 and higher  
SHCopyStreamWithProgress (766) Windows Vista and higher  
SHCreateAndOrCondition (816) Windows Vista and higher  
SHCreateAndOrConditionEx (815) Windows Vista and higher  
SHCreateAssociationRegistration Windows Vista and higher documented
SHCreateAutoList (820) Windows Vista and higher  
SHCreateAutoListWithID (826) Windows Vista and higher  
SHCreateCategoryEnum (786) Windows Vista and higher  
SHCreateConditionFactory (849) Windows Vista and higher  
SHCreateDataObject Windows Vista and higher documented
SHCreateDefaultContextMenu Windows Vista and higher documented
SHCreateDefaultExtractIcon Windows Vista and higher documented
SHCreateDefaultPropertiesOp Windows Vista and higher documented
SHCreateDefClassObject (70) 4.00 and higher  
SHCreateDesktop (200) 5.00 and higher  
SHCreateDirectory (165) 4.00 and higher documented for settlement
SHCreateDirectoryExA 5.00 and higher documented
SHCreateDirectoryExW 5.00 and higher documented
SHCreateFileDataObject (740) 6.00 and higher  
SHCreateFileExtractIconW (743) 6.00 and higher documented for settlement
SHCreateFilter (818) Windows Vista and higher  
SHCreateFilterFromFullText (831) Windows Vista and higher  
SHCreateInstance (722) 5.50 and higher  
SHCreateItemFromIDList Windows Vista and higher documented
SHCreateItemFromParsingName Windows Vista and higher documented
SHCreateItemFromRelativeName Windows Vista and higher documented
SHCreateItemInKnownFolder Windows Vista and higher documented
SHCreateItemWithParent Windows Vista and higher documented
SHCreateKindFilter (872) Windows Vista and higher  
SHCreateLeafCondition (817) Windows Vista and higher  
SHCreateLeafConditionEx (814) Windows Vista and higher  
SHCreateLinks (172) 4.00 and higher  
SHCreateLocalServerRunDll 5.50 and higher  
SHCreateNotCondition (844) Windows Vista and higher  
SHCreateNotConditionEx (830) Windows Vista and higher  
SHCreateProcessAsUserW NT only;
5.00 and higher
documented
SHCreatePropertyBag (715) 5.00 and higher  
SHCreatePropSheetExtArray (168) 4.00 and higher documented for settlement
SHCreatePropSheetExtArrayEx (194) 4.71 and higher  
SHCreateQueryCancelAutoPlayMoniker 6.00 and higher documented for settlement
SHCreateRelatedItemFromIDList (788) Windows Vista and higher  
SHCreateRelatedItemWithParent (789) Windows Vista and higher  
SHCreateScopeFromIDLists (834) Windows Vista and higher  
SHCreateScopeFromShellItemArray (836) Windows Vista and higher  
SHCreateScopeItemFromIDList (835) Windows Vista and higher  
SHCreateScopeItemFromKnownFolder (838) Windows Vista and higher  
SHCreateScopeItemFromShellItem (837) Windows Vista and higher  
SHCreateSearchIDList (822) Windows Vista and higher  
SHCreateSearchIDListFromAutoList (821) Windows Vista and higher  
SHCreateSessionKey (723) 6.00 and higher  
SHCreateShellFolderView (256) 4.71 and higher documented for settlement
SHCreateShellFolderViewEx (174) 4.00 and higher documented for settlement
SHCreateShellItem 6.00 and higher documented for settlement
SHCreateShellItemArray Windows Vista and higher documented
SHCreateShellItemArrayFromDataObject Windows Vista and higher documented
SHCreateShellItemArrayFromIDLists Windows Vista and higher documented
SHCreateShellItemArrayFromShellItem Windows Vista and higher documented
SHCreateStdEnumFmtEtc (74) 4.00 and higher documented for settlement
SHCreateThreadUndoManager (758) Windows Vista and higher  
SHCreateTransientVFolderIDList (827) Windows Vista and higher  
SHDefExtractIconA (3) 4.71 and higher documented for settlement
SHDefExtractIconW (6) 4.71 and higher documented for settlement
SHDesktopMessageLoop (201) 5.00 and higher  
SHDestroyPropSheetExtArray (169) 4.00 and higher documented for settlement
SHDisplayNameFromScopeAndSubQueries (861) Windows Vista and higher  
SHDoDragDrop (88) 4.00 and higher documented for settlement
SheChangeDirA 1.30 and higher  
SheChangeDirW 1.30 and higher;
until discontinued in Windows Vista
 
SheChangeDirExA 1.30 and higher;
until discontinued in Windows Vista
 
SheChangeDirExW 1.30 and higher  
SheConvertPathW 1.30 and higher;
until discontinued in Windows Vista
 
SheFullPathA 1.30 and higher;
until discontinued in Windows Vista
 
SheFullPathW 1.30 and higher;
until discontinued in Windows Vista
 
SheGetCurDrive 1.30 and higher;
until discontinued in Windows Vista
 
SheGetDirA 1.30 and higher  
SheGetDirW 1.30 and higher;
until discontinued in Windows Vista
 
SheGetDirExW 1.30 and higher;
until discontinued in Windows Vista
 
SheGetPathOffsetW 1.30 and higher;
until discontinued in Windows Vista
 
Shell_GetCachedImageIndex (72) 4.00 and higher documented for settlement
Shell_GetCachedImageIndexA Windows Vista and higher documented
Shell_GetCachedImageIndexW Windows Vista and higher documented
Shell_GetImageLists (71) 4.00 and higher documented for settlement
Shell_MergeMenus (67) 4.00 and higher documented for settlement
Shell_NotifyIcon 1.30 and higher documented
Shell_NotifyIconA 1.30 and higher documented
Shell_NotifyIconW 1.30 and higher;
NT-only in 4.00
documented
ShellAbout 1.30 only  
ShellAboutA 1.30 and higher documented
ShellAboutW 1.30 and higher documented
ShellDDEInit (188) 5.00 and higher  
ShellExec_RunDLL 5.00 and higher (documented)
ShellExec_RunDLLA 5.00 and higher (documented)
ShellExec_RunDLLW 5.00 and higher (documented)
ShellExecCmdLine (265) Windows Vista and higher  
ShellExecPidl (266) Windows Vista and higher  
ShellExecute 1.30 only  
ShellExecuteA 1.30 and higher documented
ShellExecuteW 1.30 and higher documented
ShellExecuteEx 1.30 and higher documented
ShellExecuteExA 1.30 and higher documented
ShellExecuteExW 1.30 and higher;
NT-only in 4.00
documented
ShellHookProc 1.30 and higher;
NT-only in 4.00
 
ShellMessageBoxA (183) 4.00 and higher documented for settlement
ShellMessageBoxW (182) 4.00 (NT) and higher documented for settlement
SHEmptyRecycleBinA 4.71 and higher documented
SHEmptyRecycleBinW 4.71 and higher documented
SHEnableServiceObject 6.00 and higher  
SHEnumerateUnreadMailAccountsW 6.00 and higher documented
SheRemoveQuotesA 1.30 and higher;
until discontinued in Windows Vista
 
SheRemoveQuotesW 1.30 and higher;
until discontinued in Windows Vista
 
SheSetCurDrive 1.30 and higher  
SheShortenPathA 1.30 and higher;
until discontinued in Windows Vista
 
SheShortenPathW 1.30 and higher;
until discontinued in Windows Vista
 
SHEvaluateSystemCommandTemplate Windows Vista and higher documented
SHExitWindowsEx Windows only;
4.72 and higher
 
SHExtCoCreateInstance (866) Windows Vista and higher  
SHExtractIconsW 5.00 and higher documented in 2004-2006
SHFileOperation 1.30 and higher documented
SHFileOperationA 1.30 and higher documented
SHFileOperationW 1.30 and higher;
NT-only in 4.00
documented
SHFileSysBindToStorage (691) 6.00 and higher  
SHFilterConditionFromString (841) Windows Vista and higher  
SHFilterConditionToString (842) Windows Vista and higher  
SHFind_InitMenuPopup (149) 4.00 and higher documented for settlement
SHFindComputer (91) 4.00 and higher  
SHFindFiles (90) 4.00 and higher documented for settlement
SHFlushClipboard (121) 4.00 and higher documented for settlement
SHFlushSFCache (526) 4.71 and higher documented for settlement
SHFormatDrive 1.30 and higher documented for settlement
SHFree (195) 4.00 and higher documented for settlement
SHFreeNameMappings 1.30 and higher documented
SHFreeShared (523) 4.00 (NT) and higher documented for settlement
SHFreeUnusedLibraries (123) 4.00 and higher  
SHGetActiveConsoleSessionId (247) 6.00 and higher  
SHGetAppCompatFlags (681) 5.00 and higher  
SHGetAssocKeys (777) Windows Vista and higher  
SHGetAttributesFromDataObject (750) 6.00 and higher documented for settlement
SHGetComputerDisplayNameW (752) 6.00 and higher  
SHGetCorrectOwnerSid (860) Windows Vista and higher  
SHGetDataFromIDListA 4.00 and higher documented
SHGetDataFromIDListW 4.00 (NT) and higher documented
SHGetDefaultUserPicture (811) Windows Vista and higher  
SHGetDesktopFolder 1.30 and higher documented
SHGetDiskFreeSpaceA 4.71 and higher documented
SHGetDiskFreeSpaceExA 5.00 and higher documented in 2004-2006
SHGetDiskFreeSpaceExW 5.00 and higher documented in 2004-2006
SHGetDriveMedia Windows Vista and higher documented
SHGetFileIcon (199) 4.00 only  
SHGetFileInfo 1.30 and higher documented
SHGetFileInfoA 1.30 and higher documented
SHGetFileInfoW 1.30 and higher;
NT-only in 4.00
documented
SHGetFolderLocation 5.00 and higher documented
SHGetFolderPathA 5.00 and higher documented
SHGetFolderPathW 5.00 and higher documented
SHGetFolderPathAndSubDirA 6.00 and higher documented
SHGetFolderPathAndSubDirW 6.00 and higher documented
SHGetFolderPathEx Windows Vista and higher  
SHGetFolderTypeDescription (823) Windows Vista and higher  
SHGetFolderTypeFromCanonicalName (824) Windows Vista and higher  
SHGetIconOverlayIndexA 5.00 and higher documented
SHGetIconOverlayIndexW 5.00 and higher documented
SHGetIdentifyItem (843) Windows Vista and higher  
SHGetIDListFromObject Windows Vista and higher documented
SHGetImageList (727) 6.00 and higher documented
SHGetInstanceExplorer 1.30 and higher documented
SHGetKnownFolderIDList Windows Vista and higher documented
SHGetKnownFolderPath Windows Vista and higher documented
SHGetLocalizedName Windows Vista and higher documented
SHGetMalloc 1.30 and higher documented
SHGetNameFromIDList Windows Vista and higher documented
SHGetNetResource (69) 4.00 and higher  
SHGetNewLinkInfo 1.30 and higher;
NT-only in 4.00
documented
SHGetNewLinkInfoA (179) 4.00 and higher documented
SHGetNewLinkInfoW (180) 4.00 (NT) and higher documented
SHGetNoAssocIconIndex (848) Windows Vista and higher  
SHGetPathFromIDList 1.30 and higher documented
SHGetPathFromIDListA 1.30 and higher documented
SHGetPathFromIDListW 1.30 and higher;
NT-only in 4.00
documented
SHGetPathFromIDListEx Windows Vista and higher documented
SHGetProcessDword (242) 4.71 and higher  
SHGetPropertyStoreFromIDList Windows Vista and higher documented
SHGetPropertyStoreFromParsingName Windows Vista and higher documented
SHGetRealIDL (98) 4.00 and higher documented for settlement
SHGetSetFolderCustomSettingsA (708) 5.00 and higher documented for settlement
SHGetSetFolderCustomSettingsW (709) 5.00 and higher documented for settlement
SHGetSetSettings (68) 4.00 and higher documented for settlement
SHGetSettings 4.71 and higher documented
SHGetShellFolderViewCB (257) 4.71 and higher  
SHGetShellStyleHInstance (749) 6.00 and higher documented for settlement
SHGetSpecialFolderLocation 1.30 and higher documented
SHGetSpecialFolderPathA 4.71 and higher documented
SHGetSpecialFolderPathW (175) 4.00 and higher documented
SHGetStockIconInfo Windows Vista and higher documented
SHGetTemporaryPropertyForItem Windows Vista and higher documented
SHGetThreadUndoManager (759) Windows Vista and higher  
SHGetUnreadMailCountW 6.00 and higher documented
SHGetUserDisplayName (241) 6.00 and higher  
SHGetUserPicturePath (261) Windows Vista and higher  
SHGetUserPicturePathW (233) 6.00 and higher  
SHGetUserSessionId (248) 6.00 and higher  
SHGetUserPicturePathEx (810) Windows Vista and higher  
SHGlobalDefect (197) 4.00 and higher  
SHHandleDiskFull (185) 4.00 and higher  
SHHandleUpdateImage (193) 4.71 and higher documented for settlement
SHHelpShortcuts_RunDLL 1.30 and higher (documented)
SHHelpShortcuts_RunDLLA 4.00 (NT) and higher (documented)
SHHelpShortcuts_RunDLLW 4.00 (NT) and higher (documented)
SHIconIndexFromPIDL (873) Windows Vista and higher  
SHILCreateFromPath (28) 4.00 and higher documented for settlement
SHInitializeControlPanelRegkeys (852) Windows Vista and higher  
SHInvokePrinterCommandA 4.71 and higher documented
SHInvokePrinterCommandW 4.71 and higher documented
SHInvokePrivilegedFunctionW (246) 6.00 and higher  
SHIsBadInterfacePtr (84) 4.00 and higher  
SHIsCurrentProcessConsoleSession (253) 6.00 and higher  
SHIsFileAvailableOffline 5.00 and higher documented
SHIsLegacyAnsiProperty (690) 5.00 and higher  
SHIsTempDisplayMode (724) 6.00 and higher  
SHKnownFolderFromCSIDL (833) Windows Vista and higher  
SHKnownFolderToCSIDL (832) Windows Vista and higher  
Shl1632_ThunkData32 Windows only;
4.00 only
(documented)
Shl3216_ThunkData32 Windows only;
4.00 only
(documented)
SHLimitInputCombo (748) 6.00 and higher  
SHLimitInputEdit (747) 6.00 and higher documented for settlement
SHLimitInputEditWithFlags (754) 6.00 and higher  
SHLoadFilterFromStream (819) Windows Vista and higher  
SHLoadInProc 1.30 and higher documented
SHLoadNonloadedIconOverlayIdentifiers 5.00 and higher documented
SHLoadOLE (151) 4.00 and higher documented for settlement
SHLocalAlloc (200) 4.00 only  
SHLocalFree (201) 4.00 only  
SHLocalReAlloc (202) 4.00 only  
SHLockShared (521) 4.00 (NT) and higher documented for settlement
SHLogILFromFSIL (95) 4.00 and higher  
SHLookupIconIndexA (7) 4.71 and higher  
SHLookupIconIndexW (8) 4.71 and higher  
SHMapIDListToImageListIndexAsync (148) 6.00 and higher documented for settlement
SHMapIDListToSystemImageListIndexAsync (787) Windows Vista and higher  
SHMapIDListToSystemImageListIndex (790) Windows Vista and higher  
SHMapPIDLToSystemImageListIndex (77) 4.00 and higher documented for settlement
SHMultiFileProperties (716) 5.00 and higher documented for settlement
SHNetConnectionDialog (160) 4.00 and higher  
SHObjectProperties 1.30 and higher;
but not 3.51
documented for settlement
SHOpenEffectiveToken (235) 6.00 and higher  
SHOpenFolderAndSelectItems 5.50 and higher documented
SHOpenPropSheetA (707) 4.71 and higher  
SHOpenPropSheetW (80) 4.71 and higher documented for settlement
SHOpenWithDialog Windows Vista and higher documented
ShortSizeFormatW (204) NT only;
4.00 and higher
 
SHOutOfMemoryMessageBox (126) 4.00 and higher  
SHParseDarwinIDFromCacheW (719) 6.00 and higher  
SHParseDisplayName 6.00 and higher documented
SHPathPrepareForWriteA 5.00 and higher documented
SHPathPrepareForWriteW 5.00 and higher documented
SHPropStgCreate (685) 5.00 and higher documented for settlement
SHPropStgReadMultiple (688) 5.00 and higher documented for settlement
SHPropStgWriteMultiple (689) 5.00 and higher documented for settlement
SHQueryRecycleBinA 4.71 and higher documented
SHQueryRecycleBinW 4.71 and higher documented
SHQueryUserNotificationState Windows Vista and higher documented
SHRegCloseKey (505) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegDeleteKeyW (512) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegisterDarwinLink (731) 6.00 and higher  
SHRegisterDragDrop (86) 4.00 and higher  
SHRegOpenKeyA (506) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegOpenKeyW (507) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegQueryValueA (508) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegQueryValueW (509) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegQueryValueExA (510) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRegQueryValueExW (511) 4.00 (NT) and higher;
until discontinued in 5.00
 
SHRemoveLocalizedName Windows Vista and higher documented
SHReplaceFromPropSheetExtArray (170) 4.00 and higher documented for settlement
SHResolveUserNames (270) Windows Vista and higher  
SHRestricted (100) 4.00 and higher documented for settlement
SHReValidateDarwinCache (732) 6.00 and higher  
SHRevokeDragDrop (87) 4.00 and higher  
SHRunControlPanel (161) 4.00 and higher  
SHSetDefaultProperties Windows Vista and higher documented
SHSetFolderPathA (231) 5.00 and higher documented
SHSetFolderPathW (232) 5.00 and higher documented
SHSetInstanceExplorer (176) 4.00 and higher documented for settlement
SHSetKnownFolderPath Windows Vista and higher documented
SHSetLocalizedName 6.00 and higher documented
SHSetShellWindowEx (243) 4.71 and higher  
SHSetTemporaryPropertyForItem Windows Vista and higher documented
SHSettingsChanged (244) 4.71 and higher  
SHSetUnreadMailCountW 6.00 and higher documented
SHSetUserPicturePath (262) Windows Vista and higher  
SHSetUserPicturePathW (234) 6.00 and higher  
SHShellFolderView_Message (73) 4.00 and higher documented for settlement
SHShouldShowWizards (237) 6.00 and higher  
SHSimpleIDListFromPath (162) 4.00 and higher documented for settlement
SHSimulateDropOnClsid (751) 6.00 and higher  
SHStartNetConnectionDialog (215) 4.00 (NT) and higher documented for settlement
SHStartNetConnectionDialogA (12) 4.71 and higher documented for settlement
SHStartNetConnectionDialogW (14) 4.71 and higher documented for settlement
SHStgOpenStorageA (684) 5.00 and higher  
SHStgOpenStorageW (683) 5.00 and higher  
SHTestTokenMembership (245) 6.00 and higher documented for settlement
SHTestTokenPrivilegeW (236) 6.00 and higher  
SHUnlockShared (522) 4.00 (NT) and higher documented for settlement
SHUpdateImageA (191) 4.71 and higher documented
SHUpdateImageW (192) 4.71 and higher documented
SHUpdateRecycleBinIcon 4.00 (NT) and higher  
SHUserGetPasswordHint (812) Windows Vista and higher  
SHUserSetPasswordHint (813) Windows Vista and higher  
SHValidateUNC (173) 4.00 and higher documented for settlement
SHWaitForFileToOpen (97) 4.00 and higher  
SHWaitOp_Operate (648) 4.00 (NT) and higher  
SHWinHelp (127) 4.00 and higher  
SignalFileOpen (103) 4.00 and higher documented for settlement
StampIconForElevation (864) Windows Vista and higher  
StrChrA NT only;
1.30 and higher
documented (SHLWAPI)
StrChrW NT only;
1.30 and higher
documented (SHLWAPI)
StrChrIA NT only;
1.30 and higher
documented (SHLWAPI)
StrChrIW NT only;
1.30 and higher
documented (SHLWAPI)
StrCmpNA NT only;
1.30 and higher
documented (SHLWAPI)
StrCmpNW NT only;
1.30 and higher
documented (SHLWAPI)
StrCmpNIA NT only;
1.30 and higher
documented (SHLWAPI)
StrCmpNIW NT only;
1.30 and higher
documented (SHLWAPI)
StrCpyNA NT only;
1.30 and higher;
until discontinued in Windows Vista
 
StrCpyNW NT only;
1.30 and higher;
until discontinued in Windows Vista
documented (SHLWAPI)
StrNCmpA NT only;
1.30 and higher
 
StrNCmpW NT only;
1.30 and higher
 
StrNCmpIA NT only;
1.30 and higher
 
StrNCmpIW NT only;
1.30 and higher
 
StrNCpyA NT only;
1.30 and higher;
until discontinued in Windows Vista
 
StrNCpyW NT only;
1.30 and higher;
until discontinued in Windows Vista
 
StrRChrA NT only;
1.30 and higher
documented (SHLWAPI)
StrRChrW NT only;
1.30 and higher
documented (SHLWAPI)
StrRChrIA NT only;
1.30 and higher
documented (SHLWAPI)
StrRChrIW NT only;
1.30 and higher
documented (SHLWAPI)
StrRetToStrN (96) 4.00 and higher documented in 2005-2006
StrRStrA NT only;
1.30 and higher
 
StrRStrW NT only;
1.30 and higher
 
StrRStrIA NT only;
1.30 and higher
documented (SHLWAPI)
StrRStrIW NT only;
1.30 and higher
documented (SHLWAPI)
StrStrA NT only;
1.30 and higher
documented (SHLWAPI)
StrStrW NT only;
1.30 and higher
documented (SHLWAPI)
StrStrIA NT only;
1.30 and higher
documented (SHLWAPI)
StrStrIW NT only;
1.30 and higher
documented (SHLWAPI)
StrToOleStr (163) 4.00 and higher  
StrToOleStrN (79) 4.00 and higher  
WaitForExplorerRestartW Windows Vista and higher  
Win32CreateDirectory (93) 4.00 and higher  
Win32DeleteFile (164) 4.00 and higher documented
Win32RemoveDirectory (94) 4.00 and higher  
WIN32SYSDLL 1.30 only (documented)
WOWShellExecute NT only;
1.30 and higher
documented in 2004-2006
WPC_InstallState (859) Windows Vista and higher  
WriteCabinetState (652) 4.00 (NT) and higher documented for settlement
(unknown name, ordinal 81) Windows only;
4.00 and higher
 
(unknown name, ordinal 280) 4.71 and 4.72  
(unknown name, ordinal 1217) Windows only;
4.00 and higher
 

Notes

Familiarity is assumed with the Reading Guide for the Windows Shell Study.

Names

Function names are reproduced from the export directory of the SHELL32.DLL executable, wherever possible. For functions that are not exported by name (i.e., are exported only by ordinal) from any known SHELL32 version, names are inferred from symbol files that Microsoft supplies for customer support. If a function is known as an ordinal-only export from at least one SHELL32 version, then even if later versions also export the function by name, the ordinal persists and is given in brackets immediately after the function’s name.

Versions

The SHELL32 versions shown for each function are inferred from a study of known releases, making reasonable assumptions about likely continuity, especially to suppose that a function will exist in future versions or that a function exists in all builds of a version if no counter-example is yet known.

Documentation Status

Except where otherwise stated, the reference for all comment on Microsoft’s documentation is the January 2007 edition of the Windows Vista Software Development Kit (as distributed by Microsoft on MSDN Disc 3667), especially but not only under the heading Shell Functions. Some SHELL32 functions are documented under headings that have no immediate relationship to SHELL32. For instance, some are documented in the Icon Reference under Windows User Interface (with functions that are mostly exported from USER32). I expect this scattering occurs because the documentation models someone’s notions of functionality, regardless of where the functionality actually got implemented. However it comes about, it makes as good a reminder as any for caution: that a function is not marked above as documented (or is marked elsewhere as undocumented) does not mean for certain that Microsoft does not document it, just that I haven’t yet found where.

Functions that were documented among the Settlement Program Interfaces in late 2002 are labelled specifically as “documented for settlement”. Some functions that predate the January 2004 edition of the MSDN Library on CD (which was the previous reference version for this study) and were not documented therein have got documented since. These are labelled “documented” but with a year or range of years, with as much precision as I happen to know.

Some functions are not documented as exports from SHELL32 but fit a general case described in the reading guide, such that it would be ungenerous to expect documentation specifically for COMCTL32. These are indicated by enclosing the whole documentation status in brackets.

A few functions are shown as documented but with “SHLWAPI” in brackets. Strictly speaking, these are undocumented as SHELL32 functions. Each has long been either coded as a simple redirection to an implementation in the Shell Light-Weight Utility (SHLWAPI) library or just forwarded through the export directory, and it is this other implementation, not the one in SHELL32, that Microsoft documents.