2025-11-27 16:46:48 +09:00

1735 lines
59 KiB
C++

// ==========================================================================
// 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.
// //////////////////////////////////////////////////////////////////////////
// Properties:
// NO Abstract class (does not have any objects)
// NO Derived from CObject
// NO Is a Cwnd.
// NO Two stage creation (constructor & Create())
// NO Has a message map
// NO Needs a resource (template)
// NO Persistent objects (saveable on disk)
// NO Uses exceptions
// //////////////////////////////////////////////////////////////////////////
// Desciption :
// These classes encapsulate the OLE Messaging client interface which was originally
// designed to develop powerful Visual Basic Messaging applications.
// The OLE Messaging objects use variants as input and output parameters.
// This is a good solution for Visual Basic, because Visual Basic can automatically
// cast variables. In C++ you have to cast these parameters manually to the correct
// variable types.
// The classes in this framework do this type conversion for you.
// Remark:
// For a full documentation on these classes we refer to the Microsoft SDK documentation:
// SDK
// Win32 SDK
// Win32 Messaging API (MAPI)
// OLE Messaging Library
// Prerequisites (necessary conditions):
// ***
/////////////////////////////////////////////////////////////////////////////
#ifndef __OXMDISP_H__
#define __OXMDISP_H__
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "OXDllExt.h"
// Predeclarations
class COXMSession;
class COXMInfoStores;
class COXMInfoStore;
class COXMFolders;
class COXMFolder;
class COXMMessages;
class COXMMessage;
class COXMFields;
class COXMField;
class COXMRecipients;
class COXMRecipient;
class COXMAttachments;
class COXMAttachment;
class COXMAddressEntry;
enum EOXMClass
{
oxmAddressEntry = 8,
oxmAttachment = 5,
oxmAttachments = 21,
oxmField = 6,
oxmFields = 22,
oxmFolder = 2,
oxmFolders = 18,
oxmInfoStore = 1,
oxmInfoStores = 17,
oxmMsg = 3,
oxmMessages = 19,
oxmRecipient = 4,
oxmRecipients = 20,
oxmSession = 0
};
enum EOXMDisplayType
{
oxmdtMailUser = 0,
oxmdtDistList = 1,
oxmdtForum = 2,
oxmdtAgent = 3,
oxmdtOrganisation = 4,
oxmdtPrivateDistList = 5,
oxmdtRemoteMailUser = 6
};
enum EOXMRecipientType
{
oxmrtTo = 1,
oxmrtCc = 2,
oxmrtBcc = 3
};
enum EOXMAttachmentType
{
oxmatFileData = 1,
oxmatFileLink = 2,
oxmatOleObject = 3
};
/////////////////////////////////////////////////////////////////////////////
// COXMSession wrapper class
class OX_CLASS_DECL COXMSession : public COleDispatchDriver
{
// Member Functions
public:
COXMSession() {} // Calls COleDispatchDriver default constructor
COXMSession(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMSession(const COXMSession& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Session object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
LPUNKNOWN GetMapiobject();
// --- In: none
// --- Out: none
// --- Returns: an IUnknown pointer to the real Extended MAPI Session (IMAPISession) object.
// --- Effect: none
void SetMapiobject(LPUNKNOWN pSession);
// --- In: pSession: IUnknown pointer of an Extended MAPI Session (IMAPISession) object
// --- Out: none
// --- Returns: none
// --- Effect: Attaches an IUnknown pointer of an Extended MAPI Session (IMAPISession) object.
CString GetVersion();
// --- In: none
// --- Out: none
// --- Returns: the version number of the OLE Messaging Library as a string, for example, "1.00".
// --- Effect: none
CString GetOperatingSystem();
// --- In: none
// --- Out: none
// --- Returns: the name and version number of the current operating system.
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the name of the profile logged on to this session.
// --- Effect: none
COXMAddressEntry GetCurrentUser();
// --- In: none
// --- Out: none
// --- Returns: the active user as an AddressEntry object.
// --- Effect: none
COXMFolder GetInbox();
// --- In: none
// --- Out: none
// --- Returns: a Folder object representing the current user's default Inbox folder.
// --- Effect: none
COXMFolder GetOutbox();
// --- In: none
// --- Out: none
// --- Returns: a Folder object representing the current user's default Outbox folder.
// --- Effect: none
COXMInfoStores GetInfoStores();
// --- In: none
// --- Out: none
// --- Returns: an InfoStores object representing a collection of available information stores. Each InfoStore object contains a root folder object.
// --- Effect: none
void Logon(CString sProfileName = _T(""), CString sProfilePassword = _T(""), BOOL bShowDialog = TRUE, BOOL bNewSession = FALSE, HWND hParentWindow = NULL);
// --- In: sProfileName: specifies the user's logon name. To prompt the user to enter a logon name, omit profileName and set showDialog to TRUE.
// sProfilePassword: specifies the user's logon password.
// bShowDialog: If TRUE, displays a logon dialog box.
// bNewSession: Determines whether the application opens a new MAPI session or uses the current shared MAPI session.
// hParentWindow: Specifies the parent window handle for the logon dialog box. A value of 0 (the default) specifies that any dialog box
// displayed is application modal.
// --- Out: none
// --- Returns: none
// --- Effect: The Logon method logs on to the MAPI system.
// --- COleDispatchException: MAPI_E_LOGON_FAILURE if not successful
void Logoff();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: logs off from the MAPI system.
COXMInfoStore GetInfoStore(CString sStoreID);
// --- In: specifies the unique identifier of the store to retrieve
// --- Out: none
// --- Returns: if successful an InfoStore object that can be used to
// navigate through both public folders and the user's personal folders.
// If not successful: an COXMInfoStore object with an m_lpDispatch member
// set to NULL
// --- Effect: none
COXMFolder GetFolder(CString sFolderID, CString sStoreID = _T(""));
// --- In: sFolderId: specifies the unique identifier of the folder. When you provide an empty string, some providers return the root folder.
// sStoreID: specifies the unique identifier of the store. The default value is an empty string, which corresponds to the default store.
// --- Out: none
// --- Returns: if successful a Folder object from a MAPI information store.
// If not successful: an COXMInfoStore object with an m_lpDispatch member
// set to NULL
// --- Effect: none
COXMMessage GetMessage(CString sMessageID, CString sStoreID = _T(""));
// --- In: sMessageID:specifies the unique identifier of the message.
// sStoreID: specifies the unique identifier of the store. The default value is an empty string, which corresponds to the default store.
// --- Out: none
// --- Returns: if successful a Message object from a MAPI information store.
// If not successful: an COXMInfoStore object with an m_lpDispatch member
// set to NULL
// --- Effect: none
COXMAddressEntry GetAddressEntry(CString sEntryID);
// --- In: sEntryID: specifies the unique identifier of the address entry.
// --- Out: none
// --- Returns: On successful return, represents the AddressEntry object specified by entryID.
// --- Effect: none
COXMRecipients 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);
// --- In: pRecipients: A Recipients collection object that provides the initial value for the recipient list boxes in the address book.
// sTitle: The title or caption of the address book dialog box.
// bOneAddress: Allows the user to enter or select only one address.
// bForceResolution: If TRUE, attempts to resolve all names before closing the address book. Prompts the user to resolve any ambiguous names.
// nRecipLists: The number of recipient list boxes to display in the address book dialog box:
// 0: no list boxes; 1: To; 2: To and CC; 3: TO, CC and BCC
// sTOLabel:The caption for the button associated with the first list box
// sCCLabel:The caption for the button associated with the second list box
// sBCCLabel:The caption for the button associated with the third list box
// hParentWindow:The parent window handle for the address book dialog box. A value of 0 (the default) specifies that any dialog box displayed is application modal.
// --- Out: none
// --- Returns: The selections are returned in a Recipients collection object.
// --- Effect: The AddressBook method displays the MAPI dialog box that allows the user to select entries from the address book.
};
/////////////////////////////////////////////////////////////////////////////
// COXMInfoStores wrapper class
class OX_CLASS_DECL COXMInfoStores : public COleDispatchDriver
{
// Member Functions
public:
COXMInfoStores() {} // Calls COleDispatchDriver default constructor
COXMInfoStores(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMInfoStores(const COXMInfoStores& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging InfoStores object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
LONG GetCount();
// --- In: none
// --- Out: none
// --- Returns: the number of InfoStore objects in the collection.
// --- Effect: none
COXMInfoStore GetItem(LONG nItem);
// --- In: nItem: the index
// --- Out: none
// --- Returns: a single item from this collection.
// --- Effect: none
};
/////////////////////////////////////////////////////////////////////////////
// COXMInfoStore wrapper class
class OX_CLASS_DECL COXMInfoStore : public COleDispatchDriver
{
// Member Functions
public:
COXMInfoStore() {} // Calls COleDispatchDriver default constructor
COXMInfoStore(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMInfoStore(const COXMInfoStore& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging InfoStore object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMInfoStores GetParent();
// --- In: none
// --- Out: none
// --- Returns: the collection this store belongs to
// --- Effect: none
LONG GetIndex();
// --- In: none
// --- Out: none
// --- Returns: the index number for the InfoStore object within the parent InfoStores collection.
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the name of the InfoStore object as a string. Read-only. The string "Public Folders" is the name of the InfoStore object that contains the public folders.
// --- Effect: none
CString GetId();
// --- In: none
// --- Out: none
// --- Returns: the unique identifier of this InfoStore object as a string.
// --- Effect: none
CString GetProviderName();
// --- In: none
// --- Out: none
// --- Returns: the name of the InfoStore provider as a string.
// --- Effect: none
COXMFolder GetRootFolder();
// --- In: none
// --- Out: none
// --- Returns: a folder object representing the root of the IPM tree for this InfoStore object.
// --- Effect: none
};
/////////////////////////////////////////////////////////////////////////////
// COXMFolder wrapper class
class OX_CLASS_DECL COXMFolder : public COleDispatchDriver
{
// Member Functions
public:
COXMFolder() {} // Calls COleDispatchDriver default constructor
COXMFolder(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMFolder(const COXMFolder& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Folder object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
LPDISPATCH GetParent();
// --- In: none
// --- Out: none
// --- Returns: The Parent property returns the parent of the object.
// An Inbox, Outbox and Root folder return a Session Object
// Other Folders return a Folders collection
// --- Effect: none
LPUNKNOWN GetMapiobject();
// --- In: none
// --- Out: none
// --- Returns: returns an IUnknown pointer to the real Extended MAPI Folder (IMAPIFolder) object.
// --- Effect:
void SetMapiobject(LPUNKNOWN pSession);
// --- In: pSession: an IUnknown pointer to the real Extended MAPI Folder (IMAPIFolder) object.
// --- Out: none
// --- Returns: none
// --- Effect: Attaches an IUnknown pointer of an Extended MAPI Folder (IMAPIFolder) object.
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the name of the Folder object as a string.
// --- Effect: none
void SetName(CString sName);
// --- In: none
// --- Out: none
// --- Returns: the name of the Folder object as a string.
// --- Effect: none
CString GetId();
// --- In: none
// --- Out: none
// --- Returns: the unique identifier of this Folder object as a string.
// --- Effect: none
CString GetFolderID();
// --- In: none
// --- Out: none
// --- Returns: the unique identifier of this subfolder's parent folder as a string.
// --- Effect: none
CString GetStoreID();
// --- In: none
// --- Out: none
// --- Returns: the identifier of the Store object in which this Folder object resides.
// --- Effect: none
COXMFolders GetFolders();
// --- In: none
// --- Out: none
// --- Returns: a collection of subfolders within the parent folder.
// --- Effect: none
COXMMessages GetMessages();
// --- In: none
// --- Out: none
// --- Returns: a Messages collection object within the folder.
// --- Effect: none
COXMFields GetFields();
// --- In: none
// --- Out: none
// --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Folder object.
// --- Effect: none
void Update(BOOL bMakePermanent = TRUE, BOOL bRrefreshObject = FALSE);
// --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are committed in the underlying store.
// FALSE indicates that the property cache is flushed and not committed to the store.
// bRrefreshObject: TRUE indicates that the property cache is reloaded from the values in the underlying store.
// FALSE indicates that the property cache is not reloaded.
// --- Out: none
// --- Returns: none
// --- Effect: Saves the folder in the MAPI system.
};
/////////////////////////////////////////////////////////////////////////////
// COXMFolders wrapper class
class OX_CLASS_DECL COXMFolders : public COleDispatchDriver
{
// Member Functions
public:
COXMFolders() {} // Calls COleDispatchDriver default constructor
COXMFolders(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMFolders(const COXMFolders& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Folders object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMFolder GetParent();
// --- In: none
// --- Out: none
// --- Returns: a Folder object
// --- Effect: none
COXMFolder GetFirst();
// --- In: none
// --- Out: none
// --- Returns: the first object in the Folders collection.
// Returns an object witch a m_lpDispatch member set to NULL if no first object exists.
// --- Effect: increments the internal item pointer
COXMFolder GetNext();
// --- In: none
// --- Out: none
// --- Returns: the first object in the Folders collection.
// Returns an object with a m_lpDispatch member set to NULL if no first object exists.
// --- Effect: increments the internal item pointer
COXMFolder GetLast();
// --- In: none
// --- Out: none
// --- Returns: the last object in the Folders collection.
// Returns an object with a m_lpDispatch member set to NULL if no last object exists.
// --- Effect: none
COXMFolder GetPrevious();
// --- In: none
// --- Out: none
// --- Returns: the first object in the Folders collection.
// Returns an object witch a m_lpDispatch member set to NULL if no first object exists.
// --- Effect: decrements the internal item pointer
};
/////////////////////////////////////////////////////////////////////////////
// COXMMessages wrapper class
class OX_CLASS_DECL COXMMessages : public COleDispatchDriver
{
// Member Functions
public:
COXMMessages() {} // Calls COleDispatchDriver default constructor
COXMMessages(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMMessages(const COXMMessages& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Messages object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMFolder GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object.
// --- Effect: none
COXMMessage Add(CString sSubject = _T(""), CString sText = _T(""), CString sType = _T(""), LONG nImportance=1);
// --- In: sSubject: The subject of the message.
// sText: The body text of the message.
// sType: The message class of the message. When ommited type is IPM.Note.
// nImportance: 0: Low priority; 1: Normal priority (default); 2: High priority
// --- Out: none
// --- Returns: a new created Message object
// --- Effect: creates and returns a new Message object in the Messages collection
void Delete(BOOL bSubFolders = TRUE);
// --- In: bSubFolders: if TRUE: deletes all subfolders too
// --- Out: none
// --- Returns: none
// --- Effect: deletes all messages in the collection.
void Sort(LONG nSortOrder);
// --- In: nSortOrder: 0: No sort; 1: Ascending; 2: Descending
// --- Out: none
// --- Returns: none
// --- Effect: sorts the messages in the collection according to the specified sort order
COXMMessage GetFirst(CString sFilter = _T(""));
// --- In: sFilter: Specifies the message class of the object, such as the default value, IPM.Note (if ommitted).
// Corresponds to the Type property of the Message object.
// --- Out: none
// --- Returns: the first Message object in the collection.
// --- Effect: increments the internal item pointer
COXMMessage GetNext();
// --- In: none
// --- Out: none
// --- Returns: The next object in the Messages collection. Nothing if no next object exists.
// --- Effect: increments the internal item pointer
COXMMessage GetLast(CString sFilter = _T(""));
// --- In: sFilter: Specifies the message class of the object, such as the default value, IPM.Note (if ommitted).
// Corresponds to the Type property of the Message object.
// --- Out: none
// --- Returns: the last Message object in the collection.
// --- Effect: remembers the filter
COXMMessage GetPrevious();
// --- In: none
// --- Out: none
// --- Returns: The previous object in the collection. Nothing if no previous object exists.
// --- Effect: decrements the internal item pointer
};
/////////////////////////////////////////////////////////////////////////////
// COXMMessage wrapper class
class OX_CLASS_DECL COXMMessage : public COleDispatchDriver
{
// Member Functions
public:
COXMMessage() {} // Calls COleDispatchDriver default constructor
COXMMessage(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMMessage(const COXMMessage& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Session object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMMessages GetParent();
// --- In: none
// --- Out: none
// --- Returns: The parent of the object which is the messages collection.
// --- Effect: none
LPUNKNOWN GetMapiobject();
// --- In: none
// --- Out: none
// --- Returns: an IUnknown pointer to the real Extended MAPI Session (IMAPISession) object.
// --- Effect: none
void SetMapiobject(LPUNKNOWN pSession);
// --- In: pSession: IUnknown pointer of an Extended MAPI Session (IMAPISession) object
// --- Out: none
// --- Returns: none
// --- Effect: Attaches an IUnknown pointer of an Extended MAPI Session (IMAPISession) object.
CString GetId();
// --- In: none
// --- Out: none
// --- Returns: the unique ID of the object as a string.
// --- Effect: none
CString GetFolderID();
// --- In: none
// --- Out: none
// --- Returns: the unique ID of the folder in which the message resides.
// --- Effect: none
CString GetStoreID();
// --- In: none
// --- Out: none
// --- Returns: The unique identifier for the information store that contains this message.
// --- Effect: none
CString GetType();
// --- In: none
// --- Out: none
// --- Returns: the MAPI message class for the message.
// --- Effect: none
void SetType(CString sType);
// --- In: the MAPI message class for the message.
// --- Out: none
// --- Returns: none
// --- Effect: sets the MAPI message class for the message.
LONG GetSize();
// --- In: none
// --- Out: none
// --- Returns: The approximate size in bytes of the message.
// --- Effect: none
LONG GetImportance();
// --- In: none
// --- Out: none
// --- Returns: the importance of the message as one of mapiNormal (the default), mapiLow, or mapiHigh.
// --- Effect: none
void SetImportance(LONG);
// --- In: the importancy of the message.
// --- Out: none
// --- Returns: none
// --- Effect: sets the importance of the message as one of mapiNormal (the default), mapiLow, or mapiHigh.
CString GetSubject();
// --- In: none
// --- Out: none
// --- Returns: Returns the subject of the message as a string.
// --- Effect: none
void SetSubject(CString);
// --- In: the subject of the message as a string.
// --- Out: none
// --- Returns: none
// --- Effect: sets the subject of the message as a string.
COXMAddressEntry GetSender();
// --- In: none
// --- Out: none
// --- Returns: the originator or original author of a message as an AddressEntry object.
// --- Effect: none
COleDateTime GetTimeSent();
// --- In: none
// --- Out: none
// --- Returns: the date and time the message was sent as a vbDate variant data type.
// --- Effect: none
void SetTimeSent(COleDateTime);
// --- In: the date and time the message was sent
// --- Out: none
// --- Returns: none
// --- Effect: Sets the date and time the message was sent as a vbDate variant data type.
COleDateTime GetTimeReceived();
// --- In: none
// --- Out: none
// --- Returns: the date and time the message was received as a vbDate variant data type.
// --- Effect: none
void SetTimeReceived(COleDateTime);
// --- In: the date and time the message was received.
// --- Out: none
// --- Returns: none
// --- Effect: Sets the date and time the message was received as a vbDate variant data type.
CString GetText();
// --- In: none
// --- Out: none
// --- Returns: the body text of the message as a string.
// --- Effect: none
void SetText(CString);
// --- In: the body text of the message.
// --- Out: none
// --- Returns: none
// --- Effect: sets the body text of the message as a string.
BOOL GetSent();
// --- In: none
// --- Out: none
// --- Returns: TRUE if the message has been sent through the MAPI system.
// --- Effect: none
void SetSent(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags the message that it has been sent or not.
BOOL GetSubmitted();
// --- In: none
// --- Out: none
// --- Returns: TRUE when the message has been submitted.
// --- Effect: none
void SetSubmitted(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags the message that has been submitted or not.
BOOL GetUnread();
// --- In: none
// --- Out: none
// --- Returns: TRUE if the message has not been read by the current user.
// --- Effect: none
void SetUnread(BOOL );
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags the message that has not been read by the current user, or not.
BOOL GetSigned();
// --- In: none
// --- Out: none
// --- Returns: TRUE if the message has been tagged with a digital signature.
// --- Effect: none
void SetSigned(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags the message that has been tagged with a digital signature, or not.
BOOL GetEncrypted();
// --- In: none
// --- Out: none
// --- Returns: TRUE if the message has been encrypted.
// --- Effect: none
void SetEncrypted(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags the message that has been encrypted, or not.
BOOL GetReadReceipt();
// --- In: none
// --- Out: none
// --- Returns: TRUE if a read-receipt notification message is requested.
// --- Effect: none
void SetReadReceipt(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags that a read-receipt notification message is requested, or not.
BOOL GetDeliveryReceipt();
// --- In: none
// --- Out: none
// --- Returns: TRUE if a delivery-receipt notification message is requested.
// --- Effect: none
void SetDeliveryReceipt(BOOL);
// --- In: TRUE or FALSE
// --- Out: none
// --- Returns: none
// --- Effect: flags that a delivery-receipt notification message is requested, or not.
CString GetConversationIndex();
// --- In: none
// --- Out: none
// --- Returns: the index to the conversation thread of the message.
// --- Effect: none
void SetConversationIndex(CString);
// --- In: index to the conversation thread of the message
// --- Out: none
// --- Returns: none
// --- Effect: sets the index to the conversation thread of the message.
CString GetConversationTopic();
// --- In: none
// --- Out: none
// --- Returns: the name of the conversation thread.
// --- Effect: none
void SetConversationTopic(CString);
// --- In: name of the conversation thread.
// --- Out: none
// --- Returns: none
// --- Effect: specifies the name of the conversation thread.
COXMFields GetFields();
// --- In: none
// --- Out: none
// --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Message object.
// --- Effect: none
COXMRecipients GetRecipients();
// --- In: none
// --- Out: none
// --- Returns: a single Recipient object or a Recipients collection object.
// --- Effect: none
COXMAttachments GetAttachments();
// --- In: none
// --- Out: none
// --- Returns: a single Attachment object or an Attachments collection.
// --- Effect: none
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the Message object.
void Update(BOOL bMakePermanent = TRUE, BOOL bRefreshObject = FALSE);
// --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are committed to the underlying store.
// FALSE indicates that the property cache is flushed and not committed to the store.
// bRefreshObject: TRUE indicates that the property cache is reloaded from the values in the underlying store.
// FALSE indicates that the property cache is not reloaded.
// --- Out: none
// --- Returns: none
// --- Effect: Saves the message in the MAPI system.
void Send(BOOL bSaveCopy = TRUE, BOOL bShowDialog = FALSE, HWND hParentWindow = NULL);
// --- In: bSaveCopy: Saves a copy of the Message in a user folder, such as the Sent Messages folder.
// bShowDialog: Displays a Send Message dialog box where the user can change the message contents or recipients.
// hParentWindow: The parent window handle for the Send Message dialog box.
// A value of NULL (the default) specifies that any dialog box displayed is application-modal.
// --- Out: none
// --- Returns: none
// --- Effect: Sends the message to the recipients via the MAPI system.
void Options(HWND hParentWindow = NULL);
// --- In: hParentWindow: The parent window handle for the options dialog box.
// A value of NULL (the default) specifies an application-modal dialog box.
// --- Out: none
// --- Returns: none
// --- Effect: Displays a message options dialog box where the user can change the submission options for a message.
};
/////////////////////////////////////////////////////////////////////////////
// COXMFields wrapper class
class OX_CLASS_DECL COXMFields : public COleDispatchDriver
{
// Member Functions
public:
COXMFields() {} // Calls COleDispatchDriver default constructor
COXMFields(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMFields(const COXMFields& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Fields object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
LPDISPATCH GetParent();
// --- In: none
// --- Out: none
// --- Returns: The parent of the object (Message or Folder object).
// --- Effect: none
LONG GetCount();
// --- In: none
// --- Out: none
// --- Returns: The number of Field objects in the collection.
// --- Effect: none
COXMField GetItem(COleVariant vItem, CString sPropSetID = _T(""));
// --- In: vItem: + short -> index within collection
// + LONG -> property tag value for the MAPI property to be retrieved
// + string -> Specifies the name of the user-defined property
// sPropSetID: Contains the unique identifier for the property set, represented as a string
// of hexadecimal characters. When propsetID is not supplied, the property set used for
// the access is the default property set value set by this collection's SetNamespace
// method, or the initial default property set value, PS_PUBLIC_STRINGS.
// --- Out: none
// --- Returns: a single item from a collection.
// --- Effect: none
void SetNamespace(CString sPropsetID);
// --- In: sPropsetID: Contains a unique identifier that identifies the property set,
// represented as a string of hexadecimal characters. The PropsetID
// identifies the property set to be used for subsequent property accesses
// using the Field object and Fields collection. An empty string resets
// the default to the property set PS_PUBLIC_STRINGS.
// --- Out: none
// --- Returns: none
// --- Effect: Selects the property set that is to be used for subsequent property
// accesses using the Add method and Item property.
COXMField Add(CString sName, COleVariant value, CString sPropsetID = _T(""));
// --- In: sName: the name of the new field object
// value: the value of the field. There are limited number of supported types:
// VT_NULL, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE, VT_BSTR,
// VT_BOOL, VT_UNKNOWN, VT_BLOB
// --- Out: none
// --- Return: The new added field object
// --- Effect: Creates a new Field object in the Fields collection.
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: Deletes all user-defined fields of this collection object.
};
/////////////////////////////////////////////////////////////////////////////
// COXMField wrapper class
class OX_CLASS_DECL COXMField : public COleDispatchDriver
{
// Member Functions
public:
COXMField() {} // Calls COleDispatchDriver default constructor
COXMField(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMField(const COXMField& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Field object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMFields GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object which is the collection object.
// --- Effect: none
LONG GetIndex();
// --- In: none
// --- Out: none
// --- Returns: the index number of this Field object within the Fields collection.
// --- Effect: none
LONG GetType();
// --- In: none
// --- Out: none
// --- Returns: the variant data type of the Field object.
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the name of the field as a string.
// --- Effect: none
LONG GetId();
// --- In: none
// --- Out: none
// --- Returns: the unique ID of the object as a long integer.
// --- Effect: none
COleVariant GetValue();
// --- In: none
// --- Out: none
// --- Returns: the value of the Field object.
// --- Effect: none
void SetValue(COleVariant);
// --- In: value of the Field object.
// --- Out: none
// --- Returns: none
// --- Effect: sets value of the Field object.
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the user-defined or optional Field object
void ReadFromFile(CString sPath);
// --- In: sPath: The full path and file name to read
// --- Out: none
// --- Returns: none
// --- Effect: loads the value of a string or binary field from the specified file
void WriteToFile(CString sPath);
// --- In: sPath: The full path and file name to read
// --- Out: none
// --- Returns: none
// --- Effect: saves the field value to a file in the file system
};
/////////////////////////////////////////////////////////////////////////////
// COXMRecipients wrapper class
class OX_CLASS_DECL COXMRecipients : public COleDispatchDriver
{
// member Functions
public:
COXMRecipients() {} // Calls COleDispatchDriver default constructor
COXMRecipients(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMRecipients(const COXMRecipients& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Recipients object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMFolder GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object which is a COXMFolder object.
// --- Effect: none
COXMRecipient GetItem(LONG nIndex);
// --- In: nIndex: the index within the collection
// --- Out: none
// --- Returns: a single Recipient from the collection.
// --- Effect: none
LONG GetCount();
// --- In: none
// --- Out: none
// --- Returns: the number of Recipient objects in the collection.
// --- Effect: none
BOOL GetResolved();
// --- In: none
// --- Out: none
// --- Returns: TRUE if all of the recipients in the collection are resolved.
// --- Effect: none
COXMRecipient Add(CString sName = _T(""), CString sAddress = _T(""), EOXMRecipientType eType = oxmrtTo, CString sEntryID = _T(""));
// --- In: sName: The display name of the recipient.
// sAddress: The address of the recipient.
// eType: oxmrtTo, oxmrtCc or oxmrtBcc
// sEntryID: The identifier of a valid AddressEntry object for this recipient.
// When present, the other parameters are not used. When not present,
// the method uses the name, address, and type parameters to determine the recipient.
// --- Out: none
// --- Returns: represents the new Recipient object added to the collection
// --- Effect: creates a new Recipient object in the Recipients collection
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes all Recipients in the collection
void Resolve(BOOL bShowDialog = TRUE);
// --- In: bShowDialog: if dialog should be shown or not
// --- Out: none
// --- Returns: none
// --- Effect: searches the Recipients collection to resolve all names
};
/////////////////////////////////////////////////////////////////////////////
// COXMRecipient wrapper class
class OX_CLASS_DECL COXMRecipient : public COleDispatchDriver
{
public:
COXMRecipient() {} // Calls COleDispatchDriver default constructor
COXMRecipient(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMRecipient(const COXMRecipient& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Recipient object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMRecipients GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object.
// --- Effect: none
LONG GetIndex();
// --- In: none
// --- Out: none
// --- Returns: the index number of this Recipient object within the Recipients collection.
// --- Effect: none
EOXMDisplayType GetDisplayType();
// --- In: none
// --- Out: none
// --- Returns: Identifies the recipient type. Enables special processing based on the type,
// such as displaying an icon associated with that type.
// oxmdtMailUser (0) Local user
// oxmdtDistList (1) Distribution list
// oxmdtForum (2) Public folder
// oxmdtAgent (3) Agent
// oxmdtOrganisation (4) Organization
// oxmdtPrivateDistList (5) Private distribution list
// oxmdtRemoteMailUser (6) Remote user
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the name of this Recipient object.
// --- Effect: none
void SetName(CString);
// --- In: the name of this Recipient object.
// --- Out: none
// --- Returns: none
// --- Effect: sets the name of this Recipient object.
EOXMRecipientType GetType();
// --- In: none
// --- Out: none
// --- Returns: the type of the Recipient object
// oxmrtTo (1) The recipient is on the To: line
// oxmrtCc (2) The recipient is on the Cc: line.
// oxmrtBcc (3)The recipient is on the Bcc: line.
// --- Effect: none
void SetType(EOXMRecipientType);
// --- In: the type of the Recipient object
// oxmrtTo (1) The recipient is on the To: line
// oxmrtCc (2) The recipient is on the Cc: line.
// oxmrtBcc (3)The recipient is on the Bcc: line.
// --- Out: none
// --- Returns: none
// --- Effect: Sets the type of the Recipient object
CString GetAddress();
// --- In: none
// --- Out: none
// --- Returns: the full address for this recipient.
// --- Effect: none
void SetAddress(CString);
// --- In: the full address for this recipient.
// --- Out: none
// --- Returns: none
// --- Effect: sets the full address for this recipient.
COXMAddressEntry GetAddressEntry();
// --- In: none
// --- Out: none
// --- Returns: the AddressEntry object for this recipient.
// --- Effect: none
void SetAddressEntry(LPDISPATCH);
// --- In: the AddressEntry object.
// --- Out: none
// --- Returns: none
// --- Effect: Sets the AddressEntry object for this recipient.
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the Recipient object
void Resolve(BOOL bShowDialog = TRUE);
// --- In: bShowDialog: if dialog should be shown or not
// --- Out: none
// --- Returns: none
// --- Effect: Resolves address information. When the Recipient object's Name property
// is supplied, looks up the corresponding address from the address book.
// When the Recipient object's Address property is supplied, resolves as a
// custom address.
};
/////////////////////////////////////////////////////////////////////////////
// COXMAttachments wrapper class
class OX_CLASS_DECL COXMAttachments : public COleDispatchDriver
{
// Member Functions
public:
COXMAttachments() {} // Calls COleDispatchDriver default constructor
COXMAttachments(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMAttachments(const COXMAttachments& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Attachments object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMMessage GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object.
// --- Effect: none
COXMAttachment GetItem(LONG nIndex);
// --- In: nIndex: the index within the collection
// --- Out: none
// --- Returns: a single item from a collection.
// --- Effect: none
LONG GetCount();
// --- In: none
// --- Out: none
// --- Returns: the number of Attachment objects in the collection.
// --- Effect: none
COXMAttachment Add(CString sName = _T(""), LONG nPosition = 0, EOXMAttachmentType eType = oxmatFileData, CString sSource = _T(""));
// --- In: sName: The display name of the attachment. To allow a user to click on the attachment that
// appears in the message and activate an associated application, supply the full filename,
// including the file extension. In case of an OleObject you have to specify the Class name
// ex: EXCEL.DOCUMENT
// nPosition: The position of the attachment within the body text of the message.
// eType: oxmatFileData, oxmatFileLink or oxmatOleObject
// sSource: depending of the value for type:
// FileData Specifies a full path and file name that contains the data for the attachment.
// For example, C:\DOCUMENT\BUDGET.XLS. The data is read into the attachment.
// FileLink Specifies a full path name in a universal naming convention (UNC) format,
// such as \\SALES\INFO\PRODUCTS\NEWS.DOC. The attachment is a link, so the Add
// method does not read the data.
// OleObject Specifies a full path and file name to a valid OLE docfile. For example,
// C:\DOCUMENT\BUDGET2.XLS. The data is read into the attachment.
// --- Out: none
// --- Returns: none
// --- Effect: creates a new Attachment object in the Attachments collection
void Delete();
// --- In:none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the entire Attachments collection
};
/////////////////////////////////////////////////////////////////////////////
// COXMAttachment wrapper class
class OX_CLASS_DECL COXMAttachment : public COleDispatchDriver
{
// Member Functions
public:
COXMAttachment() {} // Calls COleDispatchDriver default constructor
COXMAttachment(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
COXMAttachment(const COXMAttachment& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging Attachment object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMAttachments GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object.
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the display name of the Attachment object as a string (FileData or FileLink type attachments)
// returns the OLE class name for OleObject attachments (see GetType and SetType functions)
// --- Effect: none
void SetName(CString);
// --- In: the name of this Attachment object.
// --- Out: none
// --- Returns: none
// --- Effect: sets the display name of the Attachment object as a string
EOXMAttachmentType GetType();
// --- In: none
// --- Out: none
// --- Returns: describes the attachment type: oxmatFileData, oxmatFileLink or oxmatOleObject
// --- Effect: none
void SetType(EOXMAttachmentType);
// --- In: the type of the Attachment object:
// oxmatFileData
// oxmatFileLink
// oxmatOleObject
// --- Out: none
// --- Returns: none
// --- Effect: Sets the type of the Attachment object
LONG GetIndex();
// --- In: none
// --- Out: none
// --- Returns: the index number for the Attachment object within the Attachments collection.
// --- Effect: none
LONG GetPosition();
// --- In: none
// --- Out: none
// --- Returns: the position of the attachment within the body text of the message.
// --- Effect: none
void SetPosition(LONG);
// --- In: the position of the attachment.
// --- Out: none
// --- Returns: none
// --- Effect: sets the position of the attachment within the body text of the message.
CString GetSource();
// --- In: none
// --- Out: none
// --- Returns:the full path name of the attachment data file (For FileLink attachments).
// For OleObject attachments, returns the OLE class name for the attachment.
// --- Effect: none
void SetSource(CString);
// --- In: the source for this attachment
// --- Out: none
// --- Returns:none
// --- Effect: When using oxmatFileData or oxmatOleObject this value is set by the ReadFromFile
// or WriteToFile functions.
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the attachment.
void ReadFromFile(CString sPath);
// --- In: sPath: The full path and file name to read. For example, C:\DOCUMENT\BUDGET.XLS.
// --- Out: none
// --- Returns: none
// --- Effect: loads the contents of an attachment from a file
void WriteToFile(CString sPath);
// --- In: sPath: The full path and file name for the saved attachment. For example, C:\DOCUMENT\BUDGET.XLS.
// --- Out: none
// --- Returns: none
// --- Effect: Saves the attachment to a file in the file system.
// Note that if the file already exists, this method overwrites it without warning.
};
/////////////////////////////////////////////////////////////////////////////
// COXMAddressEntry wrapper class
class OX_CLASS_DECL COXMAddressEntry : public COleDispatchDriver
{
// Data Members
public:
BOOL m_bCurrentSessionUser;
// Member Functions
public:
COXMAddressEntry() : m_bCurrentSessionUser(FALSE) {} // Calls COleDispatchDriver default constructor
COXMAddressEntry(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch), m_bCurrentSessionUser(FALSE) {}
COXMAddressEntry(const COXMAddressEntry& dispatchSrc) : COleDispatchDriver(dispatchSrc), m_bCurrentSessionUser(FALSE) {}
// --- In: pDispatch: the IDispatch pointer of the OLE messaging AddressEntry object
// dispatchSrc: the source object which will be copied
// --- Out: none
// --- Returns: none
// --- Effect: constructs this rapper object and attaches the real dispatch Interface with it
// The copy constructor version will increment the reference count of the IDispatch interface
CString GetApplication();
// --- In: none
// --- Out: none
// --- Returns: the name of the active application, which is the OLE Messaging Library, "OLE/Messaging."
// --- Effect: none
EOXMClass GetClass();
// --- In: none
// --- Out: none
// --- Returns: the OLE Messaging Library class type (see EOXMClass definition)
// --- Effect: none
COXMSession GetSession();
// --- In: none
// --- Out: none
// --- Returns: the top-level Session object associated with the specified OLE Messaging Library object
// --- Effect: none
COXMRecipient GetParent();
// --- In: none
// --- Out: none
// --- Returns: the parent of the object.
// m_lpDispatch member of returned object can be NULL (Current User)
// --- Effect: none
EOXMDisplayType GetDisplayType();
// --- In: none
// --- Out: none
// --- Returns: Identifies the type of the address entry. This property enables special
// processing based on the type, such as displaying an icon associated with that type.
// oxmdtMailUser (0) Local user
// oxmdtDistList (1) Distribution list
// oxmdtForum (2) Public folder
// oxmdtAgent (3) Agent
// oxmdtOrganisation (4) Organization
// oxmdtPrivateDistList (5) Private distribution list
// oxmdtRemoteMailUser (6) Remote user
// --- Effect: none
CString GetName();
// --- In: none
// --- Out: none
// --- Returns: the display name or alias of the AddressEntry object as a string.
// --- Effect: none
void SetName(CString);
// --- In: the display name or alias of the AddressEntry object
// --- Out: none
// --- Returns: none
// --- Effect: sets the display name or alias of the AddressEntry object as a string.
CString GetAddress();
// --- In: none
// --- Out: none
// --- Returns: the messaging address of an address list entry or message recipient.
// --- Effect: none
void SetAddress(CString);
// --- In: the messaging address of an address list entry or message recipient.
// --- Out: none
// --- Returns: none
// --- Effect: Sets the messaging address of an address list entry or message recipient.
CString GetType();
// --- In: none
// --- Out: none
// --- Returns: the address type, such as "SMTP," "Fax," or "X.400."
// --- Effect: none
void SetType(CString);
// --- In: the address type
// --- Out: none
// --- Returns: none
// --- Effect: Specifies the address type, such as "SMTP," "Fax," or "X.400."
CString GetId();
// --- In: none
// --- Out: none
// --- Returns: the unique ID of the object as a string.
// --- Effect: none
COXMFields GetFields();
// --- In: none
// --- Out: none
// --- Returns: a single field (a Field object) or a collection of fields (a Fields collection object) of the Folder object.
// --- Effect: none
void Details(HWND hParentWindow = NULL);
// --- In: hParentWindow: The parent window handle for the details dialog box.
// A value of NULL specifies a application modal dialog box.
// --- Out: none
// --- Returns: none
// --- Effect: displays a dialog box that provides detailed information about an AddressEntry object
void Update(BOOL bMakePermanent = TRUE, BOOL bRefreshObject = FALSE);
// --- In: bMakePermanent: TRUE indicates that the property cache is flushed and all changes are
// committed in the underlying store. FALSE indicates that the property cache is flushed and
// not committed to the store.
// bRefreshObject: TRUE indicates that the property cache is reloaded from the values in the
// underlying store. FALSE indicates that the property cache is not reloaded.
// --- Out: none
// --- Returns: none
// --- Effect: Saves AddressEntry object changes in the MAPI system
void Delete();
// --- In: none
// --- Out: none
// --- Returns: none
// --- Effect: deletes the specified address from the address book
};
#endif