Shell 函数

本部分介绍 Windows Shell 函数。

本节内容

主题 说明
Intsafe.h Functions
库函数
路径函数
AssocCreateForClasses
检索实现 IQueryAssociations 接口的对象。
AssocGetDetailsOfPropKey
使用命名空间扩展提供的文件关联信息检索给定属性键的值。
CDefFolderMenu_Create2
为所选的一组文件文件夹对象创建上下文菜单。
CommandLineToArgvW
分析 Unicode 命令行字符串,并返回指向命令行参数的指针数组,以及此类参数的计数,其方式类似于标准 C 运行时 argvargc 值。
APPLET_PROC
用作控制面板应用程序的入口点。 这是库定义的回调函数。
CreateAppContainerProfile
为 Windows 应用商店应用创建每用户、每应用配置文件。
CreateEnvironmentBlock
检索指定用户的环境变量。 然后,可以将此块传递给 CreateProcessAsUser 函数。
CreateMRUListW
创建新的最近使用的 (MRU) 列表。
CreateProfile
创建新的用户配置文件。
DefScreenSaverProc
为屏幕保护程序应用程序未处理的任何消息提供默认处理。
DefSubclassProc
调用窗口子类链中的下一个处理程序。 子类链中的最后一个处理程序调用窗口的原始窗口过程。
DeleteAppContainerProfile
删除指定的按用户、按应用配置文件。
DeleteProfile
从指定计算机中删除用户配置文件和所有用户相关的设置。 调用方必须具有管理权限才能删除用户的配置文件。
DestroyEnvironmentBlock
释放 CreateEnvironmentBlock 函数创建的环境变量。
DeriveAppContainerSidFromAppContainerName
获取指定配置文件的 SID。
DeriveRestrictedAppContainerSidFromAppContainerSidAndRestrictedName
派生RestrictedAppContainerSidFromAppContainerSidAndRestrictedName 保留供将来使用。
DLLGETVERSIONPROC
由许多 Windows Shell DLL 实现,以允许应用程序获取特定于 DLL 的版本信息。
DragAcceptFiles
注册窗口是否接受已删除的文件。
DragFinish
释放系统分配用于将文件名传输到应用程序的内存。
DragQueryFile
检索成功拖放操作导致的已删除文件的名称。
DragQueryPoint
检索拖放操作期间放置文件时鼠标指针的位置。
DuplicateIcon
创建指定图标的副本。
ExpandEnvironmentStringsForUser
使用为指定用户建立的环境块展开源字符串。
ExtractAssociatedIcon
获取存储为文件中资源或存储在文件的关联可执行文件中的图标的句柄。
ExtractIcon
从指定的可执行文件、DLL 或图标文件中获取图标的句柄。
若要检索大型或小图标的句柄数组,请使用 ExtractIconEx 函数。
ExtractIconEx
ExtractIconEx 函数创建从指定可执行文件、DLL 或图标文件中提取的大或小图标的句柄数组。
FileIconInit
初始化或重新初始化系统映像列表。
FindExecutable
检索与特定文档文件关联的可执行文件(.exe)文件的名称和句柄。
FreeConfirmConflictItem
释放已为 CONFIRM_CONFLICT_ITEM 结构分配的资源。
FreeIDListArray
释放指向项标识符列表(PIDL)列表数组的指针使用的内存。
FreeIDListArrayChild
释放指向子项 ID 的指针数组的内存空间。 这会释放数组中的PITEMID_CHILDs和数组本身。
FreeIDListArrayFull
释放 PIDL 数组的内存空间。 这会释放数组中的PIDLIST_ABSOLUTEs和数组本身。
FreeKnownFolderDefinitionFields
IKnownFolder::GetFolderDefinition 释放结果中分配的字段。
FreeMRUList
释放与 MRU 列表关联的句柄,并将缓存的数据写入注册表。
GetAllUsersProfileDirectory
检索目录根目录的路径,其中包含所有用户共享的程序数据。
GetAppContainerFolderPath
获取指定应用容器的本地应用数据文件夹的路径。
GetAppContainerRegistryLocation
获取与应用容器关联的注册表存储的位置。
GetContractDelegateWindow
检索已设置为应用主前台窗口的委托的窗口,以便将委托窗口与应用的协定相关联。 如果你是以本机C++编写 Windows 应用商店应用的开发人员,请使用此函数。
GetCurrentProcessExplicitAppUserModelID
检索当前进程的应用程序定义的显式应用程序用户模型 ID(AppUserModelID)。
GetDefaultUserProfileDirectory
检索默认用户配置文件根目录的路径。
GetDpiForShellUiComponent
根据当前刻度系数和PROCESS_DPI_AWARENESS检索由SHELL_UI_COMPONENT占用的每英寸(dpi)点数。
GetMenuContextHelpId
检索与指定菜单关联的帮助上下文标识符。
GetProfilesDirectory
检索存储用户配置文件的根目录的路径。
GetProfileType
检索为当前用户加载的配置文件的类型。
GetScaleFactorForDevice
获取显示设备的首选比例因子。
GetScaleFactorForMonitor
获取特定监视器的规模因子。 此函数替换 GetScaleFactorForDevice
GetUserProfileDirectory
检索指定用户配置文件的根目录的路径。
GetWindowContextHelpId
检索与指定窗口关联的帮助上下文标识符(如果有)。
GetWindowSubclass
检索指定窗口子类回调的引用数据。
IDListContainerIsConsistent
验证 IDList 的容器结构是否有效。
ILAppendID
将 SHITEMID 结构追加或追加 ITEMIDLIST 结构。
ILClone
克隆 ITEMIDLIST 结构。
ILCloneChild
克隆子 ITEMIDLIST 结构。
ILCloneFirst
克隆 ITEMIDLIST 结构中的第一 SHITEMID 结构。
ILCloneFull
克隆完整或绝对 的 ITEMIDLIST 结构。
ILCombine
合并两个 ITEMIDLIST 结构。
ILCreateFromPath
返回 与指定文件路径关联的 ITEMIDLIST 结构。
ILFindChild
确定指定的 ITEMIDLIST 结构是否为另一 ITEMIDLIST 结构的子级。
ILFindLastID
返回指向 ITEMIDLIST 结构中最后一个 SHITEMID 结构的指针。
ILFree
释放 Shell 分配的 ITEMIDLIST 结构。
ILGetNext
检索 ITEMIDLIST 结构中的下一 SHITEMID 结构。
ILGetSize
返回 ITEMIDLIST 结构的大小(以字节为单位)。
ILIsAligned
验证常量 ITEMIDLIST 是否在指针边界上对齐,该边界是 32 位体系结构上的 DWORD在 64 位体系结构上是 QWORD
ILIsChild
验证 PIDL 是否为子 PIDL,它是一个完全具有一个 SHITEMID 的 PIDL。
ILIsEmpty
验证 ITEMIDLIST 结构是否为空。
ILIsEqual
测试二进制比较中两 个 ITEMIDLIST 结构是否相等。
ILIsParent
测试 ITEMIDLIST 结构是否为另一 ITEMIDLIST 结构的父级。
ILNext(PCUIDLIST_RELATIVE)
检索 ITEMIDLIST 结构中的下一 SHITEMID 结构。
ILNext(PUIDLIST_RELATIVE)
检索 ITEMIDLIST 结构中的下一 SHITEMID 结构。
ILRemoveLastID
从 ITEMIDLIST 结构中删除最后一个 SHITEMID 结构。
ILSaveToStream
ITEMIDLIST 结构保存到流。
ILSkip(PCUIDLIST_RELATIVE,UINT)
跳过常量、无对齐的相对 ITEMIDLIST 结构中的给定字节数。
ILSkip(PUIDLIST_RELATIVE,UINT)
跳过未对齐的相对 ITEMIDLIST 结构中的给定字节数。
InetIsOffline
确定系统是否连接到 Internet。
InitNetworkAddressControl
初始化网络地址控制窗口类。
LoadUserProfile
加载指定的用户配置文件。 配置文件可以是 本地用户配置文件漫游用户配置文件
MIMEAssociationDialog
运行未注册的 MIME 内容类型对话框。
注意: Windows XP Service Pack 2(SP2)或更高版本:不再支持此函数。
PathMakeUniqueName
从模板创建唯一的路径名称。
PathYetAnotherMakeUniqueName
基于现有文件名创建唯一的文件名。
RegisterAppStateChangeNotification
使应用能够注册回调函数,通过该函数可以通知其库进入或退出挂起状态。 应用可以使用此信息执行任何必要的操作,例如保留状态,应在该点执行。
RegisterDialogClasses
注册屏幕保护程序配置对话框所需的任何非标准窗口类。
RegisterScaleChangeEvent
注册在缩放可能已更改时触发的事件。 此函数替换 RegisterScaleChangeNotifications
RegisterScaleChangeNotifications
注册一个窗口,以在缩放信息更改时接收回调。
注意: 从 Windows 8.1 开始,此函数不受支持。 请改用 RegisterScaleChangeEvent
RemoveWindowSubclass
从窗口中删除子类回调。
RevokeScaleChangeNotifications
撤销窗口的注册,防止它在缩放信息更改时接收回调。
注意: 从 Windows 8.1 开始,此函数不受支持。 请改用 UnregisterScaleChangeEvent
ScreenSaverConfigureDialog
接收发送到屏幕保护程序配置对话框的消息。 允许用户配置的屏幕保护程序必须定义此函数。
ScreenSaverProc
接收发送到指定屏幕保护程序窗口的消息。
SetContractDelegateWindow
将除主前台窗口以外的应用窗口与应用的合约相关联。 如果你是以本机C++编写 Windows 应用商店应用的开发人员,请使用此函数。
SetCurrentProcessExplicitAppUserModelID
指定唯一的应用程序定义 AppUserModelID,用于标识任务栏的当前进程。 此标识符允许应用程序将其关联的进程和窗口分组到单个任务栏按钮下。
SetMenuContextHelpId
将帮助上下文标识符与菜单相关联。
SetWindowContextHelpId
将帮助上下文标识符与指定的窗口相关联。
SetWindowSubclass
安装或更新窗口子类回调。
SHAddToRecentDocs
通知系统已访问某个项,以便跟踪最近和最常使用的项。 此函数还可用于清除所有使用情况数据。
SHAppBarMessage
将应用栏消息发送到系统。
SHAssocEnumHandlers
返回一组指定的文件扩展名处理程序的枚举对象。
SHAssocEnumHandlersForProtocolByApplication
获取一个枚举接口,该接口提供对与给定协议关联的处理程序的访问权限。
SHBindToFolderIDListParent
给定以文件夹形式指定的 Shell 命名空间项以及相对于该文件夹的项目标识符列表,此函数绑定到命名空间项的父项,并选择性地返回指向项标识符列表的最终组件的指针。
SHBindToFolderIDListParentEx
通过允许调用方指定绑定上下文, 扩展 SHBindToFolderIDListParent 函数。
SHBindToObject
使用 Shell 命名空间 IShellFolder::BindToObject 方法检索并绑定到指定对象。
SHBindToParent
获取指向完全限定项标识符列表(PIDL)的指针,并在父对象上返回指定的接口指针。
SHBrowseForFolder
显示一个对话框,使用户能够选择 Shell 文件夹。
SHChangeNotification_Lock
锁定与 Shell 更改通知事件关联的共享内存。
SHChangeNotification_Unlock
解锁更改通知的共享内存。
SHChangeNotify
通知系统应用程序已执行的事件。 如果应用程序执行可能影响 Shell 的操作,应用程序应使用此函数。
SHChangeNotifyDeregister
从接收 SHChangeNotify 消息中注销客户端的窗口进程。
SHChangeNotifyRegister
如果文件系统支持通知,则注册一个窗口以接收来自文件系统或 Shell 的通知。
SHChangeNotifyRegisterThread
启用线程的异步注册和取消注册。
SHCreateAssociationRegistration
基于 Windows 提供的接口的库存实现创建 IApplicationAssociationRegistration 对象。
SHCreateDataObject
在父文件夹中创建数据对象。
SHCreateDefaultContextMenu
创建一个对象,该对象表示 Shell 的默认上下文菜单实现。
SHCreateDefaultExtractIcon
创建标准图标提取程序,其默认值可以通过 IDefaultExtractIconInit 接口进一步配置
SHCreateDefaultPropertiesOp
创建一个文件操作,用于设置尚未设置的 Shell 项的默认属性。
SHCreateItemFromIDList
从 PIDL 创建和初始化 Shell 项对象。 生成的 shell 项对象支持 IShellItem 接口。
SHCreateItemFromParsingName
创建并初始化分析名称中的 Shell 项对象。
SHCreateItemFromRelativeName
从相对分析名称创建和初始化 Shell 项对象。
SHCreateItemInKnownFolder
为已知文件夹中存在的单个文件创建 Shell 项对象。
SHCreateItemWithParent
创建 Shell 项,给定父文件夹和子项 ID。
SHCreateShellFolderView
创建默认 Shell 文件夹视图对象(DefView)的新实例。
SHCreateShellFolderViewEx
创建默认 Shell 文件夹视图对象的新实例。 建议使用 SHCreateShellFolderView 而不是此函数。
SHCreateShellItem
创建 IShellItem 对象。
注意:建议使用 SHCreateItemWithParent SHCreateItemFromIDList 而不是此函数。
SHCreateShellItemArray
创建 Shell 项数组对象。
SHCreateShellItemArrayFromDataObject
从数据对象创建 Shell 项数组对象。
SHCreateShellItemArrayFromIDLists
从 ITEMIDLIST 结构列表创建 Shell 项数组对象。
SHCreateShellItemArrayFromShellItem
从单个 Shell 项创建一个元素的数组。
SHDefExtractIcon
提供用于从文件中提取图标的默认处理程序。
SHDoDragDrop
执行拖放操作。 支持按需拖动源创建,以及拖动图像。
Shell_NotifyIcon
将消息发送到任务栏的状态区域。
Shell_NotifyIconGetRect
获取通知图标的边界矩形的屏幕坐标。
ShellAbout
显示 ShellAbout 对话框。
ShellDDEInit
在当前进程中注册 Shell 动态数据交换(DDE)服务,通知系统当前进程希望托管 DDE 对象。
ShellExecute
对指定文件执行操作。
ShellExecuteEx
对指定文件执行操作。
SHEmptyRecycleBin
清空指定驱动器上的回收站。
SHEnumerateUnreadMailAccounts
枚举具有未读电子邮件的用户帐户。
SHEvaluateSystemCommandTemplate
强制严格验证对 CreateProcessShellExecute 调用中使用的参数。
SHFileOperation
复制、移动、重命名或删除文件系统对象。 此函数已在 Windows Vista 中由 IFileOperation 替换。
SHFreeNameMappings
释放 SHFileOperation 函数检索的文件名映射对象。
SHGetDataFromIDList
从相对标识符列表中检索扩展属性数据。
SHGetDesktopFolder
检索桌面文件夹的 IShellFolder 接口,该接口是 Shell 命名空间的根目录。
SHGetDiskFreeSpaceEx
检索磁盘卷的磁盘空间信息。
SHGetDriveMedia
返回给定驱动器中的媒体类型。
SHGetFileInfo
检索文件系统中有关对象的信息,例如文件、文件夹、目录或驱动器根目录。
SHGetFolderPathEx
检索由文件夹的 KNOWNFOLDERID 标识的已知文件夹的完整路径。 这通过允许设置字符串缓冲区的初始大小来扩展 SHGetKnownFolderPath
SHGetIconOverlayIndex
返回系统图像列表中的覆盖图标的索引。
SHGetIDListFromObject
检索对象的 PIDL。
SHGetImageList
检索图像列表。
SHGetInstanceExplorer
检索允许托管 Shell 扩展和其他组件提前关闭其主机进程的接口。 主机进程通常是 Windows 资源管理器或 Windows Internet Explorer,但其他应用程序也可以使用此函数。
SHGetItemFromDataObject
基于 IDataObject 指定的项创建 IShellItem 或相关对象。
SHGetItemFromObject
检索对象的 IShellItem
SHGetKnownFolderIDList
检索名为 ITEMIDLIST 结构的已知文件夹的路径。
SHGetKnownFolderItem
检索表示已知文件夹的 IShellItem 对象。
SHGetKnownFolderPath
检索由文件夹的 KNOWNFOLDERID 标识的已知文件夹的完整路径。
SHGetLocalizedName
检索 Shell 文件夹中文件的本地化名称。
SHGetNameFromIDList
检索 IDList 标识的项的显示名称。
SHGetNameFromPropertyKey
根据属性的 PROPERTYKEY 检索属性的规范名称
SHGetNewLinkInfo
根据快捷方式的建议目标为新快捷方式创建名称。 此函数不创建快捷方式,仅创建名称。
SHGetPathFromIDList
将项标识符列表转换为文件系统路径。
SHGetPathFromIDListEx
将项标识符列表转换为文件系统路径。 此函数通过允许设置字符串缓冲区的初始大小并声明以下选项来扩展 SHGetPathFromIDList
SHGetSettings
检索当前的 Shell 选项设置。
SHGetStockIconInfo
检索有关系统定义的 Shell 图标的信息。
SHGetTemporaryPropertyForItem
检索给定项的临时属性。 临时属性是一个读/写存储区,它只保存 IShellItem 对象的生存期的属性,而不是持久保存到项中。
SHGetUnreadMailCount
检索任何或所有电子邮件帐户的指定用户未读邮件计数。
SHIsFileAvailableOffline
确定文件或文件夹是否可用于脱机使用。 此函数还确定文件是从网络、本地脱机文件缓存还是从这两个位置打开。
SHLoadInProc
从 Shell 进程的上下文中创建指定对象类的实例。
Windows Vista 及更高版本:此函数已被禁用并返回E_NOTIMPL。
SHLoadNonloadedIconOverlayIdentifiers
向 Shell 发出信号,在下次需要覆盖信息的操作中,它应加载图标覆盖标识符,这些标识符要么创建失败,要么在启动时没有创建。 已加载的标识符不受影响。
SHLocalStrDup
在新分配的内存中复制字符串。
SHMultiFileProperties
显示一组文件的合并属性表。 显示所有文件的通用属性值,而不同的属性值显示字符串(多个值)。
SHOpenFolderAndSelectItems
打开一个 Windows 资源管理器窗口,其中选定了特定文件夹中的指定项目。
SHOpenWithDialog
显示“ 打开时使用 ”对话框。
ShowShareFolderUI
显示 指定文件夹的属性表上的“文件夹共享 ”选项卡。
SHParseDisplayName
将 Shell 命名空间对象的显示名称转换为项标识符列表,并返回对象的属性。 此函数是将字符串转换为 PIDL 的首选方法。
SHPathPrepareForWrite
检查路径是否存在。 这包括重新装载映射的网络驱动器、提示重新插入可弹出媒体、创建路径、提示媒体进行格式化,并在必要时提供适当的用户界面。 不会检查介质的读/写权限。
SHQueryRecycleBin
检索指定驱动器的回收站大小及其项数。
SHQueryUserNotificationState
检查计算机的当前用户的状态,以确定发送通知是否合适。
SHRemoveLocalizedName
删除 Shell 文件夹中文件的本地化名称。
SHRunControlPanel
打开控制面板项。
注意: 从 Windows Vista 开始,此函数不受支持
SHSetDefaultProperties
对 Shell 项应用默认属性集。
SHSetInstanceExplorer
提供一个接口,该接口允许托管 Shell 扩展和其他组件防止其主机进程过早关闭。 主机进程通常是 Windows Explorer 或 Internet Explorer,但其他应用程序也可以使用此函数。
SHSetKnownFolderPath
将已知文件夹重定向到新位置。
SHSetLocalizedName
设置 Shell 文件夹中文件的本地化名称。
SHSetTemporaryPropertyForItem
设置指定项的临时属性。 临时属性保存在只读/写入存储区中,该存储仅在 IShellItem 对象的生存期内保存属性,而不是将它们写回到项目中。
SHSetUnreadMailCount
将当前用户的未读邮件计数存储在注册表中的指定电子邮件帐户。
SHTestTokenMembership
使用 CheckTokenMembership 测试给定令牌是否是具有指定 RID 的本地组的成员。
SHUpdateImage
通知 Shell 系统映像列表中的映像已更改。
SoftwareUpdateMessageBox
显示可用于通知用户应用程序已更新的标准消息框。
StgMakeUniqueName
从模板为流或存储对象创建唯一名称。
StrStrNIW
查找字符串中子字符串的第一个匹配项。 比较不区分大小写。
StrStrNW
查找字符串中子字符串的第一个匹配项。 比较是区分大小写的。
TranslateURL
将常见翻译应用于给定的 URL 字符串,并创建新的 URL 字符串。
UnloadUserProfile
卸载 LoadUserProfile 函数加载的用户配置文件。 调用方必须在计算机上拥有管理权限。 有关详细信息,请参阅 LoadUserProfile 函数的“备注”部分。
UnregisterAppStateChangeNotification
取消通过 RegisterAppStateChangeNotification 注册的更改通知。
UnregisterScaleChangeEvent
取消注册通过 RegisterScaleChangeEvent 注册的规模更改事件。 此函数替换 RevokeScaleChangeNotifications
URLAssociationDialog
调用未注册的 URL 协议对话框。 此对话框允许用户选择与以前未知的协议关联的应用程序。
注意: Windows XP SP2 或更高版本:不再支持此函数。
WinExecError
检索 WinExec 函数无法运行指定应用程序时生成的错误值。
WinHelp
启动 Windows 帮助(Winhelp.exe)并传递指示应用程序请求的帮助性质的其他数据。