Condividi tramite


Funzione GetSystemPreferredUILanguages (winnls.h)

Recupera le lingue dell'interfaccia utente preferite dal sistema. Per altre informazioni, vedere Gestione linguaggio interfaccia utente.

Sintassi

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

Parametri

[in] dwFlags

Contrassegni che identificano il formato della lingua e il filtro. I flag seguenti specificano il formato da usare per le lingue dell'interfaccia utente preferite dal sistema. I flag sono reciprocamente esclusivi e il valore predefinito è MUI_LANGUAGE_NAME.

Valore Significato
MUI_LANGUAGE_ID
Recuperare le stringhe della lingua nel formato dell'identificatore della lingua .
MUI_LANGUAGE_NAME
Recuperare le stringhe di lingua nel formato del nome della lingua .
 

Il flag seguente specifica se la funzione consiste nel convalidare l'elenco di lingue (impostazione predefinita) o recuperare l'elenco delle lingue dell'interfaccia utente preferite del sistema esattamente come archiviato nel Registro di sistema.

Valore Significato
MUI_MACHINE_LANGUAGE_SETTINGS
Recuperare l'elenco delle lingue dell'interfaccia utente preferite del sistema archiviato, controllando solo per assicurarsi che ogni nome della lingua corrisponda a una lingua valida per le impostazioni locali NLS. Se questo flag non è impostato, la funzione recupera le lingue dell'interfaccia utente preferite del sistema in pwszLanguagesBuffer, purché l'elenco non sia vuoto e soddisfi i criteri di convalida. In caso contrario, la funzione recupera la lingua dell'interfaccia utente predefinita del sistema nel buffer della lingua.

[out] pulNumLanguages

Puntatore al numero di lingue recuperate in pwszLanguagesBuffer.

[out, optional] pwszLanguagesBuffer

facoltativo. Puntatore a un buffer in cui questa funzione recupera un elenco di lingue dell'interfaccia utente preferite del sistema ordinato e delimitato da null, nel formato specificato da dwFlags. Questo elenco termina con due caratteri Null.

In alternativa, se questo parametro è impostato su NULL e pcchLanguagesBuffer è impostato su 0, la funzione recupera le dimensioni necessarie del buffer del linguaggio in pcchLanguagesBuffer. Le dimensioni necessarie includono i due caratteri Null

[in, out] pcchLanguagesBuffer

Puntatore alle dimensioni, in caratteri, per il buffer della lingua indicato da pwszLanguagesBuffer. Al termine della restituzione dalla funzione, il parametro contiene le dimensioni del buffer del linguaggio recuperato.

In alternativa, se questo parametro è impostato su 0 e pwszLanguagesBuffer è impostato su NULL, la funzione recupera le dimensioni necessarie del buffer del linguaggio in pcchLanguagesBuffer.

Valore restituito

Restituisce TRUE se ha esito positivo o FALSE in caso contrario. Per ottenere informazioni sull'errore estese, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_INSUFFICIENT_BUFFER. Una dimensione del buffer fornita non è stata sufficiente oppure è stata impostata in modo errato su NULL.

Se la funzione ha esito negativo per qualsiasi altro motivo, i parametri pulNumLanguages e pcchLanguagesBuffer non sono definiti.

Commenti

Quando viene specificato MUI_LANGUAGE_ID, le stringhe di lingua recuperate saranno identificatori di lingua esadecimali

che non includono l'0x iniziale e sarà di 4 caratteri in lunghezza. Ad esempio, en-US verrà restituito

come "0409" e en come "0009".

Le lingue dell'interfaccia utente preferite del sistema non possono includere più lingue del Language Interface Pack (LIP) che corrispondono a un'impostazione locale supplementare. Se l'elenco include più di una di queste lingue e se l'applicazione specifica MUI_LANGUAGE_ID nella chiamata alla funzione, il buffer della lingua contiene "1400" per tale lingua. Questa stringa corrisponde al valore esadecimale di LOCALE_CUSTOM_UI_DEFAULT.

Se il flag MUI_MACHINE_LANGUAGE_SETTINGS è impostato, questa funzione controlla ogni lingua nell'elenco che rappresenta le impostazioni locali NLS valide. L'elenco recuperato può contenere gli elementi seguenti:

  • Lingue non installate nel sistema
  • Voci della lingua duplicata
  • Stringa vuota
Se il flag di MUI_MACHINE_LANGUAGE_SETTINGS è impostato e l'elenco delle lingue dell'interfaccia utente preferite dal sistema è vuoto, la funzione recupera una stringa vuota nel buffer della lingua (due caratteri Null, perché è un buffer multistringa), 0 per il numero di lingue e 2 per le dimensioni del buffer.

Se il flag di MUI_MACHINE_LANGUAGE_SETTINGS non è impostato, l'elenco di lingue recuperate presenta le caratteristiche seguenti:

  • Ogni lingua rappresenta le impostazioni locali NLS valide.
  • Ogni lingua viene installata nel sistema operativo.
  • L'elenco contiene una voce per ogni lingua, senza voci duplicate.

Firma C#

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

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winnls.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetSystemDefaultUILanguage

GetThreadPreferredUILanguages

GetThreadUILanguage

GetUserPreferredUILanguages

Interfaccia utente multilingue

Funzioni dell'interfaccia utente multilingue

SetThreadPreferredUILanguages