IOleObject::GetUserType 方法 (oleidl.h)

检索对象的用户类型名称,以便在菜单、列表框和对话框等用户界面元素中显示。

语法

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

参数

[in] dwFormOfType

要呈现给用户的用户类型名称的形式。 可能的值是从 USERCLASSTYPE 枚举获取的。

[out] pszUserType

接收指向用户类型字符串的指针的 LPOLESTR 指针变量的地址。 调用方必须使用当前 IMalloc 实例释放 pszUserType。 如果发生错误,实现必须将 pszUserType 设置为 NULL

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
OLE_S_USEREG
使用注册表委托到默认处理程序的实现,以提供请求的信息。

注解

容器调用 IOleObject::GetUserType ,以便按正常、用户可识别的名称表示列表框、菜单和对话框中的嵌入对象。 示例包括“Word文档”、“Excel 图表”和“画笔对象”。IOleObject::GetUserType 返回的信息是 IOleObject::GetUserClassID 返回的二进制类标识符的用户可读等效项。

给调用方的说明

默认处理程序实现的 IOleObject::GetUserType 使用对象的类标识符 (IOleObject::GetUserClassID) 返回的 pClsid 参数和 dwFormOfType 参数一起作为注册表项进入注册表。 如果找到与键完全匹配的条目,则返回该条目指定的用户类型。 如果只有键的 CLSID 部分匹配,则可用编号最低的条目 (通常使用全名) 。 如果未找到 CLSID,或者没有为 类注册用户类型,则使用当前在对象的存储中找到的用户类型。

不应缓存从 IOleObject::GetUserType 返回的字符串。 相反,每次需要字符串时都调用此方法。 这可以保证在调用方不知情的情况下将嵌入对象从一种类型转换为另一种类型时的正确结果。 调用此方法的成本较低,因为默认处理程序使用注册表实现此方法。

实施者说明

可以通过返回 OLE_S_USEREG 作为应用程序对此方法的实现,使用默认处理程序提供的实现。 如果用户类型名称为空字符串,则返回消息“未知对象”。

可以调用 OLE 帮助程序函数 OleRegGetUserType 以返回相应的用户类型。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

IOleObject

IOleObject::GetUserClassID

IOleObject::SetHostNames

OleRegGetUserType

ReadFmtUserTypeStg

USERCLASSTYPE