In Windows, LRESULT is now declared as LONG_PTR, which is a polymorphic type. This type resolves to a long in 32-bit builds only. On 64-bit Windows, LRESULT is 64 bits. Therefore, LRESULT parameters cannot be declared as long or int types, and LRESULT functions cannot be declared to return long or int types.
This may impact your custom Windows message handlers. For example, ON_MESSAGE (message, memberFxn) handles the user-defined message message. The type of the message handler function memberFxn must be LRESULT, as defined by the function pointer template shown below:
afx_msg LRESULT (CWnd::*) (WPARAM, LPARAM)
If you define message handlers that return 32-bit values such as LONG, you should redefine them to return LRESULT.