ultimatepp/bazaar/MAPIEx/plugin/MAPIObject.h
koldo b18a9b6136 MAPIEx: Outlook automation
git-svn-id: svn://ultimatepp.org/upp/trunk@3391 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2011-05-01 21:46:26 +00:00

105 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
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CMAPIEx;
class CMAPIFolder;
class CMAPIAttachment;
/////////////////////////////////////////////////////////////
// CMAPIObject
class AFX_EXT_CLASS CMAPIObject : public CObject
{
public:
CMAPIObject();
~CMAPIObject();
// Attributes
protected:
CMAPIEx* m_pMAPI;
IMAPIProp* m_pItem;
SBinary m_entryID;
// Operations
public:
inline LPMESSAGE Message() { return (LPMESSAGE)m_pItem; }
SBinary* GetEntryID() { return &m_entryID; }
BOOL GetHexString(CString& strHex, SBinary bin);
BOOL GetEntryIDString(CString& strEntryID);
void SetEntryID(SBinary* pEntryID=NULL);
int GetMessageFlags();
BOOL SetMessageFlags(int nFlags);
int GetSensitivity();
BOOL SetSensitivity(int nSensitivity);
int GetImportance();
BOOL SetImportance(int nImportance);
BOOL GetMessageClass(CString& strMessageClass);
BOOL SetMessageClass(LPCTSTR szMessageClass);
int GetMessageEditorFormat();
BOOL SetMessageEditorFormat(int nFormat);
virtual BOOL Open(CMAPIEx* pMAPI, SBinary entry);
virtual void Close();
virtual BOOL Save(BOOL bClose=TRUE);
// Properties
virtual BOOL GetPropertyString(ULONG ulProperty, CString& strProperty, BOOL bStream=FALSE);
int GetPropertyValue(ULONG ulProperty, int nDefaultValue);
BOOL GetNamedProperty(LPCTSTR szFieldName, LPSPropValue& pProp);
BOOL GetNamedProperty(LPCTSTR szFieldName, CString& strField);
BOOL GetOutlookProperty(ULONG ulData, ULONG ulProperty, LPSPropValue& pProp);
BOOL GetOutlookPropertyValue(ULONG ulData, ULONG ulProperty, int& nValue);
BOOL GetOutlookPropertyString(ULONG ulData, ULONG ulProperty, CString& strProperty);
virtual BOOL SetPropertyString(ULONG ulProperty, LPCTSTR 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(CMAPIAttachment& attachment, int nIndex);
BOOL AddAttachment(CMAPIAttachment& attachment);
BOOL AddAttachment(LPCTSTR szPath, LPCTSTR szName=NULL, LPCTSTR szCID=NULL);
BOOL DeleteAttachment(int nIndex=-1);
BOOL SaveAttachment(LPCTSTR szFolder, int nIndex=-1, LPCTSTR szFileName=NULL);
// Body
BOOL GetBody(CString& strBody, BOOL bAutoDetect=TRUE);
BOOL SetBody(LPCTSTR szBody);
BOOL GetHTML(CString& strHTML);
BOOL SetHTML(LPCTSTR szHTML);
BOOL GetRTF(CString& strRTF);
BOOL SetRTF(LPCTSTR szRTF);
// Misc
BOOL GetLastModified(SYSTEMTIME& tmLastModified);
BOOL GetLastModified(CString& strLastModified, LPCTSTR szFormat=NULL); // NULL defaults to "MM/dd/yyyy"
BOOL SetLastModified(SYSTEMTIME& tmLastModified);
protected:
BOOL Create(CMAPIEx* pMAPI, CMAPIFolder* pFolder);
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);
};
#endif