📄 vcard.h
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -