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 或更高版本)