home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / dbmsg / mapi / peer.xp / xpstatus.h < prev    next >
Text File  |  1996-04-11  |  3KB  |  67 lines

  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.  
  11. /* Local (not exported) functions */
  12.  
  13. /*  Called at TransportLogon() time to register the Status 
  14.     Table row for this transport session. */
  15.  
  16. HRESULT HrBuildTransportStatus (LPXPL lpSession, ULONG ulFlags);
  17.  
  18. /*  Called at various times (send, receive, notify) to cause
  19.     the PR_STATUS_CODE property in the Status Table to be 
  20.     updated with a new value. */
  21.  
  22. HRESULT HrUpdateTransportStatus (LPXPL lpSession, ULONG ulFlags);
  23.  
  24. /* Status Object method prototypes */
  25.  
  26. #undef  INTERFACE
  27. #define INTERFACE   struct _SOB
  28.  
  29. #undef  MAPIMETHOD_
  30. #define MAPIMETHOD_(type, method)   MAPIMETHOD_DECLARE(type, method, SOB_)
  31.         MAPI_IUNKNOWN_METHODS(IMPL)
  32.         MAPI_IMAPIPROP_METHODS(IMPL)
  33.         MAPI_IMAPISTATUS_METHODS(IMPL)
  34. #undef  MAPIMETHOD_
  35. #define MAPIMETHOD_(type, method)   MAPIMETHOD_TYPEDEF(type, method, SOB_)
  36.         MAPI_IUNKNOWN_METHODS(IMPL)
  37.         MAPI_IMAPIPROP_METHODS(IMPL)
  38.         MAPI_IMAPISTATUS_METHODS(IMPL)
  39. #undef  MAPIMETHOD_
  40. #define MAPIMETHOD_(type, method)   STDMETHOD_(type, method)
  41.  
  42. DECLARE_MAPI_INTERFACE(SOB_)
  43. {
  44.     MAPI_IUNKNOWN_METHODS(IMPL)
  45.     MAPI_IMAPIPROP_METHODS(IMPL)
  46.     MAPI_IMAPISTATUS_METHODS(IMPL)
  47. };
  48.  
  49. /* Actual status object memory structure */
  50.  
  51. typedef struct _SOB
  52. {
  53.     SOB_Vtbl FAR *      lpVtbl;         /* Call Table                           */
  54.     LONG                lcInit;         /* Usage Count                          */
  55.     struct _SOB *       lpsobMyAddress; /* Pointer to myself, used to validate  */
  56.     HRESULT             hrLastError;    /* Saved last error                     */
  57.     ULONG               ulOpenFlags;    /* Flags used to open the object        */
  58.     LPXPL               lpxpl;          /* XP Session associated with object    */
  59.     LPALLOCATEBUFFER    AllocateBuffer; /* MAPIAllocateBuffer func pointer      */
  60.     LPALLOCATEMORE      AllocateMore;   /* MAPIAllocateMore func pointer        */
  61.     LPFREEBUFFER        FreeBuffer;     /* MAPIFreeBuffer func pointer          */
  62.     LPMAPISUP           lpMAPISup;      /* Support object. So we can release it */
  63. } SOB, *LPSOB;
  64.  
  65. STDMETHODIMP SOB_Reserved (LPSOB lpSOB);    /* All MAPI_E_NO_SUPPORT */
  66. STDMETHODIMP SOB_AccessDenied(LPSOB);       /* All MAPI_NO_ACCESS */
  67.