Home | History | Annotate | Download | only in include
      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
    116