啟用內容

啟用內容 是記憶體中的資料結構,其中包含系統可用來重新導向應用程式載入特定 DLL 版本、COM 物件實例或自訂視窗版本的資訊。 啟用內容的一個區段可能包含 DLL 載入器所使用的 DLL 重新導向資訊;另一個區段可能包含 COM 伺服器資訊。 啟用內容函式會使用、建立、啟用和停用啟用內容。 啟用函式可以將應用程式的系結重新導向至指定特定 DLL 版本、視窗類別、COM 伺服器、類型程式庫和介面的版本命名物件。 如需啟用內容函式和結構的詳細資訊,請參閱 啟用內容參考

從 Windows XP 開始,啟用內容函式可讓 Windows 使用 資訊清單 中的資訊來建立版本命名的物件。 如果應用程式藉由呼叫 CreateProcess來建立進程,Windows 會檢查 應用程式資訊清單是否存在。 如果資訊清單存在,Windows 會使用資訊清單中的資訊來填入啟用內容。 因為資訊清單描述應用程式並 存元件 版本的相依性,所以在資訊清單中未指定版本的物件會對應至版本命名的物件。 例如,資訊清單可能會描述 DLL、檔案、視窗類別、COM 伺服器、類型程式庫和介面。

在啟用內容內建立全域物件時,系統會藉由諮詢資訊清單,自動為物件提供版本特定的名稱。 當應用程式執行並要求具名物件時,它會取得版本命名的物件。 這可讓多個版本的程式碼模組同時在系統上執行,而不會彼此干擾。 例如, Windows Shell 使用資訊清單來描述 COMCTL32 6.0 版的相依性,以及建立視窗類別的版本。

如果應用程式藉由呼叫 CreateWindow來建立資源,此程式會指定該函式的類別名稱。 GetCurrentActCtx的呼叫會取得目前的啟用內容,並檢查指定的類別名稱是否存在對應。 如果對應存在,它會使用該版本的呼叫程式來解析對應,並提供版本特定的類別名稱。 Windows 會建立一個視窗,其中包含與該類別名稱和版本相關聯的視窗程式、樣式和其他屬性。

在大部分情況下,啟用內容是由系統所管理。 應用程式開發人員和元件提供者通常不需要呼叫堆疊。 應用程式可以直接呼叫啟用內容來管理啟用內容。 如需詳細資訊,請參閱 使用啟用內容 API