annotate src/libpst.h @ 355:d1f930be4711

From Jeffrey Morlan: pst_build_id_ptr and pst_build_desc_ptr require that the first child of a BTree page have the same starting ID as itself. This is not required by the spec, and is not true in many real-world PSTs (presumably, the original first child of the page got deleted). Because of this, many emails are not being extracted from these PSTs. It also triggers an infinite loop in lspst (a separate bug, also fixed)
author Carl Byington <carl@five-ten-sg.com>
date Wed, 06 Jul 2016 10:12:22 -0700
parents 09dd5299d91c
children 26c48ea9d896
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
1 /***
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
2 * libpst.h
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
3 * Part of LibPST project
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
4 * Written by David Smith
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
5 * dave.s@earthcorp.com
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
6 */
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
7 // LibPST - Library for Accessing Outlook .pst files
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
8 // Dave Smith - davesmith@users.sourceforge.net
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
9
182
b65e8d0a088a more cleanup on external names in the shared object file
Carl Byington <carl@five-ten-sg.com>
parents: 176
diff changeset
10 #ifndef __PST_LIBPST_H
b65e8d0a088a more cleanup on external names in the shared object file
Carl Byington <carl@five-ten-sg.com>
parents: 176
diff changeset
11 #define __PST_LIBPST_H
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
12
132
5e4d6faada34 fix from Fridrich Strba for parallel make
Carl Byington <carl@five-ten-sg.com>
parents: 130
diff changeset
13 #include "common.h"
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
14
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
15
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
16 // switch to maximal packing for all structures in the libpst interface
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
17 // this is reverted at the end of this file
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
18 #ifdef _MSC_VER
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
19 #pragma pack(push, 1)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
20 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
21 #if defined(__GNUC__) || defined (__SUNPRO_C) || defined(__SUNPRO_CC)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
22 #pragma pack(1)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
23 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
24
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
25
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
26 #define PST_TYPE_NOTE 1
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
27 #define PST_TYPE_SCHEDULE 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
28 #define PST_TYPE_APPOINTMENT 8
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
29 #define PST_TYPE_CONTACT 9
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
30 #define PST_TYPE_JOURNAL 10
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
31 #define PST_TYPE_STICKYNOTE 11
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
32 #define PST_TYPE_TASK 12
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
33 #define PST_TYPE_OTHER 13
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
34 #define PST_TYPE_REPORT 14
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
35
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
36 // defines types of possible encryption
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
37 #define PST_NO_ENCRYPT 0
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
38 #define PST_COMP_ENCRYPT 1
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
39 #define PST_ENCRYPT 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
40
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
41 // defines different types of mappings
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
42 #define PST_MAP_ATTRIB (uint32_t)1
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
43 #define PST_MAP_HEADER (uint32_t)2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
44
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
45 // define my custom email attributes.
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
46 #define PST_ATTRIB_HEADER -1
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
47
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
48 // defines types of free/busy values for appointment->showas
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
49 #define PST_FREEBUSY_FREE 0
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
50 #define PST_FREEBUSY_TENTATIVE 1
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
51 #define PST_FREEBUSY_BUSY 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
52 #define PST_FREEBUSY_OUT_OF_OFFICE 3
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
53
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
54 // defines labels for appointment->label
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
55 #define PST_APP_LABEL_NONE 0
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
56 #define PST_APP_LABEL_IMPORTANT 1
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
57 #define PST_APP_LABEL_BUSINESS 2
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
58 #define PST_APP_LABEL_PERSONAL 3
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
59 #define PST_APP_LABEL_VACATION 4
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
60 #define PST_APP_LABEL_MUST_ATTEND 5
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
61 #define PST_APP_LABEL_TRAVEL_REQ 6
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
62 #define PST_APP_LABEL_NEEDS_PREP 7
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
63 #define PST_APP_LABEL_BIRTHDAY 8
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
64 #define PST_APP_LABEL_ANNIVERSARY 9
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
65 #define PST_APP_LABEL_PHONE_CALL 10
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
66
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
67 // define type of recuring event
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
68 #define PST_APP_RECUR_NONE 0
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
69 #define PST_APP_RECUR_DAILY 1
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
70 #define PST_APP_RECUR_WEEKLY 2
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
71 #define PST_APP_RECUR_MONTHLY 3
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
72 #define PST_APP_RECUR_YEARLY 4
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
73
233
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
74 // define attachment types
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
75 #define PST_ATTACH_NONE 0
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
76 #define PST_ATTACH_BY_VALUE 1
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
77 #define PST_ATTACH_BY_REF 2
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
78 #define PST_ATTACH_BY_REF_RESOLV 3
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
79 #define PST_ATTACH_BY_REF_ONLY 4
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
80 #define PST_ATTACH_EMBEDDED 5
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
81 #define PST_ATTACH_OLE 6
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
82
292
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
83 // define flags
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
84 #define PST_FLAG_READ 0x01
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
85 #define PST_FLAG_UNMODIFIED 0x02
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
86 #define PST_FLAG_SUBMIT 0x04
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
87 #define PST_FLAG_UNSENT 0x08
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
88 #define PST_FLAG_HAS_ATTACHMENT 0x10
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
89 #define PST_FLAG_FROM_ME 0x20
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
90 #define PST_FLAG_ASSOCIATED 0x40
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
91 #define PST_FLAG_RESEND 0x80
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
92 #define PST_FLAG_RN_PENDING 0x100
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
93 #define PST_FLAG_NRN_PENDING 0x200
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
94
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
95
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
96 typedef struct pst_entryid {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
97 int32_t u1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
98 char entryid[16];
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
99 uint32_t id;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
100 } pst_entryid;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
101
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
102
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
103 typedef struct pst_index_ll {
164
ab384fed78c5 Compensate for iconv conversion to utf-7 that produces strings that are not null terminated.
Carl Byington <carl@five-ten-sg.com>
parents: 154
diff changeset
104 uint64_t i_id;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
105 uint64_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
106 uint64_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
107 int64_t u1;
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
108 struct pst_index_ll *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
109 } pst_index_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
110
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
111
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
112 typedef struct pst_id2_tree {
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
113 uint64_t id2;
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
114 pst_index_ll *id;
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
115 struct pst_id2_tree *child;
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
116 struct pst_id2_tree *next;
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
117 } pst_id2_tree;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
118
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
119
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
120 typedef struct pst_desc_tree {
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
121 uint64_t d_id;
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
122 uint64_t parent_d_id;
143
fdc58ad2c758 fix embedded rfc822 messages with attachments
Carl Byington <carl@five-ten-sg.com>
parents: 142
diff changeset
123 pst_index_ll *desc;
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
124 pst_index_ll *assoc_tree;
143
fdc58ad2c758 fix embedded rfc822 messages with attachments
Carl Byington <carl@five-ten-sg.com>
parents: 142
diff changeset
125 int32_t no_child;
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
126 struct pst_desc_tree *prev;
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
127 struct pst_desc_tree *next;
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
128 struct pst_desc_tree *parent;
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
129 struct pst_desc_tree *child;
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
130 struct pst_desc_tree *child_tail;
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
131 } pst_desc_tree;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
132
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
133
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
134 /** The string is either utf8 encoded, or it is in the code page
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
135 * specified by the containing mapi object. It can be forced into
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
136 * utf8 by calling pst_convert_utf8() or pst_convert_utf8_null().
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
137 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
138 typedef struct pst_string {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
139 /** @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
140 * @li 0 false */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
141 int is_utf8;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
142 char *str;
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
143 } pst_string;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
144
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
145
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
146 /** a simple wrapper for binary blobs */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
147 typedef struct pst_binary {
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
148 size_t size;
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
149 char *data;
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
150 } pst_binary;
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
151
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
152
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
153 /** This contains the email related mapi elements
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
154 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
155 typedef struct pst_item_email {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
156 /** mapi element 0x0e06 PR_MESSAGE_DELIVERY_TIME */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
157 FILETIME *arrival_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
158 /** mapi element 0x0002 PR_ALTERNATE_RECIPIENT_ALLOWED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
159 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
160 * @li 0 not set
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
161 * @li -1 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
162 int autoforward;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
163 /** mapi element 0x0e03 PR_DISPLAY_CC */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
164 pst_string cc_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
165 /** mapi element 0x0e02 PR_DISPLAY_BCC */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
166 pst_string bcc_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
167 /** mapi element 0x0071 PR_CONVERSATION_INDEX */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
168 pst_binary conversation_index;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
169 /** mapi element 0x3a03 PR_CONVERSION_PROHIBITED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
170 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
171 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
172 int conversion_prohibited;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
173 /** mapi element 0x0e01 PR_DELETE_AFTER_SUBMIT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
174 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
175 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
176 int delete_after_submit;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
177 /** mapi element 0x0023 PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
178 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
179 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
180 int delivery_report;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
181 /** mapi element 0x6f04 */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
182 pst_binary encrypted_body;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
183 /** mapi element 0x6f02 */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
184 pst_binary encrypted_htmlbody;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
185 /** mapi element 0x007d PR_TRANSPORT_MESSAGE_HEADERS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
186 pst_string header;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
187 /** mapi element 0x1013 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
188 pst_string htmlbody;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
189 /** mapi element 0x0017 PR_IMPORTANCE
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
190 * @li 0 low
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
191 * @li 1 normal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
192 * @li 2 high */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
193 int32_t importance;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
194 /** mapi element 0x1042 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
195 pst_string in_reply_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
196 /** mapi element 0x0058 PR_MESSAGE_CC_ME, this user is listed explicitly in the CC address
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
197 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
198 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
199 int message_cc_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
200 /** mapi element 0x0059 PR_MESSAGE_RECIP_ME, this user appears in TO, CC or BCC address list
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
201 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
202 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
203 int message_recip_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
204 /** mapi element 0x0057 PR_MESSAGE_TO_ME, this user is listed explicitly in the TO address
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
205 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
206 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
207 int message_to_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
208 /** mapi element 0x1035 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
209 pst_string messageid;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
210 /** mapi element 0x002e PR_ORIGINAL_SENSITIVITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
211 * @li 0=none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
212 * @li 1=personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
213 * @li 2=private
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
214 * @li 3=company confidential */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
215 int32_t original_sensitivity;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
216 /** mapi element 0x0072 PR_ORIGINAL_DISPLAY_BCC */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
217 pst_string original_bcc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
218 /** mapi element 0x0073 PR_ORIGINAL_DISPLAY_CC */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
219 pst_string original_cc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
220 /** mapi element 0x0074 PR_ORIGINAL_DISPLAY_TO */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
221 pst_string original_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
222 /** mapi element 0x0051 PR_RECEIVED_BY_SEARCH_KEY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
223 pst_string outlook_recipient;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
224 /** mapi element 0x0044 PR_RCVD_REPRESENTING_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
225 pst_string outlook_recipient_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
226 /** mapi element 0x0052 PR_RCVD_REPRESENTING_SEARCH_KEY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
227 pst_string outlook_recipient2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
228 /** mapi element 0x003b PR_SENT_REPRESENTING_SEARCH_KEY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
229 pst_string outlook_sender;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
230 /** mapi element 0x0042 PR_SENT_REPRESENTING_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
231 pst_string outlook_sender_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
232 /** mapi element 0x0c1d PR_SENDER_SEARCH_KEY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
233 pst_string outlook_sender2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
234 /** mapi element 0x0026 PR_PRIORITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
235 * @li 0 nonurgent
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
236 * @li 1 normal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
237 * @li 2 urgent */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
238 /** mapi element */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
239 int32_t priority;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
240 /** mapi element 0x0070 PR_CONVERSATION_TOPIC */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
241 pst_string processed_subject;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
242 /** mapi element 0x0029 PR_READ_RECEIPT_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
243 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
244 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
245 int read_receipt;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
246 /** mapi element 0x0075 PR_RECEIVED_BY_ADDRTYPE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
247 pst_string recip_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
248 /** mapi element 0x0076 PR_RECEIVED_BY_EMAIL_ADDRESS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
249 pst_string recip_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
250 /** mapi element 0x0077 PR_RCVD_REPRESENTING_ADDRTYPE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
251 pst_string recip2_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
252 /** mapi element 0x0078 PR_RCVD_REPRESENTING_EMAIL_ADDRESS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
253 pst_string recip2_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
254 /** mapi element 0x0c17 PR_REPLY_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
255 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
256 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
257 int reply_requested;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
258 /** mapi element 0x0050 PR_REPLY_RECIPIENT_NAMES */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
259 pst_string reply_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
260 /** mapi element 0x1046, this seems to be the message-id of the rfc822 mail that is being returned */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
261 pst_string return_path_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
262 /** mapi element 0x1007 PR_RTF_SYNC_BODY_COUNT,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
263 * a count of the *significant* charcters in the rtf body. Doesn't count
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
264 * whitespace and other ignorable characters. */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
265 int32_t rtf_body_char_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
266 /** mapi element 0x1006 PR_RTF_SYNC_BODY_CRC */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
267 int32_t rtf_body_crc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
268 /** mapi element 0x1008 PR_RTF_SYNC_BODY_TAG,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
269 * the first couple of lines of RTF body so that after modification, then beginning can
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
270 * once again be found. */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
271 pst_string rtf_body_tag;
193
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
272 /** mapi element 0x1009 PR_RTF_COMPRESSED,
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
273 * the compressed rtf body data.
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
274 * Use pst_lzfu_decompress() to retrieve the actual rtf body data. */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
275 pst_binary rtf_compressed;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
276 /** mapi element 0x0e1f PR_RTF_IN_SYNC,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
277 * True means that the rtf version is same as text body.
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
278 * False means rtf version is more up-to-date than text body.
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
279 * If this value doesn't exist, text body is more up-to-date than rtf and
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
280 * cannot update to the rtf.
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
281 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
282 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
283 int rtf_in_sync;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
284 /** mapi element 0x1010 PR_RTF_SYNC_PREFIX_COUNT,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
285 * a count of the ignored characters before the first significant character */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
286 int32_t rtf_ws_prefix_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
287 /** mapi element 0x1011 PR_RTF_SYNC_TRAILING_COUNT,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
288 * a count of the ignored characters after the last significant character */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
289 int32_t rtf_ws_trailing_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
290 /** mapi element 0x0064 PR_SENT_REPRESENTING_ADDRTYPE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
291 pst_string sender_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
292 /** mapi element 0x0065 PR_SENT_REPRESENTING_EMAIL_ADDRESS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
293 pst_string sender_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
294 /** mapi element 0x0c1e PR_SENDER_ADDRTYPE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
295 pst_string sender2_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
296 /** mapi element 0x0c1f PR_SENDER_EMAIL_ADDRESS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
297 pst_string sender2_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
298 /** mapi element 0x0036 PR_SENSITIVITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
299 * @li 0=none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
300 * @li 1=personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
301 * @li 2=private
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
302 * @li 3=company confidential */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
303 int32_t sensitivity;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
304 /** mapi element 0x0039 PR_CLIENT_SUBMIT_TIME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
305 FILETIME *sent_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
306 /** mapi element 0x0e0a PR_SENTMAIL_ENTRYID */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
307 pst_entryid *sentmail_folder;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
308 /** mapi element 0x0e04 PR_DISPLAY_TO */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
309 pst_string sentto_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
310 /** mapi element 0x1001 PR_REPORT_TEXT, delivery report dsn body */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
311 pst_string report_text;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
312 /** mapi element 0x0032 PR_REPORT_TIME, delivery report time */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
313 FILETIME *report_time;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
314 /** mapi element 0x0c04 PR_NDR_REASON_CODE */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
315 int32_t ndr_reason_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
316 /** mapi element 0x0c05 PR_NDR_DIAG_CODE */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
317 int32_t ndr_diag_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
318 /** mapi element 0x0c1b PR_SUPPLEMENTARY_INFO */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
319 pst_string supplementary_info;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
320 /** mapi element 0x0c20 PR_NDR_STATUS_CODE */
142
2189a6b8134e improve character set handling - don't try to convert utf-8 to single byte for fields that were not originally unicode.
Carl Byington <carl@five-ten-sg.com>
parents: 132
diff changeset
321 int32_t ndr_status_code;
308
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
322
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
323 // elements added for .msg processing
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
324 /** mapi element 0x0040 PR_RECEIVED_BY_NAME */
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
325 pst_string outlook_received_name1;
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
326 /** mapi element 0x0c1a PR_SENDER_NAME */
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
327 pst_string outlook_sender_name2;
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
328 /** mapi element 0x0e1d PR_NORMALIZED_SUBJECT */
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
329 pst_string outlook_normalized_subject;
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
330 /** mapi element 0x300b PR_SEARCH_KEY */
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
331 pst_string outlook_search_key;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
332 } pst_item_email;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
333
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
334
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
335 /** This contains the folder related mapi elements
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
336 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
337 typedef struct pst_item_folder {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
338 /** mapi element 0x3602 PR_CONTENT_COUNT */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
339 int32_t item_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
340 /** mapi element 0x3603 PR_CONTENT_UNREAD */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
341 int32_t unseen_item_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
342 /** mapi element 0x3617 PR_ASSOC_CONTENT_COUNT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
343 Associated content are items that are attached to this folder, but are hidden from users.
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
344 */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
345 int32_t assoc_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
346 /** mapi element 0x360a PR_SUBFOLDERS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
347 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
348 * @li 0 false */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
349 /** mapi element */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
350 int subfolder;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
351 } pst_item_folder;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
352
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
353
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
354 /** This contains the message store related mapi elements
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
355 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
356 typedef struct pst_item_message_store {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
357 /** mapi element 0x35e0 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
358 pst_entryid *top_of_personal_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
359 /** mapi element 0x35e2 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
360 pst_entryid *default_outbox_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
361 /** mapi element 0x35e3 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
362 pst_entryid *deleted_items_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
363 /** mapi element 0x35e4 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
364 pst_entryid *sent_items_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
365 /** mapi element 0x35e5 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
366 pst_entryid *user_views_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
367 /** mapi element 0x35e6 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
368 pst_entryid *common_view_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
369 /** mapi element 0x35e7 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
370 pst_entryid *search_root_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
371 /** mapi element 0x7c07 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
372 pst_entryid *top_of_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
373 /** mapi element 0x35df,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
374 * bit mask of folders in this message store
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
375 * @li 0x1 FOLDER_IPM_SUBTREE_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
376 * @li 0x2 FOLDER_IPM_INBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
377 * @li 0x4 FOLDER_IPM_OUTBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
378 * @li 0x8 FOLDER_IPM_WASTEBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
379 * @li 0x10 FOLDER_IPM_SENTMAIL_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
380 * @li 0x20 FOLDER_VIEWS_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
381 * @li 0x40 FOLDER_COMMON_VIEWS_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
382 * @li 0x80 FOLDER_FINDER_VALID */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
383 int32_t valid_mask;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
384 /** mapi element 0x76ff */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
385 int32_t pwd_chksum;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
386 } pst_item_message_store;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
387
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
388
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
389 /** This contains the contact related mapi elements
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
390 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
391 typedef struct pst_item_contact {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
392 /** mapi element 0x3a00 PR_ACCOUNT */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
393 pst_string account_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
394 /** mapi element 0x3003 PR_EMAIL_ADDRESS, or 0x8083 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
395 pst_string address1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
396 /** mapi element 0x8085 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
397 pst_string address1a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
398 /** mapi element 0x8084 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
399 pst_string address1_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
400 /** mapi element 0x3002 PR_ADDRTYPE, or 0x8082 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
401 pst_string address1_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
402 /** mapi element 0x8093 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
403 pst_string address2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
404 /** mapi element 0x8095 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
405 pst_string address2a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
406 /** mapi element 0x8094 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
407 pst_string address2_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
408 /** mapi element 0x8092 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
409 pst_string address2_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
410 /** mapi element 0x80a3 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
411 pst_string address3;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
412 /** mapi element 0x80a5 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
413 pst_string address3a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
414 /** mapi element 0x80a4 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
415 pst_string address3_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
416 /** mapi element 0x80a2 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
417 pst_string address3_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
418 /** mapi element 0x3a30 PR_ASSISTANT */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
419 pst_string assistant_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
420 /** mapi element 0x3a2e PR_ASSISTANT_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
421 pst_string assistant_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
422 /** mapi element 0x8535 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
423 pst_string billing_information;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
424 /** mapi element 0x3a42 PR_BIRTHDAY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
425 FILETIME *birthday;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
426 /** mapi element 0x801b */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
427 pst_string business_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
428 /** mapi element 0x3a27 PR_BUSINESS_ADDRESS_CITY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
429 pst_string business_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
430 /** mapi element 0x3a26 PR_BUSINESS_ADDRESS_COUNTRY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
431 pst_string business_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
432 /** mapi element 0x3a24 PR_BUSINESS_FAX_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
433 pst_string business_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
434 /** mapi element 0x3a51 PR_BUSINESS_HOME_PAGE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
435 pst_string business_homepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
436 /** mapi element 0x3a08 PR_BUSINESS_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
437 pst_string business_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
438 /** mapi element 0x3a1b PR_BUSINESS2_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
439 pst_string business_phone2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
440 /** mapi element 0x3a2b PR_BUSINESS_PO_BOX */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
441 pst_string business_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
442 /** mapi element 0x3a2a PR_BUSINESS_POSTAL_CODE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
443 pst_string business_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
444 /** mapi element 0x3a28 PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
445 pst_string business_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
446 /** mapi element 0x3a29 PR_BUSINESS_ADDRESS_STREET */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
447 pst_string business_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
448 /** mapi element 0x3a02 PR_CALLBACK_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
449 pst_string callback_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
450 /** mapi element 0x3a1e PR_CAR_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
451 pst_string car_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
452 /** mapi element 0x3a57 PR_COMPANY_MAIN_PHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
453 pst_string company_main_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
454 /** mapi element 0x3a16 PR_COMPANY_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
455 pst_string company_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
456 /** mapi element 0x3a49 PR_COMPUTER_NETWORK_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
457 pst_string computer_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
458 /** mapi element 0x3a4a PR_CUSTOMER_ID */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
459 pst_string customer_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
460 /** mapi element 0x3a15 PR_POSTAL_ADDRESS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
461 pst_string def_postal_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
462 /** mapi element 0x3a18 PR_DEPARTMENT_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
463 pst_string department;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
464 /** mapi element 0x3a45 PR_DISPLAY_NAME_PREFIX */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
465 pst_string display_name_prefix;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
466 /** mapi element 0x3a06 PR_GIVEN_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
467 pst_string first_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
468 /** mapi element 0x8530 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
469 pst_string followup;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
470 /** mapi element 0x80d8 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
471 pst_string free_busy_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
472 /** mapi element 0x3a4c PR_FTP_SITE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
473 pst_string ftp_site;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
474 /** mapi element 0x8005 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
475 pst_string fullname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
476 /** mapi element 0x3a4d PR_GENDER
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
477 * @li 0 unspecified
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
478 * @li 1 female
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
479 * @li 2 male */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
480 int16_t gender;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
481 /** mapi element 0x3a07 PR_GOVERNMENT_ID_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
482 pst_string gov_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
483 /** mapi element 0x3a43 PR_HOBBIES */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
484 pst_string hobbies;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
485 /** mapi element 0x801a */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
486 pst_string home_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
487 /** mapi element 0x3a59 PR_HOME_ADDRESS_CITY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
488 pst_string home_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
489 /** mapi element 0x3a5a PR_HOME_ADDRESS_COUNTRY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
490 pst_string home_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
491 /** mapi element 0x3a25 PR_HOME_FAX_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
492 pst_string home_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
493 /** mapi element 0x3a09 PR_HOME_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
494 pst_string home_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
495 /** mapi element 0x3a2f PR_HOME2_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
496 pst_string home_phone2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
497 /** mapi element 0x3a5e PR_HOME_ADDRESS_POST_OFFICE_BOX */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
498 pst_string home_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
499 /** mapi element 0x3a5b PR_HOME_ADDRESS_POSTAL_CODE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
500 pst_string home_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
501 /** mapi element 0x3a5c PR_HOME_ADDRESS_STATE_OR_PROVINCE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
502 pst_string home_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
503 /** mapi element 0x3a5d PR_HOME_ADDRESS_STREET */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
504 pst_string home_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
505 /** mapi element 0x3a0a PR_INITIALS */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
506 pst_string initials;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
507 /** mapi element 0x3a2d PR_ISDN_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
508 pst_string isdn_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
509 /** mapi element 0x3a17 PR_TITLE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
510 pst_string job_title;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
511 /** mapi element 0x3a0b PR_KEYWORD */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
512 pst_string keyword;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
513 /** mapi element 0x3a0c PR_LANGUAGE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
514 pst_string language;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
515 /** mapi element 0x3a0d PR_LOCATION */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
516 pst_string location;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
517 /** mapi element 0x3a0e PR_MAIL_PERMISSION
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
518 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
519 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
520 int mail_permission;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
521 /** mapi element 0x3a4e PR_MANAGER_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
522 pst_string manager_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
523 /** mapi element 0x3a44 PR_MIDDLE_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
524 pst_string middle_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
525 /** mapi element 0x8534 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
526 pst_string mileage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
527 /** mapi element 0x3a1c PR_MOBILE_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
528 pst_string mobile_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
529 /** mapi element 0x3a4f PR_NICKNAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
530 pst_string nickname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
531 /** mapi element 0x3a19 PR_OFFICE_LOCATION */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
532 pst_string office_loc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
533 /** mapi element 0x3a0f PR_MHS_COMMON_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
534 pst_string common_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
535 /** mapi element 0x3a10 PR_ORGANIZATIONAL_ID_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
536 pst_string org_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
537 /** mapi element 0x801c */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
538 pst_string other_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
539 /** mapi element 0x3a5f PR_OTHER_ADDRESS_CITY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
540 pst_string other_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
541 /** mapi element 0x3a60 PR_OTHER_ADDRESS_COUNTRY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
542 pst_string other_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
543 /** mapi element 0x3a1f PR_OTHER_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
544 pst_string other_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
545 /** mapi element 0x3a64 PR_OTHER_ADDRESS_POST_OFFICE_BOX */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
546 pst_string other_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
547 /** mapi element 0x3a61 PR_OTHER_ADDRESS_POSTAL_CODE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
548 pst_string other_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
549 /** mapi element 0x3a62 PR_OTHER_ADDRESS_STATE_OR_PROVINCE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
550 pst_string other_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
551 /** mapi element 0x3a63 PR_OTHER_ADDRESS_STREET */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
552 pst_string other_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
553 /** mapi element 0x3a21 PR_PAGER_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
554 pst_string pager_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
555 /** mapi element 0x3a50 PR_PERSONAL_HOME_PAGE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
556 pst_string personal_homepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
557 /** mapi element 0x3a47 PR_PREFERRED_BY_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
558 pst_string pref_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
559 /** mapi element 0x3a23 PR_PRIMARY_FAX_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
560 pst_string primary_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
561 /** mapi element 0x3a1a PR_PRIMARY_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
562 pst_string primary_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
563 /** mapi element 0x3a46 PR_PROFESSION */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
564 pst_string profession;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
565 /** mapi element 0x3a1d PR_RADIO_TELEPHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
566 pst_string radio_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
567 /** mapi element 0x3a40 PR_SEND_RICH_INFO
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
568 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
569 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
570 int rich_text;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
571 /** mapi element 0x3a48 PR_SPOUSE_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
572 pst_string spouse_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
573 /** mapi element 0x3a05 PR_GENERATION (Jr., Sr., III, etc) */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
574 pst_string suffix;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
575 /** mapi element 0x3a11 PR_SURNAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
576 pst_string surname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
577 /** mapi element 0x3a2c PR_TELEX_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
578 pst_string telex;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
579 /** mapi element 0x3a20 PR_TRANSMITTABLE_DISPLAY_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
580 pst_string transmittable_display_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
581 /** mapi element 0x3a4b PR_TTYTDD_PHONE_NUMBER */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
582 pst_string ttytdd_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
583 /** mapi element 0x3a41 PR_WEDDING_ANNIVERSARY */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
584 FILETIME *wedding_anniversary;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
585 /** mapi element 0x8045 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
586 pst_string work_address_street;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
587 /** mapi element 0x8046 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
588 pst_string work_address_city;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
589 /** mapi element 0x8047 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
590 pst_string work_address_state;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
591 /** mapi element 0x8048 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
592 pst_string work_address_postalcode;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
593 /** mapi element 0x8049 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
594 pst_string work_address_country;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
595 /** mapi element 0x804a */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
596 pst_string work_address_postofficebox;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
597 } pst_item_contact;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
598
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
599
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
600 /** This contains the attachment related mapi elements
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
601 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
602 typedef struct pst_item_attach {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
603 /** mapi element 0x3704 PR_ATTACH_FILENAME */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
604 pst_string filename1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
605 /** mapi element 0x3707 PR_ATTACH_LONG_FILENAME */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
606 pst_string filename2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
607 /** mapi element 0x370e PR_ATTACH_MIME_TAG */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
608 pst_string mimetype;
352
09dd5299d91c Added Content-ID header support
Igor Stroh <igor.stroh@rulim.de>
parents: 328
diff changeset
609 /** mapi element 0x3712 PR_ATTACH_CONTENT_ID */
09dd5299d91c Added Content-ID header support
Igor Stroh <igor.stroh@rulim.de>
parents: 328
diff changeset
610 pst_string content_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
611 /** mapi element 0x3701 PR_ATTACH_DATA_OBJ */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
612 pst_binary data;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
613 /** only used if the attachment is by reference, in which case this is the id2 reference */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
614 uint64_t id2_val;
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
615 /** calculated from id2_val during creation of record */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
616 uint64_t i_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
617 /** id2 tree needed to resolve attachments by reference */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
618 pst_id2_tree *id2_head;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
619 /** mapi element 0x3705 PR_ATTACH_METHOD
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
620 * @li 0 no attachment
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
621 * @li 1 attach by value
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
622 * @li 2 attach by reference
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
623 * @li 3 attach by reference resolve
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
624 * @li 4 attach by reference only
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
625 * @li 5 embedded message
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
626 * @li 6 OLE */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
627 int32_t method;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
628 /** mapi element 0x370b PR_RENDERING_POSITION */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
629 int32_t position;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
630 /** mapi element 0x3710 PR_ATTACH_MIME_SEQUENCE */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
631 int32_t sequence;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
632 struct pst_item_attach *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
633 } pst_item_attach;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
634
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
635
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
636 /** linked list of extra header fields */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
637 typedef struct pst_item_extra_field {
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
638 char *field_name;
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
639 char *value;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
640 struct pst_item_extra_field *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
641 } pst_item_extra_field;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
642
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
643
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
644 /** This contains the journal related mapi elements
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
645 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
646 typedef struct pst_item_journal {
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
647 /** mapi element 0x8706 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
648 FILETIME *start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
649 /** mapi element 0x8708 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
650 FILETIME *end;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
651 /** mapi element 0x8700 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
652 pst_string type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
653 /** mapi element 0x8712 */
152
edebaf0e87d2 more code cleanup
Carl Byington <carl@five-ten-sg.com>
parents: 151
diff changeset
654 pst_string description;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
655 } pst_item_journal;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
656
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
657
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
658 /** This contains the recurrence data separated into fields.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
659 http://www.geocities.com/cainrandom/dev/MAPIRecurrence.html
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
660 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
661 typedef struct pst_recurrence {
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
662 /** 0x30043004 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
663 uint32_t signature;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
664 /** @li 0 daily
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
665 * @li 1 weekly
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
666 * @li 2 monthly
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
667 * @li 3 yearly */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
668 uint32_t type;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
669 /** implies number of recurrence parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
670 * @li 0 has 3 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
671 * @li 1 has 4 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
672 * @li 2 has 4 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
673 * @li 3 has 5 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
674 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
675 uint32_t sub_type;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
676 /** must be contiguous, not an array to make python interface easier */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
677 uint32_t parm1;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
678 uint32_t parm2;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
679 uint32_t parm3;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
680 uint32_t parm4;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
681 uint32_t parm5;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
682 /** type of termination of the recurrence
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
683 @li 0 terminates on a date
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
684 @li 1 terminates based on integer number of occurrences
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
685 @li 2 never terminates
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
686 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
687 uint32_t termination;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
688 /** recurrence interval in terms of the recurrence type */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
689 uint32_t interval;
199
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
690 /** bit mask of days of the week */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
691 uint32_t bydaymask;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
692 /** day of month for monthly and yearly recurrences */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
693 uint32_t dayofmonth;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
694 /** month of year for yearly recurrences */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
695 uint32_t monthofyear;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
696 /** occurence of day for 2nd Tuesday of month, in which case position is 2 */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
697 uint32_t position;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
698 /** number of occurrences, even if recurrence terminates based on date */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
699 uint32_t count;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
700 // there is more data, including the termination date,
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
701 // but we can get that from other mapi elements.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
702 } pst_recurrence;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
703
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
704
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
705 /** This contains the appointment related mapi elements
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
706 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
707 typedef struct pst_item_appointment {
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
708 /** mapi element 0x820d PR_OUTLOOK_EVENT_START_DATE */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
709 FILETIME *start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
710 /** mapi element 0x820e PR_OUTLOOK_EVENT_START_END */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
711 FILETIME *end;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
712 /** mapi element 0x8208 PR_OUTLOOK_EVENT_LOCATION */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
713 pst_string location;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
714 /** mapi element 0x8503 PR_OUTLOOK_COMMON_REMINDER_SET
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
715 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
716 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
717 int alarm;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
718 /** mapi element 0x8560 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
719 FILETIME *reminder;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
720 /** mapi element 0x8501 PR_OUTLOOK_COMMON_REMINDER_MINUTES_BEFORE */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
721 int32_t alarm_minutes;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
722 /** mapi element 0x851f */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
723 pst_string alarm_filename;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
724 /** mapi element 0x8234 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
725 pst_string timezonestring;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
726 /** mapi element 0x8205 PR_OUTLOOK_EVENT_SHOW_TIME_AS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
727 * @li 0 free
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
728 * @li 1 tentative
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
729 * @li 2 busy
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
730 * @li 3 out of office*/
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
731 int32_t showas;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
732 /** mapi element 0x8214
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
733 * @li 0 None
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
734 * @li 1 Important
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
735 * @li 2 Business
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
736 * @li 3 Personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
737 * @li 4 Vacation
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
738 * @li 5 Must Attend
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
739 * @li 6 Travel Required
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
740 * @li 7 Needs Preparation
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
741 * @li 8 Birthday
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
742 * @li 9 Anniversary
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
743 * @li 10 Phone Call */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
744 int32_t label;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
745 /** mapi element 0x8215 PR_OUTLOOK_EVENT_ALL_DAY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
746 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
747 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
748 int all_day;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
749 /** mapi element 0x8223 PR_OUTLOOK_EVENT_IS_RECURRING
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
750 * @li 1 true
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
751 * @li 0 false */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
752 int is_recurring;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
753 /** mapi element 0x8231
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
754 * @li 0 none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
755 * @li 1 daily
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
756 * @li 2 weekly
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
757 * @li 3 monthly
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
758 * @li 4 yearly */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
759 int32_t recurrence_type;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
760 /** mapi element 0x8232 recurrence description */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
761 pst_string recurrence_description;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
762 /** mapi element 0x8216 recurrence data */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
763 pst_binary recurrence_data;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
764 /** mapi element 0x8235 PR_OUTLOOK_EVENT_RECURRENCE_START */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
765 FILETIME *recurrence_start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
766 /** mapi element 0x8236 PR_OUTLOOK_EVENT_RECURRENCE_END */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
767 FILETIME *recurrence_end;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
768 } pst_item_appointment;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
769
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
770
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
771 /** This contains the common mapi elements, and pointers to structures for
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
772 * each major mapi item type. It represents a complete mapi object.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
773 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
774 typedef struct pst_item {
298
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
775 /** pointer to the pst_file */
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
776 struct pst_file *pf;
297
8b3a827b71f4 add alarm reminders to calendar events
Carl Byington <carl@five-ten-sg.com>
parents: 292
diff changeset
777 /** block id that can be used to generate uid */
8b3a827b71f4 add alarm reminders to calendar events
Carl Byington <carl@five-ten-sg.com>
parents: 292
diff changeset
778 uint64_t block_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
779 /** email mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
780 pst_item_email *email;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
781 /** folder mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
782 pst_item_folder *folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
783 /** contact mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
784 pst_item_contact *contact;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
785 /** linked list of attachments */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
786 pst_item_attach *attach;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
787 /** message store mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
788 pst_item_message_store *message_store;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
789 /** linked list of extra headers and such */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
790 pst_item_extra_field *extra_fields;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
791 /** journal mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
792 pst_item_journal *journal;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
793 /** calendar mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
794 pst_item_appointment *appointment;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
795 /** derived from mapi elements 0x001a PR_MESSAGE_CLASS or 0x3613 PR_CONTAINER_CLASS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
796 * @li 1 PST_TYPE_NOTE
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
797 * @li 2 PST_TYPE_SCHEDULE
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
798 * @li 8 PST_TYPE_APPOINTMENT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
799 * @li 9 PST_TYPE_CONTACT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
800 * @li 10 PST_TYPE_JOURNAL
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
801 * @li 11 PST_TYPE_STICKYNOTE
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
802 * @li 12 PST_TYPE_TASK
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
803 * @li 13 PST_TYPE_OTHER
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
804 * @li 14 PST_TYPE_REPORT */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
805 int type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
806 /** mapi element 0x001a PR_MESSAGE_CLASS or 0x3613 PR_CONTAINER_CLASS */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
807 char *ascii_type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
808 /** mapi element 0x0e07 PR_MESSAGE_FLAGS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
809 * @li 0x01 Read
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
810 * @li 0x02 Unmodified
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
811 * @li 0x04 Submit
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
812 * @li 0x08 Unsent
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
813 * @li 0x10 Has Attachments
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
814 * @li 0x20 From Me
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
815 * @li 0x40 Associated
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
816 * @li 0x80 Resend
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
817 * @li 0x100 RN Pending
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
818 * @li 0x200 NRN Pending */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
819 int32_t flags;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
820 /** mapi element 0x3001 PR_DISPLAY_NAME */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
821 pst_string file_as;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
822 /** mapi element 0x3004 PR_COMMENT */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
823 pst_string comment;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
824 /** derived from extra_fields["content-type"] if it contains a charset= subfield */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
825 pst_string body_charset;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
826 /** mapi element 0x1000 PR_BODY */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
827 pst_string body;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
828 /** mapi element 0x0037 PR_SUBJECT */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
829 pst_string subject;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
830 /** mapi element 0x3fde PR_INTERNET_CPID */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
831 int32_t internet_cpid;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
832 /** mapi element 0x3ffd PR_MESSAGE_CODEPAGE */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
833 int32_t message_codepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
834 /** mapi element 0x0e08 PR_MESSAGE_SIZE */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
835 int32_t message_size;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
836 /** mapi element 0x8554 PR_OUTLOOK_VERSION */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
837 pst_string outlook_version;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
838 /** mapi element 0x0ff9 PR_RECORD_KEY */
167
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
839 pst_binary record_key;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
840 /** mapi element 0x65e3 PR_PREDECESSOR_CHANGE_LIST */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
841 pst_binary predecessor_change;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
842 /** mapi element 0x0063 PR_RESPONSE_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
843 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
844 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
845 int response_requested;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
846 /** mapi element 0x3007 PR_CREATION_TIME */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
847 FILETIME *create_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
848 /** mapi element 0x3008 PR_LAST_MODIFICATION_TIME */
150
06aa84023b48 rename some structure fields to reflect our better understanding of the pst format
Carl Byington <carl@five-ten-sg.com>
parents: 143
diff changeset
849 FILETIME *modify_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
850 /** mapi element 0x002b PR_RECIPIENT_REASSIGNMENT_PROHIBITED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
851 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
852 * @li 0 false */
154
581fab9f1dc7 avoid emitting bogus empty email messages into contacts and calendar files
Carl Byington <carl@five-ten-sg.com>
parents: 153
diff changeset
853 int private_member;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
854 } pst_item;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
855
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
856
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
857 /** Linked list of extended attributes.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
858 * This is used to convert mapi_id values in the pst file into
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
859 * cannonical mapi_id values to be used in this code. This list
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
860 * is kept in sorted order, where the key is the 'map' field.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
861 * Some mapi_id values are converted to cannonical mapi_id values
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
862 * (PST_MAP_ATTRIB), and others are converted to a string
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
863 * (PST_ATTRIB_HEADER).
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
864 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
865 typedef struct pst_x_attrib_ll {
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
866 /** @li 1 PST_MAP_ATTRIB map->int attribute
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
867 @li 2 PST_MAP_HEADER map->string header
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
868 */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
869 uint32_t mytype;
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
870 /** key for the mapping */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
871 uint32_t map;
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
872 /** data target of the mapping, either uint32_t or string */
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
873 void *data;
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
874 /** link to next item in the list */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
875 struct pst_x_attrib_ll *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
876 } pst_x_attrib_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
877
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
878
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
879 /** this is only used for internal debugging */
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
880 typedef struct pst_block_recorder {
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
881 struct pst_block_recorder *next;
125
23a36ac0514d recover dropped pragma pack line, use int64_t rather than off_t to avoid forcing users of the shared library to enable large file support.
Carl Byington <carl@five-ten-sg.com>
parents: 123
diff changeset
882 int64_t offset;
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
883 size_t size;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
884 int readcount;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
885 } pst_block_recorder;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
886
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
887
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
888 typedef struct pst_file {
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
889 /** file pointer to opened PST file */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
890 FILE* fp;
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
891 /** original cwd when the file was opened */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
892 char* cwd;
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
893 /** original file name when the file was opened */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
894 char* fname;
298
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
895 /** default character set for items without one */
328
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
896 const char* charset;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
897 /** the head and tail of the linked list of index structures */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
898 pst_index_ll *i_head, *i_tail;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
899 /** the head and tail of the top level of the descriptor tree */
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
900 pst_desc_tree *d_head, *d_tail;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
901 /** the head of the extended attributes linked list */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
902 pst_x_attrib_ll *x_head;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
903 /** the head of the block recorder, a debug artifact
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
904 * used to detect cases where we might read the same
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
905 * block multiple times while processing a pst file. */
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
906 pst_block_recorder *block_head;
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
907
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
908 /** @li 0 is 32-bit pst file, pre Outlook 2003;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
909 * @li 1 is 64-bit pst file, Outlook 2003 or later */
170
0e1e048716e4 fix bug where we failed to pickup the last extended attribute.
Carl Byington <carl@five-ten-sg.com>
parents: 167
diff changeset
910 int do_read64;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
911 /** file offset of the first b-tree node in the index tree */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
912 uint64_t index1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
913 /** back pointer value in the first b-tree node in the index tree */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
914 uint64_t index1_back;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
915 /** file offset of the first b-tree node in the descriptor tree*/
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
916 uint64_t index2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
917 /** back pointer value in the first b-tree node in the descriptor tree */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
918 uint64_t index2_back;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
919 /** size of the pst file */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
920 uint64_t size;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
921 /** @li 0 PST_NO_ENCRYPT, none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
922 * @li 1 PST_COMP_ENCRYPT, simple byte substitution cipher with fixed key
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
923 * @li 2 PST_ENCRYPT, german enigma 3 rotor cipher with fixed key */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
924 unsigned char encryption;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
925 /** index type or file type
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
926 * @li 0x0e 32 bit pre Outlook 2003
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
927 * @li 0x0f 32 bit pre Outlook 2003
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
928 * @li 0x15 64 bit Outlook 2003 or later
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
929 * @li 0x17 64 bit Outlook 2003 or later */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
930 unsigned char ind_type;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
931 } pst_file;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
932
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
933
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
934 /** Open a pst file.
298
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
935 * @param pf pointer to uninitialized pst_file structure. This structure
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
936 * will be filled in by this function.
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
937 * @param name name of the file, suitable for fopen().
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
938 * @param charset default charset for item with unspecified character sets
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
939 * @return 0 if ok, -1 if error
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
940 */
298
201464dd356e add default character set for items where the pst file does not specify a character set
Carl Byington <carl@five-ten-sg.com>
parents: 297
diff changeset
941 int pst_open(pst_file *pf, const char *name, const char *charset);
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
942
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
943
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
944 /** Reopen the pst file after a fork
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
945 * @param pf pointer to the pst_file structure setup by pst_open().
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
946 * @return 0 if ok, -1 if error
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
947 */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
948 int pst_reopen(pst_file *pf);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
949
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
950
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
951 /** Load the index entries from the pst file. This loads both the
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
952 * i_id linked list, and the d_id tree, and should normally be the
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
953 * first call after pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
954 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
955 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
956 int pst_load_index (pst_file *pf);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
957
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
958
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
959 /** Load the extended attribute mapping table from the pst file. This
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
960 * should normally be the second call after pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
961 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
962 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
963 int pst_load_extended_attributes(pst_file *pf);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
964
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
965
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
966 /** Close a pst file.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
967 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
968 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
969 int pst_close(pst_file *pf);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
970
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
971
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
972 /** Get the top of folders descriptor tree. This is the main descriptor tree
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
973 * that needs to be walked to look at every item in the pst file.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
974 * @param pf pointer to the pst_file structure setup by pst_open().
214
7fcff97ca5a9 document pst2dii font file arg not optional, patch from bharder to fix documentation for pst_getTopOfFolders
Carl Byington <carl@five-ten-sg.com>
parents: 211
diff changeset
975 * @param root root item, which can be obtained by pst_parse_item(pf, pf->d_head, NULL).
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
976 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
977 pst_desc_tree* pst_getTopOfFolders(pst_file *pf, const pst_item *root);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
978
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
979
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
980 /** Assemble the binary attachment into a single buffer.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
981 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
982 * @param attach pointer to the attachment record
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
983 * @return structure containing size of and pointer to the buffer.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
984 * the caller must free this buffer.
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
985 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
986 pst_binary pst_attach_to_mem(pst_file *pf, pst_item_attach *attach);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
987
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
988
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
989 /** Write a binary attachment to a file.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
990 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
991 * @param attach pointer to the attachment record
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
992 * @param fp pointer to an open FILE.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
993 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
994 size_t pst_attach_to_file(pst_file *pf, pst_item_attach *attach, FILE* fp);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
995
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
996
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
997 /** Write a binary attachment base64 encoded to a file.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
998 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
999 * @param attach pointer to the attachment record
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1000 * @param fp pointer to an open FILE.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1001 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1002 size_t pst_attach_to_file_base64(pst_file *pf, pst_item_attach *attach, FILE* fp);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1003
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1004
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1005 /** Walk the descriptor tree.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1006 * @param d pointer to the current item in the descriptor tree.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1007 * @return pointer to the next item in the descriptor tree.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1008 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1009 pst_desc_tree* pst_getNextDptr(pst_desc_tree* d);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1010
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1011
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1012 /** Assemble a mapi object from a descriptor pointer.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1013 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1014 * @param d_ptr pointer to an item in the descriptor tree.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1015 * @param m_head normally NULL. This is only used when processing embedded
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1016 * attached rfc822 messages, in which case it is attach->id2_head.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1017 * @return pointer to the mapi object. Must be free'd by pst_freeItem().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1018 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1019 pst_item* pst_parse_item (pst_file *pf, pst_desc_tree *d_ptr, pst_id2_tree *m_head);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1020
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1021
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1022 /** Free the item returned by pst_parse_item().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1023 * @param item pointer to item returned from pst_parse_item().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1024 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1025 void pst_freeItem(pst_item *item);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1026
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1027
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1028 /** Lookup the i_id in the index linked list, and return a pointer to the element.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1029 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1030 * @param i_id key for the index linked list
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1031 * @return pointer to the element, or NULL if not found.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1032 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1033 pst_index_ll* pst_getID(pst_file* pf, uint64_t i_id);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1034
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1035
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1036 /** Get an ID block from the file using pst_ff_getIDblock() and decrypt if necessary.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1037 * @param pf pointer to the pst_file structure setup by pst_open().
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1038 * @param i_id ID of block to retrieve
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1039 * @param buf reference to pointer to buffer that will contain the data block.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1040 * If this pointer is non-NULL, it will first be free()d.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1041 * @return Size of block read into memory
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1042 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1043 size_t pst_ff_getIDblock_dec(pst_file *pf, uint64_t i_id, char **buf);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1044
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1045
328
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1046 /** compare strings case-insensitive.
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1047 * @return -1 if a < b, 0 if a==b, 1 if a > b
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1048 */
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1049 int pst_stricmp(char *a, char *b);
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1050
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1051
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1052 /** fwrite with checking for null pointer.
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1053 * @param ptr pointer to the buffer
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1054 * @param size size of each item
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1055 * @param nmemb number of items
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1056 * @param stream output file
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1057 * @return number of bytes written, zero if ptr==NULL
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1058 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1059 size_t pst_fwrite(const void* ptr, size_t size, size_t nmemb, FILE* stream);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1060
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1061
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1062 /** Add any necessary escape characters for rfc2426 vcard format
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1063 * @param[in] str pointer to input string
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1064 * @param[in,out] result pointer to a char* pointer that may be realloc'ed if needed
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1065 * @param[in,out] resultlen size of the result buffer
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1066 * @return pointer to output string, either the input pointer if
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1067 * there are no characters that need escapes, or a pointer
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1068 * to a possibly realloc'ed result buffer.
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1069 */
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1070 char* pst_rfc2426_escape(char* str, char** result, size_t* resultlen);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1071
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1072
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1073 /** Convert a FILETIME into rfc2425 date/time format 1953-10-15T23:10:00Z
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1074 * which is the same as one of the forms in the ISO3601 standard
199
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1075 * @param[in] ft time to be converted
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1076 * @param[in] buflen length of the output buffer
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1077 * @param[out] result pointer to output buffer, must be at least 30 bytes
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1078 * @return time in rfc2425 format
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1079 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1080 char* pst_rfc2425_datetime_format(const FILETIME* ft, int buflen, char* result);
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1081
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1082
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1083 /** Convert a FILETIME into rfc2445 date/time format 19531015T231000Z
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1084 * @param[in] ft time to be converted
199
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1085 * @param[in] buflen length of the output buffer
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1086 * @param[out] result pointer to output buffer, must be at least 30 bytes
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1087 * @return time in rfc2445 format
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1088 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1089 char* pst_rfc2445_datetime_format(const FILETIME* ft, int buflen, char* result);
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
1090
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
1091
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1092 /** Convert the current time rfc2445 date/time format 19531015T231000Z
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1093 * @param[in] buflen length of the output buffer
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1094 * @param[out] result pointer to output buffer, must be at least 30 bytes
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1095 * @return time in rfc2445 format
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1096 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1097 char* pst_rfc2445_datetime_format_now(int buflen, char* result);
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1098
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1099
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1100 /** Get the default character set for this item. This is used to find
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1101 * the charset for pst_string elements that are not already in utf8 encoding.
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1102 * @param item pointer to the mapi item of interest
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1103 * @param[in] buflen length of the output buffer
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1104 * @param[out] result pointer to output buffer, must be at least 30 bytes
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1105 * @return default character set as a string useable by iconv()
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1106 */
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1107 const char* pst_default_charset(pst_item *item, int buflen, char* result);
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1108
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1109
257
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1110 /** Convert str to rfc2231 encoding of str
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1111 * @param str pointer to the mapi string of interest
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1112 */
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1113 void pst_rfc2231(pst_string *str);
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1114
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1115
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1116 /** Convert str to rfc2047 encoding of str, possibly enclosed in quotes if it contains spaces
271
eafaf362779e fixup doxygen errors
Carl Byington <carl@five-ten-sg.com>
parents: 257
diff changeset
1117 * @param item pointer to the containing mapi item
eafaf362779e fixup doxygen errors
Carl Byington <carl@five-ten-sg.com>
parents: 257
diff changeset
1118 * @param str pointer to the mapi string of interest
eafaf362779e fixup doxygen errors
Carl Byington <carl@five-ten-sg.com>
parents: 257
diff changeset
1119 * @param needs_quote true if strings containing spaces should be wrapped in quotes
257
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1120 */
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1121 void pst_rfc2047(pst_item *item, pst_string *str, int needs_quote);
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1122
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1123
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1124 /** Convert str to utf8 if possible; null strings are preserved.
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1125 * @param item pointer to the containing mapi item
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1126 * @param str pointer to the mapi string of interest
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1127 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1128 void pst_convert_utf8_null(pst_item *item, pst_string *str);
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1129
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1130
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1131 /** Convert str to utf8 if possible; null strings are converted into empty strings.
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1132 * @param item pointer to the containing mapi item
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1133 * @param str pointer to the mapi string of interest
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1134 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1135 void pst_convert_utf8(pst_item *item, pst_string *str);
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
1136
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1137
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1138 /** Decode raw recurrence data into a better structure.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1139 * @param appt pointer to appointment structure
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1140 * @return pointer to decoded recurrence structure that must be free'd by the caller.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1141 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1142 pst_recurrence* pst_convert_recurrence(pst_item_appointment* appt);
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1143
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1144
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1145 /** Free a recurrence structure.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1146 * @param r input pointer to be freed
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1147 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1148 void pst_free_recurrence(pst_recurrence* r);
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1149
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1150
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1151
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1152 // switch from maximal packing back to default packing
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1153 // undo the packing from the beginning of this file
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1154 #ifdef _MSC_VER
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1155 #pragma pack(pop)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1156 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1157 #if defined(__GNUC__) || defined (__SUNPRO_C) || defined(__SUNPRO_CC)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1158 #pragma pack()
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1159 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1160
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1161
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1162
182
b65e8d0a088a more cleanup on external names in the shared object file
Carl Byington <carl@five-ten-sg.com>
parents: 176
diff changeset
1163 #endif