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 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h (包括 Shlobj.h、Shlobj_core.h)
Library Shell32.lib
DLL Shell32.dll (5.0 或更高版本)