Метод IOleObject::GetUserType (oleidl.h)

Извлекает имя типа пользователя объекта для отображения в элементах пользовательского интерфейса, таких как меню, списки и диалоговые окна.

Синтаксис

HRESULT GetUserType(
  [in]  DWORD    dwFormOfType,
  [out] LPOLESTR *pszUserType
);

Параметры

[in] dwFormOfType

Форма имени типа пользователя, представляемого пользователям. Возможные значения получаются из перечисления USERCLASSTYPE .

[out] pszUserType

Адрес переменной указателя LPOLESTR , которая получает указатель на строку типа пользователя. Вызывающий объект должен освободить pszUserType с помощью текущего экземпляра IMalloc . При возникновении ошибки реализация должна задать для pszUserTypeзначение NULL.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
OLE_S_USEREG
Делегируйте реализацию обработчика по умолчанию с помощью реестра для предоставления запрошенных сведений.

Комментарии

Контейнеры вызывают IOleObject::GetUserType , чтобы представлять внедренные объекты в полях списков, меню и диалоговых окнах по обычным, узнаваемым пользователям именам. Примеры: "Word Документ", "Диаграмма Excel" и "Объект Paintbrush". Сведения, возвращаемые IOleObject::GetUserType, являются удобочитаемым эквивалентом идентификатора двоичного класса, возвращаемого IOleObject::GetUserClassID.

Примечания к вызывающим абонентам

Реализация обработчика по умолчанию IOleObject::GetUserType использует идентификатор класса объекта (параметр pClsid , возвращаемый IOleObject::GetUserClassID) и параметр dwFormOfType вместе в качестве ключа в реестре. Если найдена запись, которая точно соответствует ключу, возвращается тип пользователя, указанный этой записью. Если соответствует только часть ключа CLSID, используется самая низкая доступная запись (обычно полное имя). Если идентификатор CLSID не найден или для класса не зарегистрированы типы пользователей, используется тип пользователя, найденный в хранилище объекта.

Не следует кэшировать строку, возвращаемую из IOleObject::GetUserType. Вместо этого вызывайте этот метод каждый раз, когда требуется строка. Это гарантирует правильные результаты при преобразовании внедренного объекта из одного типа в другой без ведома вызывающего объекта. Вызов этого метода недорог, так как обработчик по умолчанию реализует его с помощью реестра.

Примечания для разработчиков

Вы можете использовать реализацию, предоставляемую обработчиком по умолчанию, возвращая OLE_S_USEREG в качестве реализации этого метода приложения. Если имя типа пользователя является пустой строкой, возвращается сообщение "Неизвестный объект".

Чтобы вернуть соответствующий тип пользователя, можно вызвать вспомогательную функцию OLE OleRegGetUserType .

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header oleidl.h

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

IOleObject

IOleObject::GetUserClassID

IOleObject::SetHostNames

OleRegGetUserType

ReadFmtUserTypeStg

USERCLASSTYPE