SetupPromptForDiskW 函数 (setupapi.h)
[此函数可用于“要求”部分所示的操作系统。 它可能在后续版本中变更或不可用。 不应再使用 SetupAPI 来安装应用程序。 请改用 Windows Installer 开发应用程序安装程序。 SetupAPI 继续用于安装设备驱动程序。]
SetupPromptForDisk 函数显示一个对话框,提示用户输入磁盘。
语法
WINSETUPAPI UINT SetupPromptForDiskW(
[in] HWND hwndParent,
[in] PCWSTR DialogTitle,
[in] PCWSTR DiskName,
[in] PCWSTR PathToSource,
[in] PCWSTR FileSought,
[in] PCWSTR TagFile,
[in] DWORD DiskPromptStyle,
[in, out] PWSTR PathBuffer,
[in] DWORD PathBufferSize,
[in, out] PDWORD PathRequiredSize
);
参数
[in] hwndParent
此对话框的父窗口的句柄。
[in] DialogTitle
指向以 null 结尾的字符串的可选指针,该字符串指定对话框标题。 如果此参数为 NULL,则使用本地化) (默认值“%s--Files Needed”。 “%s”将替换为从父窗口检索到的文本。 如果未从父窗口检索任何文本,则标题为“需要文件”。
[in] DiskName
指向以 null 结尾的字符串的可选指针,该字符串指定要插入的磁盘的名称。 如果此参数为 NULL,则使用默认的“ (未知) ” (本地化) 。
[in] PathToSource
指向以 null 结尾的字符串的可选指针,该字符串指定文件的预期位置的路径部分,例如 F:\x86。 如果未指定,则使用 SetupPromptForDisk 最近找到文件的路径。 如果该列表为空,则使用系统默认值。
[in] FileSought
指向以 null 结尾的字符串的指针,该字符串指定仅) 文件名部分 (所需文件名。 如果用户单击“ 浏览 ”按钮,则显示文件名。 此例程使用压缩的表单名称查找文件;因此,可以传递 cmd.exe,而不必担心文件实际上在源媒体上以cmd.ex_的形式存在。
[in] TagFile
指向以 null 结尾的字符串的可选指针,该字符串指定标记文件 (文件名部分,仅) 标识是否存在特定的可移动媒体卷。 如果当前所选路径将文件放置在可移动媒体上,并且指定了标记文件, 则 SetupPromptForDisk 会查找驱动器根目录中的标记文件,以确定是否继续。
例如,如果 PathToSource 为 A:\x86,标记文件为 disk1.tag,并且用户在提示对话框的编辑控件中键入 B:\x86,则例程将查找 B:\disk1.tag 以确定是否继续。 如果未找到标记文件,则函数使用 PathToSource 查找标记文件。
如果未指定标记文件,可移动媒体的工作方式与不可移动媒体一样,在继续操作之前会查找 FileSought 。
[in] DiskPromptStyle
指定对话框的行为。 此参数可以是以下标志的组合。
IDF_CHECKFIRST
在显示提示对话框之前检查文件/磁盘,如果存在,则立即返回DPROMPT_SUCCESS。
IDF_NOBEEP
防止对话框在首次出现时发出哔哔声来引起用户的注意。
IDF_NOBROWSE
不显示浏览选项。
IDF_NOCOMPRESSED
不要为源文件的压缩版本检查。
IDF_NODETAILS
不显示详细信息。
IDF_NOFOREGROUND
防止对话框成为前台窗口。
IDF_NOSKIP
不显示 skip 选项。
IDF_OEMDISK
提示输入由硬件制造商提供的磁盘。
IDF_WARNIFSKIP
警告用户跳过文件可能会影响安装。
[in, out] PathBuffer
指向缓冲区的可选指针,该缓冲区在返回时接收路径 (没有文件名) 用户通过对话框指定的位置。 应使用以 null 结尾的字符串。 以 null 结尾的字符串不应超过目标缓冲区的大小。 可以调用函数一次以获取所需的缓冲区大小,分配必要的内存,然后再次调用函数以检索数据。 使用此技术,可以避免由于缓冲区大小不足而导致的错误。 请参阅“备注”部分。
[in] PathBufferSize
PathBuffer 指向的缓冲区的大小(以字符为单位)。 它应该至少MAX_PATH长。 这包括 null 终止符。
[in, out] PathRequiredSize
指向接收 PathBuffer 所需大小的变量(以字符为单位)的可选指针。 这包括 null 终止符。
返回值
函数返回以下值之一。
要获得更多的错误信息,请调用 GetLastError。
注解
如果使用 NULL 的 PathBuffer 和零的 PathBufferSize 调用此函数,则该函数会将保存指定数据所需的缓冲区大小放入 PathRequiredSize 指向的变量中。 如果函数成功,则返回值NO_ERROR。 否则,返回值是返回值部分所述的值之一。
注意
setupapi.h 标头将 SetupPromptForDisk 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | setupapi.h |
Library | Setupapi.lib |
DLL | Setupapi.dll |