SHPathPrepareForWriteA 函数(shlobj_core.h)
检查路径是否存在。 这包括重新装载映射的网络驱动器、提示重新插入可弹出媒体、创建路径、提示媒体进行格式化,并在必要时提供适当的用户界面。 不会检查介质的读/写权限。
语法
SHSTDAPI SHPathPrepareForWriteA(
[in, optional] HWND hwnd,
[in, optional] IUnknown *punkEnableModless,
[in] LPCSTR pszPath,
DWORD dwFlags
);
参数
[in, optional] hwnd
类型:HWND
一个窗口的句柄,指定要用于必须创建的任何用户界面窗口的父窗口。 如果设置为 NULL,则不会创建用户界面窗口。
[in, optional] punkEnableModless
类型:IUnknown*
指向 IUnknown 接口的指针,该接口指定实现 EnableModeless 方法的 IOleInPlaceActiveObject 对象。
[in] pszPath
类型:LPCTSTR
指向最大长度为 null 的字符串的指针,MAX_PATH指定要验证为有效写入的路径。 可以是 UNC 或文件驱动器路径。
dwFlags
类型:DWORD
确定行为选项的标志。 此参数可以是以下值的组合。
SHPPFW_NONE
不要创建新目录。
SHPPFW_DEFAULT
违约。 如果需要创建目录,请不要提示用户。 这与 SHPPFW_DIRCREATE相同。 不要通过 SHPPFW_ASKDIRCREATE。
SHPPFW_DIRCREATE
创建目录而不提示用户。 不要通过 SHPPFW_ASKDIRCREATE。
SHPPFW_ASKDIRCREATE
在创建目录之前提示用户。 不要通过 SHPPFW_DIRCREATE。
SHPPFW_IGNOREFILENAME
pszPath 中的最后一项是文件名,因此请忽略。 例如,如果 pszPath=“C:\MyDir\MyFile.doc”,则仅使用“C:\MyDir”。 如果 pszPath=“C:\MyFirDir\MySecDir”,则仅使用“C:\MyFirDir”。
SHPPFW_NOWRITECHECK
当前未实现。
SHPPFW_MEDIACHECKONLY
Windows XP 或更高版本。 禁止显示“不可访问”错误消息框,该框显示用户取消以外的故障时,hwnd 不会 NULL。
返回值
类型:HRESULT
如果路径可用,则返回S_OK;否则返回错误代码。 请注意,S_OK的返回值并不意味着介质是可写的;它只是意味着路径可用。
言论
此函数的主要用途是程序在使用路径之前检查路径,并显示提示用户所需的用户界面。 例如,如果驱动器 A 中缺少磁盘,则会显示提示用户插入磁盘的窗口。
注意
shlobj_core.h 标头将 SHPathPrepareForWrite 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | shlobj_core.h(包括 Shlobj.h、Shlobj_core.h) |
库 | Shell32.lib |
DLL | Shell32.dll (版本 5.0 或更高版本) |