# HG changeset patch # User Carl Byington # Date 1275617369 25200 # Node ID 3e6cdd543857e7a9723d6b167e57952520d5416b # Parent 6bf6b60a97519d1d4cd79557fbb9cecbc9c3bdd4 date sent property is fixed size, so the value is stored directly in the property stream diff -r 6bf6b60a9751 -r 3e6cdd543857 src/msg.cpp --- a/src/msg.cpp Wed May 26 20:30:35 2010 -0700 +++ b/src/msg.cpp Thu Jun 03 19:09:29 2010 -0700 @@ -123,14 +123,6 @@ } -static void string_property(GsfOutfile *out, property_list &prop, uint32_t tag, FILETIME *contents); -static void string_property(GsfOutfile *out, property_list &prop, uint32_t tag, FILETIME *contents) { - if (contents) { - string_property(out, prop, tag, (char *)contents, sizeof(FILETIME)); - } -} - - static void string_property(GsfOutfile *out, property_list &prop, uint32_t tag, const char* charset, pst_string &contents); static void string_property(GsfOutfile *out, property_list &prop, uint32_t tag, const char* charset, pst_string &contents) { if (contents.str) { @@ -185,6 +177,19 @@ } +static void i64_property(property_list &prop_list, uint32_t tag, uint32_t flags, FILETIME *value); +static void i64_property(property_list &prop_list, uint32_t tag, uint32_t flags, FILETIME *value) { + if (value) { + property p; + p.tag = tag; + p.flags = flags; + p.length = value->dwLowDateTime; + p.reserved = value->dwHighDateTime; + prop_list.push_back(p); + } +} + + static void nzi_property(property_list &prop_list, uint32_t tag, uint32_t flags, uint32_t value); static void nzi_property(property_list &prop_list, uint32_t tag, uint32_t flags, uint32_t value) { if (value) int_property(prop_list, tag, flags, value); @@ -246,10 +251,10 @@ nzi_property(prop_list, 0x0C17000B, 0x6, email.reply_requested); nzi_property(prop_list, 0x0E01000B, 0x6, email.delete_after_submit); int_property(prop_list, 0x0E070003, 0x6, item->flags); + i64_property(prop_list, 0x00390040, 0x6, email.sent_date); GsfOutfile *out = GSF_OUTFILE (output); string_property(out, prop_list, 0x001A001E, item->ascii_type); string_property(out, prop_list, 0x0037001E, body_charset, item->subject); - string_property(out, prop_list, 0x00390040, email.sent_date); strin0_property(out, prop_list, 0x003B0102, body_charset, email.outlook_sender); string_property(out, prop_list, 0x003D001E, string("")); string_property(out, prop_list, 0x0040001E, body_charset, email.outlook_received_name1);