Приведите тип результата LocalLock и GlobalLock к соответствующему виду указателя данных. Параметры этих и других функций управления памятью должны при необходимости
приводиться к LOCALHANDLE или GLOBALHADLE.
Приведите результат GetWindowWord и GetWindowLong и параметры к SetWindowWord и SetWindowsLong.
При приведении типа SendMessage, DefWinmdowProc и
SendDlgItemMsg или любых других функций, которые возвращают LRESULT или LONG к какому-либо описателю вы должны сначала привести результат к UINT:
HBRUSH hbr;
hbr = (HBRUSH)(UINR)
SendMessage(hwnd WM_CTLCOLOR, ..., ...);
Параметр CreateWindow и CreateWindowEx функции hmenu иногда используются для передачи целочисленного управляющего
идентификатора. В этом случае вы должны привести тип к
HMENU:
HWND hwmd;
int id;
hwnd = CreateWindow("Button", "Ok", BS_PUSBUTTON,
x, y, cx, cy, hwndParent,
(HMENU)id, // здесь требуется приведение типа
hinst, NULL);
Полиморфические типы данных (WPARAM, LPARAM, LRESULT, void
FAR*) следует возможно скорее присваивать переменным. Избегайте использовать их в своих программах, когда тип значения известен. Это минимизирует число потенциально небезопасных и непереносимых в 32-разрядный режим преобразований типов. Макрокоманды API и механизмы обработки сообщений, предусмотренные в windowsx.h, будут выполнять практически всю упаковку и распаковку этих типов данных способом, обеспечивающим переносимость в 32-разрядный режим.
Ознакомьтесь с наиболее общими предупреждениями и ошибками
компилятора, которые вы можете обнаружить при переходе к