2) Не читал MSDN - это тоже неправильно
WM_SETTEXT Message
--------------------------------------------------------------------------------
An application sends a WM_SETTEXT message to set the text of a window.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) WM_SETTEXT, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) () lParam; );
Parameters
wParam This parameter is not used.
lParam Pointer to a null-terminated string that is the window text.
--------------------------------------------------------------------------------
An application sends a WM_SETTEXT message to set the text of a window.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) WM_SETTEXT, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) () lParam; );
Parameters
wParam This parameter is not used.
lParam Pointer to a null-terminated string that is the window text.
3) Как вывод - ты не установил в lParam того самого Pointer-а to a null-terminated string that is the window text