in NMHDR is defined as follows:
typedef struct _nmhdr
{
HWND hwndFrom;
UINT idFrom;
UINT code;
} NMHDR;
in , it is defined as :
typedef struct tagNMHDR
{
HWND hwndFrom;
UINT_PTR idFrom;
UINT code; // NM_ code
} NMHDR;
note that IdFrom went from being a UINT in richedit.h to a UINT_PTR in winuser.h
when compiling for 32bit that won't make a difference but, when compiling for 64bit, the winuser.h idFrom is going to be 4 bytes larger than the richedit.h idFrom.
I suspect that I must be missing something because a difference in size of 4 bytes between the two structures would have broken a fair amount of code out there but, I don't see how that conflict is resolved.
I would appreciate an explanation of how these two seemingly incompatible definitions can coexist. Thank you for your help.
