Dacons LLP Mailit for C/C++ Version 1.0.8

MessagePartEnumerator.hpp

Go to the documentation of this file.
00001 
00015 #ifndef __MESSAGEPARTENUMERATOR_HPP__
00016 #define __MESSAGEPARTENUMERATOR_HPP__
00017 
00018 #include <EmaiMessagePartEnumerator.hpp>
00019 #include <vector>
00020 
00025 class MessagePartEnumerator : public Emai::MessagePartEnumerator
00026 {
00027 
00028 protected:
00029     Emai::UniString                     mSubject;
00030 
00031     Emai::ContactList                   mContactFrom;
00032     Emai::ContactList                   mContactTo;
00033     Emai::ContactList                   mContactSender;
00034     Emai::ContactList                   mContactReplyTo;
00035     Emai::ContactList                   mContactBCC;
00036     Emai::ContactList                   mContactCC;
00037 
00038     Emai::MessagePart                   mHtmlPart;
00039 
00040     typedef std::vector<Emai::MessagePart>
00041                                         MessagePartArray;
00042 
00043     MessagePartArray                    mAttachments;
00044 
00045     MessagePartArray                    mInlines;
00046 
00047     MessagePartArray                    mTextParts;
00048 
00049 
00057     virtual void                        OnContacts(
00058                                                 Emai::ContactList inContactList,
00059                                                 EmaiOptions inOptions);
00060 
00066     virtual void                        OnSubject(
00067                                                 EmaiConstUniCharPtr inSubject);
00068 
00075     virtual void                        OnPlainTextPart(
00076                                                 Emai::MessagePart& inPart,
00077                                                 const EmaiPartData& inPartData);
00078 
00085     virtual void                        OnUnicodePlainTextPart(
00086                                                 Emai::MessagePart& inPart,
00087                                                 const EmaiPartData& inPartData);
00088 
00095     virtual void                        OnHtmlTextPart(
00096                                                 Emai::MessagePart& inPart,
00097                                                 const EmaiPartData& inPartData);
00098 
00105     virtual void                        OnDataPart(
00106                                                 Emai::MessagePart& inPart,
00107                                                 const EmaiPartData& inPartData);
00108 
00115     virtual void                        OnCompositePartStart(
00116                                                 Emai::MessagePart& inPart,
00117                                                 const EmaiPartData& inPartData);
00118 
00125     virtual void                        OnCompositePartEnd(
00126                                                 Emai::MessagePart& inPart,
00127                                                 const EmaiPartData& inPartData);
00128 
00134     virtual void                        OnPart(
00135                                                 const EmaiPartData& inPartData);
00136 
00144     Emai::ContactList&                  GetContactStorage(
00145                                                 EmaiOptions inOptions);
00146 
00155     EmaiConstUniCharPtr                 GetFileName(
00156                                                 const EmaiPartData& inPartData);
00157 
00167     void                                GenerateFileName(
00168                                                 Emai::MessagePart& inPart,
00169                                                 Emai::UniString& outFileName);
00170     
00178     void                                AppendPathDelimiter(
00179                                                 Emai::UniString& ioPath);
00180     
00188     FILE*                               OpenAttachmentFile(
00189                                                 const Emai::UniString& inFilePath);
00190     
00195     virtual void                        PreProcessMessageParts();
00196 
00201     virtual void                        PostProcessMessageParts();
00202 
00203 public:
00204                                         MessagePartEnumerator(
00205                                                 const Emai::Message& inMessage):
00206                                             Emai::MessagePartEnumerator(inMessage),
00207                                             mHtmlPart(NULL, false)
00208                                         {
00209                                         }
00210 
00216     const Emai::UniString&              GetSubject();
00217 
00225     Emai::ContactList&                  GetContacts(
00226                                                 EmaiOptions inOptions);
00227 
00233     void                                GetText(
00234                                                 Emai::String& outText);
00235 
00241     void                                GetUnicodeText(
00242                                                 Emai::UniString& outText);
00243 
00249     void                                GetHtml(
00250                                                 Emai::String& outHtml);
00251 
00257     EmaiUint32                          GetAttachmentsCount();
00258 
00267     void                                GetAttachmentAtIndex(
00268                                                 const EmaiUint32 inIndex,
00269                                                 Emai::UniString& outFileName,
00270                                                 EmaiCharPtr outBuffer,
00271                                                 EmaiUint32& ioLength);
00272 
00283     bool                                SaveAttachmentAtIndex(
00284                                                 const bool inIsInline,
00285                                                 const EmaiUint32 inIndex,
00286                                                 EmaiConstUniCharPtr inPath,
00287                                                 EmaiConstUniCharPtr inNewName);
00288 
00294     EmaiUint32                          GetInlinesCount();
00295 
00305     void                                GetInlineAtIndex(
00306                                                 const EmaiUint32 inIndex,
00307                                                 Emai::UniString& outName,
00308                                                 Emai::UniString& outContentID,
00309                                                 EmaiCharPtr outBuffer,
00310                                                 EmaiUint32& ioLength);
00311 
00317     EmaiUint32                          GetTextPartsCount();
00318 
00325     void                                GetUnicodeTextAtIndex(
00326                                                 const EmaiUint32 inIndex, 
00327                                                 Emai::UniString& outText);
00328 
00335     void                                GetTextAtIndex(
00336                                                 const EmaiUint32 inIndex,
00337                                                 Emai::String& outText);
00338     
00339 };
00340 
00341 #endif /*__EMAIMESSAGEPARTENUMERATOR_HPP__*/