annotate src/libpst.h @ 118:0f1492b7fe8b

patch from Fridrich Strba for building on mingw and general cleanup of autoconf files add processing for pst files of type 0x0f start adding support for properly building and installing libpst.so and the header files required to use it. remove version.h since the version number is now in config.h more const correctness issues regarding getopt()
author Carl Byington <carl@five-ten-sg.com>
date Sat, 31 Jan 2009 12:12:36 -0800
parents ed2a260bbb98
children 6395ced2b8b2
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
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
10 #ifndef LIBPST_H
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
11 #define LIBPST_H
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
12
118
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
13 #ifndef _WIN32
75
987aa872294e Use ftello/fseeko to properly handle large files.
Carl Byington <carl@five-ten-sg.com>
parents: 73
diff changeset
14 #include <stdint.h>
87
3ec5ad97e926 Use inttypes.h for portable printing of 64 bit items.
Carl Byington <carl@five-ten-sg.com>
parents: 79
diff changeset
15 #include <inttypes.h>
75
987aa872294e Use ftello/fseeko to properly handle large files.
Carl Byington <carl@five-ten-sg.com>
parents: 73
diff changeset
16 #ifndef FILETIME_DEFINED
118
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
17 #define FILETIME_DEFINED
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
18 //Win32 Filetime struct - copied from WINE
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
19 typedef struct {
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
20 uint32_t dwLowDateTime;
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
21 uint32_t dwHighDateTime;
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
22 } FILETIME;
75
987aa872294e Use ftello/fseeko to properly handle large files.
Carl Byington <carl@five-ten-sg.com>
parents: 73
diff changeset
23 #endif
987aa872294e Use ftello/fseeko to properly handle large files.
Carl Byington <carl@five-ten-sg.com>
parents: 73
diff changeset
24 #endif
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
25
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
26 // According to Jan Wolter, sys/param.h is the most portable source of endian
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
27 // information on UNIX systems. see http://www.unixpapa.com/incnote/byteorder.html
118
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
28 #ifdef _WIN32
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
29 #define BYTE_ORDER LITTLE_ENDIAN
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
30 #else
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
31 #include <sys/param.h>
118
0f1492b7fe8b patch from Fridrich Strba for building on mingw and general cleanup of autoconf files
Carl Byington <carl@five-ten-sg.com>
parents: 116
diff changeset
32 #endif // defined _WIN32
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
33
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
34 #if BYTE_ORDER == BIG_ENDIAN
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
35 # define LE64_CPU(x) \
90
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
36 x = ((((x) & UINT64_C(0xff00000000000000)) >> 56) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
37 (((x) & UINT64_C(0x00ff000000000000)) >> 40) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
38 (((x) & UINT64_C(0x0000ff0000000000)) >> 24) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
39 (((x) & UINT64_C(0x000000ff00000000)) >> 8 ) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
40 (((x) & UINT64_C(0x00000000ff000000)) << 8 ) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
41 (((x) & UINT64_C(0x0000000000ff0000)) << 24) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
42 (((x) & UINT64_C(0x000000000000ff00)) << 40) | \
631d02d30a1c More fixes for 32/64 bit portability on big endian ppc.
Carl Byington <carl@five-ten-sg.com>
parents: 87
diff changeset
43 (((x) & UINT64_C(0x00000000000000ff)) << 56));
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
44 # define LE32_CPU(x) \
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
45 x = ((((x) & 0xff000000) >> 24) | \
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
46 (((x) & 0x00ff0000) >> 8 ) | \
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
47 (((x) & 0x0000ff00) << 8 ) | \
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
48 (((x) & 0x000000ff) << 24));
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
49 # define LE16_CPU(x) \
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
50 x = ((((x) & 0xff00) >> 8) | \
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
51 (((x) & 0x00ff) << 8));
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
52 #elif BYTE_ORDER == LITTLE_ENDIAN
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
53 # define LE64_CPU(x) {}
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
54 # define LE32_CPU(x) {}
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
55 # define LE16_CPU(x) {}
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
56 #else
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
57 # error "Byte order not supported by this library"
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
58 #endif // BYTE_ORDER
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
59
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
60
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
61 #define PST_TYPE_NOTE 1
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
62 #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
63 #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
64 #define PST_TYPE_JOURNAL 10
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
65 #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
66 #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
67 #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
68 #define PST_TYPE_REPORT 14
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
69
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
70 // defines whether decryption is done on this bit of data
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
71 #define PST_NO_ENC 0
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
72 #define PST_ENC 1
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
73
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
74 // 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
75 #define PST_NO_ENCRYPT 0
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
76 #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
77 #define PST_ENCRYPT 2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
78
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
79 // defines different types of mappings
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
80 #define PST_MAP_ATTRIB (uint32_t)1
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
81 #define PST_MAP_HEADER (uint32_t)2
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
82
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
83 // define my custom email attributes.
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
84 #define PST_ATTRIB_HEADER -1
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
85
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
86 // defines types of free/busy values for appointment->showas
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
87 #define PST_FREEBUSY_FREE 0
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
88 #define PST_FREEBUSY_TENTATIVE 1
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
89 #define PST_FREEBUSY_BUSY 2
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
90 #define PST_FREEBUSY_OUT_OF_OFFICE 3
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
91
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
92 // defines labels for appointment->label
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
93 #define PST_APP_LABEL_NONE 0 // None
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
94 #define PST_APP_LABEL_IMPORTANT 1 // Important
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
95 #define PST_APP_LABEL_BUSINESS 2 // Business
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
96 #define PST_APP_LABEL_PERSONAL 3 // Personal
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
97 #define PST_APP_LABEL_VACATION 4 // Vacation
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
98 #define PST_APP_LABEL_MUST_ATTEND 5 // Must Attend
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
99 #define PST_APP_LABEL_TRAVEL_REQ 6 // Travel Required
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
100 #define PST_APP_LABEL_NEEDS_PREP 7 // Needs Preparation
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
101 #define PST_APP_LABEL_BIRTHDAY 8 // Birthday
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
102 #define PST_APP_LABEL_ANNIVERSARY 9 // Anniversary
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
103 #define PST_APP_LABEL_PHONE_CALL 10// Phone Call
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
104
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
105 // define type of reccuring event
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
106 #define PST_APP_RECUR_NONE 0
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
107 #define PST_APP_RECUR_DAILY 1
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
108 #define PST_APP_RECUR_WEEKLY 2
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
109 #define PST_APP_RECUR_MONTHLY 3
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
110 #define PST_APP_RECUR_YEARLY 4
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
111
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
112
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
113 typedef struct pst_misc_6_struct {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
114 int32_t i1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
115 int32_t i2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
116 int32_t i3;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
117 int32_t i4;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
118 int32_t i5;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
119 int32_t i6;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
120 } pst_misc_6;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
121
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
122
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
123 typedef struct pst_entryid_struct {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
124 int32_t u1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
125 char entryid[16];
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
126 uint32_t id;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
127 } pst_entryid;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
128
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
129
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
130 typedef struct pst_desc_struct32 {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
131 uint32_t d_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
132 uint32_t desc_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
133 uint32_t list_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
134 uint32_t parent_id;
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
135 } pst_desc32;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
136
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
137
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
138 typedef struct pst_desc_structn {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
139 uint64_t d_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
140 uint64_t desc_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
141 uint64_t list_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
142 uint32_t parent_id; // not 64 bit ??
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
143 uint32_t u1; // padding
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
144 } pst_descn;
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
145
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
146
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
147 typedef struct pst_index_struct32 {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
148 uint32_t id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
149 uint32_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
150 uint16_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
151 int16_t u1;
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
152 } pst_index32;
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
153
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
154
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
155 typedef struct pst_index_struct {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
156 uint64_t id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
157 uint64_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
158 uint16_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
159 int16_t u0;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
160 int32_t u1;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
161 } pst_index;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
162
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
163
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
164 typedef struct pst_index_tree32 {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
165 uint32_t id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
166 uint32_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
167 uint32_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
168 int32_t u1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
169 struct pst_index_tree * next;
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
170 } pst_index_ll32;
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
171
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
172
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
173 typedef struct pst_index_tree {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
174 uint64_t id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
175 uint64_t offset;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
176 uint64_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
177 int64_t u1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
178 struct pst_index_tree * next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
179 } pst_index_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
180
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
181
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
182 typedef struct pst_index2_tree {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
183 uint64_t id2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
184 pst_index_ll *id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
185 struct pst_index2_tree * next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
186 } pst_index2_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
187
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
188
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
189 typedef struct pst_desc_tree {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
190 uint64_t id;
101
1fc33da23175 fix for orphan children when building descriptor tree, avoid writing uninitialized data to debug log file
Carl Byington <carl@five-ten-sg.com>
parents: 94
diff changeset
191 uint64_t parent_id;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
192 pst_index_ll * list_index;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
193 pst_index_ll * desc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
194 int32_t no_child;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
195 struct pst_desc_tree * prev;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
196 struct pst_desc_tree * next;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
197 struct pst_desc_tree * parent;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
198 struct pst_desc_tree * child;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
199 struct pst_desc_tree * child_tail;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
200 } pst_desc_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
201
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
202
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
203 typedef struct pst_item_email_subject {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
204 int off1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
205 int off2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
206 char *subj;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
207 } pst_item_email_subject;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
208
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
209
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
210 typedef struct pst_item_email {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
211 FILETIME *arrival_date;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
212 int autoforward; // 1 = true, 0 = not set, -1 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
213 char *body;
116
ed2a260bbb98 improve handling of content-type charset values in mime parts
Carl Byington <carl@five-ten-sg.com>
parents: 102
diff changeset
214 char *body_charset; // null if not specified
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
215 char *cc_address;
59
7d5c637aaafb General cleanup and code fixes.
Carl Byington <carl@five-ten-sg.com>
parents: 52
diff changeset
216 char *bcc_address;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
217 char *common_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
218 int32_t conv_index;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
219 int conversion_prohib; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
220 int delete_after_submit; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
221 int delivery_report; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
222 char *encrypted_body;
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
223 size_t encrypted_body_size;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
224 char *encrypted_htmlbody;
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
225 size_t encrypted_htmlbody_size;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
226 int32_t flag;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
227 char *header;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
228 char *htmlbody;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
229 int32_t importance;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
230 char *in_reply_to;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
231 int message_cc_me; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
232 int message_recip_me; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
233 int message_to_me; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
234 char *messageid;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
235 int32_t orig_sensitivity;
63
cfd6175f9334 Start work on pst2dii to convert to Summation dii load file format.
Carl Byington <carl@five-ten-sg.com>
parents: 59
diff changeset
236 char *original_bcc;
cfd6175f9334 Start work on pst2dii to convert to Summation dii load file format.
Carl Byington <carl@five-ten-sg.com>
parents: 59
diff changeset
237 char *original_cc;
cfd6175f9334 Start work on pst2dii to convert to Summation dii load file format.
Carl Byington <carl@five-ten-sg.com>
parents: 59
diff changeset
238 char *original_to;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
239 char *outlook_recipient;
63
cfd6175f9334 Start work on pst2dii to convert to Summation dii load file format.
Carl Byington <carl@five-ten-sg.com>
parents: 59
diff changeset
240 char *outlook_recipient_name;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
241 char *outlook_recipient2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
242 char *outlook_sender;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
243 char *outlook_sender_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
244 char *outlook_sender2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
245 int32_t priority;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
246 char *proc_subject;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
247 int read_receipt; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
248 char *recip_access;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
249 char *recip_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
250 char *recip2_access;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
251 char *recip2_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
252 int reply_requested; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
253 char *reply_to;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
254 char *return_path_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
255 int32_t rtf_body_char_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
256 int32_t rtf_body_crc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
257 char *rtf_body_tag;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
258 char *rtf_compressed;
63
cfd6175f9334 Start work on pst2dii to convert to Summation dii load file format.
Carl Byington <carl@five-ten-sg.com>
parents: 59
diff changeset
259 uint32_t rtf_compressed_size;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
260 int rtf_in_sync; // 1 = true, 0 = doesn't exist, -1 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
261 int32_t rtf_ws_prefix_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
262 int32_t rtf_ws_trailing_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
263 char *sender_access;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
264 char *sender_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
265 char *sender2_access;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
266 char *sender2_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
267 int32_t sensitivity;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
268 FILETIME *sent_date;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
269 pst_entryid *sentmail_folder;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
270 char *sentto_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
271 pst_item_email_subject *subject;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
272 } pst_item_email;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
273
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
274
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
275 typedef struct pst_item_folder {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
276 int32_t email_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
277 int32_t unseen_email_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
278 int32_t assoc_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
279 int subfolder; // 1 = true, 0 = false
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
280 } pst_item_folder;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
281
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
282
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
283 typedef struct pst_item_message_store {
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
284 pst_entryid *top_of_personal_folder; // 0x35e0
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
285 pst_entryid *default_outbox_folder; // 0x35e2
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
286 pst_entryid *deleted_items_folder; // 0x35e3
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
287 pst_entryid *sent_items_folder; // 0x35e4
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
288 pst_entryid *user_views_folder; // 0x35e5
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
289 pst_entryid *common_view_folder; // 0x35e6
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
290 pst_entryid *search_root_folder; // 0x35e7
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
291 pst_entryid *top_of_folder; // 0x7c07
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
292 int32_t valid_mask; // 0x35df // what folders the message store contains
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
293 int32_t pwd_chksum; // 0x76ff
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
294 } pst_item_message_store;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
295
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
296
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
297 typedef struct pst_item_contact {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
298 char *access_method;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
299 char *account_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
300 char *address1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
301 char *address1a;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
302 char *address1_desc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
303 char *address1_transport;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
304 char *address2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
305 char *address2a;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
306 char *address2_desc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
307 char *address2_transport;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
308 char *address3;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
309 char *address3a;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
310 char *address3_desc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
311 char *address3_transport;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
312 char *assistant_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
313 char *assistant_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
314 char *billing_information;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
315 FILETIME *birthday;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
316 char *business_address; // 0x801b
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
317 char *business_city;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
318 char *business_country;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
319 char *business_fax;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
320 char *business_homepage;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
321 char *business_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
322 char *business_phone2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
323 char *business_po_box;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
324 char *business_postal_code;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
325 char *business_state;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
326 char *business_street;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
327 char *callback_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
328 char *car_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
329 char *company_main_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
330 char *company_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
331 char *computer_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
332 char *customer_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
333 char *def_postal_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
334 char *department;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
335 char *display_name_prefix;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
336 char *first_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
337 char *followup;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
338 char *free_busy_address;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
339 char *ftp_site;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
340 char *fullname;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
341 int16_t gender;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
342 char *gov_id;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
343 char *hobbies;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
344 char *home_address; // 0x801a
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
345 char *home_city;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
346 char *home_country;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
347 char *home_fax;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
348 char *home_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
349 char *home_phone2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
350 char *home_po_box;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
351 char *home_postal_code;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
352 char *home_state;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
353 char *home_street;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
354 char *initials;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
355 char *isdn_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
356 char *job_title;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
357 char *keyword;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
358 char *language;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
359 char *location;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
360 int mail_permission; // 1 = true, 0 = false
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
361 char *manager_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
362 char *middle_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
363 char *mileage;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
364 char *mobile_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
365 char *nickname;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
366 char *office_loc;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
367 char *org_id;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
368 char *other_address; // 0x801c
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
369 char *other_city;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
370 char *other_country;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
371 char *other_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
372 char *other_po_box;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
373 char *other_postal_code;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
374 char *other_state;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
375 char *other_street;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
376 char *pager_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
377 char *personal_homepage;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
378 char *pref_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
379 char *primary_fax;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
380 char *primary_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
381 char *profession;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
382 char *radio_phone;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
383 int rich_text; // 1 = true, 0 = false
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
384 char *spouse_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
385 char *suffix;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
386 char *surname;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
387 char *telex;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
388 char *transmittable_display_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
389 char *ttytdd_phone;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
390 FILETIME *wedding_anniversary;
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
391 char *work_address_street; // 0x8045
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
392 char *work_address_city; // 0x8046
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
393 char *work_address_state; // 0x8047
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
394 char *work_address_postalcode; // 0x8048
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
395 char *work_address_country; // 0x8049
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
396 char *work_address_postofficebox; // 0x804a
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
397 } pst_item_contact;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
398
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
399
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
400 typedef struct pst_item_attach {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
401 char *filename1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
402 char *filename2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
403 char *mimetype;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
404 char *data;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
405 size_t size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
406 uint64_t id2_val;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
407 uint64_t id_val; // calculated from id2_val during creation of record
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
408 int32_t method;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
409 int32_t position;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
410 int32_t sequence;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
411 struct pst_item_attach *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
412 } pst_item_attach;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
413
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
414
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
415 typedef struct pst_item_extra_field {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
416 char *field_name;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
417 char *value;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
418 struct pst_item_extra_field *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
419 } pst_item_extra_field;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
420
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
421
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
422 typedef struct pst_item_journal {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
423 FILETIME *end;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
424 FILETIME *start;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
425 char *type;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
426 } pst_item_journal;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
427
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
428
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
429 typedef struct pst_item_appointment {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
430 FILETIME *end;
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
431 char *location;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
432 int alarm; // 1 = true, 0 = false
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
433 FILETIME *reminder;
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
434 int32_t alarm_minutes;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
435 char *alarm_filename;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
436 FILETIME *start;
50
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
437 char *timezonestring;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
438 int32_t showas;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
439 int32_t label;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
440 int all_day; // 1 = true, 0 = false
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
441 char *recurrence;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
442 int32_t recurrence_type;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
443 FILETIME *recurrence_start;
fb3818370dd6 more fixes for 64 bit format
carl
parents: 49
diff changeset
444 FILETIME *recurrence_end;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
445 } pst_item_appointment;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
446
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
447
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
448 typedef struct pst_item {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
449 struct pst_item_email *email; // data reffering to email
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
450 struct pst_item_folder *folder; // data reffering to folder
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
451 struct pst_item_contact *contact; // data reffering to contact
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
452 struct pst_item_attach *attach; // linked list of attachments
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
453 struct pst_item_message_store *message_store; // data referring to the message store
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
454 struct pst_item_extra_field *extra_fields; // linked list of extra headers and such
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
455 struct pst_item_journal *journal; // data reffering to a journal entry
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
456 struct pst_item_appointment *appointment; // data reffering to a calendar entry
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
457 int type;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
458 char *ascii_type;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
459 char *file_as;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
460 char *comment;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
461 int32_t message_size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
462 char *outlook_version;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
463 char *record_key; // probably 16 bytes long.
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
464 size_t record_key_size;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
465 int response_requested; // 1 = true, 0 = false
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
466 FILETIME *create_date;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
467 FILETIME *modify_date;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
468 int private_member; // 1 = true, 0 = false
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
469 } pst_item;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
470
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
471
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
472 typedef struct pst_x_attrib_ll {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
473 uint32_t type;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
474 uint32_t mytype;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
475 uint32_t map;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
476 void *data;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
477 struct pst_x_attrib_ll *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
478 } pst_x_attrib_ll;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
479
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
480
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
481 typedef struct pst_block_recorder {
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
482 struct pst_block_recorder *next;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
483 off_t offset;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
484 size_t size;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
485 int readcount;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
486 } pst_block_recorder;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
487
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
488
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
489 typedef struct pst_file {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
490 pst_index_ll *i_head, *i_tail;
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
491 pst_desc_ll *d_head, *d_tail;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
492 pst_x_attrib_ll *x_head;
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
493 pst_block_recorder *block_head;
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
494
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
495 //set this to 0 to read 32-bit pst files (pre Outlook 2003)
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
496 //set this to 1 to read 64-bit pst files (Outlook 2003 and later)
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
497 int do_read64;
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
498
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
499 uint64_t index1;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
500 uint64_t index1_back;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
501 uint64_t index2;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
502 uint64_t index2_back;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
503 FILE * fp; // file pointer to opened PST file
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
504 uint64_t size; // pst file size
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
505 unsigned char encryption; // pst encryption setting
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
506 unsigned char ind_type; // pst index type
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
507 } pst_file;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
508
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
509
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
510 typedef struct pst_block_offset {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
511 int16_t from;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
512 int16_t to;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
513 } pst_block_offset;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
514
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
515
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
516 typedef struct pst_block_offset_pointer {
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
517 char *from;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
518 char *to;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
519 int needfree;
35
b2f247463b83 better decoding of 7c blocks
carl
parents: 34
diff changeset
520 } pst_block_offset_pointer;
b2f247463b83 better decoding of 7c blocks
carl
parents: 34
diff changeset
521
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
522
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
523 typedef struct pst_num_item {
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
524 uint32_t id; // not an id1 or id2, this is actually some sort of type code
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
525 char *data;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
526 uint32_t type;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
527 size_t size;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
528 char *extra;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
529 } pst_num_item;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
530
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
531
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
532 typedef struct pst_num_array {
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
533 int32_t count_item;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
534 int32_t orig_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
535 int32_t count_array;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
536 struct pst_num_item ** items;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
537 struct pst_num_array *next;
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
538 } pst_num_array;
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
539
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
540
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
541 typedef struct pst_holder {
94
997cf1373f9e fix base64 encoding that could create long lines
Carl Byington <carl@five-ten-sg.com>
parents: 90
diff changeset
542 char **buf;
997cf1373f9e fix base64 encoding that could create long lines
Carl Byington <carl@five-ten-sg.com>
parents: 90
diff changeset
543 FILE *fp;
997cf1373f9e fix base64 encoding that could create long lines
Carl Byington <carl@five-ten-sg.com>
parents: 90
diff changeset
544 int base64;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
545 } pst_holder;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
546
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
547
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
548 typedef struct pst_subblock {
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
549 char *buf;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
550 size_t read_size;
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
551 size_t i_offset;
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
552 } pst_subblock;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
553
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
554
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
555 typedef struct pst_subblocks {
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
556 size_t subblock_count;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
557 pst_subblock *subs;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
558 } pst_subblocks;
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
559
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
560
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
561 // prototypes
59
7d5c637aaafb General cleanup and code fixes.
Carl Byington <carl@five-ten-sg.com>
parents: 52
diff changeset
562 int pst_open(pst_file *pf, char *name);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
563 int pst_close(pst_file *pf);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
564 pst_desc_ll * pst_getTopOfFolders(pst_file *pf, pst_item *root);
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
565 size_t pst_attach_to_mem(pst_file *pf, pst_item_attach *attach, char **b);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
566 size_t pst_attach_to_file(pst_file *pf, pst_item_attach *attach, FILE* fp);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
567 size_t pst_attach_to_file_base64(pst_file *pf, pst_item_attach *attach, FILE* fp);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
568 int pst_load_index (pst_file *pf);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
569 pst_desc_ll* pst_getNextDptr(pst_desc_ll* d);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
570 int pst_load_extended_attributes(pst_file *pf);
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
571
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
572 int pst_build_id_ptr(pst_file *pf, off_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val);
102
8c4482be0b4c remove unreachable code
Carl Byington <carl@five-ten-sg.com>
parents: 101
diff changeset
573 int pst_build_desc_ptr(pst_file *pf, off_t offset, int32_t depth, uint64_t linku1, uint64_t start_val, uint64_t end_val);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
574 pst_item* pst_getItem(pst_file *pf, pst_desc_ll *d_ptr);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
575 pst_item* pst_parse_item (pst_file *pf, pst_desc_ll *d_ptr);
48
f66078abed38 more fixes for 64 bit format
carl
parents: 47
diff changeset
576 pst_num_array* pst_parse_block(pst_file *pf, uint64_t block_id, pst_index2_ll *i2_head, pst_num_array *na_head);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
577 int pst_process(pst_num_array *list, pst_item *item, pst_item_attach *attach);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
578 void pst_free_list(pst_num_array *list);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
579 void pst_freeItem(pst_item *item);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
580 void pst_free_id2(pst_index2_ll * head);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
581 void pst_free_id (pst_index_ll *head);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
582 void pst_free_desc (pst_desc_ll *head);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
583 void pst_free_xattrib(pst_x_attrib_ll *x);
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
584 int pst_getBlockOffsetPointer(pst_file *pf, pst_index2_ll *i2_head, pst_subblocks *subblocks, uint32_t offset, pst_block_offset_pointer *p);
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
585 int pst_getBlockOffset(char *buf, size_t read_size, uint32_t i_offset, uint32_t offset, pst_block_offset *p);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
586 pst_index2_ll* pst_build_id2(pst_file *pf, pst_index_ll* list, pst_index2_ll* head_ptr);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
587 pst_index_ll* pst_getID(pst_file* pf, uint64_t id);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
588 pst_index_ll* pst_getID2(pst_index2_ll * ptr, uint64_t id);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
589 pst_desc_ll* pst_getDptr(pst_file *pf, uint64_t id);
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
590 size_t pst_read_block_size(pst_file *pf, off_t offset, size_t size, char **buf);
79
56fa05fd5271 Patch from Robert Simpson for encryption type 2.
Carl Byington <carl@five-ten-sg.com>
parents: 75
diff changeset
591 int pst_decrypt(uint64_t id, char *buf, size_t size, unsigned char type);
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
592 uint64_t pst_getIntAt(pst_file *pf, char *buf);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
593 uint64_t pst_getIntAtPos(pst_file *pf, off_t pos);
52
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
594 size_t pst_getAtPos(pst_file *pf, off_t pos, void* buf, size_t size);
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
595 size_t pst_ff_getIDblock_dec(pst_file *pf, uint64_t id, char **b);
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
596 size_t pst_ff_getIDblock(pst_file *pf, uint64_t id, char** b);
034641c26ab9 code cleanup
carl
parents: 51
diff changeset
597 size_t pst_ff_getID2block(pst_file *pf, uint64_t id2, pst_index2_ll *id2_head, char** buf);
49
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
598 size_t pst_ff_getID2data(pst_file *pf, pst_index_ll *ptr, pst_holder *h);
17654fbdf76b more fixes for 64 bit format
carl
parents: 48
diff changeset
599 size_t pst_ff_compile_ID(pst_file *pf, uint64_t id, pst_holder *h, size_t size);
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
600
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
601 int pst_strincmp(char *a, char *b, size_t x);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
602 int pst_stricmp(char *a, char *b);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
603 size_t pst_fwrite(const void*ptr, size_t size, size_t nmemb, FILE*stream);
47
5fb8d997feed more fixes for 64 bit format
carl
parents: 46
diff changeset
604 char * pst_wide_to_single(char *wt, size_t size);
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
605
46
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
606 char * pst_rfc2426_escape(char *str);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
607 int pst_chr_count(char *str, char x);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
608 char * pst_rfc2425_datetime_format(FILETIME *ft);
b2a7f2e0926a more fixes for 64 bit format
carl
parents: 44
diff changeset
609 char * pst_rfc2445_datetime_format(FILETIME *ft);
43
f6db1f060a95 start on outlook 2003 64 bit format
carl
parents: 41
diff changeset
610
51
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
611 void pst_printDptr(pst_file *pf, pst_desc_ll *ptr);
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
612 void pst_printIDptr(pst_file* pf);
06c0262ad689 code cleanup
carl
parents: 50
diff changeset
613 void pst_printID2ptr(pst_index2_ll *ptr);
16
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
614
c508ee15dfca switch to automake/autoconf
carl
parents:
diff changeset
615 #endif // defined LIBPST_H