www.pudn.com > isync2[1].0.rar > CardStruct.h


#ifndef CARDSTRUCT_H
#define CARDSTRUCT_H

#include 

/* 电话类别名称
const char *TelTypeName[] =
{
  "电话", "手机", "办公", "宅电", "内线"
};
*/

typedef unsigned char BYTE;

//下面的宏定义各变量的最大长度
#define MAXLEN_TEL		21	// 电话号码
#define MAXLEN_TELTYPENAME      5       // 电话字段名称
#define MAXLEN_NAME		17	// 姓名

#define MAXLEN_BUSINESS		17	// 职务
#define MAXLEN_COMPANYNAME	41	// 单位名称
#define MAXLEN_EMAL		65	// 邮件地址
#define MAXLEN_COMMENT		129	// 备注信息
#define MAXLEN_RING		33	// 特色震铃
#define MAXLEN_TYPE             9       // 类别名称
#define MAXLEN_TYPECOUNT        10      // 电话字段个数

struct TelStruct_T
{
  BYTE type;
  char number[MAXLEN_TEL];
};

struct CardStruct_T
{
  char szName[MAXLEN_NAME];                // 姓名
  BYTE accLevel;                 // 免打扰级别  0 VIP  1 普通  2 黑名单
  TelStruct_T typeAndNumber[MAXLEN_TYPECOUNT];    // 电话字段名称和号码
  char szCompanyName[MAXLEN_COMPANYNAME];  // 单位名称
  char szBusiness[MAXLEN_BUSINESS];        // 职务
  char szEmail[MAXLEN_EMAL];               // 邮件地址
  char szComment[MAXLEN_COMMENT];          // 备注信息
  char szRing[MAXLEN_RING];                // 特色震铃
  char szType[MAXLEN_TYPE];                // 所属类别名称
  //char dummy[];                           // 填充字节,为同步程序使用

  void PrintSelfInfo (void);
};

#define PrintMember(x) printf(#x" = %s\n", x)
#define PrintIntMember(x) printf(#x" = %d\n", x)

inline void CardStruct_T::PrintSelfInfo (void)
{
#ifndef NDEBUG
  printf("***** Card struct information start *****\n");

  PrintMember(szName);
  PrintIntMember(accLevel);
  for (int i = 0; i < 10; ++i)
  {
    printf("teltype = %d : %s\n", typeAndNumber[i].type, typeAndNumber[i].number);
  }
  PrintMember(szBusiness);
  PrintMember(szCompanyName);
  PrintMember(szEmail);
  PrintMember(szComment);
  PrintMember(szRing);
  PrintMember(szType);

  printf("***** Card struct information end *****\n");
#endif
}

extern CardStruct_T *g_curCard;

const int TypeOffSetInCard = g_curCard->szType - reinterpret_cast(g_curCard);

#endif