// ==========================================================================
// Class Specification : MAPI Framework
// COXMSession;
// COXMInfoStores;
// COXMInfoStore;
// COXMFolders;
// COXMFolder;
// COXMMessages;
// COXMMessage;
// COXMFields;
// COXMField;
// COXMRecipients;
// COXMRecipient;
// COXMAttachments;
// COXMAttachment;
// COXMAddressEntry;
// ==========================================================================
// Header file : oxmdisp.h
// This software along with its related components, documentation and files ("The Libraries")
// is � 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
// to obtain this file, or directly from our office. For a copy of the license governing
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
// //////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "oxmdisp.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COXMSession class
CString COXMSession::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
EOXMClass COXMSession::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LPUNKNOWN COXMSession::GetMapiobject()
{
VARIANT result;
GetProperty(0x31, VT_VARIANT, (void*)&result);
return result.punkVal;
}
void COXMSession::SetMapiobject(LPUNKNOWN pSession)
{
COleVariant vSession;
vSession.vt = VT_UNKNOWN;
vSession.punkVal = pSession;
SetProperty(0x31, VT_VARIANT, &vSession);
}
CString COXMSession::GetVersion()
{
VARIANT result;
GetProperty(0x2c, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMSession::GetOperatingSystem()
{
VARIANT result;
GetProperty(0x18, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMSession::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMAddressEntry COXMSession::GetCurrentUser()
{
COXMAddressEntry entry;
VARIANT result;
GetProperty(0x1, VT_VARIANT, (void*)&result);
entry.m_bCurrentSessionUser = TRUE;
entry.AttachDispatch(result.pdispVal);
return entry;
}
COXMFolder COXMSession::GetInbox()
{
VARIANT result;
GetProperty(0xf, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMFolder COXMSession::GetOutbox()
{
VARIANT result;
GetProperty(0x10, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMInfoStores COXMSession::GetInfoStores()
{
VARIANT result;
GetProperty(0x39, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
void COXMSession::Logon(CString sProfileName /*= _T("")*/, CString sProfilePassword /*= _T("")*/, BOOL bShowDialog /*= TRUE*/, BOOL bNewSession /*= FALSE*/, HWND hParentWindow /*= NULL*/)
{
VARIANT result;
COleVariant vProfileName;
if (!sProfileName.IsEmpty())
vProfileName = sProfileName;
COleVariant vProfilePassword;
if (!sProfilePassword.IsEmpty())
vProfilePassword = sProfilePassword;
COleVariant vShowDialog((short)bShowDialog, VT_BOOL);
COleVariant vNewSession((short)bNewSession, VT_BOOL);
COleVariant vParentWindow((LONG) hParentWindow);
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x77, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vProfileName, &vProfilePassword, &vShowDialog, &vNewSession, &vParentWindow);
}
void COXMSession::Logoff()
{
VARIANT result;
InvokeHelper(0x76, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
COXMInfoStore COXMSession::GetInfoStore(CString sStoreID)
{
VARIANT result;
COleVariant vStoreID(sStoreID);
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x7a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vStoreID);
return result.pdispVal;
}
COXMFolder COXMSession::GetFolder(CString sFolderID, CString sStoreID /*=_T("")*/)
{
VARIANT result;
COleVariant vFolderID(sFolderID);
COleVariant vStoreID;
if (!sStoreID.IsEmpty())
vStoreID = sStoreID;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x74, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFolderID, &vStoreID);
return result.pdispVal;
}
COXMMessage COXMSession::GetMessage(CString sMessageID, CString sStoreID /*=NULL*/)
{
VARIANT result;
COleVariant vMessageID(sMessageID);
COleVariant vStoreID;
if (!sStoreID.IsEmpty())
vStoreID = sStoreID;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x75, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vMessageID, &vStoreID);
return result.pdispVal;
}
COXMAddressEntry COXMSession::GetAddressEntry(CString sEntryID)
{
VARIANT result;
COleVariant vEntryID(sEntryID);
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x72, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vEntryID);
return result.pdispVal;
}
COXMRecipients COXMSession::AddressBook(LPDISPATCH pRecipients /*= NULL*/,
CString sTitle /*= _T("")*/,
BOOL bOneAddress /*= FALSE*/,
BOOL bForceResolution /*= TRUE*/,
LONG nRecipLists /*= 0*/,
CString sTOLabel /*= _T(")*/,
CString sCCLabel /*= _T("")*/,
CString sBCCLabel /*= _T("")*/,
HWND hParentWindow /*= NULL*/)
{
VARIANT result;
VARIANT vRecipients;
vRecipients.vt = VT_DISPATCH;
vRecipients.pdispVal = pRecipients;
COleVariant vTitle(sTitle);
COleVariant vOneAddress((short)bOneAddress, VT_BOOL);
COleVariant vForceResolution((short)bForceResolution, VT_BOOL);
COleVariant vRecipLists(nRecipLists);
COleVariant vTOLabel;
if (!sTOLabel.IsEmpty())
vTOLabel = sTOLabel;
COleVariant vCCLabel;
if (!sCCLabel.IsEmpty())
vCCLabel = sCCLabel;
COleVariant vBCCLabel;
if (!sBCCLabel.IsEmpty())
vBCCLabel = sBCCLabel;
COleVariant vParentWindow((LONG)hParentWindow);
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x65, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vRecipients, &vTitle, &vOneAddress, &vForceResolution, &vRecipLists, &vTOLabel, &vCCLabel, &vBCCLabel, &vParentWindow);
return result.pdispVal;
}
/////////////////////////////////////////////////////////////////////////////
// COXMInfoStores Class
CString COXMInfoStores::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
EOXMClass COXMInfoStores::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LONG COXMInfoStores::GetCount()
{
VARIANT result;
GetProperty(0x9, VT_VARIANT, (void*)&result);
return result.lVal;
}
COXMInfoStore COXMInfoStores::GetItem(LONG nItem)
{
COleVariant vItem(nItem);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms,
&vItem);
return result.pdispVal;
}
/////////////////////////////////////////////////////////////////////////////
// COXMInfoStore Class
CString COXMInfoStore::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMInfoStores COXMInfoStore::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMInfoStore::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMInfoStore::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LONG COXMInfoStore::GetIndex()
{
VARIANT result;
GetProperty(0x13, VT_VARIANT, (void*)&result);
return result.lVal;
}
CString COXMInfoStore::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMInfoStore::GetId()
{
VARIANT result;
GetProperty(0xe, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMInfoStore::GetProviderName()
{
VARIANT result;
GetProperty(0x3a, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFolder COXMInfoStore::GetRootFolder()
{
VARIANT result;
GetProperty(0x3b, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
/////////////////////////////////////////////////////////////////////////////
// COXMFolder Class
CString COXMFolder::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
LPDISPATCH COXMFolder::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMFolder::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMFolder::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LPUNKNOWN COXMFolder::GetMapiobject()
{
VARIANT result;
GetProperty(0x31, VT_VARIANT, (void*)&result);
return result.punkVal;
}
void COXMFolder::SetMapiobject(LPUNKNOWN punkVal)
{
COleVariant vProp;
vProp.vt = VT_UNKNOWN;
vProp.punkVal = punkVal;
SetProperty(0x31, VT_VARIANT, &vProp);
}
CString COXMFolder::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMFolder::SetName(CString sName)
{
COleVariant propVal(sName);
SetProperty(0x17, VT_VARIANT, &propVal);
}
CString COXMFolder::GetId()
{
VARIANT result;
GetProperty(0xe, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMFolder::GetFolderID()
{
VARIANT result;
GetProperty(0x33, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMFolder::GetStoreID()
{
VARIANT result;
GetProperty(0x34, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFolders COXMFolder::GetFolders()
{
VARIANT result;
GetProperty(0xd, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMMessages COXMFolder::GetMessages()
{
VARIANT result;
GetProperty(0x16, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMFields COXMFolder::GetFields()
{
VARIANT result;
GetProperty(0xc, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
void COXMFolder::Update(BOOL bMakePermanent /*= TRUE*/, BOOL bRrefreshObject /*= FALSE*/)
{
COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL);
COleVariant vRefreshObject((short) bRrefreshObject, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vMakePermanent, &vRefreshObject);
}
/////////////////////////////////////////////////////////////////////////////
// COXMFolders properties
CString COXMFolders::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFolder COXMFolders::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMFolders::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMFolders::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
COXMFolder COXMFolders::GetFirst()
{
VARIANT result;
InvokeHelper(0x6d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
COXMFolder COXMFolders::GetNext()
{
VARIANT result;
InvokeHelper(0x6f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
COXMFolder COXMFolders::GetLast()
{
VARIANT result;
InvokeHelper(0x6e, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
COXMFolder COXMFolders::GetPrevious()
{
VARIANT result;
InvokeHelper(0x70, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
/////////////////////////////////////////////////////////////////////////////
// COXMMessages class
CString COXMMessages::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFolder COXMMessages::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMMessages::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMMessages::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
COXMMessage COXMMessages::Add(CString sSubject /*= _T("")*/,
CString sText /*= _T("")*/,
CString sType /*= _T("")*/,
LONG nImportance /*= 1*/)
{
VARIANT result;
COleVariant vSubject;
if (!sSubject.IsEmpty())
vSubject = sSubject;
COleVariant vText;
if (!sText.IsEmpty())
vText = sText;
COleVariant vType;
if (!sType.IsEmpty())
vType = sType;
COleVariant vImportance(nImportance);
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vSubject, &vText, &vType, &vImportance);
return result.pdispVal;
}
void COXMMessages::Delete(BOOL bSubFolders /*= TRUE*/)
{
COleVariant vSubFolders((short)bSubFolders, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vSubFolders);
}
void COXMMessages::Sort(LONG nSortOrder)
{
COleVariant vSortOrder(nSortOrder);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x86, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vSortOrder);
}
COXMMessage COXMMessages::GetFirst(CString sFilter /*= _T("")*/)
{
COleVariant vFilter;
if (!sFilter.IsEmpty())
vFilter = sFilter;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x6d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFilter);
return result.pdispVal;
}
COXMMessage COXMMessages::GetNext()
{
VARIANT result;
InvokeHelper(0x6f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
COXMMessage COXMMessages::GetLast(CString sFilter /*= _T("")*/)
{
COleVariant vFilter;
if (!sFilter.IsEmpty())
vFilter = sFilter;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x6e, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFilter);
return result.pdispVal;
}
COXMMessage COXMMessages::GetPrevious()
{
VARIANT result;
InvokeHelper(0x70, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result.pdispVal;
}
/////////////////////////////////////////////////////////////////////////////
// COXMMessage class
CString COXMMessage::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMMessages COXMMessage::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMMessage::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMMessage::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LPUNKNOWN COXMMessage::GetMapiobject()
{
VARIANT result;
GetProperty(0x31, VT_VARIANT, (void*)&result);
return result.punkVal;
}
void COXMMessage::SetMapiobject(LPUNKNOWN pSession)
{
COleVariant vSession;
vSession.vt = VT_UNKNOWN;
vSession.punkVal = pSession;
SetProperty(0x31, VT_VARIANT, &vSession);
}
CString COXMMessage::GetId()
{
VARIANT result;
GetProperty(0xe, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMMessage::GetFolderID()
{
VARIANT result;
GetProperty(0x33, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMMessage::GetStoreID()
{
VARIANT result;
GetProperty(0x34, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
CString COXMMessage::GetType()
{
VARIANT result;
GetProperty(0x11, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMMessage::SetType(CString sType)
{
COleVariant propVal(sType);
SetProperty(0x11, VT_VARIANT, &propVal);
}
LONG COXMMessage::GetSize()
{
VARIANT result;
GetProperty(0x24, VT_VARIANT, (void*)&result);
return result.lVal;
}
LONG COXMMessage::GetImportance()
{
VARIANT result;
GetProperty(0x1b, VT_VARIANT, (void*)&result);
return result.lVal;
}
void COXMMessage::SetImportance(LONG nImportance)
{
COleVariant propVal(nImportance);
SetProperty(0x1b, VT_VARIANT, &propVal);
}
CString COXMMessage::GetSubject()
{
VARIANT result;
GetProperty(0x26, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMMessage::SetSubject(CString sSubject)
{
COleVariant propVal(sSubject);
SetProperty(0x26, VT_VARIANT, &propVal);
}
COXMAddressEntry COXMMessage::GetSender()
{
VARIANT result;
GetProperty(0x20, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COleDateTime COXMMessage::GetTimeSent()
{
VARIANT result;
GetProperty(0x29, VT_VARIANT, (void*)&result);
return result.date;
}
void COXMMessage::SetTimeSent(COleDateTime tDate)
{
COleVariant propVal(tDate);
SetProperty(0x29, VT_VARIANT, &propVal);
}
COleDateTime COXMMessage::GetTimeReceived()
{
VARIANT result;
GetProperty(0x28, VT_VARIANT, (void*)&result);
return result.date;
}
void COXMMessage::SetTimeReceived(COleDateTime tDate)
{
COleVariant propVal(tDate);
SetProperty(0x28, VT_VARIANT, &propVal);
}
CString COXMMessage::GetText()
{
VARIANT result;
GetProperty(0x27, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMMessage::SetText(CString sText)
{
COleVariant propVal(sText);
SetProperty(0x27, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetSent()
{
VARIANT result;
GetProperty(0x21, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetSent(BOOL bSent)
{
COleVariant propVal((short) bSent, VT_BOOL);
SetProperty(0x21, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetSubmitted()
{
VARIANT result;
GetProperty(0x12, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetSubmitted(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0x12, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetUnread()
{
VARIANT result;
GetProperty(0x2a, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetUnread(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0x2a, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetSigned()
{
VARIANT result;
GetProperty(0x23, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetSigned(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0x23, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetEncrypted()
{
VARIANT result;
GetProperty(0xa, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetEncrypted(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0xa, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetReadReceipt()
{
VARIANT result;
GetProperty(0x1e, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetReadReceipt(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0x1e, VT_VARIANT, &propVal);
}
BOOL COXMMessage::GetDeliveryReceipt()
{
VARIANT result;
GetProperty(0x32, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
void COXMMessage::SetDeliveryReceipt(BOOL bFlag)
{
COleVariant propVal((short) bFlag, VT_BOOL);
SetProperty(0x32, VT_VARIANT, &propVal);
}
CString COXMMessage::GetConversationIndex()
{
VARIANT result;
GetProperty(0x37, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMMessage::SetConversationIndex(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x37, VT_VARIANT, &propVal);
}
CString COXMMessage::GetConversationTopic()
{
VARIANT result;
GetProperty(0x36, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMMessage::SetConversationTopic(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x36, VT_VARIANT, &propVal);
}
COXMFields COXMMessage::GetFields()
{
VARIANT result;
GetProperty(0xc, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMRecipients COXMMessage::GetRecipients()
{
VARIANT result;
GetProperty(0x1c, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMAttachments COXMMessage::GetAttachments()
{
VARIANT result;
GetProperty(0x5, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
void COXMMessage::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
void COXMMessage::Update(BOOL bMakePermanent /*= TRUE*/, BOOL bRefreshObject /*= FALSE*/)
{
COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL);
COleVariant vRefreshObject((short)bRefreshObject, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vMakePermanent, &vRefreshObject);
}
void COXMMessage::Send(BOOL bSaveCopy /*= TRUE*/, BOOL bShowDialog /*= FALSE*/, HWND hParentWindow /*= NULL*/)
{
COleVariant vSaveCopy((short) bSaveCopy, VT_BOOL);
COleVariant vShowDialog((short) bShowDialog, VT_BOOL);
COleVariant vParentWindow((LONG) hParentWindow);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x83, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vSaveCopy, &vShowDialog, &vParentWindow);
}
void COXMMessage::Options(HWND hParentWindow)
{
COleVariant vParentWindow((LONG) hParentWindow);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x7d, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vParentWindow);
}
/////////////////////////////////////////////////////////////////////////////
// COXMFields Class
CString COXMFields::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
LPDISPATCH COXMFields::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMFields::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMFields::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LONG COXMFields::GetCount()
{
VARIANT result;
GetProperty(0x9, VT_VARIANT, (void*)&result);
return result.lVal;
}
COXMField COXMFields::GetItem(COleVariant vItem, CString sPropSetID /* = _T("")*/)
{
COleVariant vPropSetID;
if (!sPropSetID.IsEmpty())
vPropSetID = sPropSetID;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_BSTR;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms,
&vItem, vPropSetID);
return result.pdispVal;
}
void COXMFields::SetNamespace(CString sValue)
{
COleVariant vPropsetID(sValue);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x7b, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vPropsetID);
}
COXMField COXMFields::Add(CString sName, COleVariant value, CString sPropsetID /*= _T("")*/)
{
ASSERT( value.vt == VT_NULL ||
value.vt == VT_I2 ||
value.vt == VT_I4 ||
value.vt == VT_R4 ||
value.vt == VT_R8 ||
value.vt == VT_CY ||
value.vt == VT_DATE ||
value.vt == VT_BSTR ||
value.vt == VT_BOOL ||
value.vt == VT_UNKNOWN ||
value.vt == VT_BLOB);
COleVariant vName(sName);
COleVariant vClass((LONG) value.vt);
COleVariant vPropsetID;
if (!sPropsetID.IsEmpty())
vPropsetID = sPropsetID;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vName, &vClass, &value, &vPropsetID);
return result.pdispVal;
}
void COXMFields::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
/////////////////////////////////////////////////////////////////////////////
// COXMField properties
CString COXMField::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFields COXMField::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMField::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMField::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LONG COXMField::GetIndex()
{
VARIANT result;
GetProperty(0x13, VT_VARIANT, (void*)&result);
return result.lVal;
}
LONG COXMField::GetType()
{
VARIANT result;
GetProperty(0x11, VT_VARIANT, (void*)&result);
return result.lVal;
}
CString COXMField::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
LONG COXMField::GetId()
{
VARIANT result;
GetProperty(0xe, VT_VARIANT, (void*)&result);
return result.lVal;
}
COleVariant COXMField::GetValue()
{
VARIANT result;
GetProperty(0x2b, VT_VARIANT, (void*)&result);
return result;
}
void COXMField::SetValue(COleVariant propVal)
{
COleVariant vType((LONG) propVal.vt);
SetProperty(0x11, VT_VARIANT, &vType);
SetProperty(0x2b, VT_VARIANT, &propVal);
}
void COXMField::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
void COXMField::ReadFromFile(CString sPath)
{
COleVariant vFileName(sPath);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x7f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFileName);
}
void COXMField::WriteToFile(CString sPath)
{
COleVariant vFileName(sPath);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x85, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFileName);
}
/////////////////////////////////////////////////////////////////////////////
// COXMRecipients Class
CString COXMRecipients::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFolder COXMRecipients::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMRecipients::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMRecipients::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
COXMRecipient COXMRecipients::GetItem(LONG nIndex)
{
COleVariant vItem(nIndex);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms,
&vItem);
return result.pdispVal;
}
LONG COXMRecipients::GetCount()
{
VARIANT result;
GetProperty(0x9, VT_VARIANT, (void*)&result);
return result.lVal;
}
BOOL COXMRecipients::GetResolved()
{
VARIANT result;
GetProperty(0x1d, VT_VARIANT, (void*)&result);
return V_BOOL(&result);
}
COXMRecipient COXMRecipients::Add(CString sName /*= _T("")*/, CString sAddress /*= _T("")*/, EOXMRecipientType eType/*= oxmrtTo*/, CString sEntryID /*= _T("")*/)
{
COleVariant vName;
if (!sName.IsEmpty())
vName = sName;
COleVariant vAddress;
if (!sAddress.IsEmpty())
vAddress = sAddress;
COleVariant vType((LONG) eType);
COleVariant vEntryID;
if (!sEntryID.IsEmpty())
vEntryID = sEntryID;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vName, &vAddress, &vType, &vEntryID);
return result.pdispVal;
}
void COXMRecipients::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
void COXMRecipients::Resolve(BOOL bShowDialog)
{
COleVariant vShowDialog((short) bShowDialog, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x82, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vShowDialog);
}
/////////////////////////////////////////////////////////////////////////////
// COXMRecipient properties
CString COXMRecipient::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMRecipients COXMRecipient::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMRecipient::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMRecipient::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
LONG COXMRecipient::GetIndex()
{
VARIANT result;
GetProperty(0x13, VT_VARIANT, (void*)&result);
return result.lVal;
}
EOXMDisplayType COXMRecipient::GetDisplayType()
{
VARIANT result;
GetProperty(0x38, VT_VARIANT, (void*)&result);
return (EOXMDisplayType) result.lVal;
}
CString COXMRecipient::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMRecipient::SetName(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x17, VT_VARIANT, &propVal);
}
EOXMRecipientType COXMRecipient::GetType()
{
VARIANT result;
GetProperty(0x11, VT_VARIANT, (void*)&result);
return (EOXMRecipientType) result.lVal;
}
void COXMRecipient::SetType(EOXMRecipientType eValue)
{
COleVariant propVal((LONG) eValue);
SetProperty(0x11, VT_VARIANT, &propVal);
}
CString COXMRecipient::GetAddress()
{
VARIANT result;
GetProperty(0x2, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMRecipient::SetAddress(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x2, VT_VARIANT, &propVal);
}
COXMAddressEntry COXMRecipient::GetAddressEntry()
{
VARIANT result;
GetProperty(0x35, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
void COXMRecipient::SetAddressEntry(LPDISPATCH pAddressEntry)
{
VARIANT propVal;
propVal.vt = VT_DISPATCH;
propVal.pdispVal = pAddressEntry;
SetProperty(0x35, VT_VARIANT, &propVal);
}
void COXMRecipient::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
void COXMRecipient::Resolve(BOOL bShowDialog)
{
COleVariant vShowDialog((short) bShowDialog, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x82, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vShowDialog);
}
/////////////////////////////////////////////////////////////////////////////
// COXMAttachments Class
CString COXMAttachments::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMMessage COXMAttachments::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMAttachments::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMAttachments::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
COXMAttachment COXMAttachments::GetItem(LONG nIndex)
{
COleVariant vItem(nIndex);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms,
&vItem);
return result.pdispVal;
}
LONG COXMAttachments::GetCount()
{
VARIANT result;
GetProperty(0x9, VT_VARIANT, (void*)&result);
return result.lVal;
}
COXMAttachment COXMAttachments::Add(CString sName /*= _T("")*/, LONG nPosition /*= 0*/, EOXMAttachmentType eType /*= oxmatFileData*/, CString sSource /*= _T("")*/)
{
COleVariant vName;
if (!sName.IsEmpty())
vName = sName;
COleVariant vPosition(nPosition);
COleVariant vType((LONG) eType);
COleVariant vSource;
if (!sSource.IsEmpty())
vSource = sSource;
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x64, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vName, &vPosition, &vType, &vSource);
return result.pdispVal;
}
void COXMAttachments::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
/////////////////////////////////////////////////////////////////////////////
// COXMAttachment properties
CString COXMAttachment::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMAttachments COXMAttachment::GetParent()
{
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMAttachment::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMAttachment::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
CString COXMAttachment::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMAttachment::SetName(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x17, VT_VARIANT, &propVal);
}
EOXMAttachmentType COXMAttachment::GetType()
{
VARIANT result;
GetProperty(0x11, VT_VARIANT, (void*)&result);
return (EOXMAttachmentType) result.lVal;
}
void COXMAttachment::SetType(EOXMAttachmentType eValue)
{
COleVariant propVal((LONG) eValue);
SetProperty(0x11, VT_VARIANT, &propVal);
}
LONG COXMAttachment::GetIndex()
{
VARIANT result;
GetProperty(0x13, VT_VARIANT, (void*)&result);
return result.lVal;
}
LONG COXMAttachment::GetPosition()
{
VARIANT result;
GetProperty(0x1a, VT_VARIANT, (void*)&result);
return result.lVal;
}
void COXMAttachment::SetPosition(LONG nValue)
{
COleVariant propVal(nValue);
SetProperty(0x1a, VT_VARIANT, &propVal);
}
CString COXMAttachment::GetSource()
{
VARIANT result;
GetProperty(0x25, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMAttachment::SetSource(CString sSource)
{
COleVariant vSource(sSource);
SetProperty(0x25, VT_VARIANT, &sSource);
}
void COXMAttachment::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}
void COXMAttachment::ReadFromFile(CString sPath)
{
COleVariant vFileName(sPath);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
SetProperty(0x25, VT_VARIANT, &vFileName);
InvokeHelper(0x7f, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFileName);
}
void COXMAttachment::WriteToFile(CString sPath)
{
COleVariant vFileName(sPath);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
SetProperty(0x25, VT_VARIANT, &vFileName);
InvokeHelper(0x85, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vFileName);
}
/////////////////////////////////////////////////////////////////////////////
// COXMAddressEntry class
CString COXMAddressEntry::GetApplication()
{
VARIANT result;
GetProperty(0x14, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMRecipient COXMAddressEntry::GetParent()
{
if (m_bCurrentSessionUser)
return NULL;
VARIANT result;
GetProperty(0x19, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
COXMSession COXMAddressEntry::GetSession()
{
VARIANT result;
GetProperty(0x22, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
EOXMClass COXMAddressEntry::GetClass()
{
VARIANT result;
GetProperty(0x6, VT_VARIANT, (void*)&result);
return (EOXMClass) result.lVal;
}
EOXMDisplayType COXMAddressEntry::GetDisplayType()
{
VARIANT result;
GetProperty(0x38, VT_VARIANT, (void*)&result);
return (EOXMDisplayType) result.lVal;
}
CString COXMAddressEntry::GetName()
{
VARIANT result;
GetProperty(0x17, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMAddressEntry::SetName(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x17, VT_VARIANT, &propVal);
}
CString COXMAddressEntry::GetAddress()
{
VARIANT result;
GetProperty(0x2, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMAddressEntry::SetAddress(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x2, VT_VARIANT, &propVal);
}
CString COXMAddressEntry::GetType()
{
VARIANT result;
GetProperty(0x11, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
void COXMAddressEntry::SetType(CString sValue)
{
COleVariant propVal(sValue);
SetProperty(0x11, VT_VARIANT, &propVal);
}
CString COXMAddressEntry::GetId()
{
VARIANT result;
GetProperty(0xe, VT_VARIANT, (void*)&result);
return result.bstrVal;
}
COXMFields COXMAddressEntry::GetFields()
{
VARIANT result;
GetProperty(0xc, VT_VARIANT, (void*)&result);
return result.pdispVal;
}
void COXMAddressEntry::Details(HWND hParentWindow)
{
COleVariant vParentWindow((LONG) hParentWindow);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT;
InvokeHelper(0x6b, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vParentWindow);
}
void COXMAddressEntry::Update(BOOL bMakePermanent /*=TRUE*/, BOOL bRefreshObject /*= FALSE*/)
{
COleVariant vMakePermanent((short) bMakePermanent, VT_BOOL);
COleVariant vRefreshObject((short) bRefreshObject, VT_BOOL);
VARIANT result;
static BYTE parms[] =
VTS_VARIANT VTS_VARIANT;
InvokeHelper(0x84, DISPATCH_METHOD, VT_VARIANT, (void*)&result, parms,
&vMakePermanent, &vRefreshObject);
}
void COXMAddressEntry::Delete()
{
VARIANT result;
InvokeHelper(0x6a, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
}