ultimatepp/bazaar/MAPIEx/MAPIFolder.h
koldo d104c6669b MAPIEx: Modified OpenSubFolder()
git-svn-id: svn://ultimatepp.org/upp/trunk@3442 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2011-05-21 20:25:54 +00:00

104 lines
3.1 KiB
C++

#ifndef __MAPIFOLDER_H__
#define __MAPIFOLDER_H__
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// File: MAPIFolder.h
// Description: MAPI Folder class wrapper
//
// 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
#ifdef _WIN32_WCE
#include "POOM.h"
#define DEFAULT_FOLDER_BUFFER_SIZE 128
#else
#define DEFAULT_FOLDER_BUFFER_SIZE 512
#endif
/////////////////////////////////////////////////////////////
// MAPIFolder
class MAPIFolder : public MAPIObject {
public:
MAPIFolder();
MAPIFolder(MAPIEx* pMAPI, LPMAPIFOLDER pFolder, String szName = NULL);
~MAPIFolder();
enum { PROP_MESSAGE_FLAGS, PROP_ENTRYID, MESSAGE_COLS };
// Attributes
protected:
LPMAPITABLE m_pHierarchy;
LPMAPITABLE m_pContents;
int m_nMaxRowsSize;
ULONG m_nRowsIndex;
LPSRowSet m_pRows;
String m_strName;
#ifdef _WIN32_WCE
CPOOM m_poom;
#endif
// Operations
//public:
inline LPMAPIFOLDER Folder() { return (LPMAPIFOLDER)m_pItem; }
bool Attach(MAPIEx* pMAPI, LPMAPIFOLDER pFolder, String szName = NULL);
LPMAPIFOLDER Detach();
LPMAPITABLE GetHierarchy();
LPMAPITABLE GetContents();
bool SetRestriction(SRestriction* pRestriction);
#ifdef _WIN32_WCE
CPOOM* GetPOOM() { return &m_poom; }
#endif
virtual void Close();
void SetBufferSize(int nSize);
void ClearBuffer();
bool IsOpened() {return m_pHierarchy;};
public:
String GetName();
bool OpenSubFolder(const String &subFolderName, MAPIFolder &subFolder,
bool fullPath = false, String path = Null);
bool CreateSubFolder(const String &subFolderName, MAPIFolder &subFolder);
bool DeleteSubFolder(const String &subFolder);
bool DeleteSubFolder(MAPIFolder &folder);
int GetCount();
bool SortContents(ULONG ulSortParam = TABLE_SORT_ASCEND,
ULONG ulSortField = PR_MESSAGE_DELIVERY_TIME);
bool SetUnreadOnly(bool bUnreadOnly = true);
bool GetNextMessage(MAPIMessage& message);
bool GetNextContact(MAPIContact& contact);
bool GetNextAppointment(MAPIAppointment& appointment);
bool GetNextSubFolder(MAPIFolder& folder, String& strFolder);
bool DeleteMessage(MAPIMessage& message);
bool CopyMessage(MAPIMessage& message, MAPIFolder& pFolderDest);
bool MoveMessage(MAPIMessage& message, MAPIFolder& pFolderDest);
bool DeleteContact(MAPIContact& contact);
bool DeleteAppointment(MAPIAppointment& appointment);
protected:
void Init();
bool DeleteObject(MAPIObject& object);
bool QueryRows();
SRow* GetNextRow();
friend class MAPIEx;
friend class MAPIMessage;
friend class MAPIObject;
};
#endif