00001
00014 #ifndef __EMAIMESSAGE_H__
00015 #define __EMAIMESSAGE_H__
00016
00017 #include <EmaiObject.h>
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00026 typedef struct EmaiOpaqueMessage* EmaiMessage;
00027
00031 typedef struct EmaiOpaqueMessagePart* EmaiMessagePart;
00032
00037 typedef struct EmaiOpaqueStringList* EmaiStringList;
00038
00043 typedef struct EmaiOpaqueContactList* EmaiContactList;
00044
00053 typedef struct EmaiOpaqueContentField* EmaiContentField;
00054
00055
00062 enum EmaiEnumMessageCharset
00063 {
00064 EmaiUSASCII,
00065 EmaiKOI_8R,
00066 EmaiKOI_8U,
00067 EmaiISO8859_1,
00068 EmaiISO8859_2,
00069 EmaiISO8859_3,
00070 EmaiISO8859_4,
00071 EmaiISO8859_5,
00072 EmaiISO8859_6,
00073 EmaiISO8859_7,
00074 EmaiISO8859_8,
00075 EmaiISO8859_9,
00076 EmaiISO8859_10,
00077 EmaiISO8859_11,
00078 EmaiISO8859_13,
00079 EmaiISO8859_14,
00080 EmaiISO8859_15,
00081 EmaiISO8859_16,
00082 EmaiWindows1250,
00083 EmaiWindows1251,
00084 EmaiWindows1252,
00085 EmaiWindows1253,
00086 EmaiWindows1254,
00087 EmaiWindows1255,
00088 EmaiWindows1256,
00089 EmaiWindows1257,
00090 EmaiWindows1258,
00091 EmaiBig5,
00092 EmaiKSC5601_1987,
00093 EmaiGB2312,
00094 EmaiISO_2022_JP,
00095 EmaiISO_2022_JP_2,
00096 EmaiISO_2022_JP_1,
00097 EmaiISO_2022_JP_3,
00098 EmaiCSISO_2022_JP,
00099 EmaiEUC_JP,
00100 EmaiISO_2022_CN,
00101 EmaiISO_2022_CN_EXT,
00102 EmaiHZ_GB_2312,
00103 EmaiISO_2022_KR,
00104 EmaiEUC_KR,
00105 EmaiUTF_8,
00106 EmaiMacRomanLatin1,
00107
00108 EmaiUnknown = 0xFFFFFFFF
00109 };
00110
00111
00120 EMAIAPI(EmaiError)
00121 EmaiStringListCreate(
00122 EmaiStringList* outStringList,
00123 EmaiOptions inOptions);
00124
00134 EMAIAPI(EmaiError)
00135 EmaiStringListGetCount(
00136 EmaiStringList inStringList,
00137 EmaiUint32* outCount,
00138 EmaiOptions inOptions);
00139
00149 EMAIAPI(EmaiError)
00150 EmaiStringListAddString(
00151 EmaiStringList inStringList,
00152 EmaiConstUniCharPtr inString,
00153 EmaiOptions inOptions);
00154
00166 EMAIAPI(EmaiConstUniCharPtr)
00167 EmaiStringListGetString(
00168 EmaiStringList inStringList,
00169 EmaiUint32 inIndex,
00170 EmaiOptions inOptions);
00171
00172
00181 EMAIAPI(EmaiError)
00182 EmaiContactListCreate(
00183 EmaiContactList* outContactList,
00184 EmaiOptions inOptions);
00185
00197 EMAIAPI(EmaiError)
00198 EmaiContactListGetCount(
00199 EmaiContactList inContactList,
00200 EmaiUint32* outCount,
00201 EmaiOptions inOptions);
00202
00220 EMAIAPI(EmaiError)
00221 EmaiContactListAddContact(
00222 EmaiContactList inContactList,
00223 EmaiConstUniCharPtr inName,
00224 EmaiConstUniCharPtr inAddress,
00225 const void* inReserved,
00226 EmaiOptions inOptions);
00227
00241 EMAIAPI(EmaiConstUniCharPtr)
00242 EmaiContactListGetContactName(
00243 EmaiContactList inContactList,
00244 EmaiUint32 inIndex,
00245 EmaiOptions inOptions);
00246
00260 EMAIAPI(EmaiConstUniCharPtr)
00261 EmaiContactListGetContactAddress(
00262 EmaiContactList inContactList,
00263 EmaiUint32 inIndex,
00264 EmaiOptions inOptions);
00265
00266
00280 EMAIAPI(EmaiError)
00281 EmaiContentFieldCreate(
00282 EmaiContentField* outContentField,
00283 EmaiConstUniCharPtr inValue,
00284 EmaiOptions inOptions);
00285
00300 EMAIAPI(EmaiError)
00301 EmaiContentFieldAddParameter(
00302 EmaiContentField inContentField,
00303 EmaiConstUniCharPtr inParamName,
00304 EmaiConstUniCharPtr inParamValue,
00305 EmaiOptions inOptions);
00306
00319 EMAIAPI(EmaiConstUniCharPtr)
00320 EmaiContentFieldGetValue(
00321 EmaiContentField inContentField,
00322 EmaiOptions inOptions);
00323
00336 EMAIAPI(EmaiError)
00337 EmaiContentFieldGetParameterCount(
00338 EmaiContentField inContentField,
00339 EmaiUint32* outCount,
00340 EmaiOptions inOptions);
00341
00355 EMAIAPI(EmaiConstUniCharPtr)
00356 EmaiContentFieldGetParameterName(
00357 EmaiContentField inContentField,
00358 EmaiUint32 inIndex,
00359 EmaiOptions inOptions);
00360
00374 EMAIAPI(EmaiConstUniCharPtr)
00375 EmaiContentFieldGetParameterValue(
00376 EmaiContentField inContentField,
00377 EmaiUint32 inIndex,
00378 EmaiOptions inOptions);
00379
00394 EMAIAPI(EmaiConstUniCharPtr)
00395 EmaiContentFieldFindParameterValue(
00396 EmaiContentField inContentField,
00397 EmaiConstUniCharPtr inParamName,
00398 EmaiOptions inOptions);
00399
00400
00411 EMAIAPI(EmaiError)
00412 EmaiMessageCreate(
00413 EmaiMessage* outMessage,
00414 EmaiMessagePart inRootMessagePart,
00415 EmaiOptions inOptions);
00416
00427 EMAIAPI(EmaiError)
00428 EmaiMessageCreateFromData(
00429 EmaiMessage* outMessage,
00430 const void* inData,
00431 EmaiUint32 inDataSize,
00432 EmaiOptions inOptions);
00433
00443 enum EmaiEnumMessageFieldType
00444 {
00445 EmaiFrom = 1,
00446 EmaiTo,
00447 EmaiCC,
00448 EmaiSender,
00449 EmaiReplyTo,
00450 EmaiBCC,
00451
00452 EmaiSubject,
00453 EmaiMimeVersion,
00454 EmaiXPriority,
00455 };
00456
00473 EMAIAPI(EmaiError)
00474 EmaiMessageSetField(
00475 EmaiMessage inMessage,
00476 EmaiConstUniCharPtr inFieldName,
00477 EmaiConstUniCharPtr inFieldValue,
00478 EmaiOptions inOptions);
00479
00480
00491 EMAIAPI(EmaiError)
00492 EmaiMessageSetContactList(
00493 EmaiMessage inMessage,
00494 EmaiContactList inContactList,
00495 EmaiOptions inOptions);
00496
00497
00510 enum
00511 {
00512 EmaiFailOnUnknownCharset = 0x8000000
00513 };
00514
00515
00516
00522 enum EmaiEnumMessageEncoding
00523 {
00524 EmaiEncodingAutomatic,
00525 EmaiEncodingBase64,
00526 EmaiEncodingQuotedPrintable,
00527 EmaiEncoding7bit,
00528 EmaiEncodingUnknown
00529 };
00530
00531
00532
00533
00534
00540 typedef struct
00541 {
00542 EmaiConstCharPtr text;
00543 EmaiUint32 textSize;
00544
00546 EmaiUint32 characterSet;
00547 } EmaiPlainTextPartData;
00548
00552 typedef struct
00553 {
00554 EmaiConstCharPtr html;
00555 EmaiUint32 htmlSize;
00556 } EmaiHtmlTextPartData;
00557
00561 typedef struct
00562 {
00563 EmaiConstUniCharPtr text;
00564
00566 EmaiUint32 textSize;
00567 } EmaiUnicodeTextPartData;
00568
00572 typedef struct
00573 {
00574 const void* data;
00575 EmaiUint32 dataSize;
00576 } EmaiDataPartData;
00577
00578
00579
00580
00581
00586 typedef struct
00587 {
00589 EmaiConstUniCharPtr filePath;
00590 } EmaiFilePartData;
00591
00595 typedef struct
00596 {
00597 EmaiUint32 subPartCount;
00598 const EmaiMessagePart* subParts;
00601 } EmaiCompositePartData;
00602
00610 enum EmaiEnumMessagePartType
00611 {
00612 EmaiPartPlainTextData,
00613 EmaiPartUnicodeTextData,
00614 EmaiPartHTMLData,
00615 EmaiPartDataData,
00616 EmaiPartFileData,
00617 EmaiPartCompositeData
00618 };
00619
00626 typedef struct
00627 {
00630 EmaiUint32 version;
00631
00632
00633
00634
00635
00637 EmaiConstUniCharPtr contentID;
00638
00640 EmaiContentField contentType;
00641
00643 EmaiContentField contentDisposition;
00644
00646 EmaiUint32 encoding;
00647
00649 EmaiUint32 partType;
00650
00653 union
00654 {
00657 EmaiPlainTextPartData plainText;
00658
00661 EmaiUnicodeTextPartData unicodeText;
00662
00665 EmaiHtmlTextPartData htmlText;
00666
00669 EmaiDataPartData data;
00670
00673 EmaiFilePartData file;
00674
00677 EmaiCompositePartData composite;
00678 } partData;
00679
00680 } EmaiPartData;
00681
00692 EMAIAPI(EmaiError)
00693 EmaiMessagePartCreate(
00694 EmaiMessagePart* outMessagePart,
00695 const EmaiPartData* inData,
00696 EmaiOptions inOptions);
00697
00710 EMAIAPI(EmaiError)
00711 EmaiMessagePartAddSubParts(
00712 EmaiMessagePart inCompositeMessagePart,
00713 const EmaiMessagePart inSubParts[],
00714 EmaiUint32 inSubPartCount,
00715 EmaiOptions inOptions);
00716
00727 EMAIAPI(EmaiError)
00728 EmaiMessageGetRootPart(
00729 EmaiMessage inMessage,
00730 EmaiMessagePart* outRootMessagePart,
00731 EmaiOptions inOptions);
00732
00743 EMAIAPI(EmaiError)
00744 EmaiMessagePartGetMessage(
00745 EmaiMessagePart inMessagePart,
00746 EmaiMessage* outMessage,
00747 EmaiOptions inOptions);
00748
00767 EMAIAPI(EmaiError)
00768 EmaiMessagePartGetSubParts(
00769 EmaiMessagePart inCompositeMessagePart,
00770 EmaiMessagePart outSubParts[],
00771 EmaiUint32* ioSubPartCount,
00772 EmaiOptions inOptions);
00773
00779 enum
00780 {
00781 EmaiGetUnicodeTextData,
00782 EmaiGetNativeTextData
00783 };
00784
00801 EMAIAPI(EmaiError)
00802 EmaiMessagePartGetData(
00803 EmaiMessagePart inMessagePart,
00804 EmaiPartData* outData,
00805 EmaiOptions inOptions);
00806
00819 EMAIAPI(EmaiError)
00820 EmaiMessageCopyFields(
00821 EmaiMessage inMessage,
00822 EmaiStringList* outFieldNames,
00823 EmaiStringList* outFieldValues,
00824 EmaiOptions inOptions);
00825
00843 EMAIAPI(EmaiError)
00844 EmaiMessageGetFieldByName(
00845 EmaiMessage inMessage,
00846 EmaiConstUniCharPtr inFieldName,
00847 EmaiConstUniCharPtr* outFieldValue,
00848 EmaiOptions inOptions);
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866 EMAIAPI(EmaiError)
00867 EmaiMessageCopyContactList(
00868 EmaiMessage inMessage,
00869 EmaiContactList* outContactList,
00870 EmaiOptions inOptions);
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893 EMAIAPI(EmaiError)
00894 EmaiMessageGetData(
00895 EmaiMessage inMessage,
00896 const void** outData,
00897 EmaiUint32* outHeaderSize,
00898 EmaiUint32* outDataSize,
00899 EmaiOptions inOptions);
00900
00901
00902
00903
00904
00905
00906
00907
00908
00909
00910
00911
00912
00913 EMAIAPI(EmaiError)
00914 EmaiMessageGetReceivedDateTime(
00915 EmaiMessage inMessage,
00916 tm* outDateTime,
00917 EmaiOptions inOptions);
00918
00919 #ifdef __cplusplus
00920 }
00921 #endif
00922
00923 #endif