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 / xptxtmsg.h < prev   
C/C++ Source or Header  |  1996-04-11  |  3KB  |  89 lines

  1. /*
  2.  -  X P T X T M S G . H
  3.  -
  4.  *  Purpose:
  5.  *      Support for the textized TNEF encapsulated message transport.
  6.  *      
  7.  *  Copyright 1992-1995 Microsoft Corporation.  All Rights Reserved.
  8.  */
  9.  
  10. /* Stuff to support the textized message formating */
  11.  
  12. enum 
  13. {
  14.     tagMessage, 
  15.     tagFrom,
  16.     tagRepresenting,
  17.     tagReplyTo,
  18.     tagDate,
  19.     tagTo,
  20.     tagCc,
  21.     tagBcc,
  22.     tagSubject,
  23.     tagPrioUrgent,
  24.     tagPrioNormal,
  25.     tagPrioLow,
  26.     tagContents,
  27.     tagTextItem,
  28.     tagFileItem,
  29.     NUM_TAGS        
  30. };
  31.  
  32.  
  33. #define MAX_TAG_LEN         32
  34. #define MAX_TXTMSG_PROPS    17
  35. #define MAX_STRM_BUF        256
  36. #define MAX_LINE            256
  37.  
  38. /* Macro to DebugTrace failures from a Read/Write calls */
  39.  
  40. #define TraceFailedRead(_a, _b) \
  41.     hr = (_a); \
  42.     if(HR_FAILED(hr)) \
  43.     { \
  44.         DebugTraceResult(Read(), hr); \
  45.         goto _b; \
  46.     }
  47.  
  48. #define TraceFailedWrite(_a, _b) \
  49.     hr = (_a); \
  50.     if(HR_FAILED(hr)) \
  51.     { \
  52.         DebugTraceResult(Write(), hr); \
  53.         goto _b; \
  54.     }
  55.     
  56.  
  57. /* All extern variables are declared in xpqueue.c  */
  58.  
  59. extern TCHAR rgszTags[NUM_TAGS][MAX_TAG_LEN];
  60. extern TCHAR szCRLF[3];
  61. extern TCHAR szCRLFCRLF[5];
  62.  
  63.  
  64. /* Function Prototypes */
  65.  
  66. HRESULT HrGetLine(LPSTREAM lpSof, ULONG cbDest, LPTSTR lpsz, ULONG *pcbRead);
  67. HRESULT HrBuildSenderProps(LPXPL lpxpl, LPSPropValue lpPropArray, ULONG ulTag, 
  68.         LPTSTR lpszToken, LPTSTR lpszAddrType, LPMESSAGE lpMessage, 
  69.         ULONG * lpcValues, LPSPropValue lpMsgProps);
  70. HRESULT HrGetStreamedProp(LPXPL lpxpl, LPSTREAM lpSof, LPMESSAGE lpMsg, 
  71.         ULONG ulPropTag, ULONG * lpcValues, LPSPropValue lpMsgProps, 
  72.         LPTSTR lpszLine, ULONG * lpulTag, LPTSTR * lppszToken);
  73. HRESULT HrAddRecipToAdrList(LPXPL lpxpl, LONG lRecipType, 
  74.         LPTSTR lpszNameAddr, LPTSTR lpszAddrType, LPMYADRLIST lpMyAdrList);
  75. HRESULT HrAddRecipToReplyList(LPXPL lpxpl, LPTSTR lpszToken, LPTSTR lpszAddrType,
  76.         LPTSTR *lppszNames, ULONG *lpcbEIDList, LPFLATENTRYLIST *lppEIDList);
  77. HRESULT HrCrackSenderEID(LPXPL lpxpl, ULONG cb, LPBYTE lpb, LPTSTR lpsz);       
  78. HRESULT HrMakeSearchKey(LPXPL lpxpl, LPVOID lpParent, LPTSTR lpszAddrType, 
  79.         LPTSTR lpszAddress, ULONG *lpcbSK, LPBYTE *lppSK);  
  80. BOOL    FGetTagAndToken(LPTSTR lpsz, ULONG *pulTag, LPTSTR *lppszToken);
  81. void    FileTimeFromSzTime(LPTSTR lpszTime, FILETIME *pft);
  82.  
  83. HRESULT HrPrepareRecipientTable(LPSPropValue, LPMESSAGE, LPMAPITABLE *);
  84. BOOL    FPropIndex(LPSPropValue, ULONG, ULONG, ULONG *);
  85. void    FormatFileTime(FILETIME *, LPTSTR);
  86.  
  87. HRESULT HrIMsgToTextMsg(LPXPL lpxpl, LPSPropValue lpPropArray, LPMESSAGE lpMessage, LPSTREAM lpSof);
  88. HRESULT HrIMsgFromTextMsg(LPXPL lpxpl, LPSPropValue lpPropArray, LPMESSAGE lpMessage, LPSTREAM lpSof);
  89.