OleGetAutoConvert 函数 (ole2.h)

确定是否为指定 CLSID 的对象设置注册表以自动转换为另一个 CLSID,如果是,则检索新的 CLSID。

语法

HRESULT OleGetAutoConvert(
  [in]  REFCLSID clsidOld,
  [out] LPCLSID  pClsidNew
);

参数

[in] clsidOld

对象的 CLSID。

[out] pClsidNew

指向用于接收新 CLSID(如果有)的变量的指针。 如果未在注册表中设置 clsidOld 的自动转换,则返回 clsidOldpClsidNew 参数从不为 NULL

返回值

此函数可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。

返回代码 说明
S_OK
通过 pclsidNew 参数成功返回了值。
REGDB_E_CLASSNOTREG
CLSID 未在注册表中正确注册。
REGDB_E_READREGDB
从注册表读取时出错。
REGDB_E_KEYMISSING
自动转换未处于活动状态,或者 clsidOld 参数没有注册表项。

注解

OleGetAutoConvert 返回指定对象的注册表中的 AutoConvertTo 条目。 AutoConvertTo 子项指定给定 CLSID 的对象是否自动转换为新的 CLSID。 这通常用于将较旧版本的应用程序创建的文件转换为当前版本。 如果没有 AutoConvertTo 条目,此函数将返回 clsidOld 的值。

OleDoAutoConvert 函数调用 OleGetAutoConvert 以确定指定的对象是否要转换。 支持对象转换的容器应用程序应在每次加载对象时调用 OleDoAutoConvert 。 如果容器使用 OleLoad 帮助程序函数,则不需要显式调用 OleDoAutoConvert ,因为 OleLoad 在内部调用它。

若要设置给定类的自动转换,可以调用 OleSetAutoConvert 函数 (通常在应用程序安装) 的安装程序中。 此函数使用 AutoConvertTo 子项标记对象的类,以便自动转换为其他对象类。 这是 CLSID 密钥的子项。

要求

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

另请参阅

AutoConvertTo

OleDoAutoConvert

OleSetAutoConvert