Desktop Functions:

   Smart Device Functions:

Show Recent Changes
Subscribe (RSS)
Misc. Pages
Helpful Tools
Suggested Reading
Website TODO List
Support Forum
Download Visual Studio Add-In

Terms of Use
Privacy Policy
getwindowtextlength (user32)

C# Signature:

/// <summary>
///     Retrieves the length, in characters, of the specified window's title bar text (if the window has a title bar). If
///     the specified window is a control, the function retrieves the length of the text within the control. However,
///     GetWindowTextLength cannot retrieve the length of the text of an edit control in another application.
///     <para>
///     Go to for more
///     information
///     </para>
/// </summary>
/// <param name="hWnd">C++ ( hWnd [in]. Type: HWND )<br />A <see cref="IntPtr" /> handle to the window or control.</param>
/// <returns>
///     If the function succeeds, the return value is the length, in characters, of the text. Under certain
///     conditions, this value may actually be greater than the length of the text.<br />For more information, see the
///     following Remarks section. If the window has no text, the return value is zero.To get extended error information,
///     call GetLastError.
/// </returns>
/// <remarks>
///     If the target window is owned by the current process, <see cref="GetWindowTextLength" /> causes a
///     WM_GETTEXTLENGTH message to be sent to the specified window or control.<br />Under certain conditions, the
///     <see cref="GetWindowTextLength" /> function may return a value that is larger than the actual length of the
///     text.This occurs with certain mixtures of ANSI and Unicode, and is due to the system allowing for the possible
///     existence of double-byte character set (DBCS) characters within the text. The return value, however, will always be
///     at least as large as the actual length of the text; you can thus always use it to guide buffer allocation. This
///     behavior can occur when an application uses both ANSI functions and common dialogs, which use Unicode.It can also
///     occur when an application uses the ANSI version of <see cref="GetWindowTextLength" /> with a window whose window
///     procedure is Unicode, or the Unicode version of <see cref="GetWindowTextLength" /> with a window whose window
///     procedure is ANSI.<br />For more information on ANSI and ANSI functions, see Conventions for Function Prototypes.
///     <br />To obtain the exact length of the text, use the WM_GETTEXT, LB_GETTEXT, or CB_GETLBTEXT messages, or the
///     GetWindowText function.
/// </remarks>
[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern int GetWindowTextLength(IntPtr hWnd);

VB.NET Signature:

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) As Integer
End Function

Oxygene.NET Signature:

[DllImport("user32.dll", SetLastError := true, CharSet := CharSet.Auto)]
class method GetWindowTextLength(hWnd: IntPtr): Int32; external;

VB Signature:

Public Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" _
         (ByVal hWnd As Long) As Long

User-Defined Types:




Tips & Tricks:

Often used with GetWindowText

Sample Code:

(See GetWindowText.)

Alternative Managed API:

Do you know one? Please contribute it!


Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

Access directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version