summaryrefslogtreecommitdiffstats
path: root/kaddressbook/xxport/pab_mapihd.h
diff options
context:
space:
mode:
Diffstat (limited to 'kaddressbook/xxport/pab_mapihd.h')
-rw-r--r--kaddressbook/xxport/pab_mapihd.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/kaddressbook/xxport/pab_mapihd.h b/kaddressbook/xxport/pab_mapihd.h
new file mode 100644
index 000000000..c4bb58a77
--- /dev/null
+++ b/kaddressbook/xxport/pab_mapihd.h
@@ -0,0 +1,117 @@
+/***************************************************************************
+ mapihd.h - description
+ -------------------
+ begin : Tue Jul 25 2000
+ copyright : (C) 2000 by Hans Dijkema
+ email : kmailcvt@hum.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef _MAPIHD_H_
+#define _MAPIHD_H_
+
+#include <qmemarray.h>
+
+#include "pab_xxport.h"
+
+#define T_MS_ARRAY 0x1100 // Some sort of array
+#define T_MS_STRING ((unsigned long) 0x1e) // definitely a string
+
+ typedef unsigned long adr_t;
+ typedef unsigned long content_t;
+ typedef unsigned short pabsize_t;
+ typedef unsigned char byte_t;
+ typedef unsigned short word_t;
+ typedef byte_t byte;
+
+ class pab;
+
+ class pabrec {
+ private:
+ char entry[1024];
+ byte *_mem;
+ word_t m_N;
+ word_t *m_W;
+ public:
+ pabrec(pab &); // expects record the begin at reading point (ftell).
+ ~pabrec();
+ public:
+ word_t N(void) { return m_N; }
+ word_t operator[](int i) { return m_W[i]; }
+ const char *getEntry(int i);
+ public:
+ content_t read(word_t offset);
+ };
+
+ typedef enum {
+ pr_unknown,pr_notused,
+ pr_givenname,pr_email,
+ pr_firstname,pr_additionalname,pr_lastname,pr_title,
+ pr_address,pr_town,pr_state,pr_zip,pr_country,
+ pr_organization,pr_department,pr_subdep,pr_job,
+ pr_tel,pr_fax,pr_modem,pr_mobile,pr_url,pr_talk,
+ pr_notes,pr_birthday
+ }
+ pabrec_entry;
+
+ class mapitag_t
+ {
+ friend bool operator < (mapitag_t &,mapitag_t &);
+ friend bool operator > (mapitag_t &,mapitag_t &);
+ friend bool operator == (mapitag_t &,mapitag_t &);
+ private:
+ word_t _tag;
+ word_t _type;
+ content_t _order;
+ public:
+ mapitag_t(content_t tag,content_t order) { _tag=(word_t) tag;_type=(word_t) (tag>>16);_order=order; }
+ mapitag_t() { _tag=0;_type=0;_order=0; }
+ public:
+ mapitag_t & operator = (mapitag_t & t) { _tag=t._tag;_type=t._type;_order=t._order;return *this; }
+ public:
+ bool isUsed(void) { return (_type==T_MS_STRING || (_type&T_MS_ARRAY)!=0) && _order!=0; }
+ word_t literal(void) { return _tag; }
+ content_t order(void) { return _order; }
+ pabrec_entry matchTag(void);
+ };
+
+ bool operator < (mapitag_t & a,mapitag_t & b);
+ bool operator > (mapitag_t & a,mapitag_t & b);
+ bool operator == (mapitag_t & a,mapitag_t & b);
+
+ class pabfields_t
+ {
+ private:
+ QMemArray<mapitag_t> tags,context_tags;
+ pabrec *m_R;
+ QString givenName,email,
+ title,firstName,additionalName,lastName,
+ address,town,state,zip,country,
+ organization,department,subDep,job,
+ tel,fax,modem,mobile,homepage,talk,
+ comment,birthday;
+ bool OK;
+ private:
+ bool isUsed(int k);
+ pabrec_entry isWhat(int k);
+ word_t literal(int k);
+ content_t order(int k);
+ public:
+ pabfields_t(pabrec & R, QWidget *parent);
+ public:
+ KABC::Addressee get( );
+ bool isOK(void) { return OK; }
+ bool isUsable(void) { return givenName!=""; }
+ };
+
+
+#endif
+