建立 Registration-Free COM 物件
啟用內容可讓 COM 物件使用,而不需要註冊它們。 這可讓您的應用程式根據其版本而非其登錄資訊,擁有具有不同功能的多個元件。 多個元件可以使用相同的 GUID 公開相同的 COM 物件,但根據版本有不同的功能。
當應用程式向 CLSIDFromProgID要求 GUID 時,COM 會先在作用中啟用內容中搜尋從 progid 到 CLSID 的對應。 當應用程式使用 CoCreateInstance 取得實例介面指標時,COM 會在作用中啟用內容中搜尋,以尋找哪個 DLL 將裝載 CLSID。 如果啟用內容未包含必要資訊,COM 就會使用一般方法來搜尋登錄中的資訊。
請注意,由於啟用內容是每一線程,所以 COM 會將建立執行緒的啟用內容封送處理至主機執行緒,並在主機執行緒上呼叫 LoadLibrary 或 DllGetClassObject 之前加以啟用。 這項功能已存在於 Windows 中,不需要用戶端程式代碼才能執行任何動作來實作此動作。
裝載的元件可以匯出 COM 類別,而不需要通過登錄。 多個元件可以針對不同的 COM 物件公開相同的 ProgID,而主控應用程式應該只尋找適當的啟用內容,然後使用 CLSIDFromProgID 和 CoCreateInstance 來取得託管物件的介面指標。