ACTCTXA 結構 (winbase.h)
CREATEActCtx 函式會使用 ACTCTX 結構來建立啟用內容。
語法
typedef struct tagACTCTXA {
ULONG cbSize;
DWORD dwFlags;
LPCSTR lpSource;
USHORT wProcessorArchitecture;
LANGID wLangId;
LPCSTR lpAssemblyDirectory;
LPCSTR lpResourceName;
LPCSTR lpApplicationName;
HMODULE hModule;
} ACTCTXA, *PACTCTXA;
成員
cbSize
這個結構的大小,以位元組為單位。 這是用來判斷這個結構的版本。
dwFlags
旗標,指出如何使用這個結構中包含的值。 將 dwFlags 中的任何未定義位設定為 0。 如果未將任何未定義的位設定為 0,則建立啟用內容的 CreateActCtx 呼叫會失敗,並傳回無效的參數錯誤碼。
lpSource
以 Null 結束的字串,指定要用來建立啟用內容的指令清單檔或 PE 映射路徑。 如果此路徑參考 EXE 或 DLL 檔案,則需要 lpResourceName 成員。
wProcessorArchitecture
識別使用的處理器類型。 指定系統的處理器架構。
此值可以是下列其中一個值:
wLangId
指定應該使用的語言指令清單。 預設值為目前使用者的目前UI語言。
如果找不到要求的語言,則會使用下列順序搜尋近似值:
- 目前使用者的特定語言。 例如,針對美國英文 (1033) 。
- 目前使用者的主要語言。 例如,針對英文 (9) 。
- 目前系統的特定語言。
- 目前系統的主要語言。
- 非特定全球語言。 語言中性 (0) 。
lpAssemblyDirectory
如果啟用內容中的元件不存在於全系統存放區中,則執行私用元件探查的基底目錄。
lpResourceName
Null 終止字串的指標,其中包含要從 hModule 或 lpSource 中指定的 PE 載入的資源名稱。 如果資源名稱是整數,請使用MAKEINTRESOURCE設定此成員。 如果 lpSource 參考 EXE 或 DLL,則需要此成員。
lpApplicationName
目前應用程式的名稱。 如果這個成員的值設定為 null,則會使用啟動目前進程的可執行檔名稱。
hModule
如果您已經載入 DLL 並想要使用它來建立啟用內容,而不是使用 lpSource 中的路徑,請使用這個成員,而不是 lpSource。 如需在此課程模組中查閱資源的規則,請參閱 lpResourceName 。
備註
如果 lpSource 成員的值所識別的檔案是 PE 映射檔, CreateActCtx 會在位於相同目錄的 .manifest 檔案中,以及位於 PE 映射檔的第一個RT_MANIFEST資源中搜尋指令清單。 若要從映像尋找特定的具名資源,請將 lpResourceName 設定為資源的名稱,並將ACTCTX_FLAG_RESOURCE_NAME_VALID新增至 dwFlags 成員。 如需指定資源名稱的詳細資訊,請參閱 FindResource 。
在大部分情況下,呼叫端不應該設定 dwFlags 成員的ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID和ACTCTX_FLAG_LANGID_VALID旗標。 此外,在大部分情況下, lpResourceName 成員的值應該設定為 null。
當建立啟用內容的可執行檔是應用程式的主機時, lpApplicationName 和 lpAssemblyDirectory 的值不會設定為 Null。 在此情況下,主機可以為應用程式設定不同的名稱,以尋找組態檔、報告錯誤等等。
注意
winbase.h 標頭會將 ACTCTX 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winbase.h (包含 Windows.h) |