Condividi tramite


Funzione IsNLSDefinedString (winnls.h)

Determina se ogni carattere in una stringa ha un risultato definito per una funzionalità NLS specificata.

Sintassi

BOOL IsNLSDefinedString(
  [in] NLS_FUNCTION     Function,
  [in] DWORD            dwFlags,
  [in] LPNLSVERSIONINFO lpVersionInformation,
  [in] LPCWSTR          lpString,
  [in] INT              cchStr
);

Parametri

[in] Function

Funzionalità NLS per eseguire query. Questo valore deve essere COMPARE_STRING. Vedere l'enumerazione SYSNLS_FUNCTION .

[in] dwFlags

Flag che definiscono la funzione. Deve essere 0.

[in] lpVersionInformation

Puntatore a una struttura NLSVERSIONINFO contenente informazioni sulla versione. In genere, le informazioni vengono ottenute chiamando GetNLSVersion. L'applicazione imposta questo parametro su NULL se la funzione deve usare la versione corrente.

[in] lpString

Puntatore alla stringa UTF-16 da esaminare.

[in] cchStr

Numero di caratteri UTF-16 nella stringa indicata da lpString. Questo conteggio può includere un carattere null di terminazione. Se il carattere Null di terminazione è incluso nel conteggio dei caratteri, non influisce sul comportamento di controllo perché il carattere Null di terminazione è sempre definito.

L'applicazione deve specificare -1 per indicare che la stringa è con terminazione Null. In questo caso, la funzione stessa calcola la lunghezza della stringa.

Valore restituito

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

  • ERROR_INSUFFICIENT_BUFFER. Le dimensioni del buffer fornite non sono sufficienti o non sono state impostate correttamente su NULL.
  • ERROR_INVALID_FLAGS. I valori specificati per i flag non sono validi.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.

Commenti

Questa funzione distingue tra stringhe definite e non definite, in modo che un'applicazione come Active Directory possa rifiutare stringhe con punti di codice non definiti. L'uso della funzione può ridurre al minimo la necessità per l'applicazione di reindicizzazione del relativo database. Per altre informazioni, vedere Gestione dell'ordinamento nelle applicazioni.

Ad esempio, se Function è impostato su COMPARE_STRING, IsNLSDefinedString verifica la presenza di punti di codice non definiti, coppie di surrogati che rappresentano caratteri Unicode non definiti o coppie di surrogati non formate. Se la funzione restituisce TRUE per una determinata stringa, i risultati, come recuperato da CompareString o LCMapString con LCMAP_SORTKEY set, saranno sicuramente identici purché la versione NLS corrispondente non venga modificata.

Requisiti

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

Vedere anche

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale

SYSNLS_FUNCTION