progIDFromCLSID 函数 (combaseapi.h)

检索给定 CLSID 的 ProgID。

语法

HRESULT ProgIDFromCLSID(
  [in]  REFCLSID clsid,
  [out] LPOLESTR *lplpszProgID
);

参数

[in] clsid

要为其请求 ProgID 的 CLSID。

[out] lplpszProgID

接收 ProgID 字符串的指针变量的地址。 表示 clsid 的字符串包含括起来的大括号。

返回值

此函数可以返回以下值。

返回代码 说明
S_OK
已成功返回 ProgID。
REGDB_E_CLASSNOTREG
类未在注册表中注册。
REGDB_E_READREGDB
从注册表读取时出错。

注解

“插入对象”对话框中列出的每个 OLE 对象 类都必须具有编程标识符 (ProgID) ,这是一个唯一标识给定类的字符串,存储在注册表中。 除了确定“ 插入对象 ”对话框的资格外,ProgID 还可以用作宏编程语言中的标识符来标识类。 最后,ProgID 也是用于放置在 OLE 1 容器中的 OLE 类的对象的类名。

ProgIDFromCLSID 使用注册表中的条目来执行转换。 OLE 应用程序作者负责确保在应用程序的安装程序中正确配置注册表。

ProgID 字符串必须不同于任何 OLE 1 应用程序的类名,包括同一应用程序的 OLE 1 版本(如果有)。 此外,ProgID 字符串不得包含超过 39 个字符、以数字开头,或者除单个句点外,不得包含任何标点符号 (包括下划线) 。

ProgID 不得在用户界面中向用户显示。 如果需要对象的短可显示字符串,请调用 IOleObject::GetUserType

调用 CLSIDFromProgID 函数以查找与给定 ProgID 关联的 CLSID。 使用完返回的 ProgID 后,请务必通过调用 CoTaskMemFree 函数释放它。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CLSIDFromProgID