1735 lines
59 KiB
C++
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
|