Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.7 KiB

  1. /*++
  2. (C) Copyright Microsoft Corporation 1988-1992
  3. Module Name:
  4. common.h
  5. Author:
  6. Floyd A Rogers 2/7/92
  7. Revision History:
  8. Floyd Rogers
  9. Created
  10. --*/
  11. #define IN
  12. #define OUT
  13. #define INOUT
  14. //
  15. // An ID_WORD indicates the following WORD is an ordinal rather
  16. // than a string
  17. //
  18. #define ID_WORD 0xffff
  19. typedef struct _STRING {
  20. DWORD discriminant; // long to make the rest of the struct aligned
  21. union u {
  22. struct {
  23. struct _STRING *pnext;
  24. DWORD ulOffsetToString;
  25. USHORT cbD;
  26. USHORT cb;
  27. WCHAR sz[1];
  28. } ss;
  29. WORD Ordinal;
  30. } uu;
  31. } STRING, *PSTRING, **PPSTRING;
  32. #define IS_STRING 1
  33. #define IS_ID 2
  34. // defines to make deferencing easier
  35. #define OffsetToString uu.ss.ulOffsetToString
  36. #define cbData uu.ss.cbD
  37. #define cbsz uu.ss.cb
  38. #define szStr uu.ss.sz
  39. #define pn uu.ss.pnext
  40. typedef struct _RESNAME {
  41. struct _RESNAME *pnext; // The first three fields should be the
  42. PSTRING Name; // same in both res structures
  43. DWORD OffsetToData; //
  44. PSTRING Type;
  45. struct _RESNAME *pnextRes;
  46. RESADDITIONAL *pAdditional;
  47. DWORD OffsetToDataEntry;
  48. USHORT ResourceNumber;
  49. USHORT NumberOfLanguages;
  50. POBJLST pObjLst;
  51. } RESNAME, *PRESNAME, **PPRESNAME;
  52. typedef struct _RESTYPE {
  53. struct _RESTYPE *pnext; // The first three fields should be the
  54. PSTRING Type; // same in both res structures
  55. DWORD OffsetToData; //
  56. struct _RESNAME *NameHeadID;
  57. struct _RESNAME *NameHeadName;
  58. DWORD NumberOfNamesID;
  59. DWORD NumberOfNamesName;
  60. POBJLST pObjLst;
  61. } RESTYPE, *PRESTYPE, **PPRESTYPE;