#define adgMEMBEROFFSET(structure, member) \
      (int) (&(((structure *)0)->member))
请问(structure*)0 是什么意思   为什么structure后用0
// Macros to compute the size and offset of structure members
#define adgMEMBEROFFSET(structure, member) \
   (int) (&(((structure *)0)->member))
// Macros to compute offsets and get/set window values based on the layout of
// a structure.
#define adgSETWINDOWWORD(hwnd, structure, member, value) \
  SetWindowWord(hwnd, adgMEMBEROFFSET(structure, member), (WORD) (value))
#define adgSETWINDOWLONG(hwnd, structure, member, value) \
  SetWindowLong(hwnd, adgMEMBEROFFSET(structure, member), (LONG) (value))
#define adgGETWINDOWWORD(hwnd, structure, member) \
  GetWindowWord(hwnd, adgMEMBEROFFSET(structure, member))
#define adgGETWINDOWLONG(hwnd, structure, member) \
  GetWindowLong(hwnd, adgMEMBEROFFSET(structure, member))