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 VCExpDateProp                           "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 VCQPProp                                "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 KPilotStatusProp                        "X-PILOTSTAT" 
  255 #define ICOrganizerProp                         "X-ORGANIZER" 
  256 #define ICMethodProp                            "X-METHOD" 
  257 #define ICRequestStatusProp                     "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 unsigned 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);
 
  377 #if defined(__CPLUSPLUS__) || defined(__cplusplus)