GetProcessPreferredUILanguages 函式 (winnls.h)

擷取程式慣用的 UI 語言。 如需詳細資訊,請參閱 使用者介面語言管理

語法

BOOL GetProcessPreferredUILanguages(
  [in]            DWORD   dwFlags,
  [out]           PULONG  pulNumLanguages,
  [out, optional] PZZWSTR pwszLanguagesBuffer,
  [in, out]       PULONG  pcchLanguagesBuffer
);

參數

[in] dwFlags

旗標,識別用於程式慣用 UI 語言的語言格式。 旗標互斥,預設值為 MUI_LANGUAGE_NAME。

意義
MUI_LANGUAGE_ID
擷取 語言識別項格式的語言 字串。
MUI_LANGUAGE_NAME
擷取 語言名稱 格式的語言字串。

[out] pulNumLanguages

pwszLanguagesBuffer中擷取之語言數目的指標。

[out, optional] pwszLanguagesBuffer

選擇性。 函式會依喜好設定順序擷取已排序、以 Null 分隔清單的雙 Null 終止多字串緩衝區指標,從最理想開始。

或者,如果此參數設定為 Null而 pcchLanguagesBuffer 設定為 0,則函式會擷取 pcchLanguagesBuffer中語言緩衝區的必要大小。 所需的大小包含兩個 Null 字元。

[in, out] pcchLanguagesBuffer

pwszLanguagesBuffer所指示之語言緩衝區的大小指標,以字元為單位。 從函式成功傳回時,參數會包含所擷取語言緩衝區的大小。

或者,如果此參數設定為 0,且 pwszLanguagesBuffer 設定為 Null,則函式會擷取 pcchLanguagesBuffer中語言緩衝區的必要大小。

傳回值

如果成功或 FALSE,則傳回 TRUE 。否則傳回 TRUE 。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:

  • ERROR_INSUFFICIENT_BUFFER。 提供的緩衝區大小不夠大,或設定為 Null不正確。
  • ERROR_INVALID_PARAMETER。 任何參數值都無效。
如果程式慣用的 UI 語言清單是空的,或為進程指定的語言無效,則函式會成功,並在 pwszLanguagesBuffer 和 2 中傳回空的多字串 ,並在 pcchLanguagesBuffer 參數中傳回空的多字串。

備註

根據應用程式指定的旗標,此函式可以擷取包含程式慣用 UI 語言的清單。 如果遇到重複的語言,函式只會擷取重複語言的第一個實例。

指定MUI_LANGUAGE_ID時,擷取的語言字串將會是十六進位語言識別項

不包含前置 0x,且長度為 4 個字元。 例如,將會傳回 en-US

as 「0409」 and en as 「0009」。

注意 建議使用MUI_LANGUAGE_NAME,而非MUI_LANGUAGE_ID。
 

C# 簽章

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetProcessPreferredUILanguages(
            System.UInt32 dwFlags,
            ref System.UInt32 pulNumLanguages,
            System.IntPtr pwszLanguagesBuffer,
            ref System.UInt32 pcchLanguagesBuffer
            );

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
目標平台 Windows
標頭 winnls.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

多語系使用者介面

多語系使用者介面函式

SetProcessPreferredUILanguages