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 版本未變更, CompareStringLCMapString 所擷取的結果就會保證LCMAP_SORTKEY集相同。

規格需求

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

另請參閱

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

國家語言支援

國家語言支援函式

SYSNLS_FUNCTION