OleRegEnumVerbs 函数 (ole2.h)

为指定类提供已注册谓词的枚举。 自定义 DLL 对象应用程序的开发人员使用此函数来模拟默认对象处理程序的行为。

语法

HRESULT OleRegEnumVerbs(
  [in]  REFCLSID      clsid,
  [out] LPENUMOLEVERB *ppenum
);

参数

[in] clsid

正在请求其谓词的类标识符。

[out] ppenum

接收指向新枚举对象的接口指针的 IEnumOLEVERB* 指针变量的地址。

返回值

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

返回代码 说明
OLEOBJ_E_NOVERBS
没有为 类注册谓词。
REGDB_E_CLASSNOTREG
没有为类对象注册任何 CLSID。
REGDB_E_READREGDB
读取注册表时出错。
OLE_E_REGDB_KEY
注册表中缺少 DataFormats/GetSet 项。

注解

对象应用程序可以要求 OLE 为 OLEVERB 结构创建枚举对象,以通过以下两种方式之一枚举受支持的谓词。 一种方法是调用 OleRegEnumVerbs。 另一种方法是返回OLE_S_USEREG,以响应默认对象处理程序对 IOleObject::EnumVerbs 的调用。 OLE_S_USEREG指示默认处理程序调用 OleRegEnumVerbs。 由于 DLL 对象应用程序无法返回OLE_S_USEREG,因此它们必须调用 OleRegEnumVerbs ,而不是将作业委托给对象处理程序。 使用提供的指向 对象的 IEnumOLEVERB 指针,可以调用标准枚举对象方法来执行枚举。

OleRegEnumVerbs 函数及其同级函数 OleRegGetUserTypeOleRegGetMiscStatusOleRegEnumFormatEtc 为自定义 DLL 对象应用程序的开发人员提供了一种方法,用于模拟 OLE 的默认对象处理程序在从注册表中获取有关对象的信息时的行为。 通过使用这些函数,可以避免编写自己的大量工作,以及直接在注册表中工作所固有的缺陷。 此外,你将获得这些函数的未来增强和优化,而无需自行编写代码。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ole2.h
Library Ole32.lib
DLL Ole32.dll
API 集 Windows 10版本 10.0.10240 中引入的 ext-ms-win-com-ole32-l1-1-3 ()

另请参阅

IEnumOLEVERB

IOleObject::EnumVerbs