mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 22:02:58 -06:00
104 lines
3.1 KiB
C++
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
|