GetWindowTextLengthW

指定したウィンドウのタイトルバーテキストの長さ(文字数)を取得する(タイトルバーがある場合)。(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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs