C++ programmers use it all the time.
> error 42: Variable not declared, SNDMSG in 'listbox_addstring(hList, "just a test")
You must include "windows.bi" first.
> The Utf16$(ansi$) macro replaces around 20 lines of code with MultiByteToWideChar etc;
You can use overloaded functions to allow to pass the parameters as you wish, e.g.
Code: Select all
FUNCTION _SendMessage OVERLOAD (BYVAL hwnd AS HWND, BYVAL Msg AS UINT, BYVAL wParam AS WPARAM, BYVAL lParam AS LPARAM) AS LRESULT
FUNCTION = SendMessage(hwnd, Msg, wParam, lParam)
END FUNCTION
FUNCTION _SendMessage (BYVAL hwnd AS HWND, BYVAL Msg AS UINT, BYVAL wParam AS WPARAM, BYVAL lParam AS ANY PTR) AS LRESULT
FUNCTION = SendMessage(hwnd, Msg, wParam, cast(LPARAM, lParam))
END FUNCTION
FUNCTION _SendMessage (BYVAL hwnd AS HWND, BYVAL Msg AS UINT, BYVAL wParam AS WPARAM, BYVAL lParam AS LPCTSTR) AS LRESULT
FUNCTION = SendMessage(hwnd, Msg, wParam, cast(LPARAM, lParam))
END FUNCTION
FUNCTION _SendMessage (BYVAL hwnd AS HWND, BYVAL Msg AS UINT, BYVAL wParam AS ANY PTR, BYVAL lParam AS ANY PTR) AS LRESULT
FUNCTION = SendMessage(hwnd, Msg, cast(WPARAM, wParam), cast(LPARAM, lParam))
END FUNCTION
' [add more combinations]
Code: Select all
#define UNICODE
....
DIM s AS STRING = "Nabokov"
_SendMessage(hListBox, LB_ADDSTRING, 0, s)
_SendMessage(hListBox, LB_ADDSTRING, 0, "Набóков")