| 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 _MQMAIL_H |
| 7 |
#define _MQMAIL_H |
| 8 |
|
| 9 |
#ifdef __cplusplus |
| 10 |
extern "C" { |
| 11 |
#endif |
| 12 |
|
| 13 |
#include <windows.h> |
| 14 |
#include <windowsx.h> |
| 15 |
#include <ole2.h> |
| 16 |
|
| 17 |
DEFINE_GUID(CLSID_MQMailQueueType,0x5eadc0d0,0x7182,0x11cf,0xa8,0xff,0x00,0x20,0xaf,0xb8,0xfb,0x50); |
| 18 |
|
| 19 |
typedef enum MQMailRecipType_enum { |
| 20 |
MQMailRecip_TO,MQMailRecip_CC,MQMailRecip_BCC |
| 21 |
} MQMailRecipType; |
| 22 |
|
| 23 |
typedef struct MQMailRecip_tag { |
| 24 |
LPSTR szName; |
| 25 |
LPSTR szQueueLabel; |
| 26 |
LPSTR szAddress; |
| 27 |
MQMailRecipType iType; |
| 28 |
LPFILETIME pftDeliveryTime; |
| 29 |
LPSTR szNonDeliveryReason; |
| 30 |
} MQMailRecip,*LPMQMailRecip; |
| 31 |
|
| 32 |
typedef struct MQMailRecipList_tag { |
| 33 |
ULONG cRecips; |
| 34 |
LPMQMailRecip *apRecip; |
| 35 |
} MQMailRecipList,*LPMQMailRecipList; |
| 36 |
|
| 37 |
typedef enum MQMailFormFieldType_enum { |
| 38 |
MQMailFormField_BOOL,MQMailFormField_STRING,MQMailFormField_LONG,MQMailFormField_CURRENCY,MQMailFormField_DOUBLE |
| 39 |
} MQMailFormFieldType; |
| 40 |
|
| 41 |
typedef union MQMailFormFieldData_tag { |
| 42 |
WINBOOL b; |
| 43 |
LPSTR lpsz; |
| 44 |
LONG l; |
| 45 |
CY cy; |
| 46 |
double dbl; |
| 47 |
} MQMailFormFieldData,*LPMQMailFormFieldData; |
| 48 |
|
| 49 |
typedef struct MQMailFormField_tag { |
| 50 |
LPSTR szName; |
| 51 |
MQMailFormFieldType iType; |
| 52 |
MQMailFormFieldData Value; |
| 53 |
} MQMailFormField,*LPMQMailFormField; |
| 54 |
|
| 55 |
typedef struct MQMailFormFieldList_tag { |
| 56 |
ULONG cFields; |
| 57 |
LPMQMailFormField *apField; |
| 58 |
} MQMailFormFieldList,*LPMQMailFormFieldList; |
| 59 |
|
| 60 |
typedef enum MQMailEMailType_enum { |
| 61 |
MQMailEMail_MESSAGE,MQMailEMail_FORM,MQMailEMail_TNEF,MQMailEMail_DELIVERY_REPORT,MQMailEMail_NON_DELIVERY_REPORT |
| 62 |
} MQMailEMailType; |
| 63 |
|
| 64 |
typedef struct MQMailMessageData_tag { |
| 65 |
LPSTR szText; |
| 66 |
} MQMailMessageData,*LPMQMailMessageData; |
| 67 |
|
| 68 |
typedef struct MQMailFormData_tag { |
| 69 |
LPSTR szName; |
| 70 |
LPMQMailFormFieldList pFields; |
| 71 |
} MQMailFormData,*LPMQMailFormData; |
| 72 |
|
| 73 |
typedef struct MQMailTnefData_tag { |
| 74 |
ULONG cbData; |
| 75 |
LPBYTE lpbData; |
| 76 |
} MQMailTnefData,*LPMQMailTnefData; |
| 77 |
|
| 78 |
typedef struct MQMailDeliveryReportData_tag { |
| 79 |
LPMQMailRecipList pDeliveredRecips; |
| 80 |
LPSTR szOriginalSubject; |
| 81 |
LPFILETIME pftOriginalDate; |
| 82 |
} MQMailDeliveryReportData,*LPMQMailDeliveryReportData; |
| 83 |
|
| 84 |
typedef struct MQMailEMail_tag MQMailEMail,*LPMQMailEMail; |
| 85 |
typedef struct MQMailNonDeliveryReportData_tag { |
| 86 |
LPMQMailRecipList pNonDeliveredRecips; |
| 87 |
LPMQMailEMail pOriginalEMail; |
| 88 |
} MQMailNonDeliveryReportData,*LPMQMailNonDeliveryReportData; |
| 89 |
|
| 90 |
typedef struct MQMailEMail_tag { |
| 91 |
LPMQMailRecip pFrom; |
| 92 |
LPSTR szSubject; |
| 93 |
WINBOOL fRequestDeliveryReport; |
| 94 |
WINBOOL fRequestNonDeliveryReport; |
| 95 |
LPFILETIME pftDate; |
| 96 |
LPMQMailRecipList pRecips; |
| 97 |
MQMailEMailType iType; |
| 98 |
__C89_NAMELESS union { |
| 99 |
MQMailFormData form; |
| 100 |
MQMailMessageData message; |
| 101 |
MQMailTnefData tnef; |
| 102 |
MQMailDeliveryReportData DeliveryReport; |
| 103 |
MQMailNonDeliveryReportData NonDeliveryReport; |
| 104 |
}; |
| 105 |
LPVOID pReserved; |
| 106 |
} MQMailEMail,*LPMQMailEMail; |
| 107 |
|
| 108 |
STDAPI MQMailComposeBody(LPMQMailEMail pEMail,ULONG *pcbBuffer,LPBYTE *ppbBuffer); |
| 109 |
STDAPI MQMailParseBody(ULONG cbBuffer,LPBYTE pbBuffer,LPMQMailEMail *ppEMail); |
| 110 |
STDAPI_(void) MQMailFreeMemory(LPVOID lpBuffer); |
| 111 |
|
| 112 |
#ifdef __cplusplus |
| 113 |
} |
| 114 |
#endif |
| 115 |
#endif |