libpst.h
Go to the documentation of this file.
/***
* libpst.h
* Part of LibPST project
* Written by David Smith
* dave.s@earthcorp.com
*/
// LibPST - Library for Accessing Outlook .pst files
// Dave Smith - davesmith@users.sourceforge.net
#ifndef __PST_LIBPST_H
#define __PST_LIBPST_H
#include "common.h"
#ifdef __cplusplus
extern "C" {
#endif
// switch to maximal packing for all structures in the libpst interface
// this is reverted at the end of this file
#ifdef _MSC_VER
#pragma pack(push, 1)
#endif
#if defined(__GNUC__) || defined (__SUNPRO_C) || defined(__SUNPRO_CC)
#pragma pack(1)
#endif
#define PST_TYPE_NOTE 1
#define PST_TYPE_SCHEDULE 2
#define PST_TYPE_APPOINTMENT 8
#define PST_TYPE_CONTACT 9
#define PST_TYPE_JOURNAL 10
#define PST_TYPE_STICKYNOTE 11
#define PST_TYPE_TASK 12
#define PST_TYPE_OTHER 13
#define PST_TYPE_REPORT 14
#define PST_TYPE_MAX 15
// defines types of possible encryption
#define PST_NO_ENCRYPT 0
#define PST_COMP_ENCRYPT 1
#define PST_ENCRYPT 2
// defines different types of mappings
#define PST_MAP_ATTRIB (uint32_t)1
#define PST_MAP_HEADER (uint32_t)2
// define my custom email attributes.
#define PST_ATTRIB_HEADER -1
// defines types of free/busy values for appointment->showas
#define PST_FREEBUSY_FREE 0
#define PST_FREEBUSY_TENTATIVE 1
#define PST_FREEBUSY_BUSY 2
#define PST_FREEBUSY_OUT_OF_OFFICE 3
// defines labels for appointment->label
#define PST_APP_LABEL_NONE 0
#define PST_APP_LABEL_IMPORTANT 1
#define PST_APP_LABEL_BUSINESS 2
#define PST_APP_LABEL_PERSONAL 3
#define PST_APP_LABEL_VACATION 4
#define PST_APP_LABEL_MUST_ATTEND 5
#define PST_APP_LABEL_TRAVEL_REQ 6
#define PST_APP_LABEL_NEEDS_PREP 7
#define PST_APP_LABEL_BIRTHDAY 8
#define PST_APP_LABEL_ANNIVERSARY 9
#define PST_APP_LABEL_PHONE_CALL 10
// define type of recurring event
#define PST_APP_RECUR_NONE 0
#define PST_APP_RECUR_DAILY 1
#define PST_APP_RECUR_WEEKLY 2
#define PST_APP_RECUR_MONTHLY 3
#define PST_APP_RECUR_YEARLY 4
// define attachment types
#define PST_ATTACH_NONE 0
#define PST_ATTACH_BY_VALUE 1
#define PST_ATTACH_BY_REF 2
#define PST_ATTACH_BY_REF_RESOLV 3
#define PST_ATTACH_BY_REF_ONLY 4
#define PST_ATTACH_EMBEDDED 5
#define PST_ATTACH_OLE 6
// define flags
#define PST_FLAG_READ 0x01
#define PST_FLAG_UNMODIFIED 0x02
#define PST_FLAG_SUBMIT 0x04
#define PST_FLAG_UNSENT 0x08
#define PST_FLAG_HAS_ATTACHMENT 0x10
#define PST_FLAG_FROM_ME 0x20
#define PST_FLAG_ASSOCIATED 0x40
#define PST_FLAG_RESEND 0x80
#define PST_FLAG_RN_PENDING 0x100
#define PST_FLAG_NRN_PENDING 0x200
typedef struct pst_entryid {
int32_t u1;
char entryid[16];
uint32_t id;
} pst_entryid;
typedef struct pst_index_ll {
uint64_t i_id;
uint64_t offset;
uint64_t size;
uint64_t inflated_size;
int64_t u1;
} pst_index_ll;
typedef struct pst_id2_tree {
uint64_t id2;
pst_index_ll *id;
struct pst_id2_tree *child;
struct pst_id2_tree *next;
} pst_id2_tree;
typedef struct pst_desc_tree {
uint64_t d_id;
uint64_t parent_d_id;
pst_index_ll *desc;
pst_index_ll *assoc_tree;
int32_t no_child;
struct pst_desc_tree *prev;
struct pst_desc_tree *next;
struct pst_desc_tree *parent;
struct pst_desc_tree *child;
struct pst_desc_tree *child_tail;
} pst_desc_tree;
typedef struct pst_string {
int is_utf8;
char *str;
} pst_string;
typedef struct pst_binary {
size_t size;
char *data;
} pst_binary;
typedef struct pst_item_email {
FILETIME *arrival_date;
int autoforward;
pst_string cc_address;
pst_string bcc_address;
pst_binary conversation_index;
int conversion_prohibited;
int delete_after_submit;
int delivery_report;
pst_binary encrypted_body;
pst_binary encrypted_htmlbody;
pst_string header;
pst_string htmlbody;
int32_t importance;
pst_string in_reply_to;
int message_cc_me;
int message_recip_me;
int message_to_me;
pst_string messageid;
int32_t original_sensitivity;
pst_string original_bcc;
pst_string original_cc;
pst_string original_to;
pst_string outlook_recipient;
pst_string outlook_recipient_name;
pst_string outlook_recipient2;
pst_string outlook_sender;
pst_string outlook_sender_name;
pst_string outlook_sender2;
int32_t priority;
pst_string processed_subject;
int read_receipt;
pst_string recip_access;
pst_string recip_address;
pst_string recip2_access;
pst_string recip2_address;
int reply_requested;
pst_string reply_to;
pst_string return_path_address;
int32_t rtf_body_char_count;
int32_t rtf_body_crc;
pst_string rtf_body_tag;
pst_binary rtf_compressed;
int rtf_in_sync;
int32_t rtf_ws_prefix_count;
int32_t rtf_ws_trailing_count;
pst_string sender_access;
pst_string sender_address;
pst_string sender2_access;
pst_string sender2_address;
int32_t sensitivity;
FILETIME *sent_date;
pst_entryid *sentmail_folder;
pst_string sentto_address;
pst_string report_text;
FILETIME *report_time;
int32_t ndr_reason_code;
int32_t ndr_diag_code;
pst_string supplementary_info;
int32_t ndr_status_code;
// elements added for .msg processing
pst_string outlook_received_name1;
pst_string outlook_sender_name2;
pst_string outlook_normalized_subject;
pst_string outlook_search_key;
} pst_item_email;
typedef struct pst_item_folder {
int32_t item_count;
int32_t unseen_item_count;
int32_t assoc_count;
int subfolder;
} pst_item_folder;
typedef struct pst_item_message_store {
pst_entryid *top_of_personal_folder;
pst_entryid *default_outbox_folder;
pst_entryid *deleted_items_folder;
pst_entryid *sent_items_folder;
pst_entryid *user_views_folder;
pst_entryid *common_view_folder;
pst_entryid *search_root_folder;
pst_entryid *top_of_folder;
int32_t valid_mask;
int32_t pwd_chksum;
} pst_item_message_store;
typedef struct pst_item_contact {
pst_string account_name;
pst_string address1;
pst_string address1a;
pst_string address1_desc;
pst_string address1_transport;
pst_string address2;
pst_string address2a;
pst_string address2_desc;
pst_string address2_transport;
pst_string address3;
pst_string address3a;
pst_string address3_desc;
pst_string address3_transport;
pst_string assistant_name;
pst_string assistant_phone;
pst_string billing_information;
FILETIME *birthday;
pst_string business_address;
pst_string business_city;
pst_string business_country;
pst_string business_fax;
pst_string business_homepage;
pst_string business_phone;
pst_string business_phone2;
pst_string business_po_box;
pst_string business_postal_code;
pst_string business_state;
pst_string business_street;
pst_string callback_phone;
pst_string car_phone;
pst_string company_main_phone;
pst_string company_name;
pst_string computer_name;
pst_string customer_id;
pst_string def_postal_address;
pst_string department;
pst_string display_name_prefix;
pst_string first_name;
pst_string followup;
pst_string free_busy_address;
pst_string ftp_site;
pst_string fullname;
int16_t gender;
pst_string gov_id;
pst_string hobbies;
pst_string home_address;
pst_string home_city;
pst_string home_country;
pst_string home_fax;
pst_string home_phone;
pst_string home_phone2;
pst_string home_po_box;
pst_string home_postal_code;
pst_string home_state;
pst_string home_street;
pst_string initials;
pst_string isdn_phone;
pst_string job_title;
pst_string keyword;
pst_string language;
pst_string location;
int mail_permission;
pst_string manager_name;
pst_string middle_name;
pst_string mileage;
pst_string mobile_phone;
pst_string nickname;
pst_string office_loc;
pst_string common_name;
pst_string org_id;
pst_string other_address;
pst_string other_city;
pst_string other_country;
pst_string other_phone;
pst_string other_po_box;
pst_string other_postal_code;
pst_string other_state;
pst_string other_street;
pst_string pager_phone;
pst_string personal_homepage;
pst_string pref_name;
pst_string primary_fax;
pst_string primary_phone;
pst_string profession;
pst_string radio_phone;
int rich_text;
pst_string spouse_name;
pst_string suffix;
pst_string surname;
pst_string telex;
pst_string transmittable_display_name;
pst_string ttytdd_phone;
FILETIME *wedding_anniversary;
pst_string work_address_street;
pst_string work_address_city;
pst_string work_address_state;
pst_string work_address_postalcode;
pst_string work_address_country;
pst_string work_address_postofficebox;
} pst_item_contact;
typedef struct pst_item_attach {
pst_string filename1;
pst_string filename2;
pst_string mimetype;
pst_string content_id;
pst_binary data;
uint64_t id2_val;
uint64_t i_id;
pst_id2_tree *id2_head;
int32_t method;
int32_t position;
int32_t sequence;
struct pst_item_attach *next;
} pst_item_attach;
typedef struct pst_item_extra_field {
char *field_name;
char *value;
struct pst_item_extra_field *next;
} pst_item_extra_field;
typedef struct pst_item_journal {
FILETIME *start;
FILETIME *end;
pst_string type;
pst_string description;
} pst_item_journal;
typedef struct pst_recurrence {
uint32_t signature;
uint32_t type;
uint32_t sub_type;
uint32_t parm1;
uint32_t parm2;
uint32_t parm3;
uint32_t parm4;
uint32_t parm5;
uint32_t termination;
uint32_t interval;
uint32_t bydaymask;
uint32_t dayofmonth;
uint32_t monthofyear;
uint32_t position;
uint32_t count;
// there is more data, including the termination date,
// but we can get that from other mapi elements.
} pst_recurrence;
typedef struct pst_item_appointment {
FILETIME *start;
FILETIME *end;
pst_string location;
int alarm;
FILETIME *reminder;
int32_t alarm_minutes;
pst_string alarm_filename;
pst_string timezonestring;
int32_t showas;
int32_t label;
int all_day;
int is_recurring;
int32_t recurrence_type;
pst_string recurrence_description;
pst_binary recurrence_data;
FILETIME *recurrence_start;
FILETIME *recurrence_end;
} pst_item_appointment;
typedef struct pst_item {
struct pst_file *pf;
uint64_t block_id;
pst_item_email *email;
pst_item_folder *folder;
pst_item_contact *contact;
pst_item_attach *attach;
pst_item_message_store *message_store;
pst_item_extra_field *extra_fields;
pst_item_journal *journal;
pst_item_appointment *appointment;
int type;
char *ascii_type;
int32_t flags;
pst_string file_as;
pst_string comment;
pst_string body_charset;
pst_string body;
pst_string subject;
int32_t internet_cpid;
int32_t message_codepage;
int32_t message_size;
pst_string outlook_version;
pst_binary record_key;
pst_binary predecessor_change;
int response_requested;
FILETIME *create_date;
FILETIME *modify_date;
int private_member;
} pst_item;
typedef struct pst_x_attrib_ll {
uint32_t mytype;
uint32_t map;
void *data;
struct pst_x_attrib_ll *next;
} pst_x_attrib_ll;
typedef struct pst_block_recorder {
struct pst_block_recorder *next;
int64_t offset;
size_t size;
int readcount;
} pst_block_recorder;
typedef struct pst_file {
FILE* fp;
char* cwd;
char* fname;
const char* charset;
pst_index_ll *i_table;
size_t i_count, i_capacity;
pst_desc_tree *d_head, *d_tail;
pst_x_attrib_ll *x_head;
pst_block_recorder *block_head;
int do_read64;
uint64_t index1;
uint64_t index1_back;
uint64_t index2;
uint64_t index2_back;
uint64_t size;
unsigned char encryption;
unsigned char ind_type;
} pst_file;
int pst_open(pst_file *pf, const char *name, const char *charset);
int pst_reopen(pst_file *pf);
int pst_load_index (pst_file *pf);
int pst_load_extended_attributes(pst_file *pf);
int pst_close(pst_file *pf);
pst_desc_tree* pst_getTopOfFolders(pst_file *pf, const pst_item *root);
pst_binary pst_attach_to_mem(pst_file *pf, pst_item_attach *attach);
size_t pst_attach_to_file(pst_file *pf, pst_item_attach *attach, FILE* fp);
size_t pst_attach_to_file_base64(pst_file *pf, pst_item_attach *attach, FILE* fp);
pst_desc_tree* pst_getNextDptr(pst_desc_tree* d);
pst_item* pst_parse_item (pst_file *pf, pst_desc_tree *d_ptr, pst_id2_tree *m_head);
void pst_freeItem(pst_item *item);
pst_index_ll* pst_getID(pst_file* pf, uint64_t i_id);
size_t pst_ff_getIDblock_dec(pst_file *pf, uint64_t i_id, char **buf);
int pst_stricmp(char *a, char *b);
size_t pst_fwrite(const void* ptr, size_t size, size_t nmemb, FILE* stream);
char* pst_rfc2426_escape(char* str, char** result, size_t* resultlen);
char* pst_rfc2425_datetime_format(const FILETIME* ft, int buflen, char* result);
char* pst_rfc2445_datetime_format(const FILETIME* ft, int buflen, char* result);
char* pst_rfc2445_datetime_format_now(int buflen, char* result);
const char* pst_default_charset(pst_item *item, int buflen, char* result);
void pst_rfc2231(pst_string *str);
void pst_rfc2047(pst_item *item, pst_string *str, int needs_quote);
void pst_convert_utf8_null(pst_item *item, pst_string *str);
void pst_convert_utf8(pst_item *item, pst_string *str);
pst_recurrence* pst_convert_recurrence(pst_item_appointment* appt);
void pst_free_recurrence(pst_recurrence* r);
// switch from maximal packing back to default packing
// undo the packing from the beginning of this file
#ifdef _MSC_VER
#pragma pack(pop)
#endif
#if defined(__GNUC__) || defined (__SUNPRO_C) || defined(__SUNPRO_CC)
#pragma pack()
#endif
#ifdef __cplusplus
}
#endif
#endif
pst_item_email::sender_address
pst_string sender_address
mapi element 0x0065 PR_SENT_REPRESENTING_EMAIL_ADDRESS
Definition: libpst.h:299
pst_item_message_store::valid_mask
int32_t valid_mask
mapi element 0x35df, bit mask of folders in this message store
Definition: libpst.h:389
pst_item_email::original_cc
pst_string original_cc
mapi element 0x0073 PR_ORIGINAL_DISPLAY_CC
Definition: libpst.h:225
pst_item_message_store::sent_items_folder
pst_entryid * sent_items_folder
mapi element 0x35e4
Definition: libpst.h:370
pst_item_appointment::timezonestring
pst_string timezonestring
mapi element 0x8234
Definition: libpst.h:731
pst_recurrence::bydaymask
uint32_t bydaymask
bit mask of days of the week
Definition: libpst.h:697
pst_item_email::outlook_received_name1
pst_string outlook_received_name1
mapi element 0x0040 PR_RECEIVED_BY_NAME
Definition: libpst.h:331
pst_id2_tree
struct pst_id2_tree pst_id2_tree
pst_item_contact::other_postal_code
pst_string other_postal_code
mapi element 0x3a61 PR_OTHER_ADDRESS_POSTAL_CODE
Definition: libpst.h:554
pst_load_index
int pst_load_index(pst_file *pf)
Load the index entries from the pst file.
pst_item_contact::suffix
pst_string suffix
mapi element 0x3a05 PR_GENERATION (Jr., Sr., III, etc)
Definition: libpst.h:580
pst_item_contact
struct pst_item_contact pst_item_contact
This contains the contact related mapi elements.
pst_item_contact::followup
pst_string followup
mapi element 0x8530
Definition: libpst.h:475
pst_item_appointment::alarm_minutes
int32_t alarm_minutes
mapi element 0x8501 PR_OUTLOOK_COMMON_REMINDER_MINUTES_BEFORE
Definition: libpst.h:727
pst_item_contact::work_address_city
pst_string work_address_city
mapi element 0x8046
Definition: libpst.h:594
pst_item_folder
This contains the folder related mapi elements.
Definition: libpst.h:343
pst_rfc2426_escape
char * pst_rfc2426_escape(char *str, char **result, size_t *resultlen)
Add any necessary escape characters for rfc2426 vcard format.
pst_item_contact::home_address
pst_string home_address
mapi element 0x801a
Definition: libpst.h:492
pst_file::encryption
unsigned char encryption
Definition: libpst.h:932
pst_item_contact::wedding_anniversary
FILETIME * wedding_anniversary
mapi element 0x3a41 PR_WEDDING_ANNIVERSARY
Definition: libpst.h:590
pst_rfc2047
void pst_rfc2047(pst_item *item, pst_string *str, int needs_quote)
Convert str to rfc2047 encoding of str, possibly enclosed in quotes if it contains spaces...
pst_item_email::encrypted_htmlbody
pst_binary encrypted_htmlbody
mapi element 0x6f02
Definition: libpst.h:190
pst_item::appointment
pst_item_appointment * appointment
calendar mapi elements
Definition: libpst.h:800
FILETIME
Definition: common.h:27
pst_item_contact::address2_transport
pst_string address2_transport
mapi element 0x8092
Definition: libpst.h:415
pst_file::d_tail
pst_desc_tree * d_tail
Definition: libpst.h:907
pst_item::modify_date
FILETIME * modify_date
mapi element 0x3008 PR_LAST_MODIFICATION_TIME
Definition: libpst.h:855
pst_item::contact
pst_item_contact * contact
contact mapi elements
Definition: libpst.h:790
pst_item::comment
pst_string comment
mapi element 0x3004 PR_COMMENT
Definition: libpst.h:829
pst_reopen
int pst_reopen(pst_file *pf)
Reopen the pst file after a fork.
pst_item_email::importance
int32_t importance
mapi element 0x0017 PR_IMPORTANCE
Definition: libpst.h:199
pst_item_contact::billing_information
pst_string billing_information
mapi element 0x8535
Definition: libpst.h:429
pst_item::flags
int32_t flags
mapi element 0x0e07 PR_MESSAGE_FLAGS
Definition: libpst.h:825
pst_item::subject
pst_string subject
mapi element 0x0037 PR_SUBJECT
Definition: libpst.h:835
pst_item_appointment::recurrence_type
int32_t recurrence_type
mapi element 0x8231
Definition: libpst.h:765
pst_recurrence::position
uint32_t position
occurrence of day for 2nd Tuesday of month, in which case position is 2
Definition: libpst.h:703
pst_block_recorder::offset
int64_t offset
Definition: libpst.h:888
pst_item_contact::home_fax
pst_string home_fax
mapi element 0x3a25 PR_HOME_FAX_NUMBER
Definition: libpst.h:498
pst_recurrence::parm4
uint32_t parm4
Definition: libpst.h:686
pst_item_contact::mobile_phone
pst_string mobile_phone
mapi element 0x3a1c PR_MOBILE_TELEPHONE_NUMBER
Definition: libpst.h:534
pst_block_recorder::size
size_t size
Definition: libpst.h:889
pst_item_contact::rich_text
int rich_text
mapi element 0x3a40 PR_SEND_RICH_INFO
Definition: libpst.h:576
pst_item_email
struct pst_item_email pst_item_email
This contains the email related mapi elements.
pst_item_contact::car_phone
pst_string car_phone
mapi element 0x3a1e PR_CAR_TELEPHONE_NUMBER
Definition: libpst.h:457
pst_item_appointment::alarm_filename
pst_string alarm_filename
mapi element 0x851f
Definition: libpst.h:729
pst_item_contact::hobbies
pst_string hobbies
mapi element 0x3a43 PR_HOBBIES
Definition: libpst.h:490
pst_item::record_key
pst_binary record_key
mapi element 0x0ff9 PR_RECORD_KEY
Definition: libpst.h:845
pst_item_folder::subfolder
int subfolder
mapi element 0x360a PR_SUBFOLDERS
Definition: libpst.h:356
pst_item_email::header
pst_string header
mapi element 0x007d PR_TRANSPORT_MESSAGE_HEADERS
Definition: libpst.h:192
pst_item_attach
struct pst_item_attach pst_item_attach
This contains the attachment related mapi elements.
pst_item_contact::transmittable_display_name
pst_string transmittable_display_name
mapi element 0x3a20 PR_TRANSMITTABLE_DISPLAY_NAME
Definition: libpst.h:586
pst_item_contact::work_address_postofficebox
pst_string work_address_postofficebox
mapi element 0x804a
Definition: libpst.h:602
pst_desc_tree::child_tail
struct pst_desc_tree * child_tail
Definition: libpst.h:136
pst_item_contact::initials
pst_string initials
mapi element 0x3a0a PR_INITIALS
Definition: libpst.h:512
pst_item_email::original_sensitivity
int32_t original_sensitivity
mapi element 0x002e PR_ORIGINAL_SENSITIVITY
Definition: libpst.h:221
pst_item::create_date
FILETIME * create_date
mapi element 0x3007 PR_CREATION_TIME
Definition: libpst.h:853
pst_item_email::rtf_ws_trailing_count
int32_t rtf_ws_trailing_count
mapi element 0x1011 PR_RTF_SYNC_TRAILING_COUNT, a count of the ignored characters after the last sign...
Definition: libpst.h:295
pst_item_contact::home_city
pst_string home_city
mapi element 0x3a59 PR_HOME_ADDRESS_CITY
Definition: libpst.h:494
pst_item_contact::business_homepage
pst_string business_homepage
mapi element 0x3a51 PR_BUSINESS_HOME_PAGE
Definition: libpst.h:441
pst_recurrence::parm1
uint32_t parm1
must be contiguous, not an array to make Python interface easier
Definition: libpst.h:683
pst_item_contact::address2a
pst_string address2a
mapi element 0x8095
Definition: libpst.h:411
pst_item_contact::other_country
pst_string other_country
mapi element 0x3a60 PR_OTHER_ADDRESS_COUNTRY
Definition: libpst.h:548
pst_file::index2_back
uint64_t index2_back
back pointer value in the first b-tree node in the descriptor tree
Definition: libpst.h:926
pst_item_email::conversation_index
pst_binary conversation_index
mapi element 0x0071 PR_CONVERSATION_INDEX
Definition: libpst.h:174
pst_item_email::delete_after_submit
int delete_after_submit
mapi element 0x0e01 PR_DELETE_AFTER_SUBMIT
Definition: libpst.h:182
pst_item_message_store::default_outbox_folder
pst_entryid * default_outbox_folder
mapi element 0x35e2
Definition: libpst.h:366
pst_attach_to_file
size_t pst_attach_to_file(pst_file *pf, pst_item_attach *attach, FILE *fp)
Write a binary attachment to a file.
pst_item_email::processed_subject
pst_string processed_subject
mapi element 0x0070 PR_CONVERSATION_TOPIC
Definition: libpst.h:247
pst_recurrence::termination
uint32_t termination
type of termination of the recurrence
Definition: libpst.h:693
pst_item_attach::id2_val
uint64_t id2_val
only used if the attachment is by reference, in which case this is the id2 reference ...
Definition: libpst.h:620
pst_item_contact::computer_name
pst_string computer_name
mapi element 0x3a49 PR_COMPUTER_NETWORK_NAME
Definition: libpst.h:463
pst_item::internet_cpid
int32_t internet_cpid
mapi element 0x3fde PR_INTERNET_CPID
Definition: libpst.h:837
pst_desc_tree::parent
struct pst_desc_tree * parent
Definition: libpst.h:134
pst_item_contact::telex
pst_string telex
mapi element 0x3a2c PR_TELEX_NUMBER
Definition: libpst.h:584
pst_item_contact::address1_desc
pst_string address1_desc
mapi element 0x8084
Definition: libpst.h:405
pst_desc_tree::parent_d_id
uint64_t parent_d_id
Definition: libpst.h:128
pst_index_ll::u1
int64_t u1
Definition: libpst.h:114
pst_item_contact::home_street
pst_string home_street
mapi element 0x3a5d PR_HOME_ADDRESS_STREET
Definition: libpst.h:510
pst_item_appointment::alarm
int alarm
mapi element 0x8503 PR_OUTLOOK_COMMON_REMINDER_SET
Definition: libpst.h:723
pst_entryid
struct pst_entryid pst_entryid
pst_item_contact::business_state
pst_string business_state
mapi element 0x3a28 PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE
Definition: libpst.h:451
pst_item::ascii_type
char * ascii_type
mapi element 0x001a PR_MESSAGE_CLASS or 0x3613 PR_CONTAINER_CLASS
Definition: libpst.h:813
pst_item_email::rtf_in_sync
int rtf_in_sync
mapi element 0x0e1f PR_RTF_IN_SYNC, True means that the rtf version is same as text body...
Definition: libpst.h:289
pst_convert_utf8
void pst_convert_utf8(pst_item *item, pst_string *str)
Convert str to utf8 if possible; null strings are converted into empty strings.
pst_entryid::entryid
char entryid[16]
Definition: libpst.h:104
pst_item_contact::work_address_street
pst_string work_address_street
mapi element 0x8045
Definition: libpst.h:592
pst_x_attrib_ll::next
struct pst_x_attrib_ll * next
link to next item in the list
Definition: libpst.h:881
pst_item_contact::business_po_box
pst_string business_po_box
mapi element 0x3a2b PR_BUSINESS_PO_BOX
Definition: libpst.h:447
pst_item::journal
pst_item_journal * journal
journal mapi elements
Definition: libpst.h:798
pst_index_ll::offset
uint64_t offset
Definition: libpst.h:111
pst_item_contact::other_street
pst_string other_street
mapi element 0x3a63 PR_OTHER_ADDRESS_STREET
Definition: libpst.h:558
pst_item_message_store
struct pst_item_message_store pst_item_message_store
This contains the message store related mapi elements.
pst_item_contact::company_main_phone
pst_string company_main_phone
mapi element 0x3a57 PR_COMPANY_MAIN_PHONE_NUMBER
Definition: libpst.h:459
pst_item::block_id
uint64_t block_id
block id that can be used to generate uid
Definition: libpst.h:784
pst_item_contact::address1_transport
pst_string address1_transport
mapi element 0x3002 PR_ADDRTYPE, or 0x8082
Definition: libpst.h:407
pst_x_attrib_ll::map
uint32_t map
key for the mapping
Definition: libpst.h:877
pst_open
int pst_open(pst_file *pf, const char *name, const char *charset)
Open a pst file.
pst_item_contact::gender
int16_t gender
mapi element 0x3a4d PR_GENDER
Definition: libpst.h:486
pst_item_contact::address3_transport
pst_string address3_transport
mapi element 0x80a2
Definition: libpst.h:423
pst_file::ind_type
unsigned char ind_type
index type or file type
Definition: libpst.h:938
pst_item_message_store::user_views_folder
pst_entryid * user_views_folder
mapi element 0x35e5
Definition: libpst.h:372
pst_item_contact::other_po_box
pst_string other_po_box
mapi element 0x3a64 PR_OTHER_ADDRESS_POST_OFFICE_BOX
Definition: libpst.h:552
pst_item_contact::primary_fax
pst_string primary_fax
mapi element 0x3a23 PR_PRIMARY_FAX_NUMBER
Definition: libpst.h:566
pst_item_contact::department
pst_string department
mapi element 0x3a18 PR_DEPARTMENT_NAME
Definition: libpst.h:469
pst_item_email::encrypted_body
pst_binary encrypted_body
mapi element 0x6f04
Definition: libpst.h:188
pst_x_attrib_ll::mytype
uint32_t mytype
Definition: libpst.h:875
pst_index_ll
struct pst_index_ll pst_index_ll
pst_item_folder::unseen_item_count
int32_t unseen_item_count
mapi element 0x3603 PR_CONTENT_UNREAD
Definition: libpst.h:347
pst_item_appointment::recurrence_description
pst_string recurrence_description
mapi element 0x8232 recurrence description
Definition: libpst.h:767
pst_item_contact::business_country
pst_string business_country
mapi element 0x3a26 PR_BUSINESS_ADDRESS_COUNTRY
Definition: libpst.h:437
pst_block_recorder::readcount
int readcount
Definition: libpst.h:890
pst_entryid::id
uint32_t id
Definition: libpst.h:105
pst_item_extra_field::value
char * value
Definition: libpst.h:645
pst_desc_tree::d_id
uint64_t d_id
Definition: libpst.h:127
pst_item_contact::surname
pst_string surname
mapi element 0x3a11 PR_SURNAME
Definition: libpst.h:582
pst_item_journal::end
FILETIME * end
mapi element 0x8708
Definition: libpst.h:656
pst_item_extra_field::next
struct pst_item_extra_field * next
Definition: libpst.h:646
pst_binary::size
size_t size
Definition: libpst.h:154
pst_item_email::conversion_prohibited
int conversion_prohibited
mapi element 0x3a03 PR_CONVERSION_PROHIBITED
Definition: libpst.h:178
pst_item_email::outlook_sender
pst_string outlook_sender
mapi element 0x003b PR_SENT_REPRESENTING_SEARCH_KEY
Definition: libpst.h:235
pst_item_appointment::recurrence_start
FILETIME * recurrence_start
mapi element 0x8235 PR_OUTLOOK_EVENT_RECURRENCE_START
Definition: libpst.h:771
pst_item_contact::display_name_prefix
pst_string display_name_prefix
mapi element 0x3a45 PR_DISPLAY_NAME_PREFIX
Definition: libpst.h:471
pst_block_recorder
struct pst_block_recorder pst_block_recorder
this is only used for internal debugging
pst_item_email::sender2_access
pst_string sender2_access
mapi element 0x0c1e PR_SENDER_ADDRTYPE
Definition: libpst.h:301
pst_x_attrib_ll
struct pst_x_attrib_ll pst_x_attrib_ll
Linked list of extended attributes.
pst_item_contact::work_address_state
pst_string work_address_state
mapi element 0x8047
Definition: libpst.h:596
pst_item_appointment::showas
int32_t showas
mapi element 0x8205 PR_OUTLOOK_EVENT_SHOW_TIME_AS
Definition: libpst.h:737
pst_item_contact::language
pst_string language
mapi element 0x3a0c PR_LANGUAGE
Definition: libpst.h:520
pst_item_contact::company_name
pst_string company_name
mapi element 0x3a16 PR_COMPANY_NAME
Definition: libpst.h:461
pst_attach_to_file_base64
size_t pst_attach_to_file_base64(pst_file *pf, pst_item_attach *attach, FILE *fp)
Write a binary attachment base64 encoded to a file.
pst_item_contact::location
pst_string location
mapi element 0x3a0d PR_LOCATION
Definition: libpst.h:522
pst_item_appointment::reminder
FILETIME * reminder
mapi element 0x8560
Definition: libpst.h:725
pst_item
This contains the common mapi elements, and pointers to structures for each major mapi item type...
Definition: libpst.h:780
pst_item_attach::method
int32_t method
mapi element 0x3705 PR_ATTACH_METHOD
Definition: libpst.h:633
pst_item_message_store::top_of_personal_folder
pst_entryid * top_of_personal_folder
mapi element 0x35e0
Definition: libpst.h:364
pst_item_extra_field::field_name
char * field_name
Definition: libpst.h:644
pst_item_contact::profession
pst_string profession
mapi element 0x3a46 PR_PROFESSION
Definition: libpst.h:570
pst_item::private_member
int private_member
mapi element 0x002b PR_RECIPIENT_REASSIGNMENT_PROHIBITED
Definition: libpst.h:859
pst_item_attach
This contains the attachment related mapi elements.
Definition: libpst.h:608
pst_item_contact::def_postal_address
pst_string def_postal_address
mapi element 0x3a15 PR_POSTAL_ADDRESS
Definition: libpst.h:467
pst_x_attrib_ll
Linked list of extended attributes.
Definition: libpst.h:871
pst_item_email::reply_to
pst_string reply_to
mapi element 0x0050 PR_REPLY_RECIPIENT_NAMES
Definition: libpst.h:265
pst_recurrence::sub_type
uint32_t sub_type
implies number of recurrence parameters
Definition: libpst.h:681
pst_file::cwd
char * cwd
original cwd when the file was opened
Definition: libpst.h:898
pst_item_contact::free_busy_address
pst_string free_busy_address
mapi element 0x80d8
Definition: libpst.h:477
pst_item_email::outlook_recipient_name
pst_string outlook_recipient_name
mapi element 0x0044 PR_RCVD_REPRESENTING_NAME
Definition: libpst.h:231
pst_item_attach::data
pst_binary data
mapi element 0x3701 PR_ATTACH_DATA_OBJ
Definition: libpst.h:618
pst_binary
a simple wrapper for binary blobs
Definition: libpst.h:153
pst_item_contact::ttytdd_phone
pst_string ttytdd_phone
mapi element 0x3a4b PR_TTYTDD_PHONE_NUMBER
Definition: libpst.h:588
pst_item_email::report_text
pst_string report_text
mapi element 0x1001 PR_REPORT_TEXT, delivery report dsn body
Definition: libpst.h:317
pst_item_message_store::common_view_folder
pst_entryid * common_view_folder
mapi element 0x35e6
Definition: libpst.h:374
pst_item::body_charset
pst_string body_charset
derived from extra_fields["content-type"] if it contains a charset= subfield
Definition: libpst.h:831
pst_item_message_store::deleted_items_folder
pst_entryid * deleted_items_folder
mapi element 0x35e3
Definition: libpst.h:368
pst_item_email::message_cc_me
int message_cc_me
mapi element 0x0058 PR_MESSAGE_CC_ME, this user is listed explicitly in the CC address ...
Definition: libpst.h:205
pst_item_contact::nickname
pst_string nickname
mapi element 0x3a4f PR_NICKNAME
Definition: libpst.h:536
pst_item::file_as
pst_string file_as
mapi element 0x3001 PR_DISPLAY_NAME
Definition: libpst.h:827
pst_item_contact::assistant_phone
pst_string assistant_phone
mapi element 0x3a2e PR_ASSISTANT_TELEPHONE_NUMBER
Definition: libpst.h:427
pst_close
int pst_close(pst_file *pf)
Close a pst file.
pst_item_contact::first_name
pst_string first_name
mapi element 0x3a06 PR_GIVEN_NAME
Definition: libpst.h:473
pst_item_email::messageid
pst_string messageid
mapi element 0x1035
Definition: libpst.h:215
pst_item_email::rtf_body_char_count
int32_t rtf_body_char_count
mapi element 0x1007 PR_RTF_SYNC_BODY_COUNT, a count of the significant characters in the rtf body...
Definition: libpst.h:271
pst_recurrence::parm3
uint32_t parm3
Definition: libpst.h:685
pst_item_contact::address2
pst_string address2
mapi element 0x8093
Definition: libpst.h:409
pst_item_email::outlook_sender_name2
pst_string outlook_sender_name2
mapi element 0x0c1a PR_SENDER_NAME
Definition: libpst.h:333
pst_convert_recurrence
pst_recurrence * pst_convert_recurrence(pst_item_appointment *appt)
Decode raw recurrence data into a better structure.
pst_item_email::outlook_search_key
pst_string outlook_search_key
mapi element 0x300b PR_SEARCH_KEY
Definition: libpst.h:337
pst_recurrence::monthofyear
uint32_t monthofyear
month of year for yearly recurrences
Definition: libpst.h:701
pst_string
The string is either utf8 encoded, or it is in the code page specified by the containing mapi object...
Definition: libpst.h:144
pst_item_contact::business_fax
pst_string business_fax
mapi element 0x3a24 PR_BUSINESS_FAX_NUMBER
Definition: libpst.h:439
pst_file::i_count
size_t i_count
Definition: libpst.h:905
pst_recurrence::type
uint32_t type
Definition: libpst.h:674
pst_item_email::ndr_reason_code
int32_t ndr_reason_code
mapi element 0x0c04 PR_NDR_REASON_CODE
Definition: libpst.h:321
pst_item_contact::job_title
pst_string job_title
mapi element 0x3a17 PR_TITLE
Definition: libpst.h:516
pst_item_email::recip2_address
pst_string recip2_address
mapi element 0x0078 PR_RCVD_REPRESENTING_EMAIL_ADDRESS
Definition: libpst.h:259
pst_index_ll::i_id
uint64_t i_id
Definition: libpst.h:110
pst_item_email::autoforward
int autoforward
mapi element 0x0002 PR_ALTERNATE_RECIPIENT_ALLOWED
Definition: libpst.h:168
pst_desc_tree::next
struct pst_desc_tree * next
Definition: libpst.h:133
pst_item_email::priority
int32_t priority
mapi element 0x0026 PR_PRIORITY
Definition: libpst.h:245
pst_item_email::recip_access
pst_string recip_access
mapi element 0x0075 PR_RECEIVED_BY_ADDRTYPE
Definition: libpst.h:253
pst_item_email::outlook_recipient2
pst_string outlook_recipient2
mapi element 0x0052 PR_RCVD_REPRESENTING_SEARCH_KEY
Definition: libpst.h:233
pst_id2_tree::child
struct pst_id2_tree * child
Definition: libpst.h:121
pst_item_message_store
This contains the message store related mapi elements.
Definition: libpst.h:362
pst_item_attach::mimetype
pst_string mimetype
mapi element 0x370e PR_ATTACH_MIME_TAG
Definition: libpst.h:614
pst_item_appointment::label
int32_t label
mapi element 0x8214
Definition: libpst.h:750
pst_item::predecessor_change
pst_binary predecessor_change
mapi element 0x65e3 PR_PREDECESSOR_CHANGE_LIST
Definition: libpst.h:847
pst_desc_tree::child
struct pst_desc_tree * child
Definition: libpst.h:135
pst_item_contact::birthday
FILETIME * birthday
mapi element 0x3a42 PR_BIRTHDAY
Definition: libpst.h:431
pst_file
struct pst_file pst_file
pst_index_ll::inflated_size
uint64_t inflated_size
Definition: libpst.h:113
pst_item_contact::mail_permission
int mail_permission
mapi element 0x3a0e PR_MAIL_PERMISSION
Definition: libpst.h:526
pst_entryid::u1
int32_t u1
Definition: libpst.h:103
pst_item_contact::keyword
pst_string keyword
mapi element 0x3a0b PR_KEYWORD
Definition: libpst.h:518
pst_item_email::cc_address
pst_string cc_address
mapi element 0x0e03 PR_DISPLAY_CC
Definition: libpst.h:170
pst_fwrite
size_t pst_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
fwrite with checking for null pointer.
pst_item
struct pst_item pst_item
This contains the common mapi elements, and pointers to structures for each major mapi item type...
pst_binary::data
char * data
Definition: libpst.h:155
pst_desc_tree::desc
pst_index_ll * desc
Definition: libpst.h:129
pst_item_contact::ftp_site
pst_string ftp_site
mapi element 0x3a4c PR_FTP_SITE
Definition: libpst.h:479
pst_recurrence::signature
uint32_t signature
0x30043004
Definition: libpst.h:669
pst_item_email::sentto_address
pst_string sentto_address
mapi element 0x0e04 PR_DISPLAY_TO
Definition: libpst.h:315
pst_file::block_head
pst_block_recorder * block_head
the head of the block recorder, a debug artifact used to detect cases where we might read the same bl...
Definition: libpst.h:913
pst_item_email::rtf_ws_prefix_count
int32_t rtf_ws_prefix_count
mapi element 0x1010 PR_RTF_SYNC_PREFIX_COUNT, a count of the ignored characters before the first sign...
Definition: libpst.h:292
pst_file::index1
uint64_t index1
file offset of the first b-tree node in the index tree
Definition: libpst.h:920
pst_getID
pst_index_ll * pst_getID(pst_file *pf, uint64_t i_id)
Lookup the i_id in the index linked list, and return a pointer to the element.
pst_item_email::sent_date
FILETIME * sent_date
mapi element 0x0039 PR_CLIENT_SUBMIT_TIME
Definition: libpst.h:311
pst_item_contact::other_phone
pst_string other_phone
mapi element 0x3a1f PR_OTHER_TELEPHONE_NUMBER
Definition: libpst.h:550
pst_item_email::delivery_report
int delivery_report
mapi element 0x0023 PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED
Definition: libpst.h:186
pst_item_attach::filename1
pst_string filename1
mapi element 0x3704 PR_ATTACH_FILENAME
Definition: libpst.h:610
pst_recurrence::dayofmonth
uint32_t dayofmonth
day of month for monthly and yearly recurrences
Definition: libpst.h:699
pst_stricmp
int pst_stricmp(char *a, char *b)
compare strings case-insensitive.
pst_item_folder::assoc_count
int32_t assoc_count
mapi element 0x3617 PR_ASSOC_CONTENT_COUNT Associated content are items that are attached to this fol...
Definition: libpst.h:351
pst_item::body
pst_string body
mapi element 0x1000 PR_BODY
Definition: libpst.h:833
pst_item::message_store
pst_item_message_store * message_store
message store mapi elements
Definition: libpst.h:794
pst_item_contact::business_phone2
pst_string business_phone2
mapi element 0x3a1b PR_BUSINESS2_TELEPHONE_NUMBER
Definition: libpst.h:445
pst_item::message_size
int32_t message_size
mapi element 0x0e08 PR_MESSAGE_SIZE
Definition: libpst.h:841
pst_item_appointment::end
FILETIME * end
mapi element 0x820e PR_OUTLOOK_EVENT_START_END
Definition: libpst.h:717
pst_block_recorder
this is only used for internal debugging
Definition: libpst.h:886
pst_item_contact::common_name
pst_string common_name
mapi element 0x3a0f PR_MHS_COMMON_NAME
Definition: libpst.h:540
pst_desc_tree::no_child
int32_t no_child
Definition: libpst.h:131
pst_recurrence::interval
uint32_t interval
recurrence interval in terms of the recurrence type
Definition: libpst.h:695
pst_item_contact::customer_id
pst_string customer_id
mapi element 0x3a4a PR_CUSTOMER_ID
Definition: libpst.h:465
pst_item_message_store::top_of_folder
pst_entryid * top_of_folder
mapi element 0x7c07
Definition: libpst.h:378
pst_item_contact::manager_name
pst_string manager_name
mapi element 0x3a4e PR_MANAGER_NAME
Definition: libpst.h:528
pst_item_journal::type
pst_string type
mapi element 0x8700
Definition: libpst.h:658
pst_item_email::supplementary_info
pst_string supplementary_info
mapi element 0x0c1b PR_SUPPLEMENTARY_INFO
Definition: libpst.h:325
pst_item_contact::org_id
pst_string org_id
mapi element 0x3a10 PR_ORGANIZATIONAL_ID_NUMBER
Definition: libpst.h:542
pst_item_contact::business_address
pst_string business_address
mapi element 0x801b
Definition: libpst.h:433
pst_item_journal
struct pst_item_journal pst_item_journal
This contains the journal related mapi elements.
pst_item_email::arrival_date
FILETIME * arrival_date
mapi element 0x0e06 PR_MESSAGE_DELIVERY_TIME
Definition: libpst.h:163
pst_default_charset
const char * pst_default_charset(pst_item *item, int buflen, char *result)
Get the default character set for this item.
pst_item_email::sender_access
pst_string sender_access
mapi element 0x0064 PR_SENT_REPRESENTING_ADDRTYPE
Definition: libpst.h:297
pst_item_email::outlook_recipient
pst_string outlook_recipient
mapi element 0x0051 PR_RECEIVED_BY_SEARCH_KEY
Definition: libpst.h:229
pst_item_contact::assistant_name
pst_string assistant_name
mapi element 0x3a30 PR_ASSISTANT
Definition: libpst.h:425
pst_item::message_codepage
int32_t message_codepage
mapi element 0x3ffd PR_MESSAGE_CODEPAGE
Definition: libpst.h:839
pst_desc_tree
struct pst_desc_tree pst_desc_tree
pst_file::i_capacity
size_t i_capacity
Definition: libpst.h:905
pst_item_email::read_receipt
int read_receipt
mapi element 0x0029 PR_READ_RECEIPT_REQUESTED
Definition: libpst.h:251
pst_freeItem
void pst_freeItem(pst_item *item)
Free the item returned by pst_parse_item().
pst_item_contact::callback_phone
pst_string callback_phone
mapi element 0x3a02 PR_CALLBACK_TELEPHONE_NUMBER
Definition: libpst.h:455
pst_parse_item
pst_item * pst_parse_item(pst_file *pf, pst_desc_tree *d_ptr, pst_id2_tree *m_head)
Assemble a mapi object from a descriptor pointer.
pst_item_attach::i_id
uint64_t i_id
calculated from id2_val during creation of record
Definition: libpst.h:622
pst_item_email::bcc_address
pst_string bcc_address
mapi element 0x0e02 PR_DISPLAY_BCC
Definition: libpst.h:172
pst_x_attrib_ll::data
void * data
data target of the mapping, either uint32_t or string
Definition: libpst.h:879
pst_item_contact::address3
pst_string address3
mapi element 0x80a3
Definition: libpst.h:417
pst_file::index2
uint64_t index2
file offset of the first b-tree node in the descriptor tree
Definition: libpst.h:924
pst_item::outlook_version
pst_string outlook_version
mapi element 0x8554 PR_OUTLOOK_VERSION
Definition: libpst.h:843
pst_binary
struct pst_binary pst_binary
a simple wrapper for binary blobs
pst_file::x_head
pst_x_attrib_ll * x_head
the head of the extended attributes linked list
Definition: libpst.h:909
pst_item_contact::home_po_box
pst_string home_po_box
mapi element 0x3a5e PR_HOME_ADDRESS_POST_OFFICE_BOX
Definition: libpst.h:504
pst_desc_tree::assoc_tree
pst_index_ll * assoc_tree
Definition: libpst.h:130
pst_item_appointment::is_recurring
int is_recurring
mapi element 0x8223 PR_OUTLOOK_EVENT_IS_RECURRING
Definition: libpst.h:758
pst_item_email::htmlbody
pst_string htmlbody
mapi element 0x1013
Definition: libpst.h:194
pst_file::fname
char * fname
original file name when the file was opened
Definition: libpst.h:900
pst_item::type
int type
derived from mapi elements 0x001a PR_MESSAGE_CLASS or 0x3613 PR_CONTAINER_CLASS
Definition: libpst.h:811
pst_item_message_store::pwd_chksum
int32_t pwd_chksum
mapi element 0x76ff
Definition: libpst.h:391
pst_item_attach::sequence
int32_t sequence
mapi element 0x3710 PR_ATTACH_MIME_SEQUENCE
Definition: libpst.h:637
pst_item_email::message_to_me
int message_to_me
mapi element 0x0057 PR_MESSAGE_TO_ME, this user is listed explicitly in the TO address ...
Definition: libpst.h:213
pst_recurrence::parm5
uint32_t parm5
Definition: libpst.h:687
pst_item_contact::radio_phone
pst_string radio_phone
mapi element 0x3a1d PR_RADIO_TELEPHONE_NUMBER
Definition: libpst.h:572
pst_ff_getIDblock_dec
size_t pst_ff_getIDblock_dec(pst_file *pf, uint64_t i_id, char **buf)
Get an ID block from the file using pst_ff_getIDblock() and decrypt if necessary. ...
pst_item_appointment
This contains the appointment related mapi elements.
Definition: libpst.h:713
pst_item::extra_fields
pst_item_extra_field * extra_fields
linked list of extra headers and such
Definition: libpst.h:796
pst_item_email::reply_requested
int reply_requested
mapi element 0x0c17 PR_REPLY_REQUESTED
Definition: libpst.h:263
pst_block_recorder::next
struct pst_block_recorder * next
Definition: libpst.h:887
pst_item_contact::home_country
pst_string home_country
mapi element 0x3a5a PR_HOME_ADDRESS_COUNTRY
Definition: libpst.h:496
pst_item_contact::address2_desc
pst_string address2_desc
mapi element 0x8094
Definition: libpst.h:413
pst_id2_tree
Definition: libpst.h:118
pst_item_contact::home_phone
pst_string home_phone
mapi element 0x3a09 PR_HOME_TELEPHONE_NUMBER
Definition: libpst.h:500
pst_item_extra_field
linked list of extra header fields
Definition: libpst.h:643
pst_item_message_store::search_root_folder
pst_entryid * search_root_folder
mapi element 0x35e7
Definition: libpst.h:376
pst_item_email::in_reply_to
pst_string in_reply_to
mapi element 0x1042
Definition: libpst.h:201
pst_item_email::outlook_normalized_subject
pst_string outlook_normalized_subject
mapi element 0x0e1d PR_NORMALIZED_SUBJECT
Definition: libpst.h:335
pst_file::index1_back
uint64_t index1_back
back pointer value in the first b-tree node in the index tree
Definition: libpst.h:922
pst_file
Definition: libpst.h:894
pst_item_appointment::recurrence_data
pst_binary recurrence_data
mapi element 0x8216 recurrence data
Definition: libpst.h:769
pst_rfc2445_datetime_format_now
char * pst_rfc2445_datetime_format_now(int buflen, char *result)
Convert the current time rfc2445 date/time format 19531015T231000Z.
pst_item_email::outlook_sender_name
pst_string outlook_sender_name
mapi element 0x0042 PR_SENT_REPRESENTING_NAME
Definition: libpst.h:237
pst_item_contact::home_postal_code
pst_string home_postal_code
mapi element 0x3a5b PR_HOME_ADDRESS_POSTAL_CODE
Definition: libpst.h:506
pst_string::is_utf8
int is_utf8
Definition: libpst.h:147
pst_file::size
uint64_t size
size of the pst file
Definition: libpst.h:928
pst_item_email::sender2_address
pst_string sender2_address
mapi element 0x0c1f PR_SENDER_EMAIL_ADDRESS
Definition: libpst.h:303
pst_item_email::rtf_compressed
pst_binary rtf_compressed
mapi element 0x1009 PR_RTF_COMPRESSED, the compressed rtf body data.
Definition: libpst.h:281
pst_string
struct pst_string pst_string
The string is either utf8 encoded, or it is in the code page specified by the containing mapi object...
pst_item_contact
This contains the contact related mapi elements.
Definition: libpst.h:397
pst_item_contact::home_state
pst_string home_state
mapi element 0x3a5c PR_HOME_ADDRESS_STATE_OR_PROVINCE
Definition: libpst.h:508
pst_item_email
This contains the email related mapi elements.
Definition: libpst.h:161
pst_item_email::ndr_status_code
int32_t ndr_status_code
mapi element 0x0c20 PR_NDR_STATUS_CODE
Definition: libpst.h:327
pst_item_email::return_path_address
pst_string return_path_address
mapi element 0x1046, this seems to be the message-id of the rfc822 mail that is being returned ...
Definition: libpst.h:267
pst_item_folder
struct pst_item_folder pst_item_folder
This contains the folder related mapi elements.
pst_item_attach::filename2
pst_string filename2
mapi element 0x3707 PR_ATTACH_LONG_FILENAME
Definition: libpst.h:612
pst_item_email::report_time
FILETIME * report_time
mapi element 0x0032 PR_REPORT_TIME, delivery report time
Definition: libpst.h:319
pst_item_journal::description
pst_string description
mapi element 0x8712
Definition: libpst.h:660
pst_item_appointment::recurrence_end
FILETIME * recurrence_end
mapi element 0x8236 PR_OUTLOOK_EVENT_RECURRENCE_END
Definition: libpst.h:773
pst_item_contact::business_city
pst_string business_city
mapi element 0x3a27 PR_BUSINESS_ADDRESS_CITY
Definition: libpst.h:435
pst_item_journal
This contains the journal related mapi elements.
Definition: libpst.h:652
pst_item_email::message_recip_me
int message_recip_me
mapi element 0x0059 PR_MESSAGE_RECIP_ME, this user appears in TO, CC or BCC address list ...
Definition: libpst.h:209
pst_item_contact::pager_phone
pst_string pager_phone
mapi element 0x3a21 PR_PAGER_TELEPHONE_NUMBER
Definition: libpst.h:560
pst_item_contact::business_phone
pst_string business_phone
mapi element 0x3a08 PR_BUSINESS_TELEPHONE_NUMBER
Definition: libpst.h:443
pst_free_recurrence
void pst_free_recurrence(pst_recurrence *r)
Free a recurrence structure.
common.h
pst_item_contact::isdn_phone
pst_string isdn_phone
mapi element 0x3a2d PR_ISDN_NUMBER
Definition: libpst.h:514
pst_file::charset
const char * charset
default character set for items without one
Definition: libpst.h:902
pst_rfc2425_datetime_format
char * pst_rfc2425_datetime_format(const FILETIME *ft, int buflen, char *result)
Convert a FILETIME into rfc2425 date/time format 1953-10-15T23:10:00Z which is the same as one of the...
pst_item_contact::office_loc
pst_string office_loc
mapi element 0x3a19 PR_OFFICE_LOCATION
Definition: libpst.h:538
pst_file::d_head
pst_desc_tree * d_head
the head and tail of the top level of the descriptor tree
Definition: libpst.h:907
pst_item_email::recip_address
pst_string recip_address
mapi element 0x0076 PR_RECEIVED_BY_EMAIL_ADDRESS
Definition: libpst.h:255
pst_entryid
Definition: libpst.h:102
pst_load_extended_attributes
int pst_load_extended_attributes(pst_file *pf)
Load the extended attribute mapping table from the pst file.
pst_id2_tree::id
pst_index_ll * id
Definition: libpst.h:120
pst_index_ll
Definition: libpst.h:109
pst_recurrence::parm2
uint32_t parm2
Definition: libpst.h:684
pst_item_contact::primary_phone
pst_string primary_phone
mapi element 0x3a1a PR_PRIMARY_TELEPHONE_NUMBER
Definition: libpst.h:568
pst_item_contact::gov_id
pst_string gov_id
mapi element 0x3a07 PR_GOVERNMENT_ID_NUMBER
Definition: libpst.h:488
pst_id2_tree::next
struct pst_id2_tree * next
Definition: libpst.h:122
pst_item_email::ndr_diag_code
int32_t ndr_diag_code
mapi element 0x0c05 PR_NDR_DIAG_CODE
Definition: libpst.h:323
pst_item_contact::other_address
pst_string other_address
mapi element 0x801c
Definition: libpst.h:544
pst_item::email
pst_item_email * email
email mapi elements
Definition: libpst.h:786
pst_rfc2445_datetime_format
char * pst_rfc2445_datetime_format(const FILETIME *ft, int buflen, char *result)
Convert a FILETIME into rfc2445 date/time format 19531015T231000Z.
pst_item::response_requested
int response_requested
mapi element 0x0063 PR_RESPONSE_REQUESTED
Definition: libpst.h:851
pst_item_contact::personal_homepage
pst_string personal_homepage
mapi element 0x3a50 PR_PERSONAL_HOME_PAGE
Definition: libpst.h:562
pst_item_contact::mileage
pst_string mileage
mapi element 0x8534
Definition: libpst.h:532
pst_item_email::sentmail_folder
pst_entryid * sentmail_folder
mapi element 0x0e0a PR_SENTMAIL_ENTRYID
Definition: libpst.h:313
pst_item_contact::work_address_postalcode
pst_string work_address_postalcode
mapi element 0x8048
Definition: libpst.h:598
pst_item_email::sensitivity
int32_t sensitivity
mapi element 0x0036 PR_SENSITIVITY
Definition: libpst.h:309
pst_item_contact::fullname
pst_string fullname
mapi element 0x8005
Definition: libpst.h:481
pst_getTopOfFolders
pst_desc_tree * pst_getTopOfFolders(pst_file *pf, const pst_item *root)
Get the top of folders descriptor tree.
pst_item::attach
pst_item_attach * attach
linked list of attachments
Definition: libpst.h:792
pst_item_contact::address1
pst_string address1
mapi element 0x3003 PR_EMAIL_ADDRESS, or 0x8083
Definition: libpst.h:401
pst_item_contact::pref_name
pst_string pref_name
mapi element 0x3a47 PR_PREFERRED_BY_NAME
Definition: libpst.h:564
pst_item_email::recip2_access
pst_string recip2_access
mapi element 0x0077 PR_RCVD_REPRESENTING_ADDRTYPE
Definition: libpst.h:257
pst_item_appointment::start
FILETIME * start
mapi element 0x820d PR_OUTLOOK_EVENT_START_DATE
Definition: libpst.h:715
pst_convert_utf8_null
void pst_convert_utf8_null(pst_item *item, pst_string *str)
Convert str to utf8 if possible; null strings are preserved.
pst_item_email::original_to
pst_string original_to
mapi element 0x0074 PR_ORIGINAL_DISPLAY_TO
Definition: libpst.h:227
pst_item_appointment
struct pst_item_appointment pst_item_appointment
This contains the appointment related mapi elements.
pst_id2_tree::id2
uint64_t id2
Definition: libpst.h:119
pst_file::fp
FILE * fp
file pointer to opened PST file
Definition: libpst.h:896
pst_item_contact::work_address_country
pst_string work_address_country
mapi element 0x8049
Definition: libpst.h:600
pst_item_contact::business_street
pst_string business_street
mapi element 0x3a29 PR_BUSINESS_ADDRESS_STREET
Definition: libpst.h:453
pst_item_attach::next
struct pst_item_attach * next
Definition: libpst.h:638
pst_item_attach::position
int32_t position
mapi element 0x370b PR_RENDERING_POSITION
Definition: libpst.h:635
pst_desc_tree
Definition: libpst.h:126
pst_recurrence::count
uint32_t count
number of occurrences, even if recurrence terminates based on date
Definition: libpst.h:705
pst_item_contact::spouse_name
pst_string spouse_name
mapi element 0x3a48 PR_SPOUSE_NAME
Definition: libpst.h:578
pst_index_ll::size
uint64_t size
Definition: libpst.h:112
pst_item_contact::business_postal_code
pst_string business_postal_code
mapi element 0x3a2a PR_BUSINESS_POSTAL_CODE
Definition: libpst.h:449
pst_file::do_read64
int do_read64
Definition: libpst.h:918
pst_attach_to_mem
pst_binary pst_attach_to_mem(pst_file *pf, pst_item_attach *attach)
Assemble the binary attachment into a single buffer.
pst_item_contact::other_state
pst_string other_state
mapi element 0x3a62 PR_OTHER_ADDRESS_STATE_OR_PROVINCE
Definition: libpst.h:556
pst_item_email::rtf_body_tag
pst_string rtf_body_tag
mapi element 0x1008 PR_RTF_SYNC_BODY_TAG, the first couple of lines of RTF body so that after modific...
Definition: libpst.h:277
pst_rfc2231
void pst_rfc2231(pst_string *str)
Convert str to rfc2231 encoding of str.
pst_item_contact::middle_name
pst_string middle_name
mapi element 0x3a44 PR_MIDDLE_NAME
Definition: libpst.h:530
pst_desc_tree::prev
struct pst_desc_tree * prev
Definition: libpst.h:132
pst_item::folder
pst_item_folder * folder
folder mapi elements
Definition: libpst.h:788
pst_item_email::rtf_body_crc
int32_t rtf_body_crc
mapi element 0x1006 PR_RTF_SYNC_BODY_CRC
Definition: libpst.h:273
pst_item_contact::address3_desc
pst_string address3_desc
mapi element 0x80a4
Definition: libpst.h:421
pst_item_email::outlook_sender2
pst_string outlook_sender2
mapi element 0x0c1d PR_SENDER_SEARCH_KEY
Definition: libpst.h:239
pst_item_email::original_bcc
pst_string original_bcc
mapi element 0x0072 PR_ORIGINAL_DISPLAY_BCC
Definition: libpst.h:223
pst_item_contact::other_city
pst_string other_city
mapi element 0x3a5f PR_OTHER_ADDRESS_CITY
Definition: libpst.h:546
pst_string::str
char * str
Definition: libpst.h:148
pst_getNextDptr
pst_desc_tree * pst_getNextDptr(pst_desc_tree *d)
Walk the descriptor tree.
pst_item_attach::id2_head
pst_id2_tree * id2_head
id2 tree needed to resolve attachments by reference
Definition: libpst.h:624
pst_item_journal::start
FILETIME * start
mapi element 0x8706
Definition: libpst.h:654
pst_item_extra_field
struct pst_item_extra_field pst_item_extra_field
linked list of extra header fields
pst_recurrence
struct pst_recurrence pst_recurrence
This contains the recurrence data separated into fields.
pst_item_folder::item_count
int32_t item_count
mapi element 0x3602 PR_CONTENT_COUNT
Definition: libpst.h:345
pst_item_contact::address1a
pst_string address1a
mapi element 0x8085
Definition: libpst.h:403
pst_item_contact::address3a
pst_string address3a
mapi element 0x80a5
Definition: libpst.h:419
pst_recurrence
This contains the recurrence data separated into fields.
Definition: libpst.h:667
pst_item_appointment::all_day
int all_day
mapi element 0x8215 PR_OUTLOOK_EVENT_ALL_DAY
Definition: libpst.h:754
pst_file::i_table
pst_index_ll * i_table
the array of index structures
Definition: libpst.h:904
pst_item::pf
struct pst_file * pf
pointer to the pst_file
Definition: libpst.h:782
pst_item_contact::home_phone2
pst_string home_phone2
mapi element 0x3a2f PR_HOME2_TELEPHONE_NUMBER
Definition: libpst.h:502
pst_item_appointment::location
pst_string location
mapi element 0x8208 PR_OUTLOOK_EVENT_LOCATION
Definition: libpst.h:719
pst_item_contact::account_name
pst_string account_name
mapi element 0x3a00 PR_ACCOUNT
Definition: libpst.h:399
pst_item_attach::content_id
pst_string content_id
mapi element 0x3712 PR_ATTACH_CONTENT_ID
Definition: libpst.h:616