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.

171 lines
3.7 KiB

  1. /***********************************************************************
  2. *
  3. * _ABUSER.H
  4. *
  5. * Header file for code in ABUSER.C
  6. *
  7. * Copyright 1992, 1993 Microsoft Corporation. All Rights Reserved.
  8. *
  9. ***********************************************************************/
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. /*
  14. * Function prototypes
  15. *
  16. * Reuses methods:
  17. * ROOT_QueryInterface
  18. * ROOT_AddRef
  19. * ROOT_GetLastError
  20. * ROOT_Reserved
  21. */
  22. #undef INTERFACE
  23. #define INTERFACE struct _ABUSER
  24. #undef MAPIMETHOD_
  25. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ABU_)
  26. MAPI_IUNKNOWN_METHODS(IMPL)
  27. MAPI_IMAPIPROP_METHODS(IMPL)
  28. MAPI_IMAILUSER_METHODS(IMPL)
  29. #undef MAPIMETHOD_
  30. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ABU_)
  31. MAPI_IUNKNOWN_METHODS(IMPL)
  32. MAPI_IMAPIPROP_METHODS(IMPL)
  33. MAPI_IMAILUSER_METHODS(IMPL)
  34. #undef MAPIMETHOD_
  35. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  36. DECLARE_MAPI_INTERFACE(ABU_)
  37. {
  38. MAPI_IUNKNOWN_METHODS(IMPL)
  39. MAPI_IMAPIPROP_METHODS(IMPL)
  40. MAPI_IMAILUSER_METHODS(IMPL)
  41. };
  42. typedef struct _ABUSER
  43. {
  44. ABU_Vtbl FAR * lpVtbl;
  45. FAB_Wrapped;
  46. /*
  47. * Table used for country codes drop down list
  48. */
  49. LPTABLEDATA lpTDatDDListBox;
  50. } ABUSER, *LPABUSER;
  51. #define CBABUSER sizeof(ABUSER)
  52. /*
  53. * Creates a new Mail User object (see ABUSER.C)
  54. */
  55. HRESULT
  56. HrNewFaxUser( LPMAILUSER * lppMAPIPropEntry,
  57. ULONG * lpulObjectType,
  58. ULONG cbEntryID,
  59. LPENTRYID lpEntryID,
  60. LPABLOGON lpABPLogon,
  61. LPCIID lpInterface,
  62. HINSTANCE hLibrary,
  63. LPALLOCATEBUFFER lpAllocBuff,
  64. LPALLOCATEMORE lpAllocMore,
  65. LPFREEBUFFER lpFreeBuff,
  66. LPMALLOC lpMalloc );
  67. HRESULT HrBuildDDLBXCountriesTable(LPABUSER lpABUser);
  68. // country list structure
  69. #define COUNTRY_NAME_SIZE 50
  70. typedef struct tagCOUNTRIESLIST
  71. {
  72. TCHAR szDisplayName[COUNTRY_NAME_SIZE+1];
  73. DWORD dwValue;
  74. } COUNTRIESLIST, *LPCOUNTRIESLIST;
  75. // Entry ID for the DD list box table
  76. typedef struct _options_entryid
  77. {
  78. BYTE abFlags[4];
  79. MAPIUID muid;
  80. ULONG ulVersion;
  81. ULONG ulType;
  82. ULONG ulRowNumber;
  83. } OPTIONS_ENTRYID, *LPOPTIONS_ENTRYID;
  84. #define CBOPTIONS_ENTRYID sizeof(OPTIONS_ENTRYID)
  85. /*
  86. *
  87. * Declaration of a button interface for various button controls
  88. *
  89. */
  90. #undef INTERFACE
  91. #define INTERFACE struct _ABUBUTT
  92. #undef MAPIMETHOD_
  93. #define MAPIMETHOD_(type,method) MAPIMETHOD_DECLARE(type,method,ABUBUTT_)
  94. MAPI_IUNKNOWN_METHODS(IMPL)
  95. MAPI_IMAPICONTROL_METHODS(IMPL)
  96. #undef MAPIMETHOD_
  97. #define MAPIMETHOD_(type,method) MAPIMETHOD_TYPEDEF(type,method,ABUBUTT_)
  98. MAPI_IUNKNOWN_METHODS(IMPL)
  99. MAPI_IMAPICONTROL_METHODS(IMPL)
  100. #undef MAPIMETHOD_
  101. #define MAPIMETHOD_(type,method) STDMETHOD_(type,method)
  102. DECLARE_MAPI_INTERFACE(ABUBUTT_)
  103. {
  104. MAPI_IUNKNOWN_METHODS(IMPL)
  105. MAPI_IMAPICONTROL_METHODS(IMPL)
  106. };
  107. typedef struct _ABUBUTT
  108. {
  109. ABUBUTT_Vtbl FAR * lpVtbl;
  110. /*
  111. * Need to be the same as other objects
  112. * since this object reuses methods from
  113. * other objects.
  114. */
  115. FAB_IUnkWithLogon;
  116. /* Private data */
  117. // The property tag associated with this button
  118. ULONG ulPropTag;
  119. } ABUBUTT, *LPABUBUTT;
  120. #define CBABUBUTT sizeof(ABUBUTT)
  121. /*
  122. * Create a button of the type above (ABUSER.C)
  123. */
  124. HRESULT
  125. HrNewABUserButton( LPMAPICONTROL * lppMAPICont,
  126. LPABLOGON lpABLogon,
  127. HINSTANCE hLibrary,
  128. LPALLOCATEBUFFER lpAllocBuff,
  129. LPALLOCATEMORE lpAllocMore,
  130. LPFREEBUFFER lpFreeBuff,
  131. LPMALLOC lpMalloc,
  132. ULONG ulPropTag);
  133. #ifdef __cplusplus
  134. } /* extern "C" */
  135. #endif