aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/mqmail.h
blob: 8a1e274594febc92dad5b7c754102bc39f9d3dda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef _MQMAIL_H
#define _MQMAIL_H

#ifdef __cplusplus
extern "C" {
#endif

#include <windows.h>
#include <windowsx.h>
#include <ole2.h>

  DEFINE_GUID(CLSID_MQMailQueueType,0x5eadc0d0,0x7182,0x11cf,0xa8,0xff,0x00,0x20,0xaf,0xb8,0xfb,0x50);

  typedef enum MQMailRecipType_enum {
    MQMailRecip_TO,MQMailRecip_CC,MQMailRecip_BCC
  } MQMailRecipType;

  typedef struct MQMailRecip_tag {
    LPSTR szName;
    LPSTR szQueueLabel;
    LPSTR szAddress;
    MQMailRecipType iType;
    LPFILETIME pftDeliveryTime;
    LPSTR szNonDeliveryReason;
  } MQMailRecip,*LPMQMailRecip;

  typedef struct MQMailRecipList_tag {
    ULONG cRecips;
    LPMQMailRecip *apRecip;
  } MQMailRecipList,*LPMQMailRecipList;

  typedef enum MQMailFormFieldType_enum {
    MQMailFormField_BOOL,MQMailFormField_STRING,MQMailFormField_LONG,MQMailFormField_CURRENCY,MQMailFormField_DOUBLE
  } MQMailFormFieldType;

  typedef union MQMailFormFieldData_tag {
    WINBOOL b;
    LPSTR lpsz;
    LONG l;
    CY cy;
    double dbl;
  } MQMailFormFieldData,*LPMQMailFormFieldData;

  typedef struct MQMailFormField_tag {
    LPSTR szName;
    MQMailFormFieldType iType;
    MQMailFormFieldData Value;
  } MQMailFormField,*LPMQMailFormField;

  typedef struct MQMailFormFieldList_tag {
    ULONG cFields;
    LPMQMailFormField *apField;
  } MQMailFormFieldList,*LPMQMailFormFieldList;

  typedef enum MQMailEMailType_enum {
    MQMailEMail_MESSAGE,MQMailEMail_FORM,MQMailEMail_TNEF,MQMailEMail_DELIVERY_REPORT,MQMailEMail_NON_DELIVERY_REPORT
  } MQMailEMailType;

  typedef struct MQMailMessageData_tag {
    LPSTR szText;
  } MQMailMessageData,*LPMQMailMessageData;

  typedef struct MQMailFormData_tag {
    LPSTR szName;
    LPMQMailFormFieldList pFields;
  } MQMailFormData,*LPMQMailFormData;

  typedef struct MQMailTnefData_tag {
    ULONG cbData;
    LPBYTE lpbData;
  } MQMailTnefData,*LPMQMailTnefData;

  typedef struct MQMailDeliveryReportData_tag {
    LPMQMailRecipList pDeliveredRecips;
    LPSTR szOriginalSubject;
    LPFILETIME pftOriginalDate;
  } MQMailDeliveryReportData,*LPMQMailDeliveryReportData;

  typedef struct MQMailEMail_tag MQMailEMail,*LPMQMailEMail;
  typedef struct MQMailNonDeliveryReportData_tag {
    LPMQMailRecipList pNonDeliveredRecips;
    LPMQMailEMail pOriginalEMail;
  } MQMailNonDeliveryReportData,*LPMQMailNonDeliveryReportData;

  typedef struct MQMailEMail_tag {
    LPMQMailRecip pFrom;
    LPSTR szSubject;
    WINBOOL fRequestDeliveryReport;
    WINBOOL fRequestNonDeliveryReport;
    LPFILETIME pftDate;
    LPMQMailRecipList pRecips;
    MQMailEMailType iType;
    __C89_NAMELESS union {
      MQMailFormData form;
      MQMailMessageData message;
      MQMailTnefData tnef;
      MQMailDeliveryReportData DeliveryReport;
      MQMailNonDeliveryReportData NonDeliveryReport;
    };
    LPVOID pReserved;
  } MQMailEMail,*LPMQMailEMail;

  STDAPI MQMailComposeBody(LPMQMailEMail pEMail,ULONG *pcbBuffer,LPBYTE *ppbBuffer);
  STDAPI MQMailParseBody(ULONG cbBuffer,LPBYTE pbBuffer,LPMQMailEMail *ppEMail);
  STDAPI_(void) MQMailFreeMemory(LPVOID lpBuffer);

#ifdef __cplusplus
}
#endif
#endif