Поделиться через


Метод IShellFolder::CreateViewObject (shobjidl_core.h)

Запрашивает объект , который можно использовать для получения сведений из объекта папки или взаимодействия с ним.

Синтаксис

HRESULT CreateViewObject(
  [in]  HWND   hwndOwner,
  [in]  REFIID riid,
  [out] void   **ppv
);

Параметры

[in] hwndOwner

Тип: HWND

Дескриптор окна-владельца. Если вы реализовали пользовательский объект представления папок, окно представления папок должно быть создано как дочерний элемент hwndOwner.

[in] riid

Тип: REFIID

Ссылка на IID интерфейса, извлекаемого через ppv, обычно IID_IShellView.

[out] ppv

Тип: void**

При успешном возвращении этого метода содержит указатель интерфейса, запрошенный в riid. Обычно это IShellView. Дополнительные сведения см. в разделе "Примечания".

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Для поддержки этого запроса создайте объект, который предоставляет интерфейс, указанный riid , и возвратите указатель на этот интерфейс.

Основная цель этого метода — предоставить Обозреватель Windows объекту представления папок. Windows Обозреватель запрашивает объект представления папки, задав для riid значение IID_IShellView. Объект представления папок отображает содержимое папки в представлении папок Windows Обозреватель. Объект представления папок должен быть независимым от объекта папки оболочки, так как Windows Обозреватель может вызывать этот метод несколько раз для создания нескольких объектов представления папок. При каждом вызове этого метода необходимо создавать новый объект представления. Объект папки может ответить на этот запрос одним из двух способов. Возможности службы:

  • Создайте пользовательский объект представления папок и верните указатель на его интерфейс IShellView .
  • Создайте объект представления системных папок и верните указатель на его интерфейс IShellView .
Этот метод также используется для запроса объектов, которые предоставляют один из нескольких необязательных интерфейсов, включая IContextMenu или IExtractIcon. В этом контексте CreateViewObject аналогичен использованию IShellFolder::GetUIObjectOf. Однако вызовите метод IShellFolder::GetUIObjectOf , чтобы запросить объект для одного из элементов, содержащихся в папке. Вызовите IShellFolder::CreateViewObject , чтобы запросить объект для самой папки. Наиболее часто запрашиваемые интерфейсы: Мы рекомендуем использовать макрос IID_PPV_ARGS , определенный в Objbase.h, для упаковки параметров riid и ppv . Этот макрос предоставляет правильный КОД на основе интерфейса, на который указывает значение в ppv, что исключает возможность ошибки кодирования в riid , которая может привести к непредвиденным результатам.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)
DLL Shell32.dll (версия 4.0 или более поздняя)

См. также раздел

IShellFolder

IShellFolder2