comparison src/libpst.h @ 167:40e9de445038

improve consistency checking when fetching items from the pst file. avoid putting mixed item types into the same output folder.
author Carl Byington <carl@five-ten-sg.com>
date Wed, 18 Mar 2009 22:31:18 -0700
parents ab384fed78c5
children 0e1e048716e4
comparison
equal deleted inserted replaced
166:55d4f17a35f2 167:40e9de445038
170 int is_utf8; // 1 = true, 0 = false 170 int is_utf8; // 1 = true, 0 = false
171 char *str; // either utf8 or some sbcs 171 char *str; // either utf8 or some sbcs
172 } pst_string; 172 } pst_string;
173 173
174 174
175 typedef struct pst_binary {
176 size_t size;
177 char *data;
178 } pst_binary;
179
180
175 /** This struct defines an email message 181 /** This struct defines an email message
176 */ 182 */
177 typedef struct pst_item_email { 183 typedef struct pst_item_email {
178 FILETIME *arrival_date; 184 FILETIME *arrival_date;
179 /** 1 = true, 0 = not set, -1 = false */ 185 /** 1 = true, 0 = not set, -1 = false */
180 int autoforward; 186 int autoforward;
181 pst_string cc_address; 187 pst_string cc_address;
182 pst_string bcc_address; 188 pst_string bcc_address;
183 int32_t conversation_index; 189 pst_binary conversation_index;
184 /** 1 = true, 0 = false */ 190 /** 1 = true, 0 = false */
185 int conversion_prohibited; 191 int conversion_prohibited;
186 /** 1 = true, 0 = false */ 192 /** 1 = true, 0 = false */
187 int delete_after_submit; 193 int delete_after_submit;
188 /** 1 = true, 0 = false */ 194 /** 1 = true, 0 = false */
189 int delivery_report; 195 int delivery_report;
190 char *encrypted_body; 196 pst_binary encrypted_body;
191 size_t encrypted_body_size; 197 pst_binary encrypted_htmlbody;
192 char *encrypted_htmlbody;
193 size_t encrypted_htmlbody_size;
194 pst_string header; 198 pst_string header;
195 pst_string htmlbody; 199 pst_string htmlbody;
196 /** 0=low, 1=normal, 2=high */ 200 /** 0=low, 1=normal, 2=high */
197 int32_t importance; 201 int32_t importance;
198 pst_string in_reply_to; 202 pst_string in_reply_to;
228 pst_string reply_to; 232 pst_string reply_to;
229 pst_string return_path_address; 233 pst_string return_path_address;
230 int32_t rtf_body_char_count; 234 int32_t rtf_body_char_count;
231 int32_t rtf_body_crc; 235 int32_t rtf_body_crc;
232 pst_string rtf_body_tag; 236 pst_string rtf_body_tag;
233 char *rtf_compressed; 237 pst_binary rtf_compressed;
234 uint32_t rtf_compressed_size;
235 /** 1 = true, 0 = false */ 238 /** 1 = true, 0 = false */
236 int rtf_in_sync; 239 int rtf_in_sync;
237 int32_t rtf_ws_prefix_count; 240 int32_t rtf_ws_prefix_count;
238 int32_t rtf_ws_trailing_count; 241 int32_t rtf_ws_trailing_count;
239 pst_string sender_access; 242 pst_string sender_access;
254 int32_t ndr_status_code; 257 int32_t ndr_status_code;
255 } pst_item_email; 258 } pst_item_email;
256 259
257 260
258 typedef struct pst_item_folder { 261 typedef struct pst_item_folder {
259 int32_t email_count; 262 int32_t item_count;
260 int32_t unseen_email_count; 263 int32_t unseen_item_count;
261 int32_t assoc_count; 264 int32_t assoc_count;
262 /** 1 = true, 0 = false */ 265 /** 1 = true, 0 = false */
263 int subfolder; 266 int subfolder;
264 } pst_item_folder; 267 } pst_item_folder;
265 268
399 402
400 typedef struct pst_item_attach { 403 typedef struct pst_item_attach {
401 pst_string filename1; 404 pst_string filename1;
402 pst_string filename2; 405 pst_string filename2;
403 pst_string mimetype; 406 pst_string mimetype;
404 char *data; 407 pst_binary data;
405 size_t size;
406 uint64_t id2_val; 408 uint64_t id2_val;
407 /** calculated from id2_val during creation of record */ 409 /** calculated from id2_val during creation of record */
408 uint64_t i_id; 410 uint64_t i_id;
409 /** deep copy from child */ 411 /** deep copy from child */
410 pst_id2_ll *id2_head; 412 pst_id2_ll *id2_head;
504 pst_string subject; 506 pst_string subject;
505 int32_t internet_cpid; 507 int32_t internet_cpid;
506 int32_t message_codepage; 508 int32_t message_codepage;
507 int32_t message_size; 509 int32_t message_size;
508 pst_string outlook_version; 510 pst_string outlook_version;
509 char *record_key; // probably 16 bytes long. 511 pst_binary record_key;
510 size_t record_key_size; 512 pst_binary predecessor_change; // was formerly stored in record_key
511 /** 1 = true, 0 = false */ 513 /** 1 = true, 0 = false */
512 int response_requested; 514 int response_requested;
513 FILETIME *create_date; 515 FILETIME *create_date;
514 FILETIME *modify_date; 516 FILETIME *modify_date;
515 /** 1 = true, 0 = false */ 517 /** 1 = true, 0 = false */