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
|
---|