Mercurial > libpst
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 */ |