mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-17 06:06:00 -06:00
105 lines
4.1 KiB
C++
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
|