79 #define __VOBJECT_H__ 1
86 #if defined(__CPLUSPLUS__) || defined(__cplusplus)
91 #define VC7bitProp "7BIT"
92 #define VC8bitProp "8BIT"
93 #define VCAAlarmProp "AALARM"
94 #define VCAdditionalNamesProp "ADDN"
95 #define VCAdrProp "ADR"
96 #define VCAgentProp "AGENT"
97 #define VCAIFFProp "AIFF"
98 #define VCAOLProp "AOL"
99 #define VCAppleLinkProp "APPLELINK"
100 #define VCAttachProp "ATTACH"
101 #define VCAttendeeProp "ATTENDEE"
102 #define VCATTMailProp "ATTMAIL"
103 #define VCAudioContentProp "AUDIOCONTENT"
104 #define VCAVIProp "AVI"
105 #define VCBase64Prop "BASE64"
106 #define VCBBSProp "BBS"
107 #define VCBirthDateProp "BDAY"
108 #define VCBMPProp "BMP"
109 #define VCBodyProp "BODY"
110 #define VCBusinessRoleProp "ROLE"
111 #define VCCalProp "VCALENDAR"
112 #define VCCaptionProp "CAP"
113 #define VCCardProp "VCARD"
114 #define VCCarProp "CAR"
115 #define VCCategoriesProp "CATEGORIES"
116 #define VCCellularProp "CELL"
117 #define VCCGMProp "CGM"
118 #define VCCharSetProp "CS"
119 #define VCCIDProp "CID"
120 #define VCCISProp "CIS"
121 #define VCCityProp "L"
122 #define VCClassProp "CLASS"
123 #define VCCommentProp "NOTE"
124 #define VCCompletedProp "COMPLETED"
125 #define VCContentIDProp "CONTENT-ID"
126 #define VCCountryNameProp "C"
127 #define VCDAlarmProp "DALARM"
128 #define VCDataSizeProp "DATASIZE"
129 #define VCDayLightProp "DAYLIGHT"
130 #define VCDCreatedProp "DCREATED"
131 #define VCDeliveryLabelProp "LABEL"
132 #define VCDescriptionProp "DESCRIPTION"
133 #define VCDIBProp "DIB"
134 #define VCDisplayStringProp "DISPLAYSTRING"
135 #define VCDomesticProp "DOM"
136 #define VCDTendProp "DTEND"
137 #define VCDTstartProp "DTSTART"
138 #define VCDueProp "DUE"
139 #define VCEmailAddressProp "EMAIL"
140 #define VCEncodingProp "ENCODING"
141 #define VCEndProp "END"
142 #define VCEventProp "VEVENT"
143 #define VCEWorldProp "EWORLD"
144 #define VCExNumProp "EXNUM"
145 #define VCExDateProp "EXDATE"
146 #define VCExpectProp "EXPECT"
147 #define VCExtAddressProp "EXT ADD"
148 #define VCFamilyNameProp "F"
149 #define VCFaxProp "FAX"
150 #define VCFullNameProp "FN"
151 #define VCGeoProp "GEO"
152 #define VCGeoLocationProp "GEO"
153 #define VCGIFProp "GIF"
154 #define VCGivenNameProp "G"
155 #define VCGroupingProp "Grouping"
156 #define VCHomeProp "HOME"
157 #define VCIBMMailProp "IBMMail"
158 #define VCInlineProp "INLINE"
159 #define VCInternationalProp "INTL"
160 #define VCInternetProp "INTERNET"
161 #define VCISDNProp "ISDN"
162 #define VCJPEGProp "JPEG"
163 #define VCLanguageProp "LANG"
164 #define VCLastModifiedProp "LAST-MODIFIED"
165 #define VCLastRevisedProp "REV"
166 #define VCLocationProp "LOCATION"
167 #define VCLogoProp "LOGO"
168 #define VCMailerProp "MAILER"
169 #define VCMAlarmProp "MALARM"
170 #define VCMCIMailProp "MCIMAIL"
171 #define VCMessageProp "MSG"
172 #define VCMETProp "MET"
173 #define VCModemProp "MODEM"
174 #define VCMPEG2Prop "MPEG2"
175 #define VCMPEGProp "MPEG"
176 #define VCMSNProp "MSN"
177 #define VCNamePrefixesProp "NPRE"
178 #define VCNameProp "N"
179 #define VCNameSuffixesProp "NSUF"
180 #define VCNoteProp "NOTE"
181 #define VCOrgNameProp "ORGNAME"
182 #define VCOrgProp "ORG"
183 #define VCOrgUnit2Prop "OUN2"
184 #define VCOrgUnit3Prop "OUN3"
185 #define VCOrgUnit4Prop "OUN4"
186 #define VCOrgUnitProp "OUN"
187 #define VCPagerProp "PAGER"
188 #define VCPAlarmProp "PALARM"
189 #define VCParcelProp "PARCEL"
190 #define VCPartProp "PART"
191 #define VCPCMProp "PCM"
192 #define VCPDFProp "PDF"
193 #define VCPGPProp "PGP"
194 #define VCPhotoProp "PHOTO"
195 #define VCPICTProp "PICT"
196 #define VCPMBProp "PMB"
197 #define VCPostalBoxProp "BOX"
198 #define VCPostalCodeProp "PC"
199 #define VCPostalProp "POSTAL"
200 #define VCPowerShareProp "POWERSHARE"
201 #define VCPreferredProp "PREF"
202 #define VCPriorityProp "PRIORITY"
203 #define VCProcedureNameProp "PROCEDURENAME"
204 #define VCProdIdProp "PRODID"
205 #define VCProdigyProp "PRODIGY"
206 #define VCPronunciationProp "SOUND"
207 #define VCPSProp "PS"
208 #define VCPublicKeyProp "KEY"
209 #define VCTQPProp "QP"
210 #define VCQuickTimeProp "QTIME"
211 #define VCQuotedPrintableProp "QUOTED-PRINTABLE"
212 #define VCRDateProp "RDATE"
213 #define VCRegionProp "R"
214 #define VCRelatedToProp "RELATED-TO"
215 #define VCRepeatCountProp "REPEATCOUNT"
216 #define VCResourcesProp "RESOURCES"
217 #define VCRNumProp "RNUM"
218 #define VCRoleProp "ROLE"
219 #define VCRRuleProp "RRULE"
220 #define VCRSVPProp "RSVP"
221 #define VCRunTimeProp "RUNTIME"
222 #define VCSequenceProp "SEQUENCE"
223 #define VCSnoozeTimeProp "SNOOZETIME"
224 #define VCStartProp "START"
225 #define VCStatusProp "STATUS"
226 #define VCStreetAddressProp "STREET"
227 #define VCSubTypeProp "SUBTYPE"
228 #define VCSummaryProp "SUMMARY"
229 #define VCTelephoneProp "TEL"
230 #define VCTIFFProp "TIFF"
231 #define VCTimeZoneProp "TZ"
232 #define VCTitleProp "TITLE"
233 #define VCTLXProp "TLX"
234 #define VCTodoProp "VTODO"
235 #define VCTranspProp "TRANSP"
236 #define VCUniqueStringProp "UID"
237 #define VCURLProp "URL"
238 #define VCURLValueProp "URLVAL"
239 #define VCValueProp "VALUE"
240 #define VCVersionProp "VERSION"
241 #define VCVideoProp "VIDEO"
242 #define VCVoiceProp "VOICE"
243 #define VCWAVEProp "WAVE"
244 #define VCWMFProp "WMF"
245 #define VCWorkProp "WORK"
246 #define VCX400Prop "X400"
247 #define VCX509Prop "X509"
248 #define VCXRuleProp "XRULE"
251 #define KPilotIdProp "X-PILOTID"
252 #define KPiloStatusProp "X-PILOTSTAT"
255 #define ICOrganizerProp "X-ORGANIZER"
256 #define ICMethodProp "X-METHOD"
257 #define ICRequesStatusProp "X-REQUEST-STATUS"
259 typedef struct VObject VObject;
261 typedef union ValueItem {
263 const wchar_t *ustrs;
274 unsigned short valType;
278 typedef struct StrItem StrItem;
286 typedef struct VObjectIterator {
291 extern VObject* newVObject(
const char *
id);
292 extern void deleteVObject(VObject *p);
293 extern char* dupStr(
const char *s,
unsigned int size);
294 extern void deleteStr(
const char *p);
295 extern void unUseStr(
const char *s);
297 extern void setVObjectName(VObject *o,
const char*
id);
298 extern void setVObjectStringZValue(VObject *o,
const char *s);
299 extern void setVObjectStringZValue_(VObject *o,
const char *s);
300 extern void setVObjectUStringZValue(VObject *o,
const wchar_t *s);
301 extern void setVObjectUStringZValue_(VObject *o,
const wchar_t *s);
302 extern void setVObjectIntegerValue(VObject *o,
unsigned int i);
303 extern void setVObjectLongValue(VObject *o,
unsigned long l);
304 extern void setVObjectAnyValue(VObject *o,
void *t);
305 extern VObject* setValueWithSize(VObject *prop,
void *val,
unsigned int size);
306 extern VObject* setValueWithSize_(VObject *prop,
void *val,
unsigned int size);
308 extern const char* vObjectName(VObject *o);
309 extern const char* vObjectStringZValue(VObject *o);
310 extern const wchar_t* vObjectUStringZValue(VObject *o);
311 extern unsigned int vObjectIntegerValue(VObject *o);
312 extern unsigned long vObjectLongValue(VObject *o);
313 extern void* vObjectAnyValue(VObject *o);
314 extern VObject* vObjectVObjectValue(VObject *o);
315 extern void setVObjectVObjectValue(VObject *o, VObject *p);
317 extern VObject* addVObjectProp(VObject *o, VObject *p);
318 extern VObject* addProp(VObject *o,
const char *
id);
319 extern VObject* addProp_(VObject *o,
const char *
id);
320 extern VObject* addPropValue(VObject *o,
const char *p,
const char *v);
321 extern VObject* addPropSizedValue_(VObject *o,
const char *p,
const char *v,
unsigned int size);
322 extern VObject* addPropSizedValue(VObject *o,
const char *p,
const char *v,
unsigned int size);
323 extern VObject* addGroup(VObject *o,
const char *g);
324 extern void addList(VObject **o, VObject *p);
326 extern VObject* isAPropertyOf(VObject *o,
const char *
id);
328 extern VObject* nextVObjectInList(VObject *o);
329 extern void initPropIterator(VObjectIterator *i, VObject *o);
330 extern int moreIteration(VObjectIterator *i);
331 extern VObject* nextVObject(VObjectIterator *i);
333 extern char* writeMemVObject(
char *s,
int *len, VObject *o);
334 extern char* writeMemVObjects(
char *s,
int *len, VObject *list);
336 extern const char* lookupStr(
const char *s);
337 extern void cleanStrTbl();
339 extern void cleanVObject(VObject *o);
340 extern void cleanVObjects(VObject *list);
342 extern const char* lookupProp(
const char* str);
343 extern const char* lookupProp_(
const char* str);
345 extern wchar_t* fakeUnicode(
const char *ps,
int *bytes);
346 extern int uStrLen(
const wchar_t *u);
347 extern char* fakeCString(
const wchar_t *u);
349 extern void printVObjectToFile(
char *fname,VObject *o);
350 extern void printVObjectsToFile(
char *fname,VObject *list);
351 extern void writeVObjectToFile(
char *fname, VObject *o);
352 extern void writeVObjectsToFile(
char *fname, VObject *list);
354 extern int vObjectValueType(VObject *o);
357 #define VCVT_NOVALUE 0
359 #define VCVT_STRINGZ 1
361 #define VCVT_USTRINGZ 2
369 #define VCVT_VOBJECT 6
372 extern const char** fieldedProp;
374 extern void printVObject(FILE *fp,VObject *o);
375 extern void writeVObject(FILE *fp, VObject *o);
378 #if defined(__CPLUSPLUS__) || defined(__cplusplus)