Mornella/Mornella_Mobile/MAPIAttachment.h
#pragma once
#include "MAPICommon.h"
class MAPIAttachment
{
private:
LPATTACH _pAttach;
LPTSTR _lpFilename;
LONG _lStatus;
LONG _cbTotalSize;
LPBYTE _lpBody;
DWORD _cbRealSize;
LPBYTE _GetBody(DWORD* cbSize);
public:
void SetTotalSize(LONG size)
{
this->_cbTotalSize = size;
}
void SetStatus(LONG status)
{
this->_lStatus = status;
}
LPTSTR filename()
{
return _lpFilename;
}
LPBYTE body(DWORD *cbSize)
{
if (_lpBody == NULL)
_lpBody = _GetBody(&_cbRealSize);
(*cbSize) = _cbRealSize;
return _lpBody;
}
DWORD realSize()
{
return _cbRealSize;
}
LONG totalSize()
{
return _cbTotalSize;
}
MAPIAttachment( LPBYTE lpData, DWORD dwSize, LPTSTR lpFilename )
: _pAttach(NULL), _lpFilename(NULL), _cbRealSize(0), _lStatus(0), _cbTotalSize(0)
{
_lpBody = lpData;
_cbRealSize = dwSize;
size_t len = _tcslen(lpFilename) + 1;
_lpFilename = new TCHAR[len];
ZeroMemory(_lpFilename, len * sizeof(TCHAR));
wcscpy(_lpFilename, lpFilename);
}
MAPIAttachment(LPATTACH pAttach, LPTSTR lpFilename);
virtual ~MAPIAttachment(void);
};