mqmail.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #include <windows.h>
  12. #include <windowsx.h>
  13. #include <ole2.h>
  14. DEFINE_GUID(CLSID_MQMailQueueType,0x5eadc0d0,0x7182,0x11cf,0xa8,0xff,0x00,0x20,0xaf,0xb8,0xfb,0x50);
  15. typedef enum MQMailRecipType_enum {
  16. MQMailRecip_TO,MQMailRecip_CC,MQMailRecip_BCC
  17. } MQMailRecipType;
  18. typedef struct MQMailRecip_tag {
  19. LPSTR szName;
  20. LPSTR szQueueLabel;
  21. LPSTR szAddress;
  22. MQMailRecipType iType;
  23. LPFILETIME pftDeliveryTime;
  24. LPSTR szNonDeliveryReason;
  25. } MQMailRecip,*LPMQMailRecip;
  26. typedef struct MQMailRecipList_tag {
  27. ULONG cRecips;
  28. LPMQMailRecip *apRecip;
  29. } MQMailRecipList,*LPMQMailRecipList;
  30. typedef enum MQMailFormFieldType_enum {
  31. MQMailFormField_BOOL,MQMailFormField_STRING,MQMailFormField_LONG,MQMailFormField_CURRENCY,MQMailFormField_DOUBLE
  32. } MQMailFormFieldType;
  33. typedef union MQMailFormFieldData_tag {
  34. WINBOOL b;
  35. LPSTR lpsz;
  36. LONG l;
  37. CY cy;
  38. double dbl;
  39. } MQMailFormFieldData,*LPMQMailFormFieldData;
  40. typedef struct MQMailFormField_tag {
  41. LPSTR szName;
  42. MQMailFormFieldType iType;
  43. MQMailFormFieldData Value;
  44. } MQMailFormField,*LPMQMailFormField;
  45. typedef struct MQMailFormFieldList_tag {
  46. ULONG cFields;
  47. LPMQMailFormField *apField;
  48. } MQMailFormFieldList,*LPMQMailFormFieldList;
  49. typedef enum MQMailEMailType_enum {
  50. MQMailEMail_MESSAGE,MQMailEMail_FORM,MQMailEMail_TNEF,MQMailEMail_DELIVERY_REPORT,MQMailEMail_NON_DELIVERY_REPORT
  51. } MQMailEMailType;
  52. typedef struct MQMailMessageData_tag {
  53. LPSTR szText;
  54. } MQMailMessageData,*LPMQMailMessageData;
  55. typedef struct MQMailFormData_tag {
  56. LPSTR szName;
  57. LPMQMailFormFieldList pFields;
  58. } MQMailFormData,*LPMQMailFormData;
  59. typedef struct MQMailTnefData_tag {
  60. ULONG cbData;
  61. LPBYTE lpbData;
  62. } MQMailTnefData,*LPMQMailTnefData;
  63. typedef struct MQMailDeliveryReportData_tag {
  64. LPMQMailRecipList pDeliveredRecips;
  65. LPSTR szOriginalSubject;
  66. LPFILETIME pftOriginalDate;
  67. } MQMailDeliveryReportData,*LPMQMailDeliveryReportData;
  68. typedef struct MQMailEMail_tag MQMailEMail,*LPMQMailEMail;
  69. typedef struct MQMailNonDeliveryReportData_tag {
  70. LPMQMailRecipList pNonDeliveredRecips;
  71. LPMQMailEMail pOriginalEMail;
  72. } MQMailNonDeliveryReportData,*LPMQMailNonDeliveryReportData;
  73. typedef struct MQMailEMail_tag {
  74. LPMQMailRecip pFrom;
  75. LPSTR szSubject;
  76. WINBOOL fRequestDeliveryReport;
  77. WINBOOL fRequestNonDeliveryReport;
  78. LPFILETIME pftDate;
  79. LPMQMailRecipList pRecips;
  80. MQMailEMailType iType;
  81. __C89_NAMELESS union {
  82. MQMailFormData form;
  83. MQMailMessageData message;
  84. MQMailTnefData tnef;
  85. MQMailDeliveryReportData DeliveryReport;
  86. MQMailNonDeliveryReportData NonDeliveryReport;
  87. };
  88. LPVOID pReserved;
  89. } MQMailEMail,*LPMQMailEMail;
  90. STDAPI MQMailComposeBody(LPMQMailEMail pEMail,ULONG *pcbBuffer,LPBYTE *ppbBuffer);
  91. STDAPI MQMailParseBody(ULONG cbBuffer,LPBYTE pbBuffer,LPMQMailEMail *ppEMail);
  92. STDAPI_(void) MQMailFreeMemory(LPVOID lpBuffer);
  93. #ifdef __cplusplus
  94. }
  95. #endif
  96. #endif