mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
108 lines
4.1 KiB
C++
108 lines
4.1 KiB
C++
#ifndef __MAPIOBJECT_H__
|
|
#define __MAPIOBJECT_H__
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// File: MAPIObject.h
|
|
// Description: Base class for code common to MAPI Items (messages, contacts etc)
|
|
//
|
|
// Copyright (C) 2005-2011, Noel Dillabough
|
|
//
|
|
// This source code is free to use and modify provided this notice remains intact and that any enhancements
|
|
// or bug fixes are posted to the CodeProject page hosting this class for the community to benefit.
|
|
//
|
|
// Usage: see the CodeProject article at http://www.codeproject.com/internet/CMapiEx.asp
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Ported to U++ Framework by Koldo. See License.txt file
|
|
|
|
class MAPIEx;
|
|
class MAPIFolder;
|
|
class MAPIAttachment;
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
// MAPIObject
|
|
|
|
class MAPIObject {
|
|
public:
|
|
MAPIObject();
|
|
~MAPIObject();
|
|
|
|
// Attributes
|
|
protected:
|
|
MAPIEx *m_pMAPI;
|
|
IMAPIProp *m_pItem;
|
|
SBinary m_entryID;
|
|
|
|
// Operations
|
|
public:
|
|
inline LPMESSAGE Message() { return (LPMESSAGE)m_pItem; }
|
|
String GetHexString(SBinary bin);
|
|
SBinary* GetEntryID() { return &m_entryID; }
|
|
String GetEntryIDString();
|
|
void SetEntryID(SBinary* pEntryID = NULL);
|
|
int GetMessageFlags();
|
|
bool SetMessageFlags(int nFlags);
|
|
int GetSensitivity();
|
|
bool SetSensitivity(int nSensitivity);
|
|
int GetImportance();
|
|
bool SetImportance(int nImportance);
|
|
String GetMessageClass();
|
|
bool SetMessageClass(String szMessageClass);
|
|
int GetMessageEditorFormat();
|
|
bool SetMessageEditorFormat(int nFormat);
|
|
|
|
virtual bool Open(MAPIEx* pMAPI, SBinary entry);
|
|
virtual void Close();
|
|
virtual bool Save(bool bClose=true);
|
|
|
|
// Properties
|
|
virtual String GetPropertyString(ULONG ulProperty, bool bStream = false);
|
|
int GetPropertyValue(ULONG ulProperty, int nDefaultValue);
|
|
bool GetNamedProperty(LPCTSTR szFieldName, LPSPropValue& pProp);
|
|
bool GetNamedProperty(LPCTSTR szFieldName, String& strField);
|
|
bool GetOutlookProperty(ULONG ulData, ULONG ulProperty, LPSPropValue& pProp);
|
|
bool GetOutlookPropertyValue(ULONG ulData, ULONG ulProperty, int& nValue);
|
|
bool GetOutlookPropertyString(ULONG ulData, ULONG ulProperty, String& strProperty);
|
|
virtual bool SetPropertyString(ULONG ulProperty, String szProperty, bool bStream=false);
|
|
bool SetPropertyValue(ULONG ulProperty, int nValue);
|
|
bool SetNamedProperty(LPCTSTR szFieldName, LPCTSTR szField, bool bCreate=true);
|
|
bool SetNamedMVProperty(LPCTSTR szFieldName, LPCTSTR* arCategories, int nCount,
|
|
LPSPropValue &pProp, bool bCreate=true);
|
|
bool SetOutlookProperty(ULONG ulData, ULONG ulProperty, LPCTSTR szField);
|
|
bool SetOutlookProperty(ULONG ulData, ULONG ulProperty, int nField, int nFieldType = PT_LONG);
|
|
bool SetOutlookProperty(ULONG ulData, ULONG ulProperty, FILETIME ftField);
|
|
bool DeleteNamedProperty(LPCTSTR szFieldName);
|
|
|
|
// Attachments
|
|
int GetAttachmentCount();
|
|
bool GetAttachment(MAPIAttachment& attachment, int nIndex);
|
|
bool AddAttachment(MAPIAttachment& attachment);
|
|
bool SaveAttachment(LPCTSTR szFolder, int nIndex=-1, LPCTSTR szFileName=NULL);
|
|
bool DeleteAttachment(int nIndex=-1);
|
|
bool AddAttachment(const String &szPath, String szName = Null, String szCID = Null);
|
|
|
|
// Body
|
|
String GetBody(bool bAutoDetect = true);
|
|
bool SetBody(const String& strBody);
|
|
String GetHTML();
|
|
bool SetHTML(const String& strHTML);
|
|
String GetRTF();
|
|
bool SetRTF(const String& strRTF);
|
|
|
|
// Misc
|
|
Time GetLastModified(SYSTEMTIME& tmLastModified);
|
|
bool SetLastModified(const Time& tmLastModified);
|
|
|
|
protected:
|
|
bool Create(MAPIEx &mapi, MAPIFolder &folder);
|
|
HRESULT GetProperty(ULONG ulProperty, LPSPropValue &prop);
|
|
bool GetPropTagArray(LPCTSTR szFieldName, LPSPropTagArray& lppPropTags, int& nFieldType,
|
|
bool bCreate);
|
|
bool GetOutlookPropTagArray(ULONG ulData, ULONG ulProperty, LPSPropTagArray& lppPropTags,
|
|
int& nFieldType, bool bCreate);
|
|
//bool SaveAttachment(LPATTACH pAttachment, LPCTSTR szPath);
|
|
};
|
|
|
|
#endif
|