zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

mapi.h (7220B) - Raw


      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef MAPI_H
      7 #define MAPI_H
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 #ifndef EXPORT
     14 #define EXPORT
     15 #endif
     16 
     17   typedef unsigned __LONG32 *LPULONG;
     18   typedef unsigned __LONG32 FLAGS;
     19 
     20 #ifndef __LHANDLE
     21 #define __LHANDLE
     22   typedef ULONG_PTR LHANDLE,*LPLHANDLE;
     23 #endif
     24 
     25   typedef unsigned char *LPBYTE;
     26 
     27 #define lhSessionNull ((LHANDLE)0)
     28 
     29   typedef struct {
     30     ULONG ulReserved;
     31     ULONG flFlags;
     32     ULONG nPosition;
     33     LPSTR lpszPathName;
     34     LPSTR lpszFileName;
     35     LPVOID lpFileType;
     36   } MapiFileDesc,*lpMapiFileDesc;
     37 
     38   typedef struct {
     39     ULONG ulReserved;
     40     ULONG flFlags;
     41     ULONG nPosition;
     42     PWSTR lpszPathName;
     43     PWSTR lpszFileName;
     44     PVOID lpFileType;
     45   } MapiFileDescW, *lpMapiFileDescW;
     46 
     47 #define MAPI_OLE 0x00000001
     48 #define MAPI_OLE_STATIC 0x00000002
     49 
     50   typedef struct {
     51     ULONG ulReserved;
     52     ULONG cbTag;
     53     LPBYTE lpTag;
     54     ULONG cbEncoding;
     55     LPBYTE lpEncoding;
     56   } MapiFileTagExt,*lpMapiFileTagExt;
     57 
     58   typedef struct {
     59     ULONG ulReserved;
     60     ULONG ulRecipClass;
     61     LPSTR lpszName;
     62     LPSTR lpszAddress;
     63     ULONG ulEIDSize;
     64     LPVOID lpEntryID;
     65   } MapiRecipDesc,*lpMapiRecipDesc;
     66 
     67   typedef struct {
     68     ULONG ulReserved;
     69     ULONG ulRecipClass;
     70     PWSTR lpszName;
     71     PWSTR lpszAddress;
     72     ULONG ulEIDSize;
     73     PVOID lpEntryID;
     74   } MapiRecipDescW, *lpMapiRecipDescW;
     75 
     76 #ifndef MAPI_ORIG
     77 #define MAPI_ORIG 0
     78 #define MAPI_TO 1
     79 #define MAPI_CC 2
     80 #define MAPI_BCC 3
     81 #endif
     82 
     83   typedef struct {
     84     ULONG ulReserved;
     85     LPSTR lpszSubject;
     86     LPSTR lpszNoteText;
     87     LPSTR lpszMessageType;
     88     LPSTR lpszDateReceived;
     89     LPSTR lpszConversationID;
     90     FLAGS flFlags;
     91     lpMapiRecipDesc lpOriginator;
     92     ULONG nRecipCount;
     93     lpMapiRecipDesc lpRecips;
     94     ULONG nFileCount;
     95     lpMapiFileDesc lpFiles;
     96   } MapiMessage,*lpMapiMessage;
     97 
     98   typedef struct {
     99     ULONG ulReserved;
    100     PWSTR lpszSubject;
    101     PWSTR lpszNoteText;
    102     PWSTR lpszMessageType;
    103     PWSTR lpszDateReceived;
    104     PWSTR lpszConversationID;
    105     FLAGS flFlags;
    106     lpMapiRecipDescW lpOriginator;
    107     ULONG nRecipCount;
    108     lpMapiRecipDescW lpRecips;
    109     ULONG nFileCount;
    110     lpMapiFileDescW lpFiles;
    111   } MapiMessageW, *lpMapiMessageW;
    112 
    113 #define MAPI_UNREAD 0x00000001
    114 #define MAPI_RECEIPT_REQUESTED 0x00000002
    115 #define MAPI_SENT 0x00000004
    116 
    117 #define MAPI_LOGON_UI 0x00000001
    118 #ifndef MAPI_PASSWORD_UI
    119 #define MAPI_PASSWORD_UI 0x00020000
    120 #endif
    121 #define MAPI_NEW_SESSION 0x00000002
    122 #define MAPI_FORCE_DOWNLOAD 0x00001000
    123 #define MAPI_EXTENDED 0x00000020
    124 
    125 #ifndef MAPI_DIALOG
    126 #define MAPI_DIALOG 0x00000008
    127 #endif
    128 
    129 #define MAPI_DIALOG_MODELESS (0x00000004 | MAPI_DIALOG)
    130 #define MAPI_FORCE_UNICODE 0x00040000
    131 
    132 #define MAPI_UNREAD_ONLY 0x00000020
    133 #define MAPI_GUARANTEE_FIFO 0x00000100
    134 #define MAPI_LONG_MSGID 0x00004000
    135 
    136 #define MAPI_PEEK 0x00000080
    137 #define MAPI_SUPPRESS_ATTACH 0x00000800
    138 #define MAPI_ENVELOPE_ONLY 0x00000040
    139 #define MAPI_BODY_AS_FILE 0x00000200
    140 
    141 #define MAPI_AB_NOMODIFY 0x00000400
    142 
    143   typedef ULONG (WINAPI MAPILOGON)(ULONG_PTR ulUIParam,LPSTR lpszProfileName,LPSTR lpszPassword,FLAGS flFlags,ULONG ulReserved,LPLHANDLE lplhSession);
    144   typedef MAPILOGON *LPMAPILOGON;
    145   MAPILOGON MAPILogon;
    146 
    147   typedef ULONG (WINAPI MAPILOGOFF)(LHANDLE lhSession,ULONG_PTR ulUIParam,FLAGS flFlags,ULONG ulReserved);
    148   typedef MAPILOGOFF *LPMAPILOGOFF;
    149   MAPILOGOFF MAPILogoff;
    150 
    151   typedef ULONG (WINAPI MAPISENDMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved);
    152   typedef MAPISENDMAIL *LPMAPISENDMAIL;
    153   MAPISENDMAIL MAPISendMail;
    154 
    155   typedef ULONG (WINAPI MAPISENDMAILW)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessageW lpMessage,FLAGS flFlags,ULONG ulReserved);
    156   typedef MAPISENDMAILW *LPMAPISENDMAILW;
    157   MAPISENDMAILW MAPISendMailW;
    158 
    159   typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved);
    160   typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS;
    161   MAPISENDDOCUMENTS MAPISendDocuments;
    162 
    163   typedef ULONG (WINAPI MAPIFINDNEXT)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageType,LPSTR lpszSeedMessageID,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID);
    164   typedef MAPIFINDNEXT *LPMAPIFINDNEXT;
    165   MAPIFINDNEXT MAPIFindNext;
    166 
    167   typedef ULONG (WINAPI MAPIREADMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved,lpMapiMessage *lppMessage);
    168   typedef MAPIREADMAIL *LPMAPIREADMAIL;
    169   MAPIREADMAIL MAPIReadMail;
    170 
    171   typedef ULONG (WINAPI MAPISAVEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessage lpMessage,FLAGS flFlags,ULONG ulReserved,LPSTR lpszMessageID);
    172   typedef MAPISAVEMAIL *LPMAPISAVEMAIL;
    173   MAPISAVEMAIL MAPISaveMail;
    174 
    175   typedef ULONG (WINAPI MAPIDELETEMAIL)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszMessageID,FLAGS flFlags,ULONG ulReserved);
    176   typedef MAPIDELETEMAIL *LPMAPIDELETEMAIL;
    177   MAPIDELETEMAIL MAPIDeleteMail;
    178 
    179   typedef ULONG (EXPORT WINAPI *LPMAPIFREEBUFFER)(LPVOID pv);
    180 
    181   ULONG WINAPI MAPIFreeBuffer(LPVOID pv);
    182 
    183   typedef ULONG (WINAPI MAPIADDRESS)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszCaption,ULONG nEditFields,LPSTR lpszLabels,ULONG nRecips,lpMapiRecipDesc lpRecips,FLAGS flFlags,ULONG ulReserved,LPULONG lpnNewRecips,lpMapiRecipDesc *lppNewRecips);
    184   typedef MAPIADDRESS *LPMAPIADDRESS;
    185   MAPIADDRESS MAPIAddress;
    186 
    187   typedef ULONG (WINAPI MAPIDETAILS)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiRecipDesc lpRecip,FLAGS flFlags,ULONG ulReserved);
    188   typedef MAPIDETAILS *LPMAPIDETAILS;
    189   MAPIDETAILS MAPIDetails;
    190 
    191   typedef ULONG (WINAPI MAPIRESOLVENAME)(LHANDLE lhSession,ULONG_PTR ulUIParam,LPSTR lpszName,FLAGS flFlags,ULONG ulReserved,lpMapiRecipDesc *lppRecip);
    192   typedef MAPIRESOLVENAME *LPMAPIRESOLVENAME;
    193   MAPIRESOLVENAME MAPIResolveName;
    194 
    195 #ifndef SUCCESS_SUCCESS
    196 #define SUCCESS_SUCCESS 0
    197 #endif
    198 #define MAPI_USER_ABORT 1
    199 #define MAPI_E_USER_ABORT MAPI_USER_ABORT
    200 #define MAPI_E_FAILURE 2
    201 #define MAPI_E_LOGON_FAILURE 3
    202 #define MAPI_E_LOGIN_FAILURE MAPI_E_LOGON_FAILURE
    203 #define MAPI_E_DISK_FULL 4
    204 #define MAPI_E_INSUFFICIENT_MEMORY 5
    205 #define MAPI_E_ACCESS_DENIED 6
    206 #define MAPI_E_TOO_MANY_SESSIONS 8
    207 #define MAPI_E_TOO_MANY_FILES 9
    208 #define MAPI_E_TOO_MANY_RECIPIENTS 10
    209 #define MAPI_E_ATTACHMENT_NOT_FOUND 11
    210 #define MAPI_E_ATTACHMENT_OPEN_FAILURE 12
    211 #define MAPI_E_ATTACHMENT_WRITE_FAILURE 13
    212 #define MAPI_E_UNKNOWN_RECIPIENT 14
    213 #define MAPI_E_BAD_RECIPTYPE 15
    214 #define MAPI_E_NO_MESSAGES 16
    215 #define MAPI_E_INVALID_MESSAGE 17
    216 #define MAPI_E_TEXT_TOO_LARGE 18
    217 #define MAPI_E_INVALID_SESSION 19
    218 #define MAPI_E_TYPE_NOT_SUPPORTED 20
    219 #define MAPI_E_AMBIGUOUS_RECIPIENT 21
    220 #define MAPI_E_AMBIG_RECIP MAPI_E_AMBIGUOUS_RECIPIENT
    221 #define MAPI_E_MESSAGE_IN_USE 22
    222 #define MAPI_E_NETWORK_FAILURE 23
    223 #define MAPI_E_INVALID_EDITFIELDS 24
    224 #define MAPI_E_INVALID_RECIPS 25
    225 #define MAPI_E_NOT_SUPPORTED 26
    226 #define MAPI_E_UNICODE_NOT_SUPPORTED 27
    227 #define MAPI_E_ATTACHMENT_TOO_LARGE 28
    228 
    229 #ifdef MAPIX_H
    230   STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession);
    231 #endif
    232 
    233 #ifdef __cplusplus
    234 }
    235 #endif
    236 #endif