實例建立協助程式函式

在舊版的 COM 中,用來建立物件實例的主要機制是 CoCreateInstance 函式。 此函式會封裝建立類別物件的程式,使用該程式來建立新的實例並釋放類別物件。 此類型的另一個函式是更具體的 OleCreate,也就是建立類別物件的 OLE 複合文件協助程式,並擷取所要求物件的指標。

為了順暢在分散式系統上建立實例的程式,COM 引進了四個重要的新實例建立機制:

類別Moniker可讓您識別物件的類別,而且通常會與另一個Moniker搭配使用,例如檔案Moniker,以指出物件的位置。 這可讓您系結至 物件,並指定要針對該對象啟動的伺服器。 類別Moniker也可能由支持系結至 IClassActivator 介面的Monikers右側組成。 如需詳細資訊,請參閱 Monikers類別。

CoCreateInstanceEx 擴充 CoCreateInstance ,讓您能夠在指定的遠端電腦上建立與指定 CLSID 相關聯的單一未初始化物件。 此外,CoCreateInstanceEx 不會要求單一介面並取得該介面的單一指標,而是可以在單一往返中查詢多個介面,並(如果有的話)在單一往返中接收這些介面的指標,因此允許機器之間的往返次數較少。 這可讓遠端物件互動更有效率。 若要這樣做,函式會使用 MULTI_QI 結構的陣列

透過 CoCreateInstanceEx 建立物件仍然需要透過呼叫其中一個初始化介面來初始化物件(例如 IPersist 儲存體::Load)。 協助程式函式 CoGetInstanceFromFileCoGetInstanceFromI 儲存體 封裝 CoCreateInstanceEx 和初始化的實例建立能力,前者來自檔案,後者則來自記憶體。

透過類別物件建立物件