I post my header files, which may help:
StdAfx.h
Code:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif
// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0400 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target Windows 2000 or later.
#endif
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later.
#endif
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h> // MFC OLE classes
#include <afxodlgs.h> // MFC OLE dialog classes
#include <afxdisp.h> // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
common.h
Code:
#define MIFARE_KEYLEN 6
#define MIFARE_KEYNR 0
#define MIFARE_BLOCKNR 4
#define MIFARE_BUFLEN 16
#define FOUT_FILENAME "C:\\id_name_list.dat"
#define PORT 6000
#define SERVER_IP "192.168.1.3"
#include <winscard.h>
extern "C"{
#include <ok.h>
#include <scardcl.h>
}
Reader.h
Code:
#include "common.h"
#include "StdAfx.h"
#include <afxstr.h>
#include "NDKClient.h"
class CReader:public CNDKClient
{
public:
CReader();
~CReader();
void start();
private:
SCARD_READERSTATE sReaderState; //structure storing readers and data being monitored
SCARDHANDLE hSHandle;
SCARDCONTEXT hSContext;
void readAndBroadcastID();
void UcharToStr(UCHAR *ucDataBuffer, ULONG ulDataBufLen, char *str);
private:
ULONG lastCardState;
};