⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccidtest.cpp

📁 usblsccid-0.9.2: ED1x Smart Card Reader Driver
💻 CPP
字号:
// CcidTest1.cpp: implementation of the CCcidTest1 class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "scrtest.h"
#include "CcidTest.h"
#include "parseATR.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CMapStringToString CCcidTest::m_CmdIdToClassName;
CMapStringToRuntimeClass CCcidTest::m_CmdIdToRuntimeClass;
CMapStringToUChar CCcidTest::m_CmdIdToFuncNum;


IMPLEMENT_DYNCREATE(CCcidTest, ICmdTest)

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCcidTest::CCcidTest()
{

}

CCcidTest::~CCcidTest()
{


}


void CCcidTest::Execute(CObject *obj)
{
	PBYTE	ioBuffer;
	DWORD	nResLen;
	CCcidPage *ccidPage = static_cast<CCcidPage*>(obj);

	ioBuffer = (PBYTE)malloc(512);
	memset(ioBuffer,0,512);
	ioBuffer[0] =  GetFuncNum();
	int nCmdLen = ccidPage->m_CmdData.m_length;
	if(nCmdLen)
		memcpy(&ioBuffer[1],ccidPage->m_CmdData.m_pData,nCmdLen);

	ccidPage->m_Device.DeviceIoControl(IOCTL_USCR_CCID,
		ioBuffer,nCmdLen+1,ioBuffer,512,&nResLen);
	
	ccidPage->m_ResData.SetDataAddr(ioBuffer,nResLen);
	if(GetFuncNum() == PC_to_RDR_IccPowerOn)
	{
		SCARD_CARD_CAPABILITIES ScardCapabilities;
		memset(&ScardCapabilities,0,sizeof(SCARD_CARD_CAPABILITIES));
		CString retStr = parseATR(ioBuffer,nResLen,&ScardCapabilities);
	}

}

UCHAR CCcidTest::GetFuncNum()
{
	USES_CONVERSION;

	CString idName;
#if 0
	IXMLDOMNamedNodeMapPtr pNamedNodeMapPtr;
	IXMLDOMNodePtr pAttrNode;
	pNamedNodeMapPtr = m_pXMLNode->Getattributes();
	pAttrNode = pNamedNodeMapPtr->getNamedItem(_bstr_t("id"));
#else
	IXMLDOMNodePtr pAttrNode;
	pAttrNode = m_pXMLNode->selectSingleNode(_bstr_t("@id"));

#endif
	idName = W2T(_bstr_t(pAttrNode->GetnodeValue()));
	return m_CmdIdToFuncNum[idName];
}

⌨️ 快捷键说明

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