(objidl.h) IPersist::GetClassID 方法

擷取 物件的 CLSID) (類別標識碼。

語法

HRESULT GetClassID(
  [out] CLSID *pClassID
);

參數

[out] pClassID

傳回時接收 CLSID 之位置的指標。 CLSID 是全域唯一標識碼 (GUID) ,可唯一表示可管理對象數據之程式代碼的物件類別。

傳回值

如果方法成功,傳回值會S_OK。 否則,它會E_FAIL。

備註

GetClassID 方法會擷取對象的類別標識碼 (CLSID) ,以供稍後的作業用來將物件特定程式代碼載入呼叫端的內容。

來電者附註

容器應用程式可能會呼叫這個方法,以擷取它視為不同類別的物件原始 CLSID。 如果使用者執行需要儲存物件的編輯作業,則需要這類呼叫。 如果容器是使用視為 CLSID 來儲存它,則原始應用程式將無法再編輯物件。 一般而言,在此情況下,容器會呼叫 OleSave 協助程式函式,以執行所有必要的步驟。 因此,大部分的容器應用程式不需要直接呼叫此方法。

例外狀況是提供特定物件之物件處理程式的容器。 特別是,容器應用程式不應該取得物件的CLSID,然後使用它從登錄擷取類別特定資訊。 相反地,容器應該使用 IOleObjectIDataObject 介面,直接從 物件擷取這類類別特定資訊。

實作者的注意事項

一般而言,這個方法的實作只會提供物件的常數 CLSID。 不過,如果物件的 TreatAs 登錄機碼是由支援模擬 (的應用程式所設定,因此將對象視為不同類別的其中一個) , 則對 GetClassID 的呼叫必須提供 TreatAs 機碼中指定的 CLSID。 如需仿真的詳細資訊,請參閱 CoTreatAsClass

當對象處於執行中狀態時,默認處理程式會呼叫 GetClassID 的實作,以委派對對對象中實作的呼叫。 當物件未執行時,默認處理程式會改為呼叫 ReadClassStg 函式,以讀取儲存在物件記憶體中的 CLSID。

如果您要撰寫物件的自定義物件處理程式,您可能只想將此方法委派給預設處理程序實作, (請參閱 OleCreateDefaultHandler) 。

URL Moniker 附注

這個方法會傳回CLSID_StdURLMoniker。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 objidl.h

另請參閱

IBaseFilter

IPersist

IPersistFolder