116 lines
3.2 KiB
C
116 lines
3.2 KiB
C
/**
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
* This file is part of the w64 mingw-runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER 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;
|
|
__MINGW_EXTENSION 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
|