home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / AutoPC / apcsdk10.exe / data1.cab / Emulation_Include_Files / msgstore.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-13  |  22.1 KB  |  552 lines

  1. /*---------------------------------------------------------------------------*\
  2.  *
  3.  * (c) Copyright Microsoft Corp. 1996 All Rights Reserved
  4.  *
  5.  *  module: msgstore.h
  6.  *  date:   960105
  7.  *
  8.  *  purpose: Definitions for Mail Message Store
  9.  *
  10.  *  notes:  Forked from \\Core1\PegApps2\src\mepapps\sdk\inc for
  11.  *          Apollo / AutoPC development by James McGuire (a-jammcg) on 
  12.  *          1/23/98
  13.  *
  14. \*---------------------------------------------------------------------------*/
  15.  
  16. #ifndef MSGSTORE_H
  17.     #define MSGSTORE_H
  18.  
  19.     // Only include resource defs for the .RC file...
  20.     #ifndef __MSGSTORE_RC__
  21.  
  22.         // Load all the filesystem/registry/database definitions
  23.         #ifdef UNDER_NT // this should never be defined for the AutoPC, 
  24.                         // even under emulation. (we use another flag)
  25.  
  26.             // Is this a REMOTE version (versus local using the SDK)?
  27.             #ifdef MSGSTORE_RPC
  28.  
  29.                 #ifndef UNDER_REPL
  30.                     #include <rapi.h>
  31.                 #endif
  32.  
  33.             #else //MSGSTORE_RPC Under the SDK...
  34.  
  35.                 // The Emulator has a conflict with _DBGPARAM definition...
  36.                 #ifdef DEBUG
  37.                     #define DEBUG_WAS_ON
  38.                     #undef DBGCHK
  39.                     #undef DEBUG
  40.                     #undef DEBUGMSG
  41.                     #undef DEBUGCHK
  42.                     #undef DEBUGREGISTER
  43.                 #endif //DEBUG
  44.  
  45.                 #include <wceemul.h>
  46.  
  47.                 #ifdef DEBUG_WAS_ON
  48.                 #undef DEBUG_WAS_ON
  49.                 #define DEBUG
  50.                 #endif //DEBUG_WAS_ON
  51.  
  52.             #endif //MSGSTORE_RPC
  53.  
  54.         #else //UNDER_NT - either the device or AutoPC
  55.  
  56.             #include <windbase.h>
  57.  
  58.         #endif //UNDER_NT
  59.  
  60. /*------------------------------------------------------------------------*/
  61. /* Useful constants and typedefs.                                         */
  62. /*------------------------------------------------------------------------*/
  63.  
  64. #define MAIL_VERSION    0x0200
  65.  
  66. // Mail folders
  67. #define MAIL_FOLDER_ALL         0x000000FF  // Source (current) folder
  68. #define MAIL_FOLDER_FIRST       0x00000000  // Start of user defined folders
  69. #define MAIL_FOLDER_LAST        0x00000014  // End of user defined folders
  70.                                             // could go to 0xfb, but limit to 20
  71. #define MAIL_FOLDER_SENT        0x000000FC  // copy of sent mail
  72. #define MAIL_FOLDER_OUTBOX      0x000000FD  // local OUTBOX (last local folder)
  73. #define MAIL_FOLDER_INBOX       0x000000FE  // univeral INBOX
  74. #define MAIL_FOLDER_ANY         0x000000FF  // Search for any folder
  75. #define MAIL_FOLDER_NAMELEN     16          // Max folder name length
  76.  
  77. #define MAIL_FOLDER_TARGET      0x0000FF00  // Target folder for MAIL_COPY
  78. #define MAIL_TARGET_SHIFT       8           // number of bits to shift
  79.  
  80.  
  81. // Status flags
  82. #define MAIL_STATUS_ALL         0xC3FF0000  // Status of this message
  83. #define MAIL_STATUS_FREE        0x00010000  // This is a free message
  84.  
  85. //BUGBUG - AutoPC specific changes
  86. //
  87. // We changed this definition to clear up the semantics of deleted / ok to
  88. // delete / locked.  We are never use the delete flag, however we are in need
  89. // of a lock flag.
  90. //
  91. //#define MAIL_STATUS_DELETE    0x00020000  // Delete message
  92. #define MAIL_STATUS_LOCKED      0x00020000  // Marked as locked
  93.  
  94. #define MAIL_STATUS_COPY        0x00040000  // Copy message to local target
  95. #define MAIL_STATUS_MOVE        0x00080000  // Marked for copy and delete
  96. #define MAIL_STATUS_READ        0x00100000  // Marked as read (during a MailGet)
  97. #define MAIL_STATUS_SERVICE     0x00200000  // Inbox Message exists on a service
  98. #define MAIL_STATUS_COMPOSED    0x00400000  // Composed locally (To: address)
  99. #define MAIL_STATUS_REMOTE      0x00800000  // Inbox body ONLY exists on service
  100. #define MAIL_STATUS_GC          0x01000000  // Garbage collection
  101.  
  102. #define MAIL_STATUS_NOT         0x02000000  // Look for invert of status bits (GET)
  103. #define MAIL_STATUS_ANY         (MAIL_STATUS_NOT|MAIL_STATUS_FREE)
  104. #define MAIL_STATUS_ALIVE       (MAIL_STATUS_ANY|MAIL_STATUS_DELETE)
  105. #define MAIL_STATUS_LOCAL       (MAIL_STATUS_ALIVE|MAIL_STATUS_SERVICE)
  106. #define MAIL_STATUS_BODY        (MAIL_STATUS_ALIVE|MAIL_STATUS_REMOTE)
  107. #define MAIL_STATUS_UNREAD      (MAIL_STATUS_ALIVE|MAIL_STATUS_READ)
  108. #define MAIL_GET_BODY           0x08000000  // Get body (during a MailGet)
  109.  
  110. // Mail message store flags:
  111. #define MAIL_FLAGS_ALL          0xFF000000  // All defined store flags
  112. #define MAIL_GET_FLAGS          0x10000000  // ONLY get flags field (during a get)
  113. #define MAIL_FULL               0x20000000  // Get full body when copying
  114. #define MAIL_STATUS_ATTACHMENTS 0x40000000  // This message has attachments
  115. #define MAIL_STATUS_ATT_REQ     0x80000000  // Attachment marked for download
  116.  
  117. #define MAIL_UNUSED             0x00000000  // Currently unused bits
  118.  
  119. #define MAXSTRPROPLEN   (16*4092)           // Database max string length
  120. #define MAXSTRPROPCHARS (8*4092)            // Since we use WCHARS
  121.  
  122. typedef struct MailMsg_s {
  123.     DWORD       dwMsgId;            // ID of message for retrieval (ignore on store)
  124.     DWORD       dwFlags;            // MAIL_* flags
  125.     DWORD       dwMsgLen;           // Length of complete body (on service)
  126.     WORD        wBodyLen;           // Local body length (maintained by msgstore)
  127.     FILETIME    ftDate;             // time message was received
  128.     LPWSTR      szSvcId;            // Service defined ID
  129.     LPWSTR      szSvcNam;           // Service name
  130.     WCHAR*      pwcHeaders;         // NULL separated miscellaneous header fields
  131.     LPWSTR      szBody;             // Message body
  132.     CEOID       oid;                // Database object ID (leave alone!)
  133.     HANDLE      hHeap;              // Heap for all message storage
  134. } MailMsg;
  135.  
  136. typedef struct MailAtt_s {
  137.     UINT        uiAttachmentNumber; // which attachment is specified
  138.     DWORD       dwFlags;            // ATT_* flags
  139.     ULONG       ulCharacterPosition;// not used
  140.     ULONG       ulSize;             // the size of the attachment, in bytes
  141.     LPWSTR      szOriginalName;     // the original name of the file
  142.     LPWSTR      szLocalName;        // the local name of the file
  143. } MailAtt, *lpMailAtt;
  144.  
  145. #pragma warning( disable:4200 ) // don't warn about 0-size array
  146. typedef struct MailAttArray_s {
  147.     DWORD       dwFlags;
  148.     UINT        uiAttCount;
  149.     lpMailAtt   AttArray[];   
  150. } MailAttArray, *lpMailAttArray;
  151.  
  152. typedef struct MailNonIpmInfo_s {
  153.     LPWSTR      szMessageClass;
  154.     UINT        uiPropCount;
  155.     CEPROPVAL   propArray[];
  156. } MailNonIpmInfo, *lpMailNonIpmInfo;
  157. #pragma warning( default:4200 )
  158.  
  159.  
  160. // Flags used in the MailAtt structure
  161.  
  162. #define ATT_ALL_FLAGS_MASK          0xFF000000
  163. #define ATT_THIS_FLAGS_MASK         0x00FF0000
  164. #define ATT_NUMBER_MASK             0x0000FFFF
  165. #define ATT_DISP_RETRIEVE           0x00010000
  166. #define ATT_DOWNLOADABLE            0x00020000
  167.  
  168. // Header strings used in the PROPID_ATT_STRINGS property
  169.  
  170. #define ATT_HEADER_NAME             L"A"
  171. #define ATT_HEADER_SIZE             L"S"
  172. #define ATT_HEADER_NAME_PREFIX      L"L"
  173. #define ATT_HEADER_DISPOSITION      L"D"
  174.  
  175. // Per-attachment codes used in the ATT_HEADER_DISPOSITION field.
  176.  
  177. #define ATT_DISPOSITION_NONE        L' '
  178. #define ATT_DISPOSITION_RETRIEVE    L'R'
  179. #define ATT_DISPOSITION_DELETE      L'X'
  180.  
  181. #define MAX_ATTACHMENTS 64
  182.  
  183. /********************************************************************\
  184.  *                                                                  *
  185.  *  Mail Database Layout:                                           *
  186.  *                                                                  *
  187.  *  HEAD:       Id:UI4:0x00000000,Ver:UI2:LastID:UI4                *
  188.  *  Msg:        Id:UI4:0xxxxxxxxx,Flags:UI4,MsgLen:UI4,BodyLen:UI2, *
  189.  *                  Date:FT,From:WSTR,PreSubject:WSTR,                              *
  190.  *                  Subject:WSTR,Headers:Blob,Body:LPWSTR,          *
  191.  *                  SvcOid:UI4
  192.  *                                                                  *
  193.  *  Sort Fields:        From Subj Date BodyLen                      *
  194.  *                                                                  *
  195.  *                                                                  *
  196.  *  Helper Database Layout:                                         *
  197.  *                                                                  *    
  198.  *  Folder:     FldId:UI2:0x00xx,FldNam:WSTR                        *
  199.  *  SvcId:      SvcNam:WSTR,SvcId:WSTR,MsgId:UI4,MsgOid:UI4         *
  200.  *                                                                  *
  201.  *  Sort Fields:        FldId FldNam SvcId MsgId                                 *
  202.  *                                                                  *
  203. \********************************************************************/
  204.  
  205. #define MAIL_ID_HEAD        0x00000000
  206.  
  207. #define MAKEPROP(n,t)   ((n<<16)|CEVT_##t)
  208. #define PROPNUM(name)       (PROPID_##name >> 16)
  209.  
  210. //
  211. // Message database fields.
  212. //
  213. #define PROPID_ID           MAKEPROP(0,UI4)
  214. #define PROPID_FLAGS        MAKEPROP(1,UI4)
  215. #define PROPID_MSGLEN       MAKEPROP(2,UI4)
  216. #define PROPID_BODYLEN      MAKEPROP(3,UI2)
  217. #define PROPID_DATE         MAKEPROP(4,FILETIME)
  218. #define PROPID_FROM         MAKEPROP(5,LPWSTR)
  219. #define PROPID_PRESUBJECT   MAKEPROP(6,LPWSTR)
  220. #define PROPID_SUBJECT      MAKEPROP(7,LPWSTR)
  221. #define PROPID_HEADERS      MAKEPROP(8,BLOB)
  222. #define PROPID_SVCOID       MAKEPROP(9,UI4)
  223. #define PROPID_BODY         MAKEPROP(10,LPWSTR)
  224. #define PROPID_VERSION      MAKEPROP(11,UI2)
  225. #define PROPID_LASTID       MAKEPROP(12,UI4)
  226.  
  227. //
  228. // Helper database fields.
  229. //
  230. #define PROPID_FLDID        MAKEPROP(0,UI2)
  231. #define PROPID_FLDNAM       MAKEPROP(1,LPWSTR)
  232. #define PROPID_SVCNAM       MAKEPROP(2,LPWSTR)
  233. #define PROPID_SVCID        MAKEPROP(3,LPWSTR)
  234. #define PROPID_MSGID        MAKEPROP(4,UI4)
  235. #define PROPID_MSGOID       MAKEPROP(5,UI4)
  236.  
  237. #define PROPID_ATT_INFO     MAKEPROP(12,UI4)
  238. #define PROPID_ATT_STRINGS  MAKEPROP(13,BLOB)
  239.  
  240. /*-----------------------------------------------------------------------*/
  241. /* Public routines.                                                      */
  242. /*-----------------------------------------------------------------------*/
  243.  
  244. #ifdef __cplusplus
  245. extern "C" {
  246. #endif
  247.  
  248. int    MailError(              // Get last error <0=ERR >0=WRN 0=NONE
  249.     HANDLE          hMail);             // Mail context
  250.     
  251. typedef int (*PMAILERROR)(HANDLE);
  252.  
  253. int     MailErrorMsg(           // Get last mail error (printable)
  254.     HANDLE          hMail,              // Mail context
  255.     LPWSTR          szBuf,              // Buffer to fill
  256.     int             iBufLen,            // Length of buffer in chars
  257.     int*            piSrcLine);         // Line where error occured (or NULL)
  258.     
  259. typedef int (*PMAILERRORMSG)(HANDLE,LPWSTR,int,int*);
  260.  
  261. BOOL    MailOpen(               // Get mail started
  262.     HANDLE*         phMail,             // Returned handle
  263.     BOOL            fAllowCreate);      // Allow creation of dir and db?
  264.     
  265. typedef BOOL (*PMAILOPEN)(HANDLE*,BOOL);
  266.  
  267. BOOL    MailOpenNotify(                 // Get mail started
  268.     HANDLE*         phMail,             // Returned handle
  269.     BOOL            fAllowCreate,       // Allow creation of dir and db?
  270.     HWND            hwndNotify);        // HWND for DB notifications      
  271.     
  272. typedef BOOL (*PMAILOPEN)(HANDLE*,BOOL);
  273.  
  274. BOOL    MailPutFolder(          // Set new folder name
  275.     HANDLE          hMail,              // Current mail context
  276.     BYTE            bId,                // Folder ID
  277.     LPWSTR          szName);            // Name to set (NULL = DELETE)
  278.     
  279. typedef BOOL (*PMAILPUTFOLDER)(HANDLE,BYTE,LPWSTR);
  280.  
  281. BOOL    MailGetFolderName(      // Get folder name
  282.     HANDLE          hMail,              // Current mail context
  283.     int*            piId,               // In=Folder ID, Out=Next used ID or -1
  284.     int*            piLen,              // In=buflen Out=needed chrs with terminator
  285.     LPWSTR          szName);            // Buffer to fill (NULL=get length)
  286.  
  287. typedef BOOL (*PMAILGETFOLDERNAME)(HANDLE,int*,int*,LPWSTR);
  288.  
  289. BOOL    MailGetFolderId(        // Get folder ID
  290.     HANDLE          hMail,              // Current mail context
  291.     BYTE*           pbId,               // Folder ID to return
  292.     LPWSTR          szName);            // Name to match
  293.     
  294. typedef BOOL (*PMAILGETFOLDERID)(HANDLE,BYTE*,LPWSTR);
  295.  
  296. BOOL    MailPut(                // Create a new mail entry
  297.     HANDLE          hMail,              // Current mail context
  298.     MailMsg*        pmm);               // Item information (dwMsgID ignored)
  299.     
  300. typedef BOOL (*PMAILPUT)(HANDLE,MailMsg*);
  301.  
  302. BOOL    MailPutAttachment(              // Create a new mail attachment
  303.     HANDLE          hMail,              // Current mail context
  304.     MailMsg*        pmm,                // message the attachment is on
  305.     MailAtt*        pma);               // Item information 
  306.     
  307. typedef BOOL (*PMAILPUTATTACHMENT)(HANDLE,MailMsg*,MailAtt*);
  308.  
  309. BOOL    MailDeleteAttachment(           // Delete a mail attachment
  310.     HANDLE          hMail,              // Current mail context
  311.     MailMsg*        pmm,                // message the attachment is on
  312.     MailAtt*        pma,                // Item information 
  313.     BOOL            fFullDelete);       // Whether to delete header or not.
  314.     
  315. typedef BOOL (*PMAILDELETEATTACHMENT)(HANDLE,MailMsg*,MailAtt*,BOOL);
  316.  
  317. BOOL    MailGet(                // Get a message
  318.     HANDLE          hMail,              // Current mail context
  319.     MailMsg*        pmm);               // 
  320.  
  321. typedef BOOL (*PMAILGET)(HANDLE,MailMsg*);
  322.  
  323. INT    MailGetAttachment(              // Get an attachment
  324.     HANDLE          hMail,              // Current mail context
  325.     MailMsg*        pmm,                // 
  326.     MailAtt*        pma);               // 
  327.  
  328. typedef UINT (*PMAILGETATTACHMENT)(HANDLE,MailMsg*,MailAtt*);
  329.  
  330. BOOL    MailRequestAttachment(              // Request  attachment download
  331.     HANDLE          hMail,              // Current mail context
  332.     MailMsg*        pmm,                // mail msg attachment is on
  333.     MailAtt*        pma,                // attachment being requested
  334.     BOOL            bRetrieve);         // Request retrieve, or cancel?
  335.  
  336. typedef BOOL (*PMAILREQUESTATTACHMENT)(HANDLE,MailMsg*,MailAtt*,BOOL);
  337.  
  338. BOOL MailGetSvcId(              // Get a message OID based on szSvcNam/Id
  339.     HANDLE          hMail,              // Current mail context
  340.     MailMsg*        pmm);               // Returns pmm->oid and flags
  341.  
  342. typedef BOOL (*PMAILGETSVCID)(HANDLE,MailMsg*);
  343.  
  344. BOOL    MailFirst(              // Get first mail message
  345.     HANDLE          hMail,              // Current mail context
  346.     MailMsg*        pmm);               // Mail message to return
  347.     
  348. typedef BOOL (*PMAILFIRST)(HANDLE,MailMsg*);
  349.  
  350. BOOL    MailNext(               // Get next mail message
  351.     HANDLE          hMail,              // Current mail context
  352.     MailMsg*        pmm);               // Mail message to return (in=prev msg)
  353.     
  354. typedef BOOL (*PMAILNEXT)(HANDLE,MailMsg*);
  355.  
  356. BOOL    MailUpdate(             // Update flags from a previous get
  357.     HANDLE          hMail,              // Current mail context
  358.     MailMsg*        pmm,                // Message with updated flags
  359.     BOOL            fDoAll);            // Update all other fields as well?
  360.  
  361. typedef BOOL (*PMAILUPDATE)(HANDLE,MailMsg*,BOOL);
  362.  
  363. BOOL    MailDelete(             // Remove a mail message
  364.     HANDLE          hMail,              // Current mail context
  365.     MailMsg*        pmm);               // Mail message to delete
  366.     
  367. typedef BOOL (*PMAILDELETE)(HANDLE,MailMsg*);
  368.  
  369. BOOL    MailFree(               // Give back storage from a prev Get
  370.     MailMsg*        pmm);               // Mail message to free
  371.     
  372. typedef BOOL (*PMAILFREE)(MailMsg*);
  373.  
  374. BOOL    MailClose(              // Delete mail context
  375.     HANDLE          hMail);             // Current mail context
  376.  
  377. typedef BOOL (*PMAILCLOSE)(HANDLE);
  378.  
  379. // Support routines
  380.  
  381. DWORD   MailHeaderLen(          // Compute chars in header string
  382.     MailMsg*        pmm);               // String of headers
  383.     
  384. typedef DWORD (*PMAILHEADERLEN)(MailMsg*);
  385.  
  386. DWORD   MailLocalAttachmentLen(          // Compute chars in header string
  387.     HANDLE          hMail,              // Current mail context
  388.     MailMsg*        pmm);               // String of headers
  389.     
  390. typedef DWORD (*PMAILATTACHMENTLEN)(HANDLE,MailMsg*);
  391.  
  392. LPWSTR MailGetField(            // Get one header field
  393.     MailMsg*        pmm,                // Message to read from
  394.     LPWSTR          szName,             // Name of field
  395.     BOOL            fGetName);          // Get position of Key instead of val
  396.     
  397. typedef LPWSTR (*PMAILGETFIELD)(MailMsg*,LPWSTR,BOOL);
  398.  
  399. BOOL MailSetField(              // Set a field (FALSE=ALLOC error)
  400.     MailMsg*        pmm,                // Message to work with
  401.     LPWSTR          szName,             // Name of field
  402.     LPCWSTR         szVal);             // New value (or NULL to delete)
  403.  
  404. typedef BOOL (*PMAILSETFIELD)(MailMsg*,LPWSTR,LPCWSTR);
  405.  
  406. typedef enum {
  407.     MAIL_SORT_FROM,
  408.     MAIL_SORT_SUBJ,
  409.     MAIL_SORT_DATE,
  410.     MAIL_SORT_SIZE
  411. } MAILSORTFIELD;
  412.  
  413. BOOL
  414. MailSetSort(
  415.     HANDLE hMail,                       // Current mail context
  416.     MAILSORTFIELD iSort,                // new sort order
  417.     BOOL fAscending                     // new sort direction; TRUE if ascending
  418.     );
  419.  
  420. typedef BOOL (*PMAILSETSORT)(HANDLE, MAILSORTFIELD, BOOL);
  421.  
  422. typedef struct _MAILSORTINFO {
  423.     MAILSORTFIELD iSort;                // sort order
  424.     BOOL fAscending;                    // sort direction
  425.     int cMsgs;                          // message count
  426. } MAILSORTINFO, *PMAILSORTINFO;
  427.  
  428. BOOL
  429. MailGetSort(
  430.     HANDLE hMail,                       // Current mail context
  431.     PMAILSORTINFO pInfo                 // information structure
  432.     );
  433.  
  434. typedef BOOL (*PMAILGETSORT)(HANDLE, MAILSORTFIELD *, BOOL *);
  435.  
  436. BOOL MailSetAttachmentOptions(              // Set a field (FALSE=ALLOC error)
  437.     HANDLE          hMail,
  438.     MailMsg*        pmm,                // Message to work with
  439.     DWORD           dwFlags);
  440.     
  441. typedef BOOL (*PMAILSETATTACHMENTOPTIONS)(HANDLE,MailMsg*,DWORD);
  442.  
  443. //////////////////////// Emulation/RPC Support routines  ///////////////////////
  444.  
  445. LONG MailRegOpenKeyExW(         // Open a pegasus registry key
  446.     HKEY    hKey,                       // handle of open key 
  447.     LPCWSTR lpSubKey,                   // address of name of subkey to open 
  448.     DWORD   ulOptions,                  // reserved 
  449.     REGSAM  samDesired,                 // security access mask 
  450.     PHKEY   phkResult);                 // address of handle of open key 
  451.     
  452. typedef LONG (*PMAILREGOPENKEYEXW)(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
  453.  
  454. LONG MailRegEnumKeyExW(         // Retrieve one key
  455.     HKEY    hKey,                       // handle of key to enumerate 
  456.     DWORD   dwIndex,                    // index of subkey to enumerate 
  457.     LPWSTR  lpName,                     // address of buffer for subkey name 
  458.     LPDWORD lpcbName,                   // address for size of subkey buffer 
  459.     LPDWORD lpReserved,                 // reserved 
  460.     LPWSTR  lpClass,                    // address of buffer for class string 
  461.     LPDWORD lpcbClass,                  // address for size of class buffer 
  462.     PFILETIME lpftLastWriteTime);       // address for time key last written to 
  463.     
  464. typedef LONG (*PMAILREGENUMKEYEXW)(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,LPDWORD,PFILETIME);
  465.  
  466. LONG MailRegCloseKey(           // Close a key
  467.     HKEY    hKey);                      // handle of key to close
  468.     
  469. typedef LONG (*PMAILREGCLOSEKEY)(HKEY);
  470.  
  471. #ifdef __cplusplus
  472. };
  473. #endif
  474.  
  475. //
  476. // TransportEx flags.
  477. //
  478. #define TVEX_DISABLE_PREV    0x00000001
  479. #define TVEX_DISABLE_NEXT    0x00000002
  480.  
  481. //
  482. // TransportViewEx return codes.
  483. //
  484. #define TVEX_VIEW_CURRENT  0   // read current message
  485. #define TVEX_VIEW_DONE     1   // no further processing
  486. #define TVEX_VIEW_PREV     2   // display previous message
  487. #define TVEX_VIEW_NEXT     3   // display next message
  488. #define TVEX_VIEW_REPLY    4   // reply to current message
  489. #define TVEX_VIEW_REPLYALL 5   // reply-all to current message
  490. #define TVEX_VIEW_FORWARD  6   // forward current message
  491. #define TVEX_VIEW_DELETE   7   // delete current message
  492.  
  493. #endif // !__MSGSTORE_RC__
  494.  
  495. /*-----------------------------------------------------------------------*/
  496. /* Resources.                                                            */
  497. /*-----------------------------------------------------------------------*/
  498.  
  499. #define MAIL_ERR_NONE           0
  500. #define MAIL_ERR_BADPARAM       1
  501. #define MAIL_ERR_BADHANDLE      2
  502. #define MAIL_ERR_CANTALLOC      3
  503.     
  504. #define MAIL_ERR_NOSUCHDB       4
  505. #define MAIL_ERR_CANTCREDB      5
  506. #define MAIL_ERR_BADVER         6
  507. #define MAIL_ERR_REOPEN         7
  508.  
  509. #define MAIL_ERR_NOHEADER       8
  510. #define MAIL_ERR_BADHEADER      9
  511. #define MAIL_ERR_WRITEHEADER    10
  512.     
  513. #define MAIL_ERR_WRITEFOLDER    11
  514. #define MAIL_ERR_NOSUCHFOLDER   12
  515. #define MAIL_ERR_BADFOLDER      13
  516.     
  517. #define MAIL_ERR_WRITEMSG       14
  518. #define MAIL_ERR_WRITEBODY      15
  519. #define MAIL_ERR_NOMATCH        16
  520. #define MAIL_ERR_BADMSGID       17
  521. #define MAIL_ERR_BADMSGREC      18
  522. #define MAIL_ERR_BADMSGBODY     19
  523. #define MAIL_ERR_BADOID         20
  524. #define MAIL_ERR_UPDATEMSG      21
  525. #define MAIL_ERR_CANTDEL        22
  526. #define MAIL_ERR_BADHEADREC     23
  527. #define MAIL_ERR_BADMSGHEAD     24
  528. #define MAIL_ERR_BADPIECE       25
  529. #define MAIL_ERR_NOHEAP         26
  530. #define MAIL_ERR_CANTDELATT     27
  531. #define MAIL_ERR_FOLDEREXISTS   28
  532. #define MAIL_ERR_BADFOLDERNAME  29
  533.  
  534. #define MAIL_IDS_DBNAME         100
  535. #define MAIL_IDS_BADPARAM       101
  536. #define MAIL_IDS_UNKNOWN        102
  537. #define MAIL_IDS_INBOX          103
  538. #define MAIL_IDS_OUTBOX         104
  539. #define MAIL_IDS_SENT           105
  540. #define MAIL_IDS_DBNAME2        106
  541. #define MAIL_IDS_ATT_DIRECTORY  107
  542. #define MAIL_IDS_DELETED        108
  543.  
  544. #define MAIL_IDS_FROM           200
  545. #define MAIL_IDS_SUBJ           201
  546. #define MAIL_IDS_TYPE           202
  547.  
  548. #define MAIL_IDS_RE             210
  549. #define MAIL_IDS_FW             211
  550.  
  551. #endif // MSGSTORE_H
  552.