我正在使用PST File Format SDK尝试从Outlook PST导出中提取一些约会项目数据:
int main()
{
pst myfile(L"export.pst");
folder calendar = myfile.open_folder(L"Calendar");
for (folder::message_iterator msg = calendar.message_begin(); msg != calendar.message_end(); ++msg)
{
message m = *msg;
wstring subject = L"";
if (m.has_subject())
subject = m.get_subject();
wstring body = L"";
if (m.has_body())
body = m.get_body();
wstring htmlbody = L"";
if (m.has_html_body())
htmlbody = m.get_html_body();
size_t num_attachments = m.get_attachment_count();
size_t num_recipients = m.get_recipient_count();
property_bag bag = m.get_property_bag();
vector<prop_id> propertyList = bag.get_prop_list();
for (vector<prop_id>::iterator prop = propertyList.begin(); prop != propertyList.end(); ++prop)
{
if (bag.get_prop_type(*prop) == prop_type_systime)
FILETIME property = bag.read_prop<FILETIME>(*prop);
}
break; // Just try the first message for now.
}
return 0;
}
Outlook如何存储约会数据?我的意思是,我怎样才能至少得到预约开始时间和持续时间(或结束时间)?我一直试图搜索PST file format specification from Microsoft,但我似乎无法找到我需要的信息!
编辑:我现在可以像上面的代码那样解析FILETIME
个对象,但问题是,我怎样才能将它们区分为他们所指的时间?我的意思是,我怎么知道这是事件发生日期的时间,还是活动结束日期等等?它们应该有名称来区分它们,如果不是的话?如何使用pstsdk
?
答案 0 :(得分:2)
这些(以及更多)属性存储为命名的MAPI属性。它们的标签会因不同商店而异,因此您无法对其进行硬编码。
查看OutlookSpy中的现有约会(点击IMessage按钮)。