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