isNLSDefinedString 函式 (winnls.h)
判斷字串中的每個字元是否具有指定 NLS 功能的已定義結果。
語法
BOOL IsNLSDefinedString(
[in] NLS_FUNCTION Function,
[in] DWORD dwFlags,
[in] LPNLSVERSIONINFO lpVersionInformation,
[in] LPCWSTR lpString,
[in] INT cchStr
);
參數
[in] Function
要查詢的 NLS 功能。 此值必須COMPARE_STRING。 請參閱 SYSNLS_FUNCTION 列舉。
[in] dwFlags
定義函式的旗標。 必須是 0。
[in] lpVersionInformation
包含版本資訊的 NLSVERSIONINFO 結構的指標。 一般而言,藉由呼叫 GetNLSVersion來取得資訊。 如果函式是使用目前版本,應用程式會將此參數設定為 Null 。
[in] lpString
要檢查之 UTF-16 字串的指標。
[in] cchStr
lpString所指示之字串中的 UTF-16 個字元數目。 此計數可以包含終止的 Null 字元。 如果終止的 Null 字元包含在字元計數中,它不會影響檢查行為,因為一律會定義終止的 Null 字元。
應用程式應該提供 -1,以指出字串是以 Null 結束。 在此情況下,函式本身會計算字串長度。
傳回值
如果成功,則傳回 TRUE ,只有在輸入字串有效時,否則傳回 FALSE 。 若要取得擴充的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:
- ERROR_INSUFFICIENT_BUFFER。 提供的緩衝區大小不夠大,或設定為 Null不正確。
- ERROR_INVALID_FLAGS。 為旗標提供的值無效。
- ERROR_INVALID_PARAMETER。 任何參數值都無效。
備註
此函式會區分已定義和未定義的字串,讓 Active Directory 之類的應用程式可以拒絕具有未定義代碼點的字串。 使用 函式可將應用程式重新編制其資料庫索引的需求降到最低。 如需詳細資訊,請參閱 處理應用程式中的排序。
例如,如果 Function 設定為 COMPARE_STRING, IsNLSDefinedString 會檢查未定義的字碼點、代表未定義的 Unicode 字元的 Surrogate 字組或格式不正確的 Surrogate 字組。 如果函式針對特定字串傳回 TRUE ,則只要對應的 NLS 版本未變更, CompareString 或 LCMapString 所擷取的結果就會保證LCMAP_SORTKEY集相同。
規格需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winnls.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |