vcard.h

来自「pimserver是syncml_vc开发包的服务器实例」· C头文件 代码 · 共 69 行

H
69
字号

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the VCARD_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// VCARD_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
#ifdef VCARD_EXPORTS
#define VCARD_API __declspec(dllexport)
#else
#define VCARD_API __declspec(dllimport)
#endif

// This class is exported from the vcard.dll

typedef enum {cp_PropName,cp_PropData,cp_ParamName,cp_ParamData}ParserState;
typedef enum {NOKNOWN,SOURCE, NAME, PROFILE, BEGIN, END,FN, N, NICKNAME, PHOTO, BDAY, ADR, LABEL, TEL, EMAIL,
MAILER, TZ, GEO, TITLE, ROLE, LOGO, AGENT, ORG, CATEGORIES, NOTE,
PRODID, REV, SORT_STRING, SOUND, URL, UID, VERSION, CLASS, KEY
} VCARDTYPE;
typedef enum {TEXT,QUOTED_PRINTABLE,BASE64
} ENCODING;
typedef enum {ASCII,UTF_8,UTF_7
} CHARSET;

typedef struct Param
{
	char*	name;
	char*	data;
	struct	Param*next;
}Param;
typedef struct VItem
{
	VCARDTYPE		type;
	ENCODING		encoding;	
	CHARSET			charset;
	char*			data;
	int				datalen;
	char*			sourcedata;
	struct Param*   phead;
	struct Param*	pend;
	//struct Param*	param;
	struct VItem*	next;
}VItem;
class VCARD_API CVcard {
public:
	CVcard(void);
public:
	int Parse(const char *s, int len);
	int Encode(char*name, char*cell,char*target);
	VItem* GetItem(VCARDTYPE type);
	int CheckCards();
	int Free();
private:

	VItem	*end;
	VItem	*head;
	ParserState state;
	int AppendItem(VItem*pNew);
	int AppendParam(VItem*pItem,Param*pPam);

	// TODO: add your methods here.
};

extern VCARD_API int nVcard;

VCARD_API int fnVcard(void);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?