Instead of using the SELECTOROF macro in the OS2DEF.H header file, use one of the following two macros to obtain the selector of a 16:16 address :

  #define SELECTOROF(p)   (((PUSHORT)&(p))[1])
  OR
  #define SELECTOROF(p)   ((ULONG)(p)>>16)

If you use the selector returned from one of the above macros with the OFFSETOF and MAKEP macros in the OS2DEF.H header file, you can successfully convert a 16:16 address to a 0:32 address.


[Back] [Next]