共用方式為


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 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ole2.h
程式庫 Ole32.lib
Dll Ole32.dll
API 集合 ext-ms-win-com-ole32-l1-1-0 (於 Windows 8)

另請參閱

AutoConvertTo

OleDoAutoConvert

OleSetAutoConvert