kaddressbook Library API Documentation

pab_mapihd.h

00001 /*************************************************************************** 00002 mapihd.h - description 00003 ------------------- 00004 begin : Tue Jul 25 2000 00005 copyright : (C) 2000 by Hans Dijkema 00006 email : kmailcvt@hum.org 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef _MAPIHD_H_ 00019 #define _MAPIHD_H_ 00020 00021 #include <qmemarray.h> 00022 00023 #include "pab_xxport.h" 00024 00025 #define T_MS_ARRAY 0x1100 // Some sort of array 00026 #define T_MS_STRING ((unsigned long) 0x1e) // definitely a string 00027 00028 typedef unsigned long adr_t; 00029 typedef unsigned long content_t; 00030 typedef unsigned short pabsize_t; 00031 typedef unsigned char byte_t; 00032 typedef unsigned short word_t; 00033 typedef byte_t byte; 00034 00035 class pab; 00036 00037 class pabrec { 00038 private: 00039 char entry[1024]; 00040 byte *_mem; 00041 word_t m_N; 00042 word_t *m_W; 00043 public: 00044 pabrec(pab &); // expects record the begin at reading point (ftell). 00045 ~pabrec(); 00046 public: 00047 word_t N(void) { return m_N; } 00048 word_t operator[](int i) { return m_W[i]; } 00049 const char *getEntry(int i); 00050 public: 00051 content_t read(word_t offset); 00052 }; 00053 00054 typedef enum { 00055 pr_unknown,pr_notused, 00056 pr_givenname,pr_email, 00057 pr_firstname,pr_additionalname,pr_lastname,pr_title, 00058 pr_address,pr_town,pr_state,pr_zip,pr_country, 00059 pr_organization,pr_department,pr_subdep,pr_job, 00060 pr_tel,pr_fax,pr_modem,pr_mobile,pr_url,pr_talk, 00061 pr_notes,pr_birthday 00062 } 00063 pabrec_entry; 00064 00065 class mapitag_t 00066 { 00067 friend bool operator < (mapitag_t &,mapitag_t &); 00068 friend bool operator > (mapitag_t &,mapitag_t &); 00069 friend bool operator == (mapitag_t &,mapitag_t &); 00070 private: 00071 word_t _tag; 00072 word_t _type; 00073 content_t _order; 00074 public: 00075 mapitag_t(content_t tag,content_t order) { _tag=(word_t) tag;_type=(word_t) (tag>>16);_order=order; } 00076 mapitag_t() { _tag=0;_type=0;_order=0; } 00077 public: 00078 mapitag_t & operator = (mapitag_t & t) { _tag=t._tag;_type=t._type;_order=t._order;return *this; } 00079 public: 00080 bool isUsed(void) { return (_type==T_MS_STRING || (_type&T_MS_ARRAY)!=0) && _order!=0; } 00081 word_t literal(void) { return _tag; } 00082 content_t order(void) { return _order; } 00083 pabrec_entry matchTag(void); 00084 }; 00085 00086 bool operator < (mapitag_t & a,mapitag_t & b); 00087 bool operator > (mapitag_t & a,mapitag_t & b); 00088 bool operator == (mapitag_t & a,mapitag_t & b); 00089 00090 class pabfields_t 00091 { 00092 private: 00093 QMemArray<mapitag_t> tags,context_tags; 00094 pabrec *m_R; 00095 QString givenName,email, 00096 title,firstName,additionalName,lastName, 00097 address,town,state,zip,country, 00098 organization,department,subDep,job, 00099 tel,fax,modem,mobile,homepage,talk, 00100 comment,birthday; 00101 bool OK; 00102 private: 00103 bool isUsed(int k); 00104 pabrec_entry isWhat(int k); 00105 word_t literal(int k); 00106 content_t order(int k); 00107 public: 00108 pabfields_t(pabrec & R, QWidget *parent); 00109 public: 00110 KABC::Addressee get( ); 00111 bool isOK(void) { return OK; } 00112 bool isUsable(void) { return givenName!=""; } 00113 }; 00114 00115 00116 #endif 00117
KDE Logo
This file is part of the documentation for kaddressbook Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:51:15 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003