IFileDialog::SetFileTypes 方法 (shobjidl_core.h)

设置对话框可以打开或保存的文件类型。

语法

HRESULT SetFileTypes(
  [in] UINT                    cFileTypes,
  [in] const COMDLG_FILTERSPEC *rgFilterSpec
);

参数

[in] cFileTypes

类型: UINT

rgFilterSpec 指定的数组中的元素数。

[in] rgFilterSpec

类型: const COMDLG_FILTERSPEC*

指向 COMDLG_FILTERSPEC 结构数组的指针,每个结构表示一个文件类型。

返回值

类型: HRESULT

如果该方法成功,则它会返回 S_OK。 否则,它将返回 HRESULT 错误代码,包括以下内容:

返回代码 说明
E_UNEXPECTED

SetFileTypes 已调用。

E_UNEXPECTED
FOS_PICKFOLDERS标志是在 IFileDialog::SetOptions 方法中设置的。
E_INVALIDARG
rgFilterSpec 参数为 NULL

注解

使用 “打开 ”对话框时,声明的文件类型用于筛选视图。 使用 “保存 ”对话框时,这些值确定将哪个文件扩展名追加到文件名中。

必须在显示对话框之前调用此方法,并且每个对话实例只能调用一次。 显示“通用项”对话框后,无法修改文件类型。

示例

下面的代码示例演示如何在此方法的上下文中使用 COMDLG_FILTERSPEC 结构的数组。 示例数组由三个 COMDLG_FILTERSPEC 结构组成。 第一个声明对话框筛选器的两个模式,第二个声明单个模式,最后一个显示所有类型的文件。 假定变量 szJPG、szBMP 和 szAll 是以前声明的字符串,这些字符串为每个筛选器提供友好名称。

COMDLG_FILTERSPEC rgSpec[] =
{ 
    { szJPG, L"*.jpg;*.jpeg" },
    { szBMP, L"*.bmp" },
    { szAll, L"*.*" },
};

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)