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.

65 lines
1.6 KiB

  1. #ifdef __cplusplus
  2. extern "C" {
  3. #endif
  4. /*
  5. * Declaration of IMAPIStatus object implementation
  6. */
  7. #undef INTERFACE
  8. #define INTERFACE struct _ABSTATUS
  9. #undef MAPIMETHOD_
  10. #define MAPIMETHOD_(type, method) MAPIMETHOD_DECLARE(type, method, ABS_)
  11. MAPI_IUNKNOWN_METHODS(IMPL)
  12. MAPI_IMAPIPROP_METHODS(IMPL)
  13. MAPI_IMAPISTATUS_METHODS(IMPL)
  14. #undef MAPIMETHOD_
  15. #define MAPIMETHOD_(type, method) MAPIMETHOD_TYPEDEF(type, method, ABS_)
  16. MAPI_IUNKNOWN_METHODS(IMPL)
  17. MAPI_IMAPIPROP_METHODS(IMPL)
  18. MAPI_IMAPISTATUS_METHODS(IMPL)
  19. #undef MAPIMETHOD_
  20. #define MAPIMETHOD_(type, method) STDMETHOD_(type, method)
  21. DECLARE_MAPI_INTERFACE(ABS_)
  22. {
  23. MAPI_IUNKNOWN_METHODS(IMPL)
  24. MAPI_IMAPIPROP_METHODS(IMPL)
  25. MAPI_IMAPISTATUS_METHODS(IMPL)
  26. };
  27. /*
  28. * The actual definition of the structure behind the 'this' pointer for this object
  29. */
  30. typedef struct _ABSTATUS
  31. {
  32. const ABS_Vtbl FAR * lpVtbl;
  33. FAB_Wrapped;
  34. } ABSTATUS, *LPABSTATUS;
  35. #define CBABSTATUS sizeof(ABSTATUS)
  36. /*
  37. * Creates a new status object for this provider (see STATUS.C)
  38. */
  39. HRESULT
  40. HrNewStatusObject(LPMAPISTATUS * lppABS,
  41. ULONG * lpulObjType,
  42. ULONG ulFlags,
  43. LPABLOGON lpABPLogon,
  44. LPCIID lpInterface,
  45. HINSTANCE hLibrary,
  46. LPALLOCATEBUFFER lpAllocBuff,
  47. LPALLOCATEMORE lpAllocMore,
  48. LPFREEBUFFER lpFreeBuff,
  49. LPMALLOC lpMalloc );
  50. #ifdef __cplusplus
  51. } /* extern "C" */
  52. #endif