All,

 I've updated record.h and record.cc based on my 7100g <-> Outlook 
combination. I can now parse 275+ records with no unknowns, and I think its 
actually pretty accurate ;). Next this is to finish memos and add the ldap 
stuff to contacts.
 If anyone is loading their BB from a different office application and has 
some unknowns in contacts I'd liike to see them, contact me directly for 
that.

-edge

--- record.cc.org	2007-05-11 05:04:03.000000000 -0600
+++ record.cc	2007-05-11 05:04:55.000000000 -0600
@@ -480,29 +480,50 @@
 // Contact class
 
 // Contact field codes
-#define CFC_EMAIL		1
-#define CFC_PHONE		2
-#define CFC_FAX			3
+#define CFC_EMAIL			1
+#define CFC_PHONE			2
+#define CFC_FAX				3
 #define CFC_WORK_PHONE		6
 #define CFC_HOME_PHONE		7
 #define CFC_MOBILE_PHONE	8
-#define CFC_PAGER		9
-#define CFC_PIN			10
-#define CFC_NAME		32	// used twice, in first/last name order
-#define CFC_COMPANY		33
+#define CFC_PAGER			9
+#define CFC_PIN				10
+#define CFC_RADIO			14	// 0x0e
+#define CFC_WORK_PHONE_2	16	// 0x10
+#define CFC_HOME_PHONE_2	17	// 0x11
+#define CFC_OTHER_PHONE		18	// 0x12
+#define CFC_NAME			32	// 0x20 used twice, in first/last name order
+#define CFC_COMPANY			33
 #define CFC_DEFAULT_COMM_METHOD	34
 #define CFC_ADDRESS1		35
 #define CFC_ADDRESS2		36
 #define CFC_ADDRESS3		37
-#define CFC_CITY		38
+#define CFC_CITY			38
 #define CFC_PROVINCE		39
 #define CFC_POSTAL_CODE		40
-#define CFC_COUNTRY		41
-#define CFC_TITLE		42
+#define CFC_COUNTRY			41
+#define CFC_TITLE			42  // 0x2a
 #define CFC_PUBLIC_KEY		43
 #define CFC_GROUP_FLAG		44
 #define CFC_GROUP_LINK		52
-#define CFC_NOTES		64
+#define CFC_URL				54	// 0x36
+#define CFC_PREFIX			55	// 0x37
+#define CFC_CATEGORY		59	// 0x3B
+#define CFC_HOME_ADDRESS1	61	// 0x3D
+#define CFC_HOME_ADDRESS2	62	// 0x3E
+  // If the address 3 isn't mapped then it appears
+  // in the same field as address2 with a space
+#define CFC_HOME_ADDRESS3	63 	// 0x3F
+#define CFC_NOTES			64	// 0x40
+#define CFC_USER_DEFINED_1	65	// 0x41
+#define CFC_USER_DEFINED_2	66	// 0x42
+#define CFC_USER_DEFINED_3	67	// 0x43
+#define CFC_USER_DEFINED_4	68	// 0x44
+#define CFC_HOME_CITY		69	// 0x45
+#define CFC_HOME_PROVINCE	70	// 0x46
+#define CFC_HOME_POSTAL_CODE 71	// 0x47
+#define CFC_HOME_COUNTRY		72	// 0x48
+#define CFC_IMAGE			77	// 0x4D
 #define CFC_INVALID_FIELD	255
 
 // Contact code to field table
@@ -527,6 +548,11 @@
    { CFC_MOBILE_PHONE, "MobilePhone","mobile",0,          &Contact::MobilePhone, 0, 0 },
    { CFC_PAGER,        "Pager",      "pager",0,           &Contact::Pager, 0, 0 },
    { CFC_PIN,          "PIN",        0,0,                 &Contact::PIN, 0, 0 },
+   { CFC_RADIO,        "Radio",      0,0,                 &Contact::Radio, 0, 0 },
+   { CFC_WORK_PHONE_2, "WorkPhone2", 0,0,                 &Contact::WorkPhone2, 0, 0 },
+   { CFC_HOME_PHONE_2, "HomePhone2", 0,0,                 &Contact::HomePhone2, 0, 0 },
+   { CFC_OTHER_PHONE,  "OtherPhone", 0,0,                 &Contact::OtherPhone, 0, 0 },
+  //{ CFC_NAME,         "Name",       0,0,                 &Contact::Name, 0, 0 },
    { CFC_COMPANY,      "Company",    "o",0,               &Contact::Company, 0, 0 },
    { CFC_DEFAULT_COMM_METHOD,"DefaultCommMethod",0,0,     &Contact::DefaultCommunicationsMethod, 0, 0 },
    { CFC_ADDRESS1,     "Address1",   0,0,                 &Contact::Address1, 0, 0 },
@@ -538,7 +564,22 @@
    { CFC_COUNTRY,      "Country",    "c", "country",      &Contact::Country, 0, 0 },
    { CFC_TITLE,        "Title",      "title",0,           &Contact::Title, 0, 0 },
    { CFC_PUBLIC_KEY,   "PublicKey",  0,0,                 &Contact::PublicKey, 0, 0 },
+   { CFC_URL,          "URL",        0,0,                 &Contact::URL, 0, 0 },
+   { CFC_PREFIX,       "Prefix",     0,0,                 &Contact::Prefix, 0, 0 },
+   { CFC_CATEGORY,     "Category",   0,0,                 &Contact::Category, 0, 0 },
+   { CFC_HOME_ADDRESS1,"HomeAddress1", 0,0,               &Contact::HomeAddress1, 0, 0 },
+   { CFC_HOME_ADDRESS2,"HomeAddress2", 0,0,               &Contact::HomeAddress2, 0, 0 },
+   { CFC_HOME_ADDRESS3,"HomeAddress3", 0,0,               &Contact::HomeAddress3, 0, 0 },
    { CFC_NOTES,        "Notes",      0,0,                 &Contact::Notes, 0, 0 },
+   { CFC_USER_DEFINED_1, "UserDefined1", 0,0,             &Contact::UserDefined1, 0, 0 },
+   { CFC_USER_DEFINED_2, "UserDefined2", 0,0,             &Contact::UserDefined2, 0, 0 },
+   { CFC_USER_DEFINED_3, "UserDefined3", 0,0,             &Contact::UserDefined3, 0, 0 },
+   { CFC_USER_DEFINED_4, "UserDefined4", 0,0,             &Contact::UserDefined4, 0, 0 },
+   { CFC_HOME_CITY,    "HomeCity",   0,0,                 &Contact::HomeCity, 0, 0 },
+   { CFC_HOME_PROVINCE,"HomeProvince", 0,0,               &Contact::HomeProvince, 0, 0 },
+   { CFC_HOME_POSTAL_CODE, "HomePostalCode", 0,0,         &Contact::HomePostalCode, 0, 0 },
+   { CFC_HOME_COUNTRY, "HomeCountry",0,0,                 &Contact::HomeCountry, 0, 0 },
+   { CFC_IMAGE,        "Image",      0,0,                 &Contact::Image, 0, 0 },
    { CFC_INVALID_FIELD,"EndOfList",  0, 0, 0 }
 };
 
@@ -987,6 +1028,7 @@
 #define CALFC_RECURRENCE_DATA		0x0c
 #define CALFC_VERSION_DATA		0x10
 #define CALFC_NOTIFICATION_DATA		0x1a
+#define CALFC_FREEBUSY_FLAG     0x1c
 #define CALFC_TIMEZONE_CODE		0x1e	// only seems to show up if recurring
 #define CALFC_ALLDAYEVENT_FLAG		0xff
 #define CALFC_END			0xffff
@@ -998,6 +1040,7 @@
    { CALFC_NOTIFICATION_TIME,"Notification Time",0,0, 0, 0, &Calendar::NotificationTime },
    { CALFC_START_TIME, "Start Time", 0, 0,    0, 0, &Calendar::StartTime },
    { CALFC_END_TIME,   "End Time",   0, 0,    0, 0, &Calendar::EndTime },
+   { CALFC_FREEBUSY_FLAG, "Free/Busy", 0, 0,  &Calendar::FreeBusy, 0, 0 },
    { CALFC_END,        "End of List",0, 0,    0, 0, 0 }
 };
 
--- record.h.org	2007-05-11 05:04:10.000000000 -0600
+++ record.h	2007-05-11 05:06:43.000000000 -0600
@@ -210,6 +210,10 @@
 		MobilePhone,
 		Pager,
 		PIN,
+        Radio,
+        WorkPhone2,
+        HomePhone2,
+        OtherPhone,
 		FirstName,
 		LastName,
 		Company,
@@ -223,7 +227,22 @@
 		Country,
 		Title,
 		PublicKey,
-		Notes;
+        URL,
+        Prefix,
+        Category,
+        HomeAddress1,
+        HomeAddress2,
+        HomeAddress3,
+		Notes,
+        UserDefined1,
+        UserDefined2,
+        UserDefined3,
+        UserDefined4,
+        HomeCity,
+        HomeProvince,
+        HomePostalCode,
+        HomeCountry,
+        Image;
 
 	GroupLinksType GroupLinks;
 	UnknownsType Unknowns;
@@ -343,6 +362,7 @@
 	std::string Subject;
 	std::string Notes;
 	std::string Location;
+    std::string FreeBusy;
 	time_t NotificationTime;
 	time_t StartTime;
 	time_t EndTime;
@@ -368,6 +388,19 @@
 		Week = 12		//< eg. every week on Mon and Fri
 					//< set: WeekDays
 	};
+    
+    ///
+    /// Free Busy Flag
+    ///
+    /// Note: This is set either to Free, Busy, Tentative or Out of Office
+    ///        by Microsoft Outlook
+    ///
+    enum FreeBusyFlag {
+        Free = 0, 
+        Tentative,
+        Busy,
+        OutOfOffice
+    };
 
 	bool Recurring;
 	RecurringCodeType RecurringType;

Attachment: pgpSH82FKzTrn.pgp
Description: PGP signature

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to