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
Supporto per la lingua nazionale