wabapi.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _WABAPI_H_
  7. #define _WABAPI_H_
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. typedef struct _WABACTIONITEM *LPWABACTIONITEM;
  12. #define CBIWABOBJECT sizeof(IWABOBJECT)
  13. #define WAB_IWABOBJECT_METHODS(IPURE) MAPIMETHOD(GetLastError) (THIS_ HRESULT hResult,ULONG ulFlags,LPMAPIERROR *lppMAPIError) IPURE; MAPIMETHOD(AllocateBuffer) (THIS_ ULONG cbSize,LPVOID *lppBuffer) IPURE; MAPIMETHOD(AllocateMore) (THIS_ ULONG cbSize,LPVOID lpObject,LPVOID *lppBuffer) IPURE; MAPIMETHOD(FreeBuffer) (THIS_ LPVOID lpBuffer) IPURE; MAPIMETHOD(Backup) (THIS_ LPSTR lpFileName) IPURE; MAPIMETHOD(Import) (THIS_ LPSTR lpImportParam) IPURE; MAPIMETHOD(Find) (THIS_ LPADRBOOK lpIAB,HWND hWnd) IPURE; MAPIMETHOD(VCardDisplay) (THIS_ LPADRBOOK lpIAB,HWND hWnd,LPSTR lpszFileName) IPURE; MAPIMETHOD(LDAPUrl) (THIS_ LPADRBOOK lpIAB,HWND hWnd,ULONG ulFlags,LPSTR lpszURL,LPMAILUSER *lppMailUser) IPURE; MAPIMETHOD(VCardCreate) (THIS_ LPADRBOOK lpIAB,ULONG ulFlags,LPSTR lpszVCard,LPMAILUSER lpMailUser) IPURE; MAPIMETHOD(VCardRetrieve) (THIS_ LPADRBOOK lpIAB,ULONG ulFlags,LPSTR lpszVCard,LPMAILUSER *lppMailUser) IPURE; MAPIMETHOD(GetMe) (THIS_ LPADRBOOK lpIAB,ULONG ulFlags,DWORD *lpdwAction,SBinary *lpsbEID,ULONG ulParam) IPURE; MAPIMETHOD(SetMe) (THIS_ LPADRBOOK lpIAB,ULONG ulFlags,SBinary sbEID,ULONG ulParam) IPURE;
  14. #undef INTERFACE
  15. #define INTERFACE IWABObject
  16. DECLARE_MAPI_INTERFACE_(IWABObject,IUnknown) {
  17. BEGIN_INTERFACE
  18. MAPI_IUNKNOWN_METHODS(PURE)
  19. WAB_IWABOBJECT_METHODS(PURE)
  20. };
  21. DECLARE_MAPI_INTERFACE_PTR(IWABObject,LPWABOBJECT);
  22. #undef INTERFACE
  23. #define INTERFACE struct _IWABOBJECT
  24. #undef METHOD_PREFIX
  25. #define METHOD_PREFIX IWABOBJECT_
  26. #undef LPVTBL_ELEM
  27. #define LPVTBL_ELEM lpvtbl
  28. #undef MAPIMETHOD_
  29. #define MAPIMETHOD_(type,method) MAPIMETHOD_DECLARE(type,method,IWABOBJECT_)
  30. MAPI_IUNKNOWN_METHODS(IMPL)
  31. WAB_IWABOBJECT_METHODS(IMPL)
  32. #undef MAPIMETHOD_
  33. #define MAPIMETHOD_(type,method) MAPIMETHOD_TYPEDEF(type,method,IWABOBJECT_)
  34. MAPI_IUNKNOWN_METHODS(IMPL)
  35. WAB_IWABOBJECT_METHODS(IMPL)
  36. #undef MAPIMETHOD_
  37. #define MAPIMETHOD_(type,method) STDMETHOD_(type,method)
  38. DECLARE_MAPI_INTERFACE(IWABOBJECT_)
  39. {
  40. BEGIN_INTERFACE
  41. MAPI_IUNKNOWN_METHODS(IMPL)
  42. WAB_IWABOBJECT_METHODS(IMPL)
  43. };
  44. #define WABOBJECT_LDAPURL_RETURN_MAILUSER 0x00000001
  45. #define WABOBJECT_ME_NEW 0x00000001
  46. #define WABOBJECT_ME_NOCREATE 0x00000002
  47. #define WAB_VCARD_FILE 0x00000000
  48. #define WAB_VCARD_STREAM 0x00000001
  49. typedef struct _tagWAB_PARAM {
  50. ULONG cbSize;
  51. HWND hwnd;
  52. LPSTR szFileName;
  53. ULONG ulFlags;
  54. GUID guidPSExt;
  55. } WAB_PARAM,*LPWAB_PARAM;
  56. #define WAB_USE_OE_SENDMAIL 0x00000001
  57. #define WAB_ENABLE_PROFILES 0x00400000
  58. STDMETHODIMP WABOpen(LPADRBOOK *lppAdrBook,LPWABOBJECT *lppWABObject,LPWAB_PARAM lpWP,DWORD Reserved2);
  59. typedef HRESULT (WINAPI WABOPEN)(LPADRBOOK *lppAdrBook,LPWABOBJECT *lppWABObject,LPWAB_PARAM lpWP,DWORD Reserved2);
  60. typedef WABOPEN *LPWABOPEN;
  61. STDMETHODIMP WABOpenEx(LPADRBOOK *lppAdrBook,LPWABOBJECT *lppWABObject,LPWAB_PARAM lpWP,DWORD Reserved,ALLOCATEBUFFER *fnAllocateBuffer,ALLOCATEMORE *fnAllocateMore,FREEBUFFER *fnFreeBuffer);
  62. typedef HRESULT (WINAPI WABOPENEX)(LPADRBOOK *lppAdrBook,LPWABOBJECT *lppWABObject,LPWAB_PARAM lpWP,DWORD Reserved,ALLOCATEBUFFER *fnAllocateBuffer,ALLOCATEMORE *fnAllocateMore,FREEBUFFER *fnFreeBuffer);
  63. typedef WABOPENEX *LPWABOPENEX;
  64. typedef struct _WABIMPORTPARAM {
  65. ULONG cbSize;
  66. LPADRBOOK lpAdrBook;
  67. HWND hWnd;
  68. ULONG ulFlags;
  69. LPSTR lpszFileName;
  70. } WABIMPORTPARAM,*LPWABIMPORTPARAM;
  71. #define WAB_DISPLAY_LDAPURL 0x00000001
  72. #define WAB_CONTEXT_ADRLIST 0x00000002
  73. #define WAB_DISPLAY_ISNTDS 0x00000004
  74. typedef struct _WABEXTDISPLAY {
  75. ULONG cbSize;
  76. LPWABOBJECT lpWABObject;
  77. LPADRBOOK lpAdrBook;
  78. LPMAPIPROP lpPropObj;
  79. WINBOOL fReadOnly;
  80. WINBOOL fDataChanged;
  81. ULONG ulFlags;
  82. LPVOID lpv;
  83. LPTSTR lpsz;
  84. } WABEXTDISPLAY,*LPWABEXTDISPLAY;
  85. #define WAB_IWABEXTINIT_METHODS(IPURE) MAPIMETHOD(Initialize) (THIS_ LPWABEXTDISPLAY lpWABExtDisplay) IPURE;
  86. #undef INTERFACE
  87. #define INTERFACE IWABExtInit
  88. DECLARE_MAPI_INTERFACE_(IWABExtInit,IUnknown) {
  89. BEGIN_INTERFACE
  90. MAPI_IUNKNOWN_METHODS(PURE)
  91. WAB_IWABEXTINIT_METHODS(PURE)
  92. };
  93. DECLARE_MAPI_INTERFACE_PTR(IWABExtInit,LPWABEXTINIT);
  94. DEFINE_GUID(IID_IWABExtInit,0xea22ebf0,0x87a4,0x11d1,0x9a,0xcf,0x0,0xa0,0xc9,0x1f,0x9c,0x8b);
  95. #define WAB_DLL_NAME TEXT("WAB32.DLL")
  96. #define WAB_DLL_PATH_KEY TEXT("Software\\Microsoft\\WAB\\DLLPath")
  97. #ifdef __cplusplus
  98. }
  99. #endif
  100. #endif