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 / xpoption.h < prev    next >
Text File  |  1996-04-11  |  2KB  |  65 lines

  1. /*
  2.  -  X P O P T I O N . H
  3.  -
  4.  *  Purpose:
  5.  *      Defines a wrapped implementation of an IMAPIProp interface
  6.  *      to be used by ScOptionDataCallBack() to wrap the IMAPIProp passed 
  7.  *      in.  This object is wrapped so we can effect the behavior of the 
  8.  *      OpenProperty() call.  Specifically, we wish to put up a Property 
  9.  *      Sheet when the user tries to open the PR_DETAILS_TABLE property.
  10.  *
  11.  *  Copyright 1992-1995 Microsoft Corporation.  All Rights Reserved.
  12.  */
  13.  
  14. /*
  15.  *  Wrapped IMAPIProp Interface declaration.
  16.  */
  17.  
  18. #undef  INTERFACE
  19. #define INTERFACE   struct _WMPROP
  20.  
  21. #undef  MAPIMETHOD_
  22. #define MAPIMETHOD_(type, method)   MAPIMETHOD_DECLARE(type, method, WMPROP_)
  23.         MAPI_IUNKNOWN_METHODS(IMPL)
  24.         MAPI_IMAPIPROP_METHODS(IMPL)
  25. #undef  MAPIMETHOD_
  26. #define MAPIMETHOD_(type, method)   MAPIMETHOD_TYPEDEF(type, method, WMPROP_)
  27.         MAPI_IUNKNOWN_METHODS(IMPL)
  28.         MAPI_IMAPIPROP_METHODS(IMPL)
  29. #undef  MAPIMETHOD_
  30. #define MAPIMETHOD_(type, method)   STDMETHOD_(type, method)
  31.  
  32. DECLARE_MAPI_INTERFACE(WMPROP_)
  33. {
  34.     MAPI_IUNKNOWN_METHODS(IMPL)
  35.     MAPI_IMAPIPROP_METHODS(IMPL)
  36. };
  37.  
  38.  
  39. typedef struct _WMPROP 
  40. {
  41.     WMPROP_Vtbl *       lpVtbl;
  42.  
  43.     /* Need to be the same as other objects */
  44.     
  45.     LONG                lcInit;
  46.  
  47.     /* MAPI memory routines */
  48.     
  49.     LPALLOCATEBUFFER    lpAllocBuff;
  50.     LPALLOCATEMORE      lpAllocMore;
  51.     LPFREEBUFFER        lpFreeBuff;
  52.  
  53.     /* Private data */
  54.     
  55.     HINSTANCE           hInst;
  56.     LPMALLOC            lpMalloc;
  57.     ULONG               ulType;
  58.     ULONG               cbOptionData;
  59.     LPBYTE              lpbOptionData;
  60.     LPMAPIPROP          lpMAPIProp;
  61.  
  62. } WMPROP, FAR *LPWMPROP;
  63.  
  64.  
  65.