Okay, max 64 characters, but then I did a google search and found this :procedure TITrayIcon.SetHint(value: AnsiString);
var s1 : AnsiString;
begin
if CheckValid then begin
s1 := FNID.szTip;
StrPLCopy(FNID.szTip, value, 63);
if FVisible then begin
FNID.uFlags := NIF_TIP;
if not Shell_NotifyIcon(NIM_MODIFY, @FNID) then begin
StrPCopy(FNID.szTip, s1);
SetLastError(CErrorNo_Unknown, CErrorStr_Unknown);
end;
FNID.uFlags := 0;
end;
end;
end;
From Microsoft MSDN :
and from the ShellAPI.pas (Delphi 2007) :szTip
A null-terminated string that specifies the text for a standard ToolTip. It can have a maximum of 64 characters, including the terminating null character.
For Windows 2000 (Shell32.dll version 5.0) and later, szTip can have a maximum of 128 characters, including the terminating null character.
So the szTip should be 128 characters long, right ?_NOTIFYICONDATAW = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..127] of WideChar;
dwState: DWORD;
dwStateMask: DWORD;
szInfo: array [0..255] of WideChar;
uTimeout: UINT;
szInfoTitle: array [0..63] of WideChar;
dwInfoFlags: DWORD;
end;