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