指定したウィンドウのタイトルバーテキストの長さ(文字数)を取得する(タイトルバーがある場合)。(Unicode)
GetWindowTextLengthW hWnd
hWnd : [intptr] 型: HWND ウィンドウまたはコントロールへのハンドル。
(プラグイン / モジュール : user32.dll)
指定したウィンドウのタイトルバーテキストの長さ(文字数)を取得する(タイトルバーがある場合)。(Unicode) [戻り値] 型: int 関数が成功した場合、戻り値はテキストの長さ(文字数)である。条件によってはこの値が実際のテキスト長より大きいことがある(備考参照)。ウィンドウにテキストが無い場合、戻り値はゼロである。関数の失敗は、戻り値がゼロかつ GetLastError の結果が非ゼロであることで示される。 > [!NOTE] > この関数は直近のエラー情報をクリアしない。成否を判定するには、まず SetLastError(0) で直近のエラー情報をクリアしてから GetLastError を呼ぶ。 [備考] 対象ウィンドウが現在のプロセスの所有物である場合、GetWindowTextLength はそのウィンドウまたはコントロールに WM_GETTEXTLENGTH メッセージを送る。特定条件下で、GetWindowTextLength は実際のテキスト長より大きい値を返すことがある。これは ANSI と Unicode の混在時に、システムがテキスト中に DBCS 文字が存在する可能性を考慮するために発生する。ただし戻り値は常に実際の長さ以上になるため、バッファ確保の目安としては常に使える。この挙動は、アプリケーションが Unicode を使う共通ダイアログと ANSI 関数を混在させるときに起こり得る。また、ANSI 版 GetWindowTextLength を Unicode のウィンドウプロシージャを持つウィンドウに、もしくは Unicode 版を ANSI のウィンドウプロシージャを持つウィンドウに使うときにも起こる。ANSI と ANSI 関数の詳細は Conventions for Function Prototypes を参照。テキストの正確な長さを得るには、WM_GETTEXT, LB_GETTEXT, CB_GETLBTEXT メッセージや GetWindowText 関数を使う。 > [!NOTE] > winuser.h ヘッダは GetWindowTextLength を、UNICODE プリプロセッサ定数の定義に応じて ANSI 版と Unicode 版を自動選択するエイリアスとして定義する。エンコーディングに依存するコードと、エンコーディング中立なエイリアスの混在は、コンパイルエラーや実行時エラーの原因となる。詳しくは [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes) を参照。
| プラグイン / モジュール | user32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_user32_gen2.hs |