Leaked source code of windows server 2003
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.

98 lines
2.0 KiB

  1. //
  2. // _WABOBJ.H
  3. //
  4. // Internal interface for IWABOBJECT
  5. //
  6. //
  7. #include <mpswab.h>
  8. //
  9. // Function prototypes
  10. //
  11. #undef INTERFACE
  12. #define INTERFACE struct _IWOINT
  13. #undef METHOD_PREFIX
  14. #define METHOD_PREFIX IWOINT_
  15. #undef LPVTBL_ELEM
  16. #define LPVTBL_ELEM lpvtbl
  17. #undef MAPIMETHOD_
  18. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, IWOINT_)
  19. MAPI_IUNKNOWN_METHODS(IMPL)
  20. WAB_IWABOBJECT_METHODS(IMPL)
  21. #undef MAPIMETHOD_
  22. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, IWOINT_)
  23. MAPI_IUNKNOWN_METHODS(IMPL)
  24. WAB_IWABOBJECT_METHODS(IMPL)
  25. #undef MAPIMETHOD_
  26. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  27. DECLARE_MAPI_INTERFACE(IWOINT_)
  28. {
  29. BEGIN_INTERFACE
  30. MAPI_IUNKNOWN_METHODS(IMPL)
  31. WAB_IWABOBJECT_METHODS(IMPL)
  32. };
  33. #ifdef OLD_STUFF
  34. /* Generic part of property linked lists.
  35. */
  36. typedef struct _lstlnk {
  37. struct _lstlnk FAR * lpNext;
  38. ULONG ulKey;
  39. } LSTLNK, FAR * LPLSTLNK;
  40. typedef LPLSTLNK FAR * LPPLSTLNK;
  41. /* Linked list of property values.
  42. */
  43. typedef struct _lstspv {
  44. LSTLNK lstlnk;
  45. LPSPropValue lpPropVal;
  46. ULONG ulAccess;
  47. } LSTSPV, FAR * LPLSTSPV;
  48. #define CBLSTSPV sizeof(LSTSPV)
  49. /* Linked list of property ID to NAME mappings.
  50. */
  51. typedef struct _lstspn {
  52. LSTLNK lstlnk;
  53. LPMAPINAMEID lpPropName;
  54. } LSTSPN, FAR * LPLSTSPN;
  55. #endif
  56. typedef struct _IWOINT {
  57. IWOINT_Vtbl FAR * lpVtbl;
  58. // Generic IMAPIUnknown portion
  59. UNKOBJ_MEMBERS;
  60. UNKINST inst;
  61. //
  62. // Says whether or not this object (as a whole) is modifiable
  63. //
  64. ULONG ulObjAccess;
  65. //
  66. // Structure which stores a handle and a refcount of the open property store
  67. //
  68. LPPROPERTY_STORE lpPropertyStore;
  69. // Stores a handle to the outlook-wab library module
  70. LPOUTLOOK_STORE lpOutlookStore;
  71. // Boolean set if this object created inside and Outlook session, i.e., the
  72. // WAB is set to use the Outlook MAPI allocators.
  73. BOOL bSetOLKAllocators;
  74. } IWOINT, *LPIWOINT;
  75. #define CBIWOINT sizeof(IWOINT)