XPSTATUS.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  -  X P S T A T U S . H
  3.  -
  4.  *  Purpose:
  5.  *      Definitions, typedefs and prototypes used by the Sample Transport
  6.  *      Provider status interface.
  7.  *
  8.  *  Copyright 1992-1995 Microsoft Corporation.  All Rights Reserved.
  9.  */
  10. /* Local (not exported) functions */
  11. /*  Called at TransportLogon() time to register the Status 
  12.     Table row for this transport session. */
  13. HRESULT HrBuildTransportStatus (LPXPL lpSession, ULONG ulFlags);
  14. /*  Called at various times (send, receive, notify) to cause
  15.     the PR_STATUS_CODE property in the Status Table to be 
  16.     updated with a new value. */
  17. HRESULT HrUpdateTransportStatus (LPXPL lpSession, ULONG ulFlags);
  18. /* Status Object method prototypes */
  19. #undef  INTERFACE
  20. #define INTERFACE   struct _SOB
  21. #undef  MAPIMETHOD_
  22. #define MAPIMETHOD_(type, method)   MAPIMETHOD_DECLARE(type, method, SOB_)
  23.         MAPI_IUNKNOWN_METHODS(IMPL)
  24.         MAPI_IMAPIPROP_METHODS(IMPL)
  25.         MAPI_IMAPISTATUS_METHODS(IMPL)
  26. #undef  MAPIMETHOD_
  27. #define MAPIMETHOD_(type, method)   MAPIMETHOD_TYPEDEF(type, method, SOB_)
  28.         MAPI_IUNKNOWN_METHODS(IMPL)
  29.         MAPI_IMAPIPROP_METHODS(IMPL)
  30.         MAPI_IMAPISTATUS_METHODS(IMPL)
  31. #undef  MAPIMETHOD_
  32. #define MAPIMETHOD_(type, method)   STDMETHOD_(type, method)
  33. DECLARE_MAPI_INTERFACE(SOB_)
  34. {
  35.     MAPI_IUNKNOWN_METHODS(IMPL)
  36.     MAPI_IMAPIPROP_METHODS(IMPL)
  37.     MAPI_IMAPISTATUS_METHODS(IMPL)
  38. };
  39. /* Actual status object memory structure */
  40. typedef struct _SOB
  41. {
  42.     SOB_Vtbl FAR *      lpVtbl;         /* Call Table                           */
  43.     LONG                lcInit;         /* Usage Count                          */
  44.     struct _SOB *       lpsobMyAddress; /* Pointer to myself, used to validate  */
  45.     HRESULT             hrLastError;    /* Saved last error                     */
  46.     ULONG               ulOpenFlags;    /* Flags used to open the object        */
  47.     LPXPL               lpxpl;          /* XP Session associated with object    */
  48.     LPALLOCATEBUFFER    AllocateBuffer; /* MAPIAllocateBuffer func pointer      */
  49.     LPALLOCATEMORE      AllocateMore;   /* MAPIAllocateMore func pointer        */
  50.     LPFREEBUFFER        FreeBuffer;     /* MAPIFreeBuffer func pointer          */
  51.     LPMAPISUP           lpMAPISup;      /* Support object. So we can release it */
  52. } SOB, *LPSOB;
  53. STDMETHODIMP SOB_Reserved (LPSOB lpSOB);    /* All MAPI_E_NO_SUPPORT */
  54. STDMETHODIMP SOB_AccessDenied(LPSOB);       /* All MAPI_NO_ACCESS */