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.

193 lines
4.2 KiB

  1. /***********************************************************************
  2. *
  3. * _ABCONT.H
  4. *
  5. * Header file for code in ABCONT.C
  6. *
  7. * Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved.
  8. *
  9. ***********************************************************************/
  10. /* Function prototypes */
  11. /*
  12. * Reuses methods:
  13. * ROOT_QueryInterface
  14. * ROOT_AddRef
  15. * ROOT_GetLastError
  16. * WRAP_GetProps
  17. * WRAP_GetPropList
  18. * WRAP_SetProps
  19. * WRAP_DeleteProps
  20. * WRAP_CopyTo
  21. * WRAP_CopyProps
  22. * WRAP_GetNamesFromIDs
  23. * WRAP_GetIDsFromNames
  24. * ROOT_OpenEntry
  25. * ROOT_SetSearchCriteria
  26. * ROOT_GetSearchCriteria
  27. * ROOT_CreateEntry
  28. * ROOT_CopyEntries
  29. * ROOT_DeleteEntries
  30. */
  31. #undef INTERFACE
  32. #define INTERFACE struct _ABCNT
  33. #undef MAPIMETHOD_
  34. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ABC_)
  35. MAPI_IUNKNOWN_METHODS(IMPL)
  36. MAPI_IMAPIPROP_METHODS(IMPL)
  37. MAPI_IMAPICONTAINER_METHODS(IMPL)
  38. MAPI_IABCONTAINER_METHODS(IMPL)
  39. #undef MAPIMETHOD_
  40. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ABC_)
  41. MAPI_IUNKNOWN_METHODS(IMPL)
  42. MAPI_IMAPIPROP_METHODS(IMPL)
  43. MAPI_IMAPICONTAINER_METHODS(IMPL)
  44. MAPI_IABCONTAINER_METHODS(IMPL)
  45. #undef MAPIMETHOD_
  46. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  47. DECLARE_MAPI_INTERFACE(ABC_)
  48. {
  49. MAPI_IUNKNOWN_METHODS(IMPL)
  50. MAPI_IMAPIPROP_METHODS(IMPL)
  51. MAPI_IMAPICONTAINER_METHODS(IMPL)
  52. MAPI_IABCONTAINER_METHODS(IMPL)
  53. };
  54. typedef struct _ABCNT
  55. {
  56. const ABC_Vtbl FAR * lpVtbl;
  57. FAB_Wrapped;
  58. /* details display table */
  59. LPTABLEDATA lpTDatDetails;
  60. } ABCNT, *LPABCNT;
  61. #define CBABC sizeof(ABCNT)
  62. /*
  63. *
  64. * Declaration of button control on Directory Details
  65. *
  66. */
  67. #undef INTERFACE
  68. #define INTERFACE struct _ABCBUTT
  69. #undef MAPIMETHOD_
  70. #define MAPIMETHOD_(type,method) MAPIMETHOD_DECLARE(type,method,ABCBUTT_)
  71. MAPI_IUNKNOWN_METHODS(IMPL)
  72. MAPI_IMAPICONTROL_METHODS(IMPL)
  73. #undef MAPIMETHOD_
  74. #define MAPIMETHOD_(type,method) MAPIMETHOD_TYPEDEF(type,method,ABCBUTT_)
  75. MAPI_IUNKNOWN_METHODS(IMPL)
  76. MAPI_IMAPICONTROL_METHODS(IMPL)
  77. #undef MAPIMETHOD_
  78. #define MAPIMETHOD_(type,method) STDMETHOD_(type,method)
  79. DECLARE_MAPI_INTERFACE(ABCBUTT_)
  80. {
  81. MAPI_IUNKNOWN_METHODS(IMPL)
  82. MAPI_IMAPICONTROL_METHODS(IMPL)
  83. };
  84. /*
  85. * Creates a new directory container object (see ABCONT.C)
  86. */
  87. HRESULT
  88. HrNewFaxDirectory( LPABCONT * lppABC,
  89. ULONG * lpulObjType,
  90. LPABLOGON lpABPLogon,
  91. LPCIID lpInterface,
  92. HINSTANCE hLibrary,
  93. LPALLOCATEBUFFER lpAllocBuff,
  94. LPALLOCATEMORE lpAllocMore,
  95. LPFREEBUFFER lpFreeBuff,
  96. LPMALLOC lpMalloc );
  97. /*
  98. * Button interface for buttons in the address book container UI
  99. */
  100. typedef struct _ABCBUTT
  101. {
  102. ABCBUTT_Vtbl FAR * lpVtbl;
  103. /*
  104. * Need to be the same as other objects
  105. * since this object reuses methods from
  106. * other objects.
  107. */
  108. FAB_IUnknown;
  109. /*
  110. * My parent container object
  111. */
  112. LPABCNT lpABC;
  113. /* Private data */
  114. } ABCBUTT, *LPABCBUTT;
  115. #define CBABCBUTT sizeof(ABCBUTT)
  116. /*
  117. * Declaration of IMAPIContainer object implementation
  118. * Code for this is in ABSEARCH.C
  119. */
  120. #undef INTERFACE
  121. #define INTERFACE struct _ABSRCH
  122. #undef MAPIMETHOD_
  123. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ABSRCH_)
  124. MAPI_IUNKNOWN_METHODS(IMPL)
  125. MAPI_IMAPIPROP_METHODS(IMPL)
  126. MAPI_IMAPICONTAINER_METHODS(IMPL)
  127. MAPI_IABCONTAINER_METHODS(IMPL)
  128. #undef MAPIMETHOD_
  129. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ABSRCH_)
  130. MAPI_IUNKNOWN_METHODS(IMPL)
  131. MAPI_IMAPIPROP_METHODS(IMPL)
  132. MAPI_IMAPICONTAINER_METHODS(IMPL)
  133. MAPI_IABCONTAINER_METHODS(IMPL)
  134. #undef MAPIMETHOD_
  135. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  136. DECLARE_MAPI_INTERFACE(ABSRCH_)
  137. {
  138. MAPI_IUNKNOWN_METHODS(IMPL)
  139. MAPI_IMAPIPROP_METHODS(IMPL)
  140. MAPI_IMAPICONTAINER_METHODS(IMPL)
  141. };
  142. /*
  143. * Structure for the 'this'
  144. */
  145. typedef struct _ABSRCH
  146. {
  147. const ABSRCH_Vtbl FAR * lpVtbl;
  148. FAB_Wrapped;
  149. /* Private data */
  150. LPSPropValue lpRestrictData;
  151. } ABSRCH, *LPABSRCH;