The TMAPIStore - Delphi wrapper object for IMsgStore.
unit: MAPIStore.pas
file path: ..\Library\Helpers
version: 2014.хх
uses Windows, Types, SysUtils, ExtendedMAPI, EDK,
IMIEMTypes, MAPITable,
MAPIProperty, MAPIFolder;
Unit: | MAPIStore.pas |
Type: | Class |
Inherited from: | TMAPICustomHolder |
TMAPIStore = class(TMAPICustomHolder)
private
...
protected
...
...
public
constructor Create(const oStore: IMsgStore); reintroduce;
destructor Destroy; override;
property AccessLevel;
property EntryID;
property StoreID;
property StoreSupportMask;
property IsSupportsUnicode;
property Signature;
property SearchKey;
property ProviderID;
property RecordKey;
property MAPISession;
property MAPIObject;
property Folders;
property NoCache;
property Active;
property MAPIObjType;
property Modified;
property PropertyTags;
property Comment: String Read GetComment Write SetComment;
property DisplayName: String read GetDisplayName write SetDisplayName;
property IsPublic: Boolean Read GetIsPublic;
property IsExchange: Boolean Read GetIsExchange;
property IsExchangePrimary: Boolean Read GetIsExchangeUser;
property IsExchangeShared: Boolean read GetIsExchangeShared;
property IsExchangePublic: Boolean read GetIsExchangePublic;
property RootFolder: TMAPIFolder read GetRootFolder;
property TopFolder: TMAPIFolder read GetTopFolder;
property StoreType: TStoreType read GetStoreType;
property CommonViewsEntryId: TBytes read GetCommonViewsEntryId;
property ValidFolders: TValidFolders read GetValidFolders;
property DefaultFolder[const FldType: TMAPIFldType]: TMAPIFolder read GetSpecialFolder;
property AllowEvents: Boolean read FAllowEvents write SetAllowEvents;
property StoreEvents: TMAPIEvents read FStoreEvents write FStoreEvents;
property OnCriticalError: TCriticalErrorEvent read FOnCriticalErrorEvent write FOnCriticalErrorEvent;
property OnNewMailEvent: TNewMailEvent read FOnNewMailEvent write FOnNewMailEvent;
property OnBasicObjectEvent: TObjBasicEvent read FOnBasicObjectEvent write FOnBasicObjectEvent;
function CompareEntryIDs(const EntryID1, EntryID2: TBytes): Boolean;
function GetObject(const aEntryID: TBytes; const AccessLevel: TAccessLevel = alBestAccess): TMAPIProperty;
function GetFolderType(const aEntryID: TBytes): TMAPIFldType;
function GetSpecialFolderEntryID(const FolderType: TMAPIFldType): TBytes;
end;
TMAPIEventType = (evCriticalError, evNewMail, evObjectCreated, evObjectDeleted, evObjectModified, evObjectMoved, evObjectCopied, evSearchComplete);
Name | Description |
---|---|
evCriticalError | Registers for notifications about severe errors, such as insufficient memory. |
evNewMail | Registers for notifications about the arrival of new messages. |
evObjectCreated | Registers for notifications about the creation of a new folder or message. |
evObjectDeleted | Registers for notifications about a folder or message being deleted. |
evObjectModified | Registers for notifications about a folder or message being modified. |
evObjectMoved | Registers for notifications about a folder or message being moved. |
evObjectCopied | Registers for notifications about a folder or message being copied. |
evSearchComplete | Registers for notifications about the completion of a search operation. |
TMAPIEvents = Set of TMAPIEventType;
TCriticalErrorEvent = procedure(Sender: TObject; EntryID: TBytes; ErrorCode: HRESULT; ErrorMessage: string) of object;
TNewMailEvent = procedure(Sender: TObject; EntryID: TBytes; ParentID: TBytes; MessageClass: string; MessageFlags: ULONG) of object;
TObjBasicEvent = procedure(Sender: TObject; EventType: TMAPIEventType; MAPIObjType: TMAPIObjType; EntryID: TBytes; ParentID: TBytes; OldID: TBytes;
OldParentID: TBytes; Tags: array of ULONG) of object;
Constructors
Name | Description |
Create | Creates and initializes object instance
from IMsgStore constructor Create(const oStore: IMsgStore); reintroduce; |
Properties
Name | Access | Type | Description |
AccessLevel | RO | TAccessLevel |
Indicates the client's access level to the MAPI object (PR_ACCESS_LEVEL) |
EntryID | RO | TBytes | Contains a MAPI entry identifier - PR_ENTRYID |
StoreID | RO | TBytes | Contains the unique entry identifier of the message store where an object reside - PR_STORE_ENTRYID |
StoreSupportMask | RO | TStoreSupportsSet | Indicates the capabilities of a message store to client applications (PR_STORE_SUPPORT_MASK) |
IsSupportsUnicode | RO | Boolean | Indicates that the message store supports Unicode storage. |
Signature | RO | TBytes | Contains the mapping signature for named properties (PR_MAPPING_SIGNATURE) |
SearchKey | RO | TBytes | Contains a binary-comparable key that identifies correlated objects for a search (PR_SEARCH_KEY) |
ProviderID | RO | TBytes | Contains a provider-defined MAPIUID structure that indicates the type of the message store. (PR_MDB_PROVIDER) |
RecordKey | RO | TBytes | Contains a unique binary-comparable identifier (PR_RECORD_KEY) |
MAPISession | RO | IMAPISession | Inherited from TMAPIBase |
MAPIObject | RO | IMAPIProp | Inherited from TMAPIProperty |
Folders | RO | TMAPIFolders | Inherited from TMAPICustomHolder |
NoCache | RW | Boolean | Inherited from TMAPICustomHolder |
Active | RW | Boolean | Inherited from TMAPIProperty |
MAPIObjType | RO | TMAPIObjType | Inherited from TMAPIBase |
Modified | RO | Boolean | Inherited from TMAPIProperty |
PropertyTags | RW | TCardinalDynArray | Inherited from TMAPIProperty |
PropFields | RO | TMAPIPropFields | Inherited from TMAPIProperty |
Comment | RW | String | Contains a comment about the purpose or content of an object (PR_COMMENT) |
DisplayName | RW | String | Contains the display name for a given MAPI object. (PR_DISPLAY_NAME) |
IsPublic | RO | Boolean | The folders in this store are public (multi-user), not private |
IsExchange | RO | Boolean | This store is managed by Microsoft Exchange Server |
IsExchangePrimary | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is the primary private (Mailbox) store. |
IsExchangeShared | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is an additional (delegate/shared) store. |
IsExchangePublic | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is public (multi-user), not private |
RootFolder | RO | TMAPIFolder | Returns TMAPIFolder representing the root folder of the message store. This folder is not visible. There is only one root folder for each message store. The root folder appears at the top of the hierarchy and contains messages and other folders. |
TopFolder | RO | TMAPIFolder | Returns TMAPIFolder representing "Top of Information Store" (IPM_SUBTREE). This folder is not visible. An IPM subtree for a delivery store consists of at least the following folders: Inbox, Outbox, Sent Items, Deleted Items |
StoreType | RO | TStoreType | Identifies type of MAPI Message Store |
CommonViewsEntryId | RO | TBytes | The entry identifier for the common view folder (PR_COMMON_VIEWS_ENTRYID) |
ValidFolders | RO | TValidFolders | Contains a set of flags that indicate the validity of the entry identifiers of the folders in a message store. |
DefaultFolder | RO | TMAPIFolder | Passing index (TMAPIFldType) returns default folder for a message class (Inbox, Contacts, Notes, Journal, etc..) |
AllowEvents | RW | Boolean | Specifies whether the processing of events to be enabled. If they are allowed, then they can be captured by the processing of events such as NewMail, ObjectCreated, etc.. |
StoreEvents | RW | TMAPIEvents | Returns/Specifies which events can be processed. |
Methods
Name | Description |
CompareEntryIDs | Checks whether the two entry ids refer to the
same MAPI object. function CompareEntryIDs(const EntryID1, EntryID2: TBytes): Boolean; |
GetObject | Returns
TMAPIFolder/TMAPIMessage object. function GetObject(const aEntryID: TBytes; const AccessLevel: TAccessLevel = alBestAccess): TMAPIProperty; |
GetFolderType | Returns FolderType (Inbox, Contacts, Deleted
Items, etc..) from its EntryID function GetFolderType(const aEntryID: TBytes): TMAPIFldType; |
GetSpecialFolderEntryID | Returns the EntryID for "special
folder" as inbox, outbox, contacts, etc... function GetSpecialFolderEntryID(const FolderType: TMAPIFldType): TBytes; |
Events
Name | Type | Description |
OnCriticalError | TCriticalErrorEvent | Notifications about severe errors, such as insufficient memory. |
OnNewMailEvent | TNewMailEvent | Notifications about the arrival of new messages. |
OnBasicObjectEvent | TObjBasicEvent | Notifications about evObjectCreated, evObjectModified, evObjectDeleted, evObjectMoved, evObjectCopied, evSearchComplete |
TMAPIExchangeStore = class(TMAPIStore)
public
property AccessLevel;
property EntryID;
property StoreID;
property StoreSupportMask;
property IsSupportsUnicode;
property Signature;
property SearchKey;
property ProviderID;
property RecordKey;
property MAPISession;
property MAPIObject;
property Folders;
property NoCache;
property Active;
property MAPIObjType;
property Modified;
property PropertyTags;
property Comment;
property DisplayName;
property IsPublic;
property IsExchangePrimary;
property IsExchangeShared;
property IsExchangePublic;
property CodePageId;
property ContentCount;
property ContentCountAssoc;
property MessagesSize;
property LocaleId;
property SortLocaleId;
property IsOnline;
end;
Properties
Name | Access | Type | Description |
AccessLevel | RO | TAccessLevel |
Indicates the client's access level to the MAPI object (PR_ACCESS_LEVEL) |
EntryID | RO | TBytes | Contains a MAPI entry identifier - PR_ENTRYID |
StoreID | RO | TBytes | Contains the unique entry identifier of the message store where an object reside - PR_STORE_ENTRYID |
StoreSupportMask | RO | TStoreSupportsSet | Indicates the capabilities of a message store to client applications (PR_STORE_SUPPORT_MASK) |
IsSupportsUnicode | RO | Boolean | Indicates that the message store supports Unicode storage. |
Signature | RO | TBytes | Contains the mapping signature for named properties (PR_MAPPING_SIGNATURE) |
SearchKey | RO | TBytes | Contains a binary-comparable key that identifies correlated objects for a search (PR_SEARCH_KEY) |
ProviderID | RO | TBytes | Contains a provider-defined MAPIUID structure that indicates the type of the message store. (PR_MDB_PROVIDER) |
RecordKey | RO | TBytes | Contains a unique binary-comparable identifier (PR_RECORD_KEY) |
MAPISession | RO | IMAPISession | Inherited from TMAPIBase |
MAPIObject | RO | IMAPIProp | Inherited from TMAPIProperty |
Folders | RO | TMAPIFolders | Inherited from TMAPICustomHolder |
NoCache | RW | Boolean | Inherited from TMAPICustomHolder |
Active | RW | Boolean | Inherited from TMAPIProperty |
MAPIObjType | RO | TMAPIObjType | Inherited from TMAPIBase |
Modified | RO | Boolean | Inherited from TMAPIProperty |
PropertyTags | RW | TCardinalDynArray | Inherited from TMAPIProperty |
PropFields | RO | TMAPIPropFields | Inherited from TMAPIProperty |
Comment | RW | String | Contains a comment about the purpose or content of an object (PR_COMMENT) |
DisplayName | RW | String | Contains the display name for a given MAPI object. (PR_DISPLAY_NAME) |
IsPublic | RO | Boolean | The folders in this store are public (multi-user), not private |
IsExchange | RO | Boolean | This store is managed by Microsoft Exchange Server |
IsExchangePrimary | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is the primary private (Mailbox) store. |
IsExchangeShared | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is an additional (delegate/shared) store. |
IsExchangePublic | RO | Boolean | This store is managed by Microsoft Exchange Server, and it is public (multi-user), not private |
RootFolder | RO | TMAPIFolder | Returns TMAPIFolder representing the root folder of the message store. This folder is not visible. There is only one root folder for each message store. The root folder appears at the top of the hierarchy and contains messages and other folders. |
TopFolder | RO | TMAPIFolder | Returns TMAPIFolder representing "Top of Information Store" (IPM_SUBTREE). This folder is not visible. An IPM subtree for a delivery store consists of at least the following folders: Inbox, Outbox, Sent Items, Deleted Items |
StoreType | RO | TStoreType | Identifies type of MAPI Message Store |
CommonViewsEntryId | RO | TBytes | The entry identifier for the common view folder (PR_COMMON_VIEWS_ENTRYID) |
ValidFolders | RO | TValidFolders | Contains a set of flags that indicate the validity of the entry identifiers of the folders in a message store. |
DefaultFolder | RO | TMAPIFolder | Passing index (TMAPIFldType) returns default folder for a message class (Inbox, Contacts, Notes, Journal, etc..) |
AllowEvents | RW | Boolean | Specifies whether the processing of events to be enabled. If they are allowed, then they can be captured by the processing of events such as NewMail, ObjectCreated, etc.. |
StoreEvents | RW | TMAPIEvents | Returns/Specifies which events can be processed. |
CodePageId | RO | ULONG | Contains the identifier for the client code page used for Unicode to double-byte character set (DBCS) string conversion. (PR_CODE_PAGE_ID) |
ContentCount | RO | ULONG | Contains the number of messages in a folder, as computed by the message store. (PR_CONTENT_COUNT) |
ContentCountAssoc | RO | ULONG | Contains the count of items in the associated contents table of the folder. (PR_ASSOC_CONTENT_COUNT) |
MessagesSize | RO | Int64 | Contains the sum, in bytes, of the sizes of all properties on all message objects. (PR_MESSAGE_SIZE_EXTENDED) |
LocaleId | RO | ULONG | stablishes the language locale for translating system-generated messages, such as delivery reports. (PR_LOCALE_ID) |
SortLocaleId | RO | ULONG | Contains the locale identifier. (PR_SORT_LOCALE_ID) |
IsOnline | RO | Boolean | Indicates whether the server connection is direct or offline (PR_STORE_OFFLINE) |
TMAPIExchangePublicStore = class(TMAPIExchangeStore)
end;
TMAPIExchangePrivateStore = class(TMAPIExchangeStore)
public
property Inbox;
property Outbox;
property SentItems;
property TrashBox;
property Calendar;
property Contacts;
property Drafts;
property Journal;
property Notes;
property Tasks;
property Junk;
property RSSFeeds;
property SearchRoot;
property SyncIssuesFolder;
property FolderConflicts;
property FolderLocalFailures;
property FolderServerFailures;
end;
Properties
Name | Access | Type | Description |
Inbox | RO | TMAPIFolder | The Inbox folder |
Outbox | RO | TMAPIFolder | The standard interpersonal message (IPM) Outbox folder. |
SentItems | RO | TMAPIFolder | The standard interpersonal message (IPM) Sent Items folder. |
TrashBox | RO | TMAPIFolder | The standard interpersonal message (IPM) Deleted Items folder. |
Calendar | RO | TMAPIFolder | The Outlook Calendar folder. |
Contacts | RO | TMAPIFolder | The Outlook Contacts folder. |
Drafts | RO | TMAPIFolder | The Outlook Drafts folder |
Journal | RO | TMAPIFolder | The Outlook Journal folder. |
Notes | RO | TMAPIFolder | The Outlook Notes folder. |
Tasks | RO | TMAPIFolder | The Outlook Tasks folder. |
Junk | RO | TMAPIFolder | The Outlook Junk E-mail Folder |
RSSFeeds | RO | TMAPIFolder | The Outlook RSS Feeds folder. |
SearchRoot | RO | TMAPIFolder | The folder where search results are typically created. |
SyncIssuesFolder | RO | TMAPIFolder | The Outlook Sync Issues folder |
FolderConflicts | RO | TMAPIFolder | The Outlook Conflicts folder (subfolder of SyncIssuesFolder). |
FolderLocalFailures | RO | TMAPIFolder | The Outlook Local Failures folder (subfolder of SyncIssuesFolder). |
FolderServerFailures | RO | TMAPIFolder | The Outlook Server Failures folder (subfolder of SyncIssuesFolder). |
TMAPILocalPersonalStore = class(TMAPIStore)
private
public
property Inbox;
property Outbox;
property SentItems;
property TrashBox;
property Calendar;
property Contacts;
property Drafts;
property Journal;
property Notes;
property Tasks;
property Junk;
property RSSFeeds;
property SearchRoot;
property SyncIssuesFolder;
property FileLocation: string read GetStorePath;
end;
Properties
Name | Access | Type | Description |
Inbox | RO | TMAPIFolder | The Inbox folder |
Outbox | RO | TMAPIFolder | The standard interpersonal message (IPM) Outbox folder. |
SentItems | RO | TMAPIFolder | The standard interpersonal message (IPM) Sent Items folder. |
TrashBox | RO | TMAPIFolder | The standard interpersonal message (IPM) Deleted Items folder. |
Calendar | RO | TMAPIFolder | The Outlook Calendar folder. |
Contacts | RO | TMAPIFolder | The Outlook Contacts folder. |
Drafts | RO | TMAPIFolder | The Outlook Drafts folder |
Journal | RO | TMAPIFolder | The Outlook Journal folder. |
Notes | RO | TMAPIFolder | The Outlook Notes folder. |
Tasks | RO | TMAPIFolder | The Outlook Tasks folder. |
Junk | RO | TMAPIFolder | The Outlook Junk E-mail Folder |
RSSFeeds | RO | TMAPIFolder | The Outlook RSS Feeds folder. |
SearchRoot | RO | TMAPIFolder | The folder where search results are typically created. |
SyncIssuesFolder | RO | TMAPIFolder | The Outlook Sync Issues folder |
FileLocation | RO | string | Returns a fully qualified path to the given PST store |
Copyright © 2021 IMIBO
Privacy Statement |