При попытке перекомпиляции 32-битного Windows приложения для 64-битной системы, большое количество ошибок компиляции связано с некорректными аргументами функций. Часто можно встретить ситуацию, когда в качестве аргументов функции в пользовательском коде используются типы UINT и LONG вместо WPARAM и LPARAM.
Пример:
//Объявление функции в классе
virtual LRESULT OnTrayNotification(WPARAM uID, LPARAM lEvent);
//Реализация функции
LRESULT CSystemTray::OnTrayNotification(UINT wParam, LONG lParam)
В Win32 тип WPARAM совпадает с UINT, а LPARAM с LONG. В Win64 это разные типы и код необходимо скорректировать. Смотрите по этой теме также запись "Распространенная ошибка при компиляции 64-битного приложения: error C2440, OnTimer".