44#include "libical_vcal_export.h"
48#if defined(__CPLUSPLUS__) || defined(__cplusplus)
53#define VC7bitProp "7BIT"
54#define VC8bitProp "8BIT"
55#define VCAAlarmProp "AALARM"
56#define VCAdditionalNamesProp "ADDN"
57#define VCAdrProp "ADR"
58#define VCAgentProp "AGENT"
59#define VCAIFFProp "AIFF"
60#define VCAOLProp "AOL"
61#define VCAppleLinkProp "APPLELINK"
62#define VCAttachProp "ATTACH"
63#define VCAttendeeProp "ATTENDEE"
64#define VCATTMailProp "ATTMAIL"
65#define VCAudioContentProp "AUDIOCONTENT"
66#define VCAVIProp "AVI"
67#define VCBase64Prop "BASE64"
68#define VCBBSProp "BBS"
69#define VCBirthDateProp "BDAY"
70#define VCBMPProp "BMP"
71#define VCBodyProp "BODY"
72#define VCBusinessRoleProp "ROLE"
73#define VCCalProp "VCALENDAR"
74#define VCCaptionProp "CAP"
75#define VCCardProp "VCARD"
76#define VCCarProp "CAR"
77#define VCCategoriesProp "CATEGORIES"
78#define VCCellularProp "CELL"
79#define VCCGMProp "CGM"
80#define VCCharSetProp "CS"
81#define VCCIDProp "CID"
82#define VCCISProp "CIS"
84#define VCClassProp "CLASS"
85#define VCCommentProp "NOTE"
86#define VCCompletedProp "COMPLETED"
87#define VCContentIDProp "CONTENT-ID"
88#define VCCountryNameProp "C"
89#define VCDAlarmProp "DALARM"
90#define VCDataSizeProp "DATASIZE"
91#define VCDayLightProp "DAYLIGHT"
92#define VCDCreatedProp "DCREATED"
93#define VCDeliveryLabelProp "LABEL"
94#define VCDescriptionProp "DESCRIPTION"
95#define VCDIBProp "DIB"
96#define VCDisplayStringProp "DISPLAYSTRING"
97#define VCDomesticProp "DOM"
98#define VCDTendProp "DTEND"
99#define VCDTstartProp "DTSTART"
100#define VCDueProp "DUE"
101#define VCEmailAddressProp "EMAIL"
102#define VCEncodingProp "ENCODING"
103#define VCEndProp "END"
104#define VCEventProp "VEVENT"
105#define VCEWorldProp "EWORLD"
106#define VCExNumProp "EXNUM"
107#define VCExpDateProp "EXDATE"
108#define VCExpectProp "EXPECT"
109#define VCExtAddressProp "EXT ADD"
110#define VCFamilyNameProp "F"
111#define VCFaxProp "FAX"
112#define VCFullNameProp "FN"
113#define VCGeoProp "GEO"
114#define VCGeoLocationProp "GEO"
115#define VCGIFProp "GIF"
116#define VCGivenNameProp "G"
117#define VCGroupingProp "Grouping"
118#define VCHomeProp "HOME"
119#define VCIBMMailProp "IBMMail"
120#define VCInlineProp "INLINE"
121#define VCInternationalProp "INTL"
122#define VCInternetProp "INTERNET"
123#define VCISDNProp "ISDN"
124#define VCJPEGProp "JPEG"
125#define VCLanguageProp "LANG"
126#define VCLastModifiedProp "LAST-MODIFIED"
127#define VCLastRevisedProp "REV"
128#define VCLocationProp "LOCATION"
129#define VCLogoProp "LOGO"
130#define VCMailerProp "MAILER"
131#define VCMAlarmProp "MALARM"
132#define VCMCIMailProp "MCIMAIL"
133#define VCMessageProp "MSG"
134#define VCMETProp "MET"
135#define VCModemProp "MODEM"
136#define VCMPEG2Prop "MPEG2"
137#define VCMPEGProp "MPEG"
138#define VCMSNProp "MSN"
139#define VCNamePrefixesProp "NPRE"
140#define VCNameProp "N"
141#define VCNameSuffixesProp "NSUF"
142#define VCNoteProp "NOTE"
143#define VCOrgNameProp "ORGNAME"
144#define VCOrgProp "ORG"
145#define VCOrgUnit2Prop "OUN2"
146#define VCOrgUnit3Prop "OUN3"
147#define VCOrgUnit4Prop "OUN4"
148#define VCOrgUnitProp "OUN"
149#define VCPagerProp "PAGER"
150#define VCPAlarmProp "PALARM"
151#define VCParcelProp "PARCEL"
152#define VCPartProp "PART"
153#define VCPCMProp "PCM"
154#define VCPDFProp "PDF"
155#define VCPGPProp "PGP"
156#define VCPhotoProp "PHOTO"
157#define VCPICTProp "PICT"
158#define VCPMBProp "PMB"
159#define VCPostalBoxProp "BOX"
160#define VCPostalCodeProp "PC"
161#define VCPostalProp "POSTAL"
162#define VCPowerShareProp "POWERSHARE"
163#define VCPreferredProp "PREF"
164#define VCPriorityProp "PRIORITY"
165#define VCProcedureNameProp "PROCEDURENAME"
166#define VCProdIdProp "PRODID"
167#define VCProdigyProp "PRODIGY"
168#define VCPronunciationProp "SOUND"
170#define VCPublicKeyProp "KEY"
172#define VCQuickTimeProp "QTIME"
173#define VCQuotedPrintableProp "QUOTED-PRINTABLE"
174#define VCRDateProp "RDATE"
175#define VCRegionProp "R"
176#define VCRelatedToProp "RELATED-TO"
177#define VCRepeatCountProp "REPEATCOUNT"
178#define VCResourcesProp "RESOURCES"
179#define VCRNumProp "RNUM"
180#define VCRoleProp "ROLE"
181#define VCRRuleProp "RRULE"
182#define VCRSVPProp "RSVP"
183#define VCRunTimeProp "RUNTIME"
184#define VCSequenceProp "SEQUENCE"
185#define VCSnoozeTimeProp "SNOOZETIME"
186#define VCStartProp "START"
187#define VCStatusProp "STATUS"
188#define VCStreetAddressProp "STREET"
189#define VCSubTypeProp "SUBTYPE"
190#define VCSummaryProp "SUMMARY"
191#define VCTelephoneProp "TEL"
192#define VCTIFFProp "TIFF"
193#define VCTimeZoneProp "TZ"
194#define VCTitleProp "TITLE"
195#define VCTLXProp "TLX"
196#define VCTodoProp "VTODO"
197#define VCTranspProp "TRANSP"
198#define VCUniqueStringProp "UID"
199#define VCURLProp "URL"
200#define VCURLValueProp "URLVAL"
201#define VCValueProp "VALUE"
202#define VCVersionProp "VERSION"
203#define VCVideoProp "VIDEO"
204#define VCVoiceProp "VOICE"
205#define VCWAVEProp "WAVE"
206#define VCWMFProp "WMF"
207#define VCWorkProp "WORK"
208#define VCX400Prop "X400"
209#define VCX509Prop "X509"
210#define VCXRuleProp "XRULE"
214#define XPilotIdProp "X-PILOTID"
215#define XPilotStatusProp "X-PILOTSTAT"
217 typedef struct VObject VObject;
225 LIBICAL_VCAL_EXPORT VObject *newVObject(
const char *
id);
226 LIBICAL_VCAL_EXPORT
void deleteVObject(VObject *p);
227 LIBICAL_VCAL_EXPORT
char *dupStr(
const char *s,
size_t size);
228 LIBICAL_VCAL_EXPORT
void deleteStr(
const char *p);
229 LIBICAL_VCAL_EXPORT
void unUseStr(
const char *s);
231 LIBICAL_VCAL_EXPORT
void setVObjectName(VObject *o,
const char *
id);
232 LIBICAL_VCAL_EXPORT
void setVObjectStringZValue(VObject *o,
const char *s);
233 LIBICAL_VCAL_EXPORT
void setVObjectStringZValue_(VObject *o,
const char *s);
234 LIBICAL_VCAL_EXPORT
void setVObjectUStringZValue(VObject *o,
const wchar_t *s);
235 LIBICAL_VCAL_EXPORT
void setVObjectUStringZValue_(VObject *o,
const wchar_t *s);
236 LIBICAL_VCAL_EXPORT
void setVObjectIntegerValue(VObject *o,
unsigned int i);
237 LIBICAL_VCAL_EXPORT
void setVObjectLongValue(VObject *o,
unsigned long l);
238 LIBICAL_VCAL_EXPORT
void setVObjectAnyValue(VObject *o,
void *t);
239 LIBICAL_VCAL_EXPORT VObject *setValueWithSize(VObject *prop,
void *val,
unsigned int size);
240 LIBICAL_VCAL_EXPORT VObject *setValueWithSize_(VObject *prop,
void *val,
unsigned int size);
242 LIBICAL_VCAL_EXPORT
const char *vObjectName(
const VObject *o);
243 LIBICAL_VCAL_EXPORT
const char *vObjectStringZValue(VObject *o);
244 LIBICAL_VCAL_EXPORT
const wchar_t *vObjectUStringZValue(VObject *o);
245 LIBICAL_VCAL_EXPORT
unsigned int vObjectIntegerValue(VObject *o);
246 LIBICAL_VCAL_EXPORT
unsigned long vObjectLongValue(VObject *o);
247 LIBICAL_VCAL_EXPORT
void *vObjectAnyValue(VObject *o);
248 LIBICAL_VCAL_EXPORT VObject *vObjectVObjectValue(VObject *o);
249 LIBICAL_VCAL_EXPORT
void setVObjectVObjectValue(VObject *o, VObject *p);
251 LIBICAL_VCAL_EXPORT VObject *addVObjectProp(VObject *o, VObject *p);
252 LIBICAL_VCAL_EXPORT VObject *addProp(VObject *o,
const char *
id);
253 LIBICAL_VCAL_EXPORT VObject *addPropValue(VObject *o,
const char *p,
const char *v);
254 LIBICAL_VCAL_EXPORT VObject *addPropSizedValue_(VObject *o,
const char *p,
const char *v,
256 LIBICAL_VCAL_EXPORT VObject *addPropSizedValue(VObject *o,
const char *p,
const char *v,
258 LIBICAL_VCAL_EXPORT VObject *addGroup(VObject *o,
const char *g);
259 LIBICAL_VCAL_EXPORT
void addList(VObject ** o, VObject *p);
261 LIBICAL_VCAL_EXPORT VObject *isAPropertyOf(VObject *o,
const char *
id);
263 LIBICAL_VCAL_EXPORT VObject *nextVObjectInList(
const VObject *o);
264 LIBICAL_VCAL_EXPORT
void initPropIterator(
VObjectIterator * i, VObject *o);
268 LIBICAL_VCAL_EXPORT
char *writeMemVObject(
char *s,
int *len, VObject *o);
269 LIBICAL_VCAL_EXPORT
char *writeMemVObjects(
char *s,
int *len, VObject *list);
271 LIBICAL_VCAL_EXPORT
const char *lookupStr(
const char *s);
272 LIBICAL_VCAL_EXPORT
void cleanStrTbl(
void);
274 LIBICAL_VCAL_EXPORT
void cleanVObject(VObject *o);
275 LIBICAL_VCAL_EXPORT
void cleanVObjects(VObject *list);
277 LIBICAL_VCAL_EXPORT
const char *lookupProp(
const char *str);
278 LIBICAL_VCAL_EXPORT
const char *lookupProp_(
const char *str);
280 LIBICAL_VCAL_EXPORT
wchar_t *fakeUnicode(
const char *ps,
size_t *bytes);
281 LIBICAL_VCAL_EXPORT
int uStrLen(
const wchar_t *u);
282 LIBICAL_VCAL_EXPORT
char *fakeCString(
const wchar_t *u);
284 LIBICAL_VCAL_EXPORT
void printVObjectToFile(
const char *fname, VObject *o);
285 LIBICAL_VCAL_EXPORT
void printVObjectsToFile(
const char *fname, VObject *list);
286 LIBICAL_VCAL_EXPORT
void writeVObjectToFile(
const char *fname, VObject *o);
287 LIBICAL_VCAL_EXPORT
void writeVObjectsToFile(
const char *fname, VObject *list);
289 LIBICAL_VCAL_EXPORT
int vObjectValueType(
const VObject *o);
292#define VCVT_NOVALUE 0
294#define VCVT_STRINGZ 1
296#define VCVT_USTRINGZ 2
304#define VCVT_VOBJECT 6
307 extern const char **fieldedProp;
320 extern void printVObject(FILE *fp, VObject *o);
321 extern void writeVObject(FILE *fp, VObject *o);
323#if defined(__CPLUSPLUS__) || defined(__cplusplus)