Метод 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
Header shobjidl_core.h (включая Shobjidl.h)