Fairport
v1.0.38
|
Primitive structures defined by MS-PST and MAPI. More...
#include <boost/config.hpp>
#include <boost/cstdint.hpp>
#include <string>
Go to the source code of this file.
Classes | |
struct | fairport::guid |
A Win32 GUID structure. More... | |
Namespaces | |
namespace | fairport |
Contains the definition of all in memory representations of disk structures. | |
Defines | |
#define | FAIRPORT_VALIDATION_LEVEL_WEAK |
Global Validation Settings. | |
#define | FAIRPORT_MS_STRUCT |
#define | FAIRPORT_PACK_2 |
#define | make_nid(nid_type, nid_index) (((nid_type)&nid_type_mask)|((nid_index) << 5)) |
Construct a node_id (NID) from a node type and index. | |
#define | make_prv_pub_nid(nid_index) (make_nid(nid_type_folder, nid_index_prv_pub_base + (nid_index))) |
Construct a folders node_id for an OST file. | |
Typedefs | |
typedef boost::uint32_t | fairport::uint |
typedef boost::uint32_t | fairport::ulong |
typedef boost::int32_t | fairport::slong |
typedef boost::uint64_t | fairport::ulonglong |
typedef boost::int64_t | fairport::slonglong |
typedef boost::uint8_t | fairport::byte |
typedef boost::uint16_t | fairport::ushort |
typedef ulong | fairport::node_id |
typedef ulonglong | fairport::block_id |
typedef block_id | fairport::page_id |
typedef ulong | fairport::heap_id |
typedef ulong | fairport::heapnode_id |
typedef ushort | fairport::prop_id |
typedef ulong | fairport::row_id |
Enumerations | |
enum | fairport::nid_type { fairport::nid_type_none = 0x00, fairport::nid_type_internal = 0x01, fairport::nid_type_folder = 0x02, fairport::nid_type_search_folder = 0x03, fairport::nid_type_message = 0x04, fairport::nid_type_attachment = 0x05, fairport::nid_type_search_update_queue = 0x06, fairport::nid_type_search_criteria_object = 0x07, fairport::nid_type_associated_message = 0x08, fairport::nid_type_storage = 0x09, fairport::nid_type_contents_table_index = 0x0A, fairport::nid_type_receive_folder_table = 0x0B, fairport::nid_type_outgoing_queue_table = 0x0C, fairport::nid_type_hierarchy_table = 0x0D, fairport::nid_type_contents_table = 0x0E, fairport::nid_type_associated_contents_table = 0x0F, fairport::nid_type_search_contents_table = 0x10, fairport::nid_type_attachment_table = 0x11, fairport::nid_type_recipient_table = 0x12, fairport::nid_type_search_table_index = 0x13, fairport::nid_type_contents_smp = 0x14, fairport::nid_type_associated_contents_smp = 0x15, fairport::nid_type_change_history_table = 0x16, fairport::nid_type_tombstone_table = 0x17, fairport::nid_type_tombstone_date_table = 0x18, fairport::nid_type_lrep_dups_table = 0x19, fairport::nid_type_folder_path_tombstone_table = 0x1A, fairport::nid_type_ltp = 0x1F, fairport::nid_type_max = 0x20 } |
Different node types found in a PST file. More... | |
enum | fairport::predefined_nid { fairport::nid_message_store = make_nid(nid_type_internal, 0x1), fairport::nid_name_id_map = make_nid(nid_type_internal, 0x3), fairport::nid_normal_folder_template = make_nid(nid_type_folder, 0x6), fairport::nid_search_folder_template = make_nid(nid_type_search_folder, 0x7), fairport::nid_root_folder = make_nid(nid_type_folder, 0x9), fairport::nid_search_management_queue = make_nid(nid_type_internal, 0xF), fairport::nid_search_activity_list = make_nid(nid_type_internal, 0x10), fairport::nid_search_domain_alternative = make_nid(nid_type_internal, 0x12), fairport::nid_search_domain_object = make_nid(nid_type_internal, 0x13), fairport::nid_search_gatherer_queue = make_nid(nid_type_internal, 0x14), fairport::nid_search_gatherer_descriptor = make_nid(nid_type_internal, 0x15), fairport::nid_table_rebuild_queue = make_nid(nid_type_internal, 0x17), fairport::nid_junk_mail_pihsl = make_nid(nid_type_internal, 0x18), fairport::nid_search_gatherer_folder_queue = make_nid(nid_type_internal, 0x19), fairport::nid_tc_sub_props = make_nid(nid_type_internal, 0x27), fairport::nid_index_template = 0x30, fairport::nid_hierarchy_table_template = make_nid(nid_type_hierarchy_table, nid_index_template), fairport::nid_contents_table_template = make_nid(nid_type_contents_table, nid_index_template), fairport::nid_associated_contents_table_template = make_nid(nid_type_associated_contents_table, nid_index_template), fairport::nid_search_contents_table_template = make_nid(nid_type_search_contents_table, nid_index_template), fairport::nid_smp_template = make_nid(nid_type_contents_smp, nid_index_template), fairport::nid_tombstone_table_template = make_nid(nid_type_tombstone_table, nid_index_template), fairport::nid_lrep_dups_table_template = make_nid(nid_type_lrep_dups_table, nid_index_template), fairport::nid_receive_folders = make_nid(nid_type_receive_folder_table, 0x31), fairport::nid_outgoing_queue = make_nid(nid_type_outgoing_queue_table, 0x32), fairport::nid_attachment_table = make_nid(nid_type_attachment_table, 0x33), fairport::nid_recipient_table = make_nid(nid_type_recipient_table, 0x34), fairport::nid_change_history_table = make_nid(nid_type_change_history_table, 0x35), fairport::nid_tombstone_table = make_nid(nid_type_tombstone_table, 0x36), fairport::nid_tombstone_date_table = make_nid(nid_type_tombstone_date_table, 0x37), fairport::nid_all_message_search_folder = make_nid(nid_type_search_folder, 0x39), fairport::nid_all_message_search_contents = make_nid(nid_type_search_contents_table, 0x39), fairport::nid_lrep_gmp = make_nid(nid_type_internal, 0x40), fairport::nid_lrep_folders_smp = make_nid(nid_type_internal, 0x41), fairport::nid_lrep_folders_table = make_nid(nid_type_internal, 0x42), fairport::nid_folder_path_tombstone_table = make_nid(nid_type_internal, 0x43), fairport::nid_hst_hmp = make_nid(nid_type_internal, 0x60), fairport::nid_index_prv_pub_base = 0x100, fairport::nid_pub_root_folder = make_prv_pub_nid(0), fairport::nid_prv_root_folder = make_prv_pub_nid(5), fairport::nid_criterr_notification = make_nid(nid_type_internal, 0x3FD), fairport::nid_object_notification = make_nid(nid_type_internal, 0x3FE), fairport::nid_newemail_notification = make_nid(nid_type_internal, 0x3FF), fairport::nid_extended_notification = make_nid(nid_type_internal, 0x400), fairport::nid_indexing_notification = make_nid(nid_type_internal, 0x401) } |
The predefined nodes in a PST/OST file. More... | |
enum | fairport::prop_type { fairport::prop_type_unspecified = 0, fairport::prop_type_null = 1, fairport::prop_type_short = 2, fairport::prop_type_mv_short = 4098, fairport::prop_type_long = 3, fairport::prop_type_mv_long = 4099, fairport::prop_type_float = 4, fairport::prop_type_mv_float = 4100, fairport::prop_type_double = 5, fairport::prop_type_mv_double = 4101, fairport::prop_type_currency = 6, fairport::prop_type_mv_currency = 4102, fairport::prop_type_apptime = 7, fairport::prop_type_mv_apptime = 4103, fairport::prop_type_error = 10, fairport::prop_type_boolean = 11, fairport::prop_type_object = 13, fairport::prop_type_longlong = 20, fairport::prop_type_mv_longlong = 4116, fairport::prop_type_string = 30, fairport::prop_type_mv_string = 4126, fairport::prop_type_wstring = 31, fairport::prop_type_mv_wstring = 4127, fairport::prop_type_systime = 64, fairport::prop_type_mv_systime = 4160, fairport::prop_type_guid = 72, fairport::prop_type_mv_guid = 4168, fairport::prop_type_binary = 258, fairport::prop_type_mv_binary = 4354 } |
The different property types as defined by MAPI. More... | |
enum | fairport::recipient_type { fairport::mapi_to = 1, fairport::mapi_cc = 2, fairport::mapi_bcc = 3 } |
The different recipient types as defined by MAPI. More... | |
Functions | |
nid_type | fairport::get_nid_type (node_id id) |
Get a node type from a node id. | |
ulong | fairport::get_nid_index (node_id id) |
Get a node index from a node id. | |
ulong | fairport::get_heap_page (heap_id id) |
Get the heap page from the heap id. | |
ulong | fairport::get_heap_index (heap_id id) |
Get the index from the heap id. | |
heap_id | fairport::make_heap_id (ulong page, ulong index) |
Create a heap_id from a page and an index. | |
bool | fairport::is_heap_id (heapnode_id id) |
Inspects a heapnode_id (also known as a HNID) to determine if it is a heap_id (HID) | |
bool | fairport::is_subnode_id (heapnode_id id) |
Inspects a heapnode_id (also known as a HNID) to determine if it is a node_id (NID) | |
Variables | |
const ulong | fairport::nid_type_mask = 0x1FL |
The portion of a node_id reserved for the type. | |
const byte | fairport::message_subject_prefix_lead_byte = 0x01 |
A sentinel byte which indicates the message subject contains a prefix. | |
const guid | fairport::ps_none = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } } |
The NULL guid. | |
const guid | fairport::ps_mapi = { 0x20328, 0, 0, { 0xc0, 0, 0, 0, 0, 0, 0, 0x46 } } |
The PS_MAPI guid. | |
const guid | fairport::ps_public_strings = { 0x20329, 0, 0, { 0xc0, 0, 0, 0, 0, 0, 0, 0x46 } } |
The PS_PUBLIC_STRINGS guid. | |
const guid | fairport::ps_task = { 0x62003, 0, 0, { 0xc0, 0, 0, 0, 0, 0, 0, 0x46 } } |
The PSETID_Task guid. | |
const guid | fairport::ps_contact = { 0x62004, 0, 0, { 0xc0, 0, 0, 0, 0, 0, 0, 0x46 } } |
The PSETID_Address guid. | |
const std::wstring | fairport::task_class = "IPM.Task" |
Message class for Task Items. | |
const std::wstring | fairport::contact_class = "IPM.Contact" |
Message class for Contact Items. |
Primitive structures defined by MS-PST and MAPI.
Definition in file primitives.h.
#define FAIRPORT_MS_STRUCT |
Definition at line 53 of file primitives.h.
#define FAIRPORT_PACK_2 |
Definition at line 54 of file primitives.h.