IdnToNameprepUnicode 関数 (winnls.h)
国際化ドメイン名 (IDN) または別の国際化ラベルを、ネットワーク作業グループ RFC 3491 で指定された NamePrep フォームに変換しますが、Punycode への追加の変換は実行しません。 関連するドラフト標準の詳細とリンクについては、「 国際化ドメイン名 (IDN) の処理」を参照してください。
構文
int IdnToNameprepUnicode(
[in] DWORD dwFlags,
[in] LPCWSTR lpUnicodeCharStr,
[in] int cchUnicodeChar,
[out, optional] LPWSTR lpNameprepCharStr,
[in] int cchNameprepChar
);
パラメーター
[in] dwFlags
変換オプションを指定するフラグ。 詳細な定義については、IdnToAscii の dwFlags パラメーターを参照してください。
[in] lpUnicodeCharStr
IDN または他の国際化されたラベルを表す Unicode 文字列へのポインター。
[in] cchUnicodeChar
lpUnicodeCharStr で示される入力 Unicode 文字列内の Unicode 文字の数。
[out, optional] lpNameprepCharStr
NamePrep 処理によって変換された入力 Unicode 文字列のバージョンを受け取るバッファーへのポインター。 または、cchNameprepChar が 0 に設定されている場合、このパラメーターの NULL を取得することもできます。 この場合、 関数は、このバッファーに必要なサイズを返します。
[in] cchNameprepChar
lpNameprepCharStr で示されるバッファーのサイズ (文字数)。 アプリケーションでは、サイズを 0 に設定して lpNameprepCharStr 内の NULL を取得し、関数から必要なバッファー サイズを返すことができます。
戻り値
成功した場合に lpNameprepCharStr で取得した文字数を返します。 取得した文字列は、入力 Unicode 文字列が null で終わる場合にのみ null で終了します。
関数が成功し、 cchNameprepChar の値が 0 の場合、関数は、入力バッファーの一部である場合は、終端の null 文字を含む文字で、必要なサイズを返します。
成功しなかった場合、関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。このエラー コードは、次のいずれかのエラー コードを返すことができます。
- ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分な大きさではなかったか、 正しく NULL に設定されていません。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効です。
- ERROR_INVALID_NAME。 関数に無効な名前が指定されました。 このエラー コードでは、すべての構文エラーがキャッチされることに注意してください。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
- ERROR_NO_UNICODE_TRANSLATION。 文字列に無効な Unicode が見つかりました。
解説
「IdnToAscii の解説」を参照してください。
例
NLS: 国際化ドメイン名 (IDN) 変換サンプル は、この関数の使用を示しています。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Normaliz.lib |
[DLL] | Normaliz.dll |
再頒布可能パッケージ | Microsoft Internationalized Domain Name (IDN) 軽減 API on Windows XP with SP2 以降、または Windows Server 2003 sp1 |