annotate src/libpst.h @ 384:58149891ea7b

Paul Wise - add extern "C" to header for use with C++ code
author Carl Byington <carl@five-ten-sg.com>
date Tue, 10 Dec 2019 09:07:12 -0800
parents 0ccc746c8079
children 5c0ce43c7532
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
384
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
16 #ifdef __cplusplus
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
17 extern "C" {
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
18 #endif
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
19
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
20
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
21 // 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
22 // 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
23 #ifdef _MSC_VER
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
24 #pragma pack(push, 1)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
25 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
26 #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
27 #pragma pack(1)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
28 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
29
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
30
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
31 #define PST_TYPE_NOTE 1
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
32 #define PST_TYPE_SCHEDULE 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
33 #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
34 #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
35 #define PST_TYPE_JOURNAL 10
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
36 #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
37 #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
38 #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
39 #define PST_TYPE_REPORT 14
363
3a1d25c579c6 allow folders containing multiple item types; better detection of valid internet headers
Carl Byington <carl@five-ten-sg.com>
parents: 360
diff changeset
40 #define PST_TYPE_MAX 15
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
41
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
42 // 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
43 #define PST_NO_ENCRYPT 0
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
44 #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
45 #define PST_ENCRYPT 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
46
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
47 // defines different types of mappings
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
48 #define PST_MAP_ATTRIB (uint32_t)1
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
49 #define PST_MAP_HEADER (uint32_t)2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
50
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
51 // define my custom email attributes.
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
52 #define PST_ATTRIB_HEADER -1
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
53
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
54 // 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
55 #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
56 #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
57 #define PST_FREEBUSY_BUSY 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
58 #define PST_FREEBUSY_OUT_OF_OFFICE 3
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
59
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
60 // defines labels for appointment->label
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
61 #define PST_APP_LABEL_NONE 0
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
62 #define PST_APP_LABEL_IMPORTANT 1
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
63 #define PST_APP_LABEL_BUSINESS 2
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
64 #define PST_APP_LABEL_PERSONAL 3
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
65 #define PST_APP_LABEL_VACATION 4
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
66 #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
67 #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
68 #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
69 #define PST_APP_LABEL_BIRTHDAY 8
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
70 #define PST_APP_LABEL_ANNIVERSARY 9
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
71 #define PST_APP_LABEL_PHONE_CALL 10
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
72
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
73 // define type of recuring event
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
74 #define PST_APP_RECUR_NONE 0
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
75 #define PST_APP_RECUR_DAILY 1
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
76 #define PST_APP_RECUR_WEEKLY 2
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
77 #define PST_APP_RECUR_MONTHLY 3
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
78 #define PST_APP_RECUR_YEARLY 4
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
79
233
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
80 // define attachment types
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
81 #define PST_ATTACH_NONE 0
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
82 #define PST_ATTACH_BY_VALUE 1
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
83 #define PST_ATTACH_BY_REF 2
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
84 #define PST_ATTACH_BY_REF_RESOLV 3
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
85 #define PST_ATTACH_BY_REF_ONLY 4
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
86 #define PST_ATTACH_EMBEDDED 5
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
87 #define PST_ATTACH_OLE 6
1d50ff3c5091 better rfc822 embedded message decoding
Carl Byington <carl@five-ten-sg.com>
parents: 214
diff changeset
88
292
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
89 // define flags
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
90 #define PST_FLAG_READ 0x01
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
91 #define PST_FLAG_UNMODIFIED 0x02
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
92 #define PST_FLAG_SUBMIT 0x04
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
93 #define PST_FLAG_UNSENT 0x08
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
94 #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
95 #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
96 #define PST_FLAG_ASSOCIATED 0x40
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
97 #define PST_FLAG_RESEND 0x80
e0e5844d91b3 patch from Leo Antunes for Status: header
Carl Byington <carl@five-ten-sg.com>
parents: 271
diff changeset
98 #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
99 #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
100
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
101
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
102 typedef struct pst_entryid {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
103 int32_t u1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
104 char entryid[16];
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
105 uint32_t id;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
106 } pst_entryid;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
107
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
108
186
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
109 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
110 uint64_t i_id;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
111 uint64_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
112 uint64_t size;
373
0ccc746c8079 Zachary Travis - Add support for the OST 2013 format, and Content-Disposition filename key fix for outlook compatibility
Carl Byington <carl@five-ten-sg.com>
parents: 363
diff changeset
113 uint64_t inflated_size;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
114 int64_t u1;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
115 } pst_index_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
116
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
117
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
118 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
119 uint64_t id2;
0a4f7ecd7452 more cleanup of external names in the shared library
Carl Byington <carl@five-ten-sg.com>
parents: 182
diff changeset
120 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
121 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
122 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
123 } pst_id2_tree;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
124
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
125
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
126 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
127 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
128 uint64_t parent_d_id;
143
fdc58ad2c758 fix embedded rfc822 messages with attachments
Carl Byington <carl@five-ten-sg.com>
parents: 142
diff changeset
129 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
130 pst_index_ll *assoc_tree;
143
fdc58ad2c758 fix embedded rfc822 messages with attachments
Carl Byington <carl@five-ten-sg.com>
parents: 142
diff changeset
131 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
132 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
133 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
134 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
135 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
136 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
137 } pst_desc_tree;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
138
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
139
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
140 /** 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
141 * 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
142 * 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
143 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
144 typedef struct pst_string {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
145 /** @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
146 * @li 0 false */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
147 int is_utf8;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
148 char *str;
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
149 } pst_string;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
150
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
151
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
152 /** 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
153 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
154 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
155 char *data;
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
156 } pst_binary;
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
157
40e9de445038 improve consistency checking when fetching items from the pst file.
Carl Byington <carl@five-ten-sg.com>
parents: 164
diff changeset
158
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
159 /** 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
160 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
161 typedef struct pst_item_email {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
162 /** 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
163 FILETIME *arrival_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
164 /** 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
165 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
166 * @li 0 not set
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
167 * @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
168 int autoforward;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
169 /** 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
170 pst_string cc_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
171 /** 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
172 pst_string bcc_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
173 /** 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
174 pst_binary conversation_index;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
175 /** mapi element 0x3a03 PR_CONVERSION_PROHIBITED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
176 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
177 * @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
178 int conversion_prohibited;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
179 /** 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
180 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
181 * @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
182 int delete_after_submit;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
183 /** 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
184 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
185 * @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
186 int delivery_report;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
187 /** 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
188 pst_binary encrypted_body;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
189 /** 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
190 pst_binary encrypted_htmlbody;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
191 /** 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
192 pst_string header;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
193 /** mapi element 0x1013 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
194 pst_string htmlbody;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
195 /** mapi element 0x0017 PR_IMPORTANCE
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
196 * @li 0 low
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
197 * @li 1 normal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
198 * @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
199 int32_t importance;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
200 /** mapi element 0x1042 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
201 pst_string in_reply_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
202 /** 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
203 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
204 * @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
205 int message_cc_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
206 /** 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
207 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
208 * @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
209 int message_recip_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
210 /** 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
211 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
212 * @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
213 int message_to_me;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
214 /** mapi element 0x1035 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
215 pst_string messageid;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
216 /** mapi element 0x002e PR_ORIGINAL_SENSITIVITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
217 * @li 0=none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
218 * @li 1=personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
219 * @li 2=private
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
220 * @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
221 int32_t original_sensitivity;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
222 /** 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
223 pst_string original_bcc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
224 /** 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
225 pst_string original_cc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
226 /** 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
227 pst_string original_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
228 /** 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
229 pst_string outlook_recipient;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
230 /** 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
231 pst_string outlook_recipient_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
232 /** 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
233 pst_string outlook_recipient2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
234 /** 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
235 pst_string outlook_sender;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
236 /** 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
237 pst_string outlook_sender_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
238 /** 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
239 pst_string outlook_sender2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
240 /** mapi element 0x0026 PR_PRIORITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
241 * @li 0 nonurgent
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
242 * @li 1 normal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
243 * @li 2 urgent */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
244 /** 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
245 int32_t priority;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
246 /** 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
247 pst_string processed_subject;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
248 /** 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
249 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
250 * @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
251 int read_receipt;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
252 /** 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
253 pst_string recip_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
254 /** 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
255 pst_string recip_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
256 /** 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
257 pst_string recip2_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
258 /** 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
259 pst_string recip2_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
260 /** mapi element 0x0c17 PR_REPLY_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
261 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
262 * @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
263 int reply_requested;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
264 /** 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
265 pst_string reply_to;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
266 /** 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
267 pst_string return_path_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
268 /** 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
269 * 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
270 * 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
271 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
272 /** 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
273 int32_t rtf_body_crc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
274 /** 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
275 * 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
276 * 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
277 pst_string rtf_body_tag;
193
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
278 /** mapi element 0x1009 PR_RTF_COMPRESSED,
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
279 * the compressed rtf body data.
cf3df962f1e5 prep for fedora build
Carl Byington <carl@five-ten-sg.com>
parents: 191
diff changeset
280 * 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
281 pst_binary rtf_compressed;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
282 /** 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
283 * 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
284 * 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
285 * 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
286 * cannot update to the rtf.
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
287 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
288 * @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
289 int rtf_in_sync;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
290 /** 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
291 * 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
292 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
293 /** 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
294 * 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
295 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
296 /** 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
297 pst_string sender_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
298 /** 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
299 pst_string sender_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
300 /** 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
301 pst_string sender2_access;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
302 /** 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
303 pst_string sender2_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
304 /** mapi element 0x0036 PR_SENSITIVITY
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
305 * @li 0=none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
306 * @li 1=personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
307 * @li 2=private
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
308 * @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
309 int32_t sensitivity;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
310 /** 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
311 FILETIME *sent_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
312 /** 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
313 pst_entryid *sentmail_folder;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
314 /** 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
315 pst_string sentto_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
316 /** 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
317 pst_string report_text;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
318 /** 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
319 FILETIME *report_time;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
320 /** 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
321 int32_t ndr_reason_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
322 /** 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
323 int32_t ndr_diag_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
324 /** 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
325 pst_string supplementary_info;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
326 /** 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
327 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
328
97c53c6868ab add -m option to readpst to create Outlook .msg files
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
329 // 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
330 /** 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
331 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
332 /** 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
333 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
334 /** 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
335 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
336 /** 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
337 pst_string outlook_search_key;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
338 } pst_item_email;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
339
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
340
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
341 /** 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
342 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
343 typedef struct pst_item_folder {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
344 /** 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
345 int32_t item_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
346 /** 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
347 int32_t unseen_item_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
348 /** 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
349 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
350 */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
351 int32_t assoc_count;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
352 /** mapi element 0x360a PR_SUBFOLDERS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
353 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
354 * @li 0 false */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
355 /** 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
356 int subfolder;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
357 } pst_item_folder;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
358
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
359
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
360 /** 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
361 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
362 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
363 /** mapi element 0x35e0 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
364 pst_entryid *top_of_personal_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
365 /** mapi element 0x35e2 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
366 pst_entryid *default_outbox_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
367 /** mapi element 0x35e3 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
368 pst_entryid *deleted_items_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
369 /** mapi element 0x35e4 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
370 pst_entryid *sent_items_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
371 /** mapi element 0x35e5 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
372 pst_entryid *user_views_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
373 /** mapi element 0x35e6 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
374 pst_entryid *common_view_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
375 /** mapi element 0x35e7 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
376 pst_entryid *search_root_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
377 /** mapi element 0x7c07 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
378 pst_entryid *top_of_folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
379 /** mapi element 0x35df,
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
380 * 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
381 * @li 0x1 FOLDER_IPM_SUBTREE_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
382 * @li 0x2 FOLDER_IPM_INBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
383 * @li 0x4 FOLDER_IPM_OUTBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
384 * @li 0x8 FOLDER_IPM_WASTEBOX_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
385 * @li 0x10 FOLDER_IPM_SENTMAIL_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
386 * @li 0x20 FOLDER_VIEWS_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
387 * @li 0x40 FOLDER_COMMON_VIEWS_VALID
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
388 * @li 0x80 FOLDER_FINDER_VALID */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
389 int32_t valid_mask;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
390 /** mapi element 0x76ff */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
391 int32_t pwd_chksum;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
392 } pst_item_message_store;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
393
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
394
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
395 /** 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
396 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
397 typedef struct pst_item_contact {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
398 /** 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
399 pst_string account_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
400 /** 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
401 pst_string address1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
402 /** mapi element 0x8085 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
403 pst_string address1a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
404 /** mapi element 0x8084 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
405 pst_string address1_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
406 /** 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
407 pst_string address1_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
408 /** mapi element 0x8093 */
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;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
410 /** mapi element 0x8095 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
411 pst_string address2a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
412 /** mapi element 0x8094 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
413 pst_string address2_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
414 /** mapi element 0x8092 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
415 pst_string address2_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
416 /** mapi element 0x80a3 */
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;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
418 /** mapi element 0x80a5 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
419 pst_string address3a;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
420 /** mapi element 0x80a4 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
421 pst_string address3_desc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
422 /** mapi element 0x80a2 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
423 pst_string address3_transport;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
424 /** 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
425 pst_string assistant_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
426 /** 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
427 pst_string assistant_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
428 /** mapi element 0x8535 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
429 pst_string billing_information;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
430 /** 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
431 FILETIME *birthday;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
432 /** mapi element 0x801b */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
433 pst_string business_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
434 /** 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
435 pst_string business_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
436 /** 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
437 pst_string business_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
438 /** 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
439 pst_string business_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
440 /** 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
441 pst_string business_homepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
442 /** 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
443 pst_string business_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
444 /** 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
445 pst_string business_phone2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
446 /** 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
447 pst_string business_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
448 /** 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
449 pst_string business_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
450 /** 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
451 pst_string business_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
452 /** 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
453 pst_string business_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
454 /** 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
455 pst_string callback_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
456 /** 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
457 pst_string car_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
458 /** 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
459 pst_string company_main_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
460 /** 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
461 pst_string company_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
462 /** 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
463 pst_string computer_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
464 /** 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
465 pst_string customer_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
466 /** 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
467 pst_string def_postal_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
468 /** 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
469 pst_string department;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
470 /** 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
471 pst_string display_name_prefix;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
472 /** 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
473 pst_string first_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
474 /** mapi element 0x8530 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
475 pst_string followup;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
476 /** mapi element 0x80d8 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
477 pst_string free_busy_address;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
478 /** 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
479 pst_string ftp_site;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
480 /** mapi element 0x8005 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
481 pst_string fullname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
482 /** mapi element 0x3a4d PR_GENDER
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
483 * @li 0 unspecified
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
484 * @li 1 female
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
485 * @li 2 male */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
486 int16_t gender;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
487 /** 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
488 pst_string gov_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
489 /** 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
490 pst_string hobbies;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
491 /** mapi element 0x801a */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
492 pst_string home_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
493 /** 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
494 pst_string home_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
495 /** 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
496 pst_string home_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
497 /** 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
498 pst_string home_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
499 /** 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
500 pst_string home_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
501 /** 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
502 pst_string home_phone2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
503 /** 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
504 pst_string home_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
505 /** 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
506 pst_string home_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
507 /** 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
508 pst_string home_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
509 /** 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
510 pst_string home_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
511 /** 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
512 pst_string initials;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
513 /** 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
514 pst_string isdn_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
515 /** 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
516 pst_string job_title;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
517 /** 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
518 pst_string keyword;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
519 /** 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
520 pst_string language;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
521 /** 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
522 pst_string location;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
523 /** mapi element 0x3a0e PR_MAIL_PERMISSION
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
524 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
525 * @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
526 int mail_permission;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
527 /** 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
528 pst_string manager_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
529 /** 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
530 pst_string middle_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
531 /** mapi element 0x8534 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
532 pst_string mileage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
533 /** 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
534 pst_string mobile_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
535 /** 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
536 pst_string nickname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
537 /** 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
538 pst_string office_loc;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
539 /** 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
540 pst_string common_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
541 /** 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
542 pst_string org_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
543 /** mapi element 0x801c */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
544 pst_string other_address;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
545 /** 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
546 pst_string other_city;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
547 /** 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
548 pst_string other_country;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
549 /** 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
550 pst_string other_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
551 /** 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
552 pst_string other_po_box;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
553 /** 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
554 pst_string other_postal_code;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
555 /** 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
556 pst_string other_state;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
557 /** 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
558 pst_string other_street;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
559 /** 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
560 pst_string pager_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
561 /** 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
562 pst_string personal_homepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
563 /** 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
564 pst_string pref_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
565 /** 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
566 pst_string primary_fax;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
567 /** 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
568 pst_string primary_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
569 /** 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
570 pst_string profession;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
571 /** 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
572 pst_string radio_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
573 /** 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
574 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
575 * @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
576 int rich_text;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
577 /** 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
578 pst_string spouse_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
579 /** 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
580 pst_string suffix;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
581 /** 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
582 pst_string surname;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
583 /** 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
584 pst_string telex;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
585 /** 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
586 pst_string transmittable_display_name;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
587 /** 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
588 pst_string ttytdd_phone;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
589 /** 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
590 FILETIME *wedding_anniversary;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
591 /** mapi element 0x8045 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
592 pst_string work_address_street;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
593 /** mapi element 0x8046 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
594 pst_string work_address_city;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
595 /** mapi element 0x8047 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
596 pst_string work_address_state;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
597 /** mapi element 0x8048 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
598 pst_string work_address_postalcode;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
599 /** mapi element 0x8049 */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
600 pst_string work_address_country;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
601 /** mapi element 0x804a */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
602 pst_string work_address_postofficebox;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
603 } pst_item_contact;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
604
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
605
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
606 /** 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
607 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
608 typedef struct pst_item_attach {
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
609 /** 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
610 pst_string filename1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
611 /** 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
612 pst_string filename2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
613 /** 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
614 pst_string mimetype;
352
09dd5299d91c Added Content-ID header support
Igor Stroh <igor.stroh@rulim.de>
parents: 328
diff changeset
615 /** mapi element 0x3712 PR_ATTACH_CONTENT_ID */
09dd5299d91c Added Content-ID header support
Igor Stroh <igor.stroh@rulim.de>
parents: 328
diff changeset
616 pst_string content_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
617 /** 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
618 pst_binary data;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
619 /** 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
620 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
621 /** 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
622 uint64_t i_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
623 /** 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
624 pst_id2_tree *id2_head;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
625 /** mapi element 0x3705 PR_ATTACH_METHOD
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
626 * @li 0 no attachment
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
627 * @li 1 attach by value
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
628 * @li 2 attach by reference
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
629 * @li 3 attach by reference resolve
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
630 * @li 4 attach by reference only
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
631 * @li 5 embedded message
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
632 * @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
633 int32_t method;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
634 /** 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
635 int32_t position;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
636 /** 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
637 int32_t sequence;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
638 struct pst_item_attach *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
639 } pst_item_attach;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
640
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
641
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
642 /** linked list of extra header fields */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
643 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
644 char *field_name;
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
645 char *value;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
646 struct pst_item_extra_field *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
647 } pst_item_extra_field;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
648
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
649
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
650 /** 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
651 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
652 typedef struct pst_item_journal {
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
653 /** mapi element 0x8706 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
654 FILETIME *start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
655 /** mapi element 0x8708 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
656 FILETIME *end;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
657 /** mapi element 0x8700 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
658 pst_string type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
659 /** mapi element 0x8712 */
152
edebaf0e87d2 more code cleanup
Carl Byington <carl@five-ten-sg.com>
parents: 151
diff changeset
660 pst_string description;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
661 } pst_item_journal;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
662
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
663
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
664 /** 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
665 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
666 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
667 typedef struct pst_recurrence {
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
668 /** 0x30043004 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
669 uint32_t signature;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
670 /** @li 0 daily
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
671 * @li 1 weekly
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
672 * @li 2 monthly
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
673 * @li 3 yearly */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
674 uint32_t type;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
675 /** implies number of recurrence parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
676 * @li 0 has 3 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
677 * @li 1 has 4 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
678 * @li 2 has 4 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
679 * @li 3 has 5 parameters
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
680 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
681 uint32_t sub_type;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
682 /** 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
683 uint32_t parm1;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
684 uint32_t parm2;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
685 uint32_t parm3;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
686 uint32_t parm4;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
687 uint32_t parm5;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
688 /** type of termination of the recurrence
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
689 @li 0 terminates on a date
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
690 @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
691 @li 2 never terminates
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
692 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
693 uint32_t termination;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
694 /** 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
695 uint32_t interval;
199
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
696 /** bit mask of days of the week */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
697 uint32_t bydaymask;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
698 /** 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
699 uint32_t dayofmonth;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
700 /** month of year for yearly recurrences */
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
701 uint32_t monthofyear;
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
702 /** 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
703 uint32_t position;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
704 /** 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
705 uint32_t count;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
706 // 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
707 // 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
708 } pst_recurrence;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
709
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
710
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
711 /** 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
712 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
713 typedef struct pst_item_appointment {
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
714 /** 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
715 FILETIME *start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
716 /** 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
717 FILETIME *end;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
718 /** 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
719 pst_string location;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
720 /** 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
721 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
722 * @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
723 int alarm;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
724 /** mapi element 0x8560 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
725 FILETIME *reminder;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
726 /** 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
727 int32_t alarm_minutes;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
728 /** mapi element 0x851f */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
729 pst_string alarm_filename;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
730 /** mapi element 0x8234 */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
731 pst_string timezonestring;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
732 /** 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
733 * @li 0 free
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
734 * @li 1 tentative
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
735 * @li 2 busy
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
736 * @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
737 int32_t showas;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
738 /** mapi element 0x8214
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
739 * @li 0 None
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
740 * @li 1 Important
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
741 * @li 2 Business
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
742 * @li 3 Personal
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
743 * @li 4 Vacation
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
744 * @li 5 Must Attend
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
745 * @li 6 Travel Required
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
746 * @li 7 Needs Preparation
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
747 * @li 8 Birthday
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
748 * @li 9 Anniversary
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
749 * @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
750 int32_t label;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
751 /** 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
752 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
753 * @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
754 int all_day;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
755 /** 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
756 * @li 1 true
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
757 * @li 0 false */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
758 int is_recurring;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
759 /** mapi element 0x8231
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
760 * @li 0 none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
761 * @li 1 daily
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
762 * @li 2 weekly
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
763 * @li 3 monthly
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
764 * @li 4 yearly */
151
cda7c812ec01 track character set individually for each mapi element
Carl Byington <carl@five-ten-sg.com>
parents: 150
diff changeset
765 int32_t recurrence_type;
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
766 /** mapi element 0x8232 recurrence description */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
767 pst_string recurrence_description;
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
768 /** mapi element 0x8216 recurrence data */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
769 pst_binary recurrence_data;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
770 /** 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
771 FILETIME *recurrence_start;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
772 /** 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
773 FILETIME *recurrence_end;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
774 } pst_item_appointment;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
775
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
776
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
777 /** 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
778 * 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
779 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
780 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
781 /** 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
782 struct pst_file *pf;
297
8b3a827b71f4 add alarm reminders to calendar events
Carl Byington <carl@five-ten-sg.com>
parents: 292
diff changeset
783 /** 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
784 uint64_t block_id;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
785 /** email mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
786 pst_item_email *email;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
787 /** folder mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
788 pst_item_folder *folder;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
789 /** contact mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
790 pst_item_contact *contact;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
791 /** linked list of attachments */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
792 pst_item_attach *attach;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
793 /** message store mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
794 pst_item_message_store *message_store;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
795 /** 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
796 pst_item_extra_field *extra_fields;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
797 /** journal mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
798 pst_item_journal *journal;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
799 /** calendar mapi elements */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
800 pst_item_appointment *appointment;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
801 /** 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
802 * @li 1 PST_TYPE_NOTE
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
803 * @li 2 PST_TYPE_SCHEDULE
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
804 * @li 8 PST_TYPE_APPOINTMENT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
805 * @li 9 PST_TYPE_CONTACT
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
806 * @li 10 PST_TYPE_JOURNAL
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
807 * @li 11 PST_TYPE_STICKYNOTE
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
808 * @li 12 PST_TYPE_TASK
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
809 * @li 13 PST_TYPE_OTHER
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
810 * @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
811 int type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
812 /** 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
813 char *ascii_type;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
814 /** mapi element 0x0e07 PR_MESSAGE_FLAGS
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
815 * @li 0x01 Read
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
816 * @li 0x02 Unmodified
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
817 * @li 0x04 Submit
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
818 * @li 0x08 Unsent
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
819 * @li 0x10 Has Attachments
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
820 * @li 0x20 From Me
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
821 * @li 0x40 Associated
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
822 * @li 0x80 Resend
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
823 * @li 0x100 RN Pending
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
824 * @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
825 int32_t flags;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
826 /** 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
827 pst_string file_as;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
828 /** 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
829 pst_string comment;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
830 /** 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
831 pst_string body_charset;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
832 /** 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
833 pst_string body;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
834 /** 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
835 pst_string subject;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
836 /** 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
837 int32_t internet_cpid;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
838 /** 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
839 int32_t message_codepage;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
840 /** 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
841 int32_t message_size;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
842 /** 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
843 pst_string outlook_version;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
844 /** 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
845 pst_binary record_key;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
846 /** 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
847 pst_binary predecessor_change;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
848 /** mapi element 0x0063 PR_RESPONSE_REQUESTED
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
849 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
850 * @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
851 int response_requested;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
852 /** 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
853 FILETIME *create_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
854 /** 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
855 FILETIME *modify_date;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
856 /** 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
857 * @li 1 true
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
858 * @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
859 int private_member;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
860 } pst_item;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
861
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
862
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
863 /** 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
864 * 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
865 * 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
866 * 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
867 * 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
868 * (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
869 * (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
870 */
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
871 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
872 /** @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
873 @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
874 */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
875 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
876 /** key for the mapping */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
877 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
878 /** 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
879 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
880 /** link to next item in the list */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
881 struct pst_x_attrib_ll *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
882 } pst_x_attrib_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
883
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
884
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
885 /** this is only used for internal debugging */
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
886 typedef struct pst_block_recorder {
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
887 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
888 int64_t offset;
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
889 size_t size;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
890 int readcount;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
891 } pst_block_recorder;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
892
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
893
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
894 typedef struct pst_file {
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
895 /** file pointer to opened PST file */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
896 FILE* fp;
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
897 /** original cwd when the file was opened */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
898 char* cwd;
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
899 /** original file name when the file was opened */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
900 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
901 /** default character set for items without one */
328
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
902 const char* charset;
360
26c48ea9d896 From Jeffrey Morlan:
Carl Byington <carl@five-ten-sg.com>
parents: 352
diff changeset
903 /** the array of index structures */
26c48ea9d896 From Jeffrey Morlan:
Carl Byington <carl@five-ten-sg.com>
parents: 352
diff changeset
904 pst_index_ll *i_table;
26c48ea9d896 From Jeffrey Morlan:
Carl Byington <carl@five-ten-sg.com>
parents: 352
diff changeset
905 size_t i_count, i_capacity;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
906 /** 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
907 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
908 /** the head of the extended attributes linked list */
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
909 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
910 /** 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
911 * 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
912 * block multiple times while processing a pst file. */
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
913 pst_block_recorder *block_head;
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
914
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
915 /** @li 0 is 32-bit pst file, pre Outlook 2003;
373
0ccc746c8079 Zachary Travis - Add support for the OST 2013 format, and Content-Disposition filename key fix for outlook compatibility
Carl Byington <carl@five-ten-sg.com>
parents: 363
diff changeset
916 * @li 1 is 64-bit pst file, Outlook 2003 or later;
0ccc746c8079 Zachary Travis - Add support for the OST 2013 format, and Content-Disposition filename key fix for outlook compatibility
Carl Byington <carl@five-ten-sg.com>
parents: 363
diff changeset
917 * @li 2 is 64-bit OST file, Outlook 2013 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
918 int do_read64;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
919 /** 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
920 uint64_t index1;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
921 /** 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
922 uint64_t index1_back;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
923 /** 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
924 uint64_t index2;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
925 /** 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
926 uint64_t index2_back;
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
927 /** size of the pst file */
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
928 uint64_t size;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
929 /** @li 0 PST_NO_ENCRYPT, none
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
930 * @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
931 * @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
932 unsigned char encryption;
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
933 /** index type or file type
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
934 * @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
935 * @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
936 * @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
937 * @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
938 unsigned char ind_type;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
939 } pst_file;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
940
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
941
191
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
942 /** 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
943 * @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
944 * 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
945 * @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
946 * @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
947 * @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
948 */
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
949 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
950
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
951
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
952 /** Reopen the pst file after a fork
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
953 * @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
954 * @return 0 if ok, -1 if error
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
955 */
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
956 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
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 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
960 * 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
961 * 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
962 * @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
963 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
964 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
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
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
967 /** 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
968 * 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
969 * @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
970 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
971 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
972
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
973
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
974 /** 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
975 * @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
976 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
977 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
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 /** 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
981 * 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
982 * @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
983 * @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
984 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
985 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
986
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 /** 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
989 * @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
990 * @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
991 * @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
992 * 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
993 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
994 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
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 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(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 /** 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
1006 * @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
1007 * @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
1008 * @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
1009 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1010 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
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
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1013 /** 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
1014 * @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
1015 * @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
1016 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1017 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
1018
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1019
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1020 /** 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
1021 * @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
1022 * @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
1023 * @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
1024 * 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
1025 * @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
1026 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1027 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
1028
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1029
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1030 /** 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
1031 * @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
1032 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1033 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
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 /** 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
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 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
1039 * @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
1040 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1041 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
1042
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1043
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1044 /** 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
1045 * @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
1046 * @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
1047 * @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
1048 * 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
1049 * @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
1050 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1051 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
1052
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1053
328
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1054 /** compare strings case-insensitive.
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1055 * @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
1056 */
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1057 int pst_stricmp(char *a, char *b);
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1058
c507af52515a add readpst -a option
Carl Byington <carl@five-ten-sg.com>
parents: 316
diff changeset
1059
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 /** 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
1061 * @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
1062 * @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
1063 * @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
1064 * @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
1065 * @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
1066 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1067 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
1068
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1069
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1070 /** 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
1071 * @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
1072 * @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
1073 * @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
1074 * @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
1075 * 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
1076 * 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
1077 */
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1078 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
1079
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1080
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1081 /** 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
1082 * 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
1083 * @param[in] ft time to be converted
e3a46f66332b more changes in recurrence decoding
Carl Byington <carl@five-ten-sg.com>
parents: 198
diff changeset
1084 * @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
1085 * @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
1086 * @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
1087 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1088 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
1089
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1090
4b498fd68464 add pst_attach_to_mem() back into the shared library interface.
Carl Byington <carl@five-ten-sg.com>
parents: 190
diff changeset
1091 /** 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
1092 * @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
1093 * @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
1094 * @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
1095 * @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
1096 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1097 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
1098
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
1099
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1100 /** 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
1101 * @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
1102 * @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
1103 * @return time in rfc2445 format
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1104 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1105 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
1106
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1107
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1108 /** 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
1109 * 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
1110 * @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
1111 * @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
1112 * @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
1113 * @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
1114 */
211
94bde95d7e18 the shared library interface should now be thread safe
Carl Byington <carl@five-ten-sg.com>
parents: 204
diff changeset
1115 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
1116
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1117
257
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1118 /** 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
1119 * @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
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_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
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
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1124 /** 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
1125 * @param item pointer to the containing mapi item
eafaf362779e fixup doxygen errors
Carl Byington <carl@five-ten-sg.com>
parents: 257
diff changeset
1126 * @param str pointer to the mapi string of interest
eafaf362779e fixup doxygen errors
Carl Byington <carl@five-ten-sg.com>
parents: 257
diff changeset
1127 * @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
1128 */
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1129 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
1130
c947b8812120 rfc2047 and rfc2231 encoding for non-ascii headers and attachment filenames
Carl Byington <carl@five-ten-sg.com>
parents: 233
diff changeset
1131
190
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1132 /** 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
1133 * @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
1134 * @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
1135 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1136 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
1137
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1138
e3a63888cdd4 add documentation for shared library interface
Carl Byington <carl@five-ten-sg.com>
parents: 188
diff changeset
1139 /** 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
1140 * @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
1141 * @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
1142 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1143 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
1144
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1145
198
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1146 /** 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
1147 * @param appt pointer to appointment structure
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1148 * @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
1149 */
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1150 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
1151
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1152
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1153 /** Free a recurrence structure.
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1154 * @param r input pointer to be freed
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1155 */
201
3850a3b11745 fixes for parallel readpst
Carl Byington <carl@five-ten-sg.com>
parents: 199
diff changeset
1156 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
1157
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1158
7c60d6d1c681 decode more recurrence mapi elements
Carl Byington <carl@five-ten-sg.com>
parents: 195
diff changeset
1159
130
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1160 // 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
1161 // 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
1162 #ifdef _MSC_VER
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1163 #pragma pack(pop)
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1164 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1165 #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
1166 #pragma pack()
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1167 #endif
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1168
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1169
e35fd42bac05 more cleanup of include files
Carl Byington <carl@five-ten-sg.com>
parents: 128
diff changeset
1170
384
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1171 #ifdef __cplusplus
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1172 }
182
b65e8d0a088a more cleanup on external names in the shared object file
Carl Byington <carl@five-ten-sg.com>
parents: 176
diff changeset
1173 #endif
384
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1174
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1175
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1176
58149891ea7b Paul Wise - add extern "C" to header for use with C++ code
Carl Byington <carl@five-ten-sg.com>
parents: 373
diff changeset
1177 #endif