#pragma once #ifdef LIBIDCERTIFICATELOADER_EXPORTS #define LIBSUBDEVICELOADER_API __declspec(dllexport) #else #define LIBSUBDEVICELOADER_API __declspec(dllimport) #pragma comment(lib, "libIDCertificateLoader.lib") #endif #include #include "IDCerClass.h" #ifdef __cplusplus extern "C" { #endif //二代身份证信息结构(需要支持外国人永久居留证请使用IDCerInfoEx) //请务必按照各字段指定格式返回数据 struct Bridge_IDCerInfo { struct Name { CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }name; struct Sex { CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }sex; struct Nation { CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }nation; struct Birthday {//format:1986年10月07日 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }birthday; struct Address { CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }address; struct Idno { CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }idno; struct Department { CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }department; struct StartDate {//format:2010.08.09 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }startDate; struct EndDate { //format:2020.08.09 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }endDate; struct NewAddress { CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }newAddress; struct PhotoPath { CHAR data[MAX_IDCER_PHOTO_PATH]; DWORD dwSize; }photoPath; }; //二代证信息结构(支持外国人永久居留证) //请务必按照各字段指定格式返回数据 struct Bridge_IDCerInfoEx { struct Name {//中文姓名 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }name; struct Sex {//性别 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }sex; struct Nation {//民族(二代证专用) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }nation; struct Birthday {//出生日期,格式:1986年10月07日 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }birthday; struct Address {//住址(二代证专用) CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }address; struct Idno {//证件号码,二代证指身份证号,外国人指永久居留证号 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }idno; struct Department {//二代证指签发机关,外国人指当次申请受理机关代码 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }department; struct StartDate {//有效期起始日(签发日)格式:2010.08.09 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }startDate; struct EndDate { //有效期截止日(终止日)格式:2020.08.09 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }endDate; struct NewAddress {//最新地址,二代证专用 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }newAddress; struct PhotoPath { CHAR data[MAX_IDCER_PHOTO_PATH]; DWORD dwSize; }photoPath; struct EnglishName {//英文姓名,外国人专用 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }englishName; struct Nationality {//国籍或地区代码,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }nationality; struct IdVersion {//证件版本号,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }idVersion; struct IdType {//证件类型标识,外国人取值'I',二代证为空 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }idType; struct Reserved {//保留字段,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }reserved; struct TXZCode {//通行证号码(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }txzCode; struct IssuedSN {//签发次数(港澳台居住证) CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }issuedSN; struct Reserved2 {//备用2(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved2; struct Reserved3 {//备用3(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved3; struct Reserved4 {//备用4(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved4; struct Reserved5 {//备用5(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved5; }; struct Bridge_IDCerInfoEx2 { struct Name {//中文姓名 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }name; struct Sex {//性别 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }sex; struct Nation {//民族(二代证专用) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }nation; struct Birthday {//出生日期,原始格式:19861007 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }birthday; struct Address {//住址(二代证专用) CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }address; struct Idno {//证件号码,二代证指身份证号,外国人指永久居留证号 CHAR data[2 * MAX_IDCER_SIMPLE_INFO_SIZE]; //拓展至64字节 DWORD dwSize; }idno; struct Department {//二代证指签发机关,外国人指当次申请受理机关代码 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }department; struct StartDate {//有效期起始日(签发日)原始格式:20200809 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }startDate; struct EndDate {//有效期截止日(终止日)原始格式:20200809 CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }endDate; struct NewAddress {//最新地址,二代证专用 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }newAddress; struct PhotoPath { CHAR data[MAX_IDCER_PHOTO_PATH]; DWORD dwSize; }photoPath; struct EnglishName {//英文姓名,外国人专用 CHAR data[MAX_IDCER_INFO_SIZE]; DWORD dwSize; }englishName; struct Nationality {//国籍或地区代码,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }nationality; struct IdVersion {//证件版本号,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }idVersion; struct IdType {//证件类型标识,外国人取值'I',二代证为空 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }idType; struct Reserved {//保留字段,外国人专用 CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }reserved; struct TXZCode {//通行证号码(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }txzCode; struct IssuedSN {//签发次数(港澳台居住证) CHAR data[IDCER_EIGHT_BYTE_SIZE]; DWORD dwSize; }issuedSN; struct Reserved2 {//备用2(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved2; struct Reserved3 {//备用3(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved3; struct Reserved4 {//备用4(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved4; struct Reserved5 {//备用5(港澳台居住证) CHAR data[MAX_IDCER_SIMPLE_INFO_SIZE]; DWORD dwSize; }reserved5; }; LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_LoadDevObject(const char* libraryPath); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_ReleaseDevObject(); ////////////////////////////////////////////////////////////////////////// LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_GetDevCategory(DevCategoryInfo* pDevCategory); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_Reset(); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_DevClose(); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_GetLastErr(DevErrorInfo* pDevErrInfo); ////////////////////////////////////////////////////////////////////////// LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_DevOpen(DWORD dwPort); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_IDCerRFControl(int bControl); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_IDCerAuthenticate(); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_IDCerGetData(Bridge_IDCerInfo* idCerInfo); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_IDCerGetDataEx(Bridge_IDCerInfoEx* idCerInfoEx); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_ForceIDEject(); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_ScanIDAndSaveImage(); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_QueryCardPos(int* pos); LIBSUBDEVICELOADER_API ErrorCodeEnum Bridge_IDCerGetDataEx2(Bridge_IDCerInfoEx2* idCerInfoEx2); #ifdef __cplusplus } // extern "C" { #endif