enumUILanguagesA 函式 (winnls.h)
列舉操作系統上可用的使用者介面語言,並使用清單中的每個語言呼叫回呼函式。
語法
BOOL EnumUILanguagesA(
[in] UILANGUAGE_ENUMPROCA lpUILanguageEnumProc,
[in] DWORD dwFlags,
[in] LONG_PTR lParam
);
參數
[in] lpUILanguageEnumProc
應用程式定義的 EnumUILanguagesProc 回呼函式的指標。 EnumUILanguages 會重複呼叫此函式,以列舉清單中的語言。
[in] dwFlags
識別語言格式和篩選的旗標。 下列旗標會指定要傳遞至回呼函式的語言格式。 格式旗標互斥,MUI_LANGUAGE_ID為預設值。
值 | 意義 |
---|---|
|
將語言字串中的 語言標識碼 傳遞至回呼函式。 |
|
將語言字串中的 語言名稱 傳遞至回呼函式。 |
下列旗標會指定要用於列舉語言之函式的篩選。 篩選旗標互斥,預設值為 MUI_LICENSED_LANGUAGES。
值 | 意義 |
---|---|
|
列舉操作系統可用的所有已安裝語言。 |
|
列舉所有可用且已授權使用的語言。 |
|
列舉所有可用和授權的已安裝語言,以及允許的語言 組策略。 |
Windows Vista 和更新版本: 應用程式可以將 dwFlags 設定為 0,或設定為一或多個指定的旗標。 設定為 0 會導致參數值預設為 MUI_LANGUAGE_ID |MUI_LICENSED_LANGUAGES。
Windows 2000、Windows XP、Windows Server 2003: 應用程式必須將 dwFlags 設定為 0。
[in] lParam
應用程式定義的值。
傳回值
如果成功或 FALSE,則傳回 TRUE 。否則傳回 TRUE 。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:
- ERROR_INVALID_FLAGS。 為旗標的值無效。
- ERROR_INVALID_PARAMETER。 任何參數值都無效。
備註
此函式會列舉可用的使用者介面語言,並視指定的旗標而定,授權用於操作系統。 它會一次將語言標識碼或語言名稱傳遞至 EnumUILanguagesProc 回呼函式。 EnumUILanguages 函式會繼續將語言標識碼或名稱傳遞至回呼函式,直到找到最後一種語言或回呼函式傳回 FALSE 為止。
針對只在 Windows Vista 和更新版本上執行的應用程式,建議MUI_LANGUAGE_NAME超過 MUI_LANGUAGE_ID。 MUI_LANGUAGE_NAME允許與 補充地區設定相關聯的語言之間的差異。
如果在呼叫此函式時指定MUI_LANGUAGE_ID旗標,則傳遞至回呼的字串
函式會是不包含前置 0x 的十六進位語言標識碼,而且會是 4
長度為字元。 例如,en-US 會以 “0409” 傳遞,而 en 會傳遞為 “0009”。 值 「1000」 會針對與補充地區設定相關聯的任何語言傳遞至回呼函式。 這個值會對應至 LOCALE_CUSTOM_UNSPECIFIED的十六進位值。 即使選取的語言位於使用者慣用UI語言清單或系統慣用的UI語言清單中,它也不會區分補充地區設定。
C# 簽章
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean EnumUILanguages(
EnumUILanguagesProc lpUILanguageEnumProc,
System.UInt32 dwFlags,
System.IntPtr lParam
);
注意
winnls.h 標頭會將 EnumUILanguages 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winnls.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |