Jelajahi Sumber

Z991239-5267 #comment 修改卡库实体对外接口

Signed-Off-By: commit-hook
刘文涛80174520 1 tahun lalu
induk
melakukan
d135353e23

+ 449 - 0
Module/mod_cardissuerstore/CardIssuerStore.xml

@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="gb2312" ?>
+<entity name="CardIssuerStore">
+	<class name="CardIssuerStoreService" overlap="true" exclusive="false">	
+		<twoway name="Insert" overlap="true" method_id="0">
+			<req>
+				<param name="aid" type="string"/>
+			</req>
+			<res>
+			</res>			
+		</twoway>
+		<oneway name="CancelInsert" overlap="true" method_id="1">			
+		</oneway>
+		<oneway name="InsertWaitMore" overlap="true" method_id="2">			
+		</oneway>					
+		<twoway name="Read" overlap="true" method_id="3">
+			<req>
+				<param name="aid" type="string"/>
+				<param name="reserved1" type="int"/>
+				<param name="reserved2" type="int"/>
+				<param name="reserved3" type="string"/>
+				<param name="reserved4" type="string"/>
+			</req>
+			<res>
+				<param name="track1" type="string"/>
+				<param name="track2" type="string"/>
+				<param name="track3" type="string"/>
+				<param name="ICType" type="int"/>
+				<param name="ICData" type="string"/>
+				<param name="status" type="int" />
+				<param name="t2Account" type="string" />
+				<param name="t2Region" type="string" />
+				<param name="t2CardSerial" type="string" />
+				<param name="t2CVC" type="string" />
+				<param name="t2ExpireDate" type="string" />
+				<param name="reserved1" type="int"/>
+				<param name="reserved2" type="int"/>
+				<param name="reserved3" type="string"/>
+				<param name="reserved4" type="string"/>
+			</res>
+		</twoway>			
+		<twoway name="Capture" overlap="true" method_id="4">
+			<req>
+			</req>
+			<res>
+			</res>			
+		</twoway>
+		<twoway name="Eject" overlap="true" method_id="5">
+			<req>
+			</req>
+			<res>
+			</res>			
+		</twoway>						
+		<twoway name="PreOnline" overlap="true" method_id="6">
+			<req>
+				<param name="businessData" type="string"/>
+				<param name="reserved1" type="string"/>
+				<param name="reserved2" type="string"/>
+			</req>
+			<res>
+				<param name="result" type="string"/>
+			</res>			
+		</twoway>
+		<twoway name="PostOnline" overlap="true" method_id="7">
+			<req>
+				<param name="data" type="string"/>
+			</req>
+			<res>
+				<param name="result" type="string"/>
+			</res>			
+		</twoway>
+		<oneway name="Exit" overlap="true" method_id="8">			
+		</oneway>			
+		<twoway name="Issue" overlap="true" method_id="9">
+			<req>
+			</req>
+			<res>
+			</res>			
+		</twoway>				
+		<twoway name="GetMaterialCount" overlap="true" method_id="10">
+			<req>
+			</req>
+			<res>
+				<param name="remains" type="int"/>
+				<param name="captured" type="int"/>
+				<param name="issued" type="int"/>
+				<param name="mixed" type="int"/>
+			</res>			
+		</twoway>
+		<twoway name="SetMaterialCount" overlap="true" method_id="11">
+			<req>
+				<param name="remains" type="int"/>
+				<param name="captured" type="int"/>
+				<param name="issued" type="int"/>
+				<param name="bRemains" type="bool"/>
+				<param name="bCaptured" type="bool"/>				
+				<param name="bIssued" type="bool"/>
+				<param name="mixed" type="int"/>
+				<param name="bMixed" type="bool"/>
+			</req>
+			<res>
+			</res>			
+		</twoway>
+		<oneway name="SetIssueFlag" overlap="true" method_id="12">			
+		</oneway>
+		<twoway name="ReadEx" overlap="true" method_id="13">
+			<req>
+				<param name="aid" type="string"/>
+				<param name="reserved1" type="string"/>
+				<param name="reserved2" type="string"/>
+			</req>
+			<res>
+				<param name="track1" type="string"/>
+				<param name="track2" type="string"/>
+				<param name="track3" type="string"/>
+				<param name="CDType" type="int"/>
+				<param name="ICType" type="int"/>
+				<param name="CMBType" type="int"/>
+				<param name="ICData" type="string"/>
+				<param name="status" type="int" />
+				<param name="t2Account" type="string" />
+				<param name="t2Region" type="string" />
+				<param name="t2CardSerial" type="string" />
+				<param name="t2CVC" type="string" />
+				<param name="t2ExpireDate" type="string" />
+				<param name="reserved1" type="string"/>
+				<param name="reserved2" type="string"/>
+			</res>
+		</twoway>
+		<twoway name="QueryCardInfo" overlap="true" method_id="14">
+			<req>
+			</req>
+			<res>
+				<param name="position" type="int"/>
+				<param name="reserved1" type="int"/>
+				<param name="reserved2" type="string"/>
+			</res>			
+		</twoway>
+		<twoway name="WriteTrack" overlap="true" method_id="15">
+			<req>
+				<param name="mode" type="int"/>
+				<param name="co" type="int"/>
+				<param name="track1" type="wstring"/>
+				<param name="track2" type="wstring"/>
+				<param name="track3" type="wstring"/>
+				<param name="reserved" type="wstring"/>
+			</req>
+			<res>
+				<param name="result" type="int"/>
+				<param name="reserved1" type="int"/>
+				<param name="reserved2" type="string"/>
+			</res>
+		</twoway>
+		<twoway name="GetMaterialCountEx" overlap="true" method_id="16">
+			<req>
+				<param name="GetHopper" type="array_int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>		
+			</req>
+			<res>
+				<param name="captured" type="int"/>
+				<param name="hasHopper" type="array_int"/>
+				<param name="CardBoxNo" type="array_string"/>
+				<param name="PsbCode" type="array_string"/>
+				<param name="PsbName" type="array_string"/>
+				<param name="Maintainer" type="array_string"/>
+				<param name="MaintainTime" type="array_string"/>
+				<param name="CardInit" type="array_int"/>
+				<param name="CardPercent" type="array_int"/>
+				<param name="remains" type="array_int"/>
+				<param name="issued" type="array_int"/>
+				<param name="mixed" type="array_int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+			</res>			
+		</twoway>
+		<twoway name="SetMaterialCountEx" overlap="true" method_id="17">
+			<req>
+				<param name="SetHopper" type="array_int"/>
+				<param name="SetCaptured" type="int"/>
+				<param name="captured" type="int"/>
+				<param name="CardBoxNo" type="array_string"/>
+				<param name="PsbCode" type="array_string"/>
+				<param name="PsbName" type="array_string"/>
+				<param name="Maintainer" type="array_string"/>
+				<param name="MaintainTime" type="array_string"/>
+				<param name="CardInit" type="array_int"/>
+				<param name="CardPercent" type="array_int"/>
+				<param name="remains" type="array_int"/>
+				<param name="issued" type="array_int"/>
+				<param name="mixed" type="array_int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>	
+			</res>			
+		</twoway>
+		<twoway name="SetSomeFlag" overlap="true" method_id="18">
+			<req>
+				<param name="IssueBusiness" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+			</res>				
+		</twoway>
+		<twoway name="GetSCIInfo" overlap="true" method_id="19">
+			<req>
+			</req>
+			<res>
+				<param name="connected" type="int"/>
+				<param name="DevSN" type="string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>
+			</res>			
+		</twoway>
+		<twoway name="IssueEx" overlap="true" method_id="20">
+			<req>
+				<param name="hopper" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="OpenSafeLock" overlap="true" method_id="21">
+			<req>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="SAMICCommand" overlap="true" method_id="22">
+			<req>
+				<param name="cmdType" type="int"/>
+				<param name="param1" type="array_int"/>
+				<param name="param2" type="array_string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="ret1" type="array_int"/>
+				<param name="ret2" type="array_string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="QueryPrinterStatus" overlap="true" method_id="23">
+			<req>
+				<param name="param1" type="array_int"/>
+				<param name="param2" type="array_string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="ret1" type="array_int"/>
+				<param name="ret2" type="array_string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="Print" overlap="true" method_id="24">
+			<req>
+				<param name="data1" type="blob"/>
+				<param name="data2" type="blob"/>
+				<param name="data3" type="blob"/>
+				<param name="data4" type="blob"/>
+				<param name="data5" type="blob"/>
+				<param name="data6" type="blob"/>				
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="QuerySCIList" overlap="true" method_id="25">
+			<req>			
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="sciNo" type="array_string"/>
+        <param name="arrMateriel" type="array_string"/>
+        <param name="CardGroove" type="array_string"/>
+        <param name="CardBoxNo" type="array_string"/>
+        <param name="PsbCode" type="array_string"/>
+        <param name="PsbName" type="array_string"/>
+        <param name="CardInit" type="array_uint"/>
+        <param name="CardRemains" type="array_uint"/>
+        <param name="CardIssued" type="array_uint"/>
+        <param name="CardMixed" type="array_uint"/>
+        <param name="CardPercent" type="array_uint"/>
+        <param name="Maintainer" type="array_string"/>
+        <param name="MaintainTime" type="array_string"/>
+        <param name="UpdateTime" type="array_string"/>				
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>		
+		<twoway name="BindSCI" overlap="true" method_id="26">
+			<req>
+				<param name="type" type="int"/>
+				<param name="sciNo" type="string" />			
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>			
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_string"/>					
+			</res>			
+		</twoway>
+		<twoway name="PreOnlineOnStore" overlap="true" method_id="27">
+			<req>
+				<param name="account" type="string"/>
+				<param name="termNo" type="string"/>
+				<param name="businessData" type="string"/>
+				<param name="slot" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="findCard" type="int"/>
+				<param name="cardPos" type="int"/>
+				<param name="result" type="string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>
+		<twoway name="NotifyPreonline" overlap="true" method_id="28">
+			<req>
+				<param name="findCard" type="int"/>
+				<param name="cardPos" type="int"/>			
+				<param name="errCode" type="int"/>			
+				<param name="account" type="string"/>
+				<param name="termNo" type="string"/>
+				<param name="data" type="string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>
+		<twoway name="QueryCardInfoOnStore" overlap="true" method_id="29">
+			<req>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="findCard" type="int"/>
+				<param name="cardPos" type="int"/>					
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>
+		<twoway name="GetAddCardInfo" overlap="true" method_id="30">
+			<req>
+				<param name="isSync" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="count" type="int"/>
+				<param name="slot" type="array_int"/>
+				<param name="account" type="array_string"/>							
+				<param name="cardSerial" type="array_string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>		
+		<twoway name="PrintCardImmediately" overlap="true" method_id="31">
+			<req>
+				<param name="formFile" type="string"/>
+				<param name="printData" type="string"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="ret" type="int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>
+		<twoway name="QueryCIStatus" overlap="true" method_id="32">
+			<req>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>
+			</req>
+			<res>
+				<param name="retainBin" type="int"/>
+				<param name="hopperNo" type="array_int"/>
+				<param name="hopperStatus" type="array_int"/>
+				<param name="reserved1" type="array_int"/>
+				<param name="reserved2" type="array_int"/>
+				<param name="reserved3" type="array_string"/>
+				<param name="reserved4" type="array_string"/>				
+			</res>			
+		</twoway>																		
+		<twoway name="GetDevInfo" overlap="true" method_id="65535">
+			<req>
+			</req>
+			<res>
+				<param name="type" type="string" />
+				<param name="model" type="string" />
+				<param name="version" type="string" />
+				<param name="state" type="int" />
+			</res>			
+		</twoway>							
+	</class>
+	<message name="FetchCard">
+			<param name="status" type="int"/>
+	</message>
+	<message name="SCIConnect">
+			<param name="status" type="int"/>
+	</message>			
+</entity>

+ 1607 - 0
Module/mod_cardissuerstore/CardIssuerStore_client_g.h

@@ -0,0 +1,1607 @@
+
+#ifndef __CARDISSUERSTORE_CLIENT_G_H
+#define __CARDISSUERSTORE_CLIENT_G_H
+
+#pragma once
+
+// This code is generated by spgen tool!
+
+#include "CardIssuerStore_def_g.h"
+
+namespace CardIssuerStore {
+class CardIssuerStoreService_ClientBase : public CClientSessionBase {
+public:
+	explicit CardIssuerStoreService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {}
+
+	CardIssuerStoreService_ClientBase* operator () (const linkContext &curLink) 
+	{
+		m_context = curLink;
+		return this;
+	}
+
+protected:
+	virtual ~CardIssuerStoreService_ClientBase()
+	{
+		/// override by user
+	}
+public:
+
+	void OnConnectSucceed()
+	{
+		bSessionClosed = false;
+	}
+	void OnClose(ErrorCodeEnum)
+	{
+		Dbg("session closed.");
+		bSessionClosed = true;
+	}
+	bool QuerySessionClosed()
+	{
+		return bSessionClosed;
+	}
+	ErrorCodeEnum Connect(CSmartPointer<IAsynWaitSp> &spAsyncWait)
+	{
+		CSmartPointer<IEntityFunction> pFunc = m_pEntityBase->GetFunction();
+		ErrorCodeEnum Error = pFunc->ConnectRemoteEntity(this, "CardIssuerStore", "CardIssuerStoreService", spAsyncWait);
+		if (Error == Error_Succeed) {
+			m_bSysManaged = true;
+			bSessionClosed = false;
+		}
+		return Error;
+	}
+	ErrorCodeEnum Connect()
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Connect(spAsyncWait);
+		if (Error == Error_Succeed) {
+			Error = spAsyncWait->WaitAnswer();
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum Insert(CardIssuerStoreService_Insert_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Insert, CardIssuerStoreService_MethodSignature_Insert, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Insert(CardIssuerStoreService_Insert_Req &Req, CardIssuerStoreService_Insert_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Insert(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Insert(CardIssuerStoreService_Insert_Req &Req, CardIssuerStoreService_Insert_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Insert(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Insert(CardIssuerStoreService_Insert_Req &Req, CardIssuerStoreService_Insert_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Insert(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum CancelInsert()
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->OnewayCall(CardIssuerStoreService_Method_CancelInsert, CardIssuerStoreService_MethodSignature_CancelInsert, m_context);
+		m_context.clear();
+		return ret;
+	}
+
+	ErrorCodeEnum InsertWaitMore()
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->OnewayCall(CardIssuerStoreService_Method_InsertWaitMore, CardIssuerStoreService_MethodSignature_InsertWaitMore, m_context);
+		m_context.clear();
+		return ret;
+	}
+
+	ErrorCodeEnum Read(CardIssuerStoreService_Read_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Read, CardIssuerStoreService_MethodSignature_Read, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Read(CardIssuerStoreService_Read_Req &Req, CardIssuerStoreService_Read_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Read(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Read(CardIssuerStoreService_Read_Req &Req, CardIssuerStoreService_Read_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Read(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Read(CardIssuerStoreService_Read_Req &Req, CardIssuerStoreService_Read_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Read(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum Capture(CardIssuerStoreService_Capture_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Capture, CardIssuerStoreService_MethodSignature_Capture, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Capture(CardIssuerStoreService_Capture_Req &Req, CardIssuerStoreService_Capture_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Capture(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Capture(CardIssuerStoreService_Capture_Req &Req, CardIssuerStoreService_Capture_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Capture(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Capture(CardIssuerStoreService_Capture_Req &Req, CardIssuerStoreService_Capture_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Capture(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum Eject(CardIssuerStoreService_Eject_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Eject, CardIssuerStoreService_MethodSignature_Eject, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Eject(CardIssuerStoreService_Eject_Req &Req, CardIssuerStoreService_Eject_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Eject(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Eject(CardIssuerStoreService_Eject_Req &Req, CardIssuerStoreService_Eject_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Eject(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Eject(CardIssuerStoreService_Eject_Req &Req, CardIssuerStoreService_Eject_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Eject(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum PreOnline(CardIssuerStoreService_PreOnline_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_PreOnline, CardIssuerStoreService_MethodSignature_PreOnline, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum PreOnline(CardIssuerStoreService_PreOnline_Req &Req, CardIssuerStoreService_PreOnline_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PreOnline(CardIssuerStoreService_PreOnline_Req &Req, CardIssuerStoreService_PreOnline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PreOnline(CardIssuerStoreService_PreOnline_Req &Req, CardIssuerStoreService_PreOnline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum PostOnline(CardIssuerStoreService_PostOnline_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_PostOnline, CardIssuerStoreService_MethodSignature_PostOnline, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum PostOnline(CardIssuerStoreService_PostOnline_Req &Req, CardIssuerStoreService_PostOnline_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PostOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PostOnline(CardIssuerStoreService_PostOnline_Req &Req, CardIssuerStoreService_PostOnline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PostOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PostOnline(CardIssuerStoreService_PostOnline_Req &Req, CardIssuerStoreService_PostOnline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PostOnline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum Exit()
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->OnewayCall(CardIssuerStoreService_Method_Exit, CardIssuerStoreService_MethodSignature_Exit, m_context);
+		m_context.clear();
+		return ret;
+	}
+
+	ErrorCodeEnum Issue(CardIssuerStoreService_Issue_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Issue, CardIssuerStoreService_MethodSignature_Issue, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Issue(CardIssuerStoreService_Issue_Req &Req, CardIssuerStoreService_Issue_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Issue(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Issue(CardIssuerStoreService_Issue_Req &Req, CardIssuerStoreService_Issue_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Issue(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Issue(CardIssuerStoreService_Issue_Req &Req, CardIssuerStoreService_Issue_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Issue(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum GetMaterialCount(CardIssuerStoreService_GetMaterialCount_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_GetMaterialCount, CardIssuerStoreService_MethodSignature_GetMaterialCount, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum GetMaterialCount(CardIssuerStoreService_GetMaterialCount_Req &Req, CardIssuerStoreService_GetMaterialCount_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetMaterialCount(CardIssuerStoreService_GetMaterialCount_Req &Req, CardIssuerStoreService_GetMaterialCount_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetMaterialCount(CardIssuerStoreService_GetMaterialCount_Req &Req, CardIssuerStoreService_GetMaterialCount_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum SetMaterialCount(CardIssuerStoreService_SetMaterialCount_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_SetMaterialCount, CardIssuerStoreService_MethodSignature_SetMaterialCount, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum SetMaterialCount(CardIssuerStoreService_SetMaterialCount_Req &Req, CardIssuerStoreService_SetMaterialCount_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetMaterialCount(CardIssuerStoreService_SetMaterialCount_Req &Req, CardIssuerStoreService_SetMaterialCount_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetMaterialCount(CardIssuerStoreService_SetMaterialCount_Req &Req, CardIssuerStoreService_SetMaterialCount_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCount(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum SetIssueFlag()
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->OnewayCall(CardIssuerStoreService_Method_SetIssueFlag, CardIssuerStoreService_MethodSignature_SetIssueFlag, m_context);
+		m_context.clear();
+		return ret;
+	}
+
+	ErrorCodeEnum ReadEx(CardIssuerStoreService_ReadEx_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_ReadEx, CardIssuerStoreService_MethodSignature_ReadEx, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum ReadEx(CardIssuerStoreService_ReadEx_Req &Req, CardIssuerStoreService_ReadEx_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = ReadEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum ReadEx(CardIssuerStoreService_ReadEx_Req &Req, CardIssuerStoreService_ReadEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = ReadEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum ReadEx(CardIssuerStoreService_ReadEx_Req &Req, CardIssuerStoreService_ReadEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = ReadEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum QueryCardInfo(CardIssuerStoreService_QueryCardInfo_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_QueryCardInfo, CardIssuerStoreService_MethodSignature_QueryCardInfo, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum QueryCardInfo(CardIssuerStoreService_QueryCardInfo_Req &Req, CardIssuerStoreService_QueryCardInfo_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCardInfo(CardIssuerStoreService_QueryCardInfo_Req &Req, CardIssuerStoreService_QueryCardInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCardInfo(CardIssuerStoreService_QueryCardInfo_Req &Req, CardIssuerStoreService_QueryCardInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum WriteTrack(CardIssuerStoreService_WriteTrack_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_WriteTrack, CardIssuerStoreService_MethodSignature_WriteTrack, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum WriteTrack(CardIssuerStoreService_WriteTrack_Req &Req, CardIssuerStoreService_WriteTrack_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = WriteTrack(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum WriteTrack(CardIssuerStoreService_WriteTrack_Req &Req, CardIssuerStoreService_WriteTrack_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = WriteTrack(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum WriteTrack(CardIssuerStoreService_WriteTrack_Req &Req, CardIssuerStoreService_WriteTrack_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = WriteTrack(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum GetMaterialCountEx(CardIssuerStoreService_GetMaterialCountEx_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_GetMaterialCountEx, CardIssuerStoreService_MethodSignature_GetMaterialCountEx, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum GetMaterialCountEx(CardIssuerStoreService_GetMaterialCountEx_Req &Req, CardIssuerStoreService_GetMaterialCountEx_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetMaterialCountEx(CardIssuerStoreService_GetMaterialCountEx_Req &Req, CardIssuerStoreService_GetMaterialCountEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetMaterialCountEx(CardIssuerStoreService_GetMaterialCountEx_Req &Req, CardIssuerStoreService_GetMaterialCountEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum SetMaterialCountEx(CardIssuerStoreService_SetMaterialCountEx_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_SetMaterialCountEx, CardIssuerStoreService_MethodSignature_SetMaterialCountEx, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum SetMaterialCountEx(CardIssuerStoreService_SetMaterialCountEx_Req &Req, CardIssuerStoreService_SetMaterialCountEx_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetMaterialCountEx(CardIssuerStoreService_SetMaterialCountEx_Req &Req, CardIssuerStoreService_SetMaterialCountEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetMaterialCountEx(CardIssuerStoreService_SetMaterialCountEx_Req &Req, CardIssuerStoreService_SetMaterialCountEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetMaterialCountEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum SetSomeFlag(CardIssuerStoreService_SetSomeFlag_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_SetSomeFlag, CardIssuerStoreService_MethodSignature_SetSomeFlag, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum SetSomeFlag(CardIssuerStoreService_SetSomeFlag_Req &Req, CardIssuerStoreService_SetSomeFlag_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetSomeFlag(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetSomeFlag(CardIssuerStoreService_SetSomeFlag_Req &Req, CardIssuerStoreService_SetSomeFlag_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetSomeFlag(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SetSomeFlag(CardIssuerStoreService_SetSomeFlag_Req &Req, CardIssuerStoreService_SetSomeFlag_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SetSomeFlag(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum GetSCIInfo(CardIssuerStoreService_GetSCIInfo_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_GetSCIInfo, CardIssuerStoreService_MethodSignature_GetSCIInfo, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum GetSCIInfo(CardIssuerStoreService_GetSCIInfo_Req &Req, CardIssuerStoreService_GetSCIInfo_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetSCIInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetSCIInfo(CardIssuerStoreService_GetSCIInfo_Req &Req, CardIssuerStoreService_GetSCIInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetSCIInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetSCIInfo(CardIssuerStoreService_GetSCIInfo_Req &Req, CardIssuerStoreService_GetSCIInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetSCIInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum IssueEx(CardIssuerStoreService_IssueEx_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_IssueEx, CardIssuerStoreService_MethodSignature_IssueEx, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum IssueEx(CardIssuerStoreService_IssueEx_Req &Req, CardIssuerStoreService_IssueEx_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = IssueEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum IssueEx(CardIssuerStoreService_IssueEx_Req &Req, CardIssuerStoreService_IssueEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = IssueEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum IssueEx(CardIssuerStoreService_IssueEx_Req &Req, CardIssuerStoreService_IssueEx_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = IssueEx(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum OpenSafeLock(CardIssuerStoreService_OpenSafeLock_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_OpenSafeLock, CardIssuerStoreService_MethodSignature_OpenSafeLock, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum OpenSafeLock(CardIssuerStoreService_OpenSafeLock_Req &Req, CardIssuerStoreService_OpenSafeLock_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = OpenSafeLock(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum OpenSafeLock(CardIssuerStoreService_OpenSafeLock_Req &Req, CardIssuerStoreService_OpenSafeLock_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = OpenSafeLock(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum OpenSafeLock(CardIssuerStoreService_OpenSafeLock_Req &Req, CardIssuerStoreService_OpenSafeLock_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = OpenSafeLock(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum SAMICCommand(CardIssuerStoreService_SAMICCommand_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_SAMICCommand, CardIssuerStoreService_MethodSignature_SAMICCommand, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum SAMICCommand(CardIssuerStoreService_SAMICCommand_Req &Req, CardIssuerStoreService_SAMICCommand_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SAMICCommand(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SAMICCommand(CardIssuerStoreService_SAMICCommand_Req &Req, CardIssuerStoreService_SAMICCommand_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SAMICCommand(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum SAMICCommand(CardIssuerStoreService_SAMICCommand_Req &Req, CardIssuerStoreService_SAMICCommand_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = SAMICCommand(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum QueryPrinterStatus(CardIssuerStoreService_QueryPrinterStatus_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_QueryPrinterStatus, CardIssuerStoreService_MethodSignature_QueryPrinterStatus, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum QueryPrinterStatus(CardIssuerStoreService_QueryPrinterStatus_Req &Req, CardIssuerStoreService_QueryPrinterStatus_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryPrinterStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryPrinterStatus(CardIssuerStoreService_QueryPrinterStatus_Req &Req, CardIssuerStoreService_QueryPrinterStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryPrinterStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryPrinterStatus(CardIssuerStoreService_QueryPrinterStatus_Req &Req, CardIssuerStoreService_QueryPrinterStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryPrinterStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum Print(CardIssuerStoreService_Print_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_Print, CardIssuerStoreService_MethodSignature_Print, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum Print(CardIssuerStoreService_Print_Req &Req, CardIssuerStoreService_Print_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Print(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Print(CardIssuerStoreService_Print_Req &Req, CardIssuerStoreService_Print_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Print(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum Print(CardIssuerStoreService_Print_Req &Req, CardIssuerStoreService_Print_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = Print(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum QuerySCIList(CardIssuerStoreService_QuerySCIList_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_QuerySCIList, CardIssuerStoreService_MethodSignature_QuerySCIList, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum QuerySCIList(CardIssuerStoreService_QuerySCIList_Req &Req, CardIssuerStoreService_QuerySCIList_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QuerySCIList(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QuerySCIList(CardIssuerStoreService_QuerySCIList_Req &Req, CardIssuerStoreService_QuerySCIList_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QuerySCIList(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QuerySCIList(CardIssuerStoreService_QuerySCIList_Req &Req, CardIssuerStoreService_QuerySCIList_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QuerySCIList(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum BindSCI(CardIssuerStoreService_BindSCI_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_BindSCI, CardIssuerStoreService_MethodSignature_BindSCI, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum BindSCI(CardIssuerStoreService_BindSCI_Req &Req, CardIssuerStoreService_BindSCI_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = BindSCI(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum BindSCI(CardIssuerStoreService_BindSCI_Req &Req, CardIssuerStoreService_BindSCI_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = BindSCI(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum BindSCI(CardIssuerStoreService_BindSCI_Req &Req, CardIssuerStoreService_BindSCI_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = BindSCI(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum PreOnlineOnStore(CardIssuerStoreService_PreOnlineOnStore_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_PreOnlineOnStore, CardIssuerStoreService_MethodSignature_PreOnlineOnStore, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum PreOnlineOnStore(CardIssuerStoreService_PreOnlineOnStore_Req &Req, CardIssuerStoreService_PreOnlineOnStore_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnlineOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PreOnlineOnStore(CardIssuerStoreService_PreOnlineOnStore_Req &Req, CardIssuerStoreService_PreOnlineOnStore_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnlineOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PreOnlineOnStore(CardIssuerStoreService_PreOnlineOnStore_Req &Req, CardIssuerStoreService_PreOnlineOnStore_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PreOnlineOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum NotifyPreonline(CardIssuerStoreService_NotifyPreonline_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_NotifyPreonline, CardIssuerStoreService_MethodSignature_NotifyPreonline, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum NotifyPreonline(CardIssuerStoreService_NotifyPreonline_Req &Req, CardIssuerStoreService_NotifyPreonline_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = NotifyPreonline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum NotifyPreonline(CardIssuerStoreService_NotifyPreonline_Req &Req, CardIssuerStoreService_NotifyPreonline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = NotifyPreonline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum NotifyPreonline(CardIssuerStoreService_NotifyPreonline_Req &Req, CardIssuerStoreService_NotifyPreonline_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = NotifyPreonline(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum QueryCardInfoOnStore(CardIssuerStoreService_QueryCardInfoOnStore_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_QueryCardInfoOnStore, CardIssuerStoreService_MethodSignature_QueryCardInfoOnStore, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum QueryCardInfoOnStore(CardIssuerStoreService_QueryCardInfoOnStore_Req &Req, CardIssuerStoreService_QueryCardInfoOnStore_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfoOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCardInfoOnStore(CardIssuerStoreService_QueryCardInfoOnStore_Req &Req, CardIssuerStoreService_QueryCardInfoOnStore_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfoOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCardInfoOnStore(CardIssuerStoreService_QueryCardInfoOnStore_Req &Req, CardIssuerStoreService_QueryCardInfoOnStore_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCardInfoOnStore(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum GetAddCardInfo(CardIssuerStoreService_GetAddCardInfo_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_GetAddCardInfo, CardIssuerStoreService_MethodSignature_GetAddCardInfo, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum GetAddCardInfo(CardIssuerStoreService_GetAddCardInfo_Req &Req, CardIssuerStoreService_GetAddCardInfo_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetAddCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetAddCardInfo(CardIssuerStoreService_GetAddCardInfo_Req &Req, CardIssuerStoreService_GetAddCardInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetAddCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetAddCardInfo(CardIssuerStoreService_GetAddCardInfo_Req &Req, CardIssuerStoreService_GetAddCardInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetAddCardInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum PrintCardImmediately(CardIssuerStoreService_PrintCardImmediately_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_PrintCardImmediately, CardIssuerStoreService_MethodSignature_PrintCardImmediately, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum PrintCardImmediately(CardIssuerStoreService_PrintCardImmediately_Req &Req, CardIssuerStoreService_PrintCardImmediately_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PrintCardImmediately(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PrintCardImmediately(CardIssuerStoreService_PrintCardImmediately_Req &Req, CardIssuerStoreService_PrintCardImmediately_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PrintCardImmediately(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum PrintCardImmediately(CardIssuerStoreService_PrintCardImmediately_Req &Req, CardIssuerStoreService_PrintCardImmediately_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = PrintCardImmediately(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum QueryCIStatus(CardIssuerStoreService_QueryCIStatus_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_QueryCIStatus, CardIssuerStoreService_MethodSignature_QueryCIStatus, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum QueryCIStatus(CardIssuerStoreService_QueryCIStatus_Req &Req, CardIssuerStoreService_QueryCIStatus_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCIStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCIStatus(CardIssuerStoreService_QueryCIStatus_Req &Req, CardIssuerStoreService_QueryCIStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCIStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum QueryCIStatus(CardIssuerStoreService_QueryCIStatus_Req &Req, CardIssuerStoreService_QueryCIStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = QueryCIStatus(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+	ErrorCodeEnum GetDevInfo(CardIssuerStoreService_GetDevInfo_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
+	{
+		CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
+		CAutoBuffer Buf = SpObject2Buffer(Req);
+		if (m_context.checkEmpty())
+		{
+			m_context.AutoGenerate();
+			DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
+			m_context = m_context.upgradeLink();
+		}
+		auto ret = pFunc->AsyncRequest(CardIssuerStoreService_Method_GetDevInfo, CardIssuerStoreService_MethodSignature_GetDevInfo, Buf, spAsyncWait, m_context, dwTimeout);
+		m_context.clear();
+		return ret;
+	}
+	ErrorCodeEnum GetDevInfo(CardIssuerStoreService_GetDevInfo_Req &Req, CardIssuerStoreService_GetDevInfo_Ans &Ans, DWORD dwTimeout)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetDevInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetDevInfo(CardIssuerStoreService_GetDevInfo_Req &Req, CardIssuerStoreService_GetDevInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetDevInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+	ErrorCodeEnum GetDevInfo(CardIssuerStoreService_GetDevInfo_Req &Req, CardIssuerStoreService_GetDevInfo_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
+	{
+		CSmartPointer<IAsynWaitSp> spAsyncWait;
+		ErrorCodeEnum Error = GetDevInfo(Req, spAsyncWait, dwTimeout);
+		if (Error == Error_Succeed) {
+			bool bEnd = false;
+			CSimpleString str;
+			Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout);
+			LOG_ASSERT(Error || bEnd);
+		}
+		return Error;
+	}
+
+
+	bool SafeDelete()
+	{
+		if (!m_bSysManaged) {
+			delete this;
+		}
+		return m_bSysManaged;
+	}
+
+protected:
+	bool m_bSysManaged;
+	CEntityBase *m_pEntityBase;
+	linkContext m_context;
+	bool bSessionClosed;
+};
+
+///////////////////////////
+
+} // namespace CardIssuerStore
+#endif // __CARDISSUERSTORE_CLIENT_G_H

+ 998 - 0
Module/mod_cardissuerstore/CardIssuerStore_def_g.h

@@ -0,0 +1,998 @@
+#ifndef __CARDISSUERSTORE_DEF_G_H
+#define __CARDISSUERSTORE_DEF_G_H
+
+#pragma once
+
+// This code is generated by spgen tool!
+
+#include "SpHelper.h"
+
+namespace CardIssuerStore {
+//
+// const goes here
+//
+
+#define CardIssuerStoreService_Method_Insert 0
+#define CardIssuerStoreService_Method_CancelInsert 1
+#define CardIssuerStoreService_Method_InsertWaitMore 2
+#define CardIssuerStoreService_Method_Read 3
+#define CardIssuerStoreService_Method_Capture 4
+#define CardIssuerStoreService_Method_Eject 5
+#define CardIssuerStoreService_Method_PreOnline 6
+#define CardIssuerStoreService_Method_PostOnline 7
+#define CardIssuerStoreService_Method_Exit 8
+#define CardIssuerStoreService_Method_Issue 9
+#define CardIssuerStoreService_Method_GetMaterialCount 10
+#define CardIssuerStoreService_Method_SetMaterialCount 11
+#define CardIssuerStoreService_Method_SetIssueFlag 12
+#define CardIssuerStoreService_Method_ReadEx 13
+#define CardIssuerStoreService_Method_QueryCardInfo 14
+#define CardIssuerStoreService_Method_WriteTrack 15
+#define CardIssuerStoreService_Method_GetMaterialCountEx 16
+#define CardIssuerStoreService_Method_SetMaterialCountEx 17
+#define CardIssuerStoreService_Method_SetSomeFlag 18
+#define CardIssuerStoreService_Method_GetSCIInfo 19
+#define CardIssuerStoreService_Method_IssueEx 20
+#define CardIssuerStoreService_Method_OpenSafeLock 21
+#define CardIssuerStoreService_Method_SAMICCommand 22
+#define CardIssuerStoreService_Method_QueryPrinterStatus 23
+#define CardIssuerStoreService_Method_Print 24
+#define CardIssuerStoreService_Method_QuerySCIList 25
+#define CardIssuerStoreService_Method_BindSCI 26
+#define CardIssuerStoreService_Method_PreOnlineOnStore 27
+#define CardIssuerStoreService_Method_NotifyPreonline 28
+#define CardIssuerStoreService_Method_QueryCardInfoOnStore 29
+#define CardIssuerStoreService_Method_GetAddCardInfo 30
+#define CardIssuerStoreService_Method_PrintCardImmediately 31
+#define CardIssuerStoreService_Method_QueryCIStatus 32
+#define CardIssuerStoreService_Method_GetDevInfo 65535
+
+#define CardIssuerStoreService_MethodSignature_Insert 1091033773
+#define CardIssuerStoreService_MethodSignature_CancelInsert -1202478828
+#define CardIssuerStoreService_MethodSignature_InsertWaitMore 493791658
+#define CardIssuerStoreService_MethodSignature_Read 591445479
+#define CardIssuerStoreService_MethodSignature_Capture -1807054569
+#define CardIssuerStoreService_MethodSignature_Eject -377455114
+#define CardIssuerStoreService_MethodSignature_PreOnline 640958030
+#define CardIssuerStoreService_MethodSignature_PostOnline 923284555
+#define CardIssuerStoreService_MethodSignature_Exit -1158854104
+#define CardIssuerStoreService_MethodSignature_Issue 438783077
+#define CardIssuerStoreService_MethodSignature_GetMaterialCount -605917749
+#define CardIssuerStoreService_MethodSignature_SetMaterialCount 870103115
+#define CardIssuerStoreService_MethodSignature_SetIssueFlag 187641303
+#define CardIssuerStoreService_MethodSignature_ReadEx -842531343
+#define CardIssuerStoreService_MethodSignature_QueryCardInfo 154962579
+#define CardIssuerStoreService_MethodSignature_WriteTrack -1424799012
+#define CardIssuerStoreService_MethodSignature_GetMaterialCountEx 1356148904
+#define CardIssuerStoreService_MethodSignature_SetMaterialCountEx -1512312761
+#define CardIssuerStoreService_MethodSignature_SetSomeFlag -2033418025
+#define CardIssuerStoreService_MethodSignature_GetSCIInfo 1097494981
+#define CardIssuerStoreService_MethodSignature_IssueEx 1390328640
+#define CardIssuerStoreService_MethodSignature_OpenSafeLock 177980614
+#define CardIssuerStoreService_MethodSignature_SAMICCommand 406988293
+#define CardIssuerStoreService_MethodSignature_QueryPrinterStatus -890728447
+#define CardIssuerStoreService_MethodSignature_Print 2096006675
+#define CardIssuerStoreService_MethodSignature_QuerySCIList -1772231453
+#define CardIssuerStoreService_MethodSignature_BindSCI -1242011672
+#define CardIssuerStoreService_MethodSignature_PreOnlineOnStore 158325869
+#define CardIssuerStoreService_MethodSignature_NotifyPreonline -808637659
+#define CardIssuerStoreService_MethodSignature_QueryCardInfoOnStore 1217447214
+#define CardIssuerStoreService_MethodSignature_GetAddCardInfo 684031940
+#define CardIssuerStoreService_MethodSignature_PrintCardImmediately -1976184201
+#define CardIssuerStoreService_MethodSignature_QueryCIStatus -1907000703
+#define CardIssuerStoreService_MethodSignature_GetDevInfo 296205965
+
+#define CardIssuerStoreService_LogCode_Insert "QLR040220300"
+#define CardIssuerStoreService_LogCode_CancelInsert "QLR040220301"
+#define CardIssuerStoreService_LogCode_InsertWaitMore "QLR040220302"
+#define CardIssuerStoreService_LogCode_Read "QLR040220303"
+#define CardIssuerStoreService_LogCode_Capture "QLR040220304"
+#define CardIssuerStoreService_LogCode_Eject "QLR040220305"
+#define CardIssuerStoreService_LogCode_PreOnline "QLR040220306"
+#define CardIssuerStoreService_LogCode_PostOnline "QLR040220307"
+#define CardIssuerStoreService_LogCode_Exit "QLR040220308"
+#define CardIssuerStoreService_LogCode_Issue "QLR040220309"
+#define CardIssuerStoreService_LogCode_GetMaterialCount "QLR040220310"
+#define CardIssuerStoreService_LogCode_SetMaterialCount "QLR040220311"
+#define CardIssuerStoreService_LogCode_SetIssueFlag "QLR040220312"
+#define CardIssuerStoreService_LogCode_ReadEx "QLR040220313"
+#define CardIssuerStoreService_LogCode_QueryCardInfo "QLR040220314"
+#define CardIssuerStoreService_LogCode_WriteTrack "QLR040220315"
+#define CardIssuerStoreService_LogCode_GetMaterialCountEx "QLR040220316"
+#define CardIssuerStoreService_LogCode_SetMaterialCountEx "QLR040220317"
+#define CardIssuerStoreService_LogCode_SetSomeFlag "QLR040220318"
+#define CardIssuerStoreService_LogCode_GetSCIInfo "QLR040220319"
+#define CardIssuerStoreService_LogCode_IssueEx "QLR040220320"
+#define CardIssuerStoreService_LogCode_OpenSafeLock "QLR040220321"
+#define CardIssuerStoreService_LogCode_SAMICCommand "QLR040220322"
+#define CardIssuerStoreService_LogCode_QueryPrinterStatus "QLR040220323"
+#define CardIssuerStoreService_LogCode_Print "QLR040220324"
+#define CardIssuerStoreService_LogCode_QuerySCIList "QLR040220325"
+#define CardIssuerStoreService_LogCode_BindSCI "QLR040220326"
+#define CardIssuerStoreService_LogCode_PreOnlineOnStore "QLR040220327"
+#define CardIssuerStoreService_LogCode_NotifyPreonline "QLR040220328"
+#define CardIssuerStoreService_LogCode_QueryCardInfoOnStore "QLR040220329"
+#define CardIssuerStoreService_LogCode_GetAddCardInfo "QLR040220330"
+#define CardIssuerStoreService_LogCode_PrintCardImmediately "QLR040220331"
+#define CardIssuerStoreService_LogCode_QueryCIStatus "QLR040220332"
+#define CardIssuerStoreService_LogCode_GetDevInfo "QLR040220399"
+struct CardIssuerStoreService_Insert_Req
+{
+	CSimpleStringA aid;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & aid;
+	}
+
+};
+
+struct CardIssuerStoreService_Insert_Ans
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_CancelInsert_Info
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_InsertWaitMore_Info
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Read_Req
+{
+	CSimpleStringA aid;
+	int reserved1;
+	int reserved2;
+	CSimpleStringA reserved3;
+	CSimpleStringA reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & aid & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_Read_Ans
+{
+	CSimpleStringA track1;
+	CSimpleStringA track2;
+	CSimpleStringA track3;
+	int ICType;
+	CSimpleStringA ICData;
+	int status;
+	CSimpleStringA t2Account;
+	CSimpleStringA t2Region;
+	CSimpleStringA t2CardSerial;
+	CSimpleStringA t2CVC;
+	CSimpleStringA t2ExpireDate;
+	int reserved1;
+	int reserved2;
+	CSimpleStringA reserved3;
+	CSimpleStringA reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & track1 & track2 & track3 & ICType & ICData & status & t2Account & t2Region & t2CardSerial & t2CVC & t2ExpireDate & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_Capture_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Capture_Ans
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Eject_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Eject_Ans
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_PreOnline_Req
+{
+	CSimpleStringA businessData;
+	CSimpleStringA reserved1;
+	CSimpleStringA reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & businessData & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_PreOnline_Ans
+{
+	CSimpleStringA result;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & result;
+	}
+
+};
+
+struct CardIssuerStoreService_PostOnline_Req
+{
+	CSimpleStringA data;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & data;
+	}
+
+};
+
+struct CardIssuerStoreService_PostOnline_Ans
+{
+	CSimpleStringA result;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & result;
+	}
+
+};
+
+struct CardIssuerStoreService_Exit_Info
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Issue_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_Issue_Ans
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_GetMaterialCount_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_GetMaterialCount_Ans
+{
+	int remains;
+	int captured;
+	int issued;
+	int mixed;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & remains & captured & issued & mixed;
+	}
+
+};
+
+struct CardIssuerStoreService_SetMaterialCount_Req
+{
+	int remains;
+	int captured;
+	int issued;
+	bool bRemains;
+	bool bCaptured;
+	bool bIssued;
+	int mixed;
+	bool bMixed;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & remains & captured & issued & bRemains & bCaptured & bIssued & mixed & bMixed;
+	}
+
+};
+
+struct CardIssuerStoreService_SetMaterialCount_Ans
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_SetIssueFlag_Info
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_ReadEx_Req
+{
+	CSimpleStringA aid;
+	CSimpleStringA reserved1;
+	CSimpleStringA reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & aid & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_ReadEx_Ans
+{
+	CSimpleStringA track1;
+	CSimpleStringA track2;
+	CSimpleStringA track3;
+	int CDType;
+	int ICType;
+	int CMBType;
+	CSimpleStringA ICData;
+	int status;
+	CSimpleStringA t2Account;
+	CSimpleStringA t2Region;
+	CSimpleStringA t2CardSerial;
+	CSimpleStringA t2CVC;
+	CSimpleStringA t2ExpireDate;
+	CSimpleStringA reserved1;
+	CSimpleStringA reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & track1 & track2 & track3 & CDType & ICType & CMBType & ICData & status & t2Account & t2Region & t2CardSerial & t2CVC & t2ExpireDate & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCardInfo_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCardInfo_Ans
+{
+	int position;
+	int reserved1;
+	CSimpleStringA reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & position & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_WriteTrack_Req
+{
+	int mode;
+	int co;
+	CSimpleStringW track1;
+	CSimpleStringW track2;
+	CSimpleStringW track3;
+	CSimpleStringW reserved;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & mode & co & track1 & track2 & track3 & reserved;
+	}
+
+};
+
+struct CardIssuerStoreService_WriteTrack_Ans
+{
+	int result;
+	int reserved1;
+	CSimpleStringA reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & result & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_GetMaterialCountEx_Req
+{
+	CAutoArray<int> GetHopper;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & GetHopper & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_GetMaterialCountEx_Ans
+{
+	int captured;
+	CAutoArray<int> hasHopper;
+	CAutoArray<CSimpleStringA> CardBoxNo;
+	CAutoArray<CSimpleStringA> PsbCode;
+	CAutoArray<CSimpleStringA> PsbName;
+	CAutoArray<CSimpleStringA> Maintainer;
+	CAutoArray<CSimpleStringA> MaintainTime;
+	CAutoArray<int> CardInit;
+	CAutoArray<int> CardPercent;
+	CAutoArray<int> remains;
+	CAutoArray<int> issued;
+	CAutoArray<int> mixed;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & captured & hasHopper & CardBoxNo & PsbCode & PsbName & Maintainer & MaintainTime & CardInit & CardPercent & remains & issued & mixed & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SetMaterialCountEx_Req
+{
+	CAutoArray<int> SetHopper;
+	int SetCaptured;
+	int captured;
+	CAutoArray<CSimpleStringA> CardBoxNo;
+	CAutoArray<CSimpleStringA> PsbCode;
+	CAutoArray<CSimpleStringA> PsbName;
+	CAutoArray<CSimpleStringA> Maintainer;
+	CAutoArray<CSimpleStringA> MaintainTime;
+	CAutoArray<int> CardInit;
+	CAutoArray<int> CardPercent;
+	CAutoArray<int> remains;
+	CAutoArray<int> issued;
+	CAutoArray<int> mixed;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & SetHopper & SetCaptured & captured & CardBoxNo & PsbCode & PsbName & Maintainer & MaintainTime & CardInit & CardPercent & remains & issued & mixed & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SetMaterialCountEx_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SetSomeFlag_Req
+{
+	int IssueBusiness;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & IssueBusiness & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SetSomeFlag_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_GetSCIInfo_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_GetSCIInfo_Ans
+{
+	int connected;
+	CSimpleStringA DevSN;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & connected & DevSN & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_IssueEx_Req
+{
+	int hopper;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & hopper & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_IssueEx_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_OpenSafeLock_Req
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_OpenSafeLock_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SAMICCommand_Req
+{
+	int cmdType;
+	CAutoArray<int> param1;
+	CAutoArray<CSimpleStringA> param2;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & cmdType & param1 & param2 & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_SAMICCommand_Ans
+{
+	CAutoArray<int> ret1;
+	CAutoArray<CSimpleStringA> ret2;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & ret1 & ret2 & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryPrinterStatus_Req
+{
+	CAutoArray<int> param1;
+	CAutoArray<CSimpleStringA> param2;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & param1 & param2 & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryPrinterStatus_Ans
+{
+	CAutoArray<int> ret1;
+	CAutoArray<CSimpleStringA> ret2;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & ret1 & ret2 & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_Print_Req
+{
+	CBlob data1;
+	CBlob data2;
+	CBlob data3;
+	CBlob data4;
+	CBlob data5;
+	CBlob data6;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & data1 & data2 & data3 & data4 & data5 & data6 & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_Print_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_QuerySCIList_Req
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_QuerySCIList_Ans
+{
+	CAutoArray<CSimpleStringA> sciNo;
+	CAutoArray<CSimpleStringA> arrMateriel;
+	CAutoArray<CSimpleStringA> CardGroove;
+	CAutoArray<CSimpleStringA> CardBoxNo;
+	CAutoArray<CSimpleStringA> PsbCode;
+	CAutoArray<CSimpleStringA> PsbName;
+	CAutoArray<unsigned int> CardInit;
+	CAutoArray<unsigned int> CardRemains;
+	CAutoArray<unsigned int> CardIssued;
+	CAutoArray<unsigned int> CardMixed;
+	CAutoArray<unsigned int> CardPercent;
+	CAutoArray<CSimpleStringA> Maintainer;
+	CAutoArray<CSimpleStringA> MaintainTime;
+	CAutoArray<CSimpleStringA> UpdateTime;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & sciNo & arrMateriel & CardGroove & CardBoxNo & PsbCode & PsbName & CardInit & CardRemains & CardIssued & CardMixed & CardPercent & Maintainer & MaintainTime & UpdateTime & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_BindSCI_Req
+{
+	int type;
+	CSimpleStringA sciNo;
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & type & sciNo & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_BindSCI_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<CSimpleStringA> reserved2;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2;
+	}
+
+};
+
+struct CardIssuerStoreService_PreOnlineOnStore_Req
+{
+	CSimpleStringA account;
+	CSimpleStringA termNo;
+	CSimpleStringA businessData;
+	int slot;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & account & termNo & businessData & slot & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_PreOnlineOnStore_Ans
+{
+	int findCard;
+	int cardPos;
+	CSimpleStringA result;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & findCard & cardPos & result & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_NotifyPreonline_Req
+{
+	int findCard;
+	int cardPos;
+	int errCode;
+	CSimpleStringA account;
+	CSimpleStringA termNo;
+	CSimpleStringA data;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & findCard & cardPos & errCode & account & termNo & data & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_NotifyPreonline_Ans
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCardInfoOnStore_Req
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCardInfoOnStore_Ans
+{
+	int findCard;
+	int cardPos;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & findCard & cardPos & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_GetAddCardInfo_Req
+{
+	int isSync;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & isSync & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_GetAddCardInfo_Ans
+{
+	int count;
+	CAutoArray<int> slot;
+	CAutoArray<CSimpleStringA> account;
+	CAutoArray<CSimpleStringA> cardSerial;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & count & slot & account & cardSerial & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_PrintCardImmediately_Req
+{
+	CSimpleStringA formFile;
+	CSimpleStringA printData;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & formFile & printData & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_PrintCardImmediately_Ans
+{
+	int ret;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & ret & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCIStatus_Req
+{
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_QueryCIStatus_Ans
+{
+	int retainBin;
+	CAutoArray<int> hopperNo;
+	CAutoArray<int> hopperStatus;
+	CAutoArray<int> reserved1;
+	CAutoArray<int> reserved2;
+	CAutoArray<CSimpleStringA> reserved3;
+	CAutoArray<CSimpleStringA> reserved4;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & retainBin & hopperNo & hopperStatus & reserved1 & reserved2 & reserved3 & reserved4;
+	}
+
+};
+
+struct CardIssuerStoreService_GetDevInfo_Req
+{
+
+	void Serialize(SpBuffer &Buf)
+	{
+	}
+
+};
+
+struct CardIssuerStoreService_GetDevInfo_Ans
+{
+	CSimpleStringA type;
+	CSimpleStringA model;
+	CSimpleStringA version;
+	int state;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & type & model & version & state;
+	}
+
+};
+
+
+///////////////////////////
+
+} // namespace CardIssuerStore
+
+#endif // __CARDISSUERSTORE_DEF_G_H

+ 45 - 0
Module/mod_cardissuerstore/CardIssuerStore_msg_g.h

@@ -0,0 +1,45 @@
+
+#ifndef __CARDISSUERSTORE_MSG_G_H
+#define __CARDISSUERSTORE_MSG_G_H
+
+#pragma once
+
+// This code is generated by spgen tool!
+
+#include "SpHelper.h"
+
+namespace CardIssuerStore {
+#define eMsg_FetchCard 0
+#define eMsg_SCIConnect 1
+
+#define eMsgSig_FetchCard 1110804794
+#define eMsgSig_SCIConnect 721962700
+
+struct FetchCard
+{
+	int status;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & status;
+	}
+
+};
+
+///////////////////////////
+
+struct SCIConnect
+{
+	int status;
+
+	void Serialize(SpBuffer &Buf)
+	{
+		auto & buf = Buf & status;
+	}
+
+};
+
+///////////////////////////
+
+} // namespace CardIssuerStore
+#endif // __CARDISSUERSTORE_MSG_G_H

+ 1001 - 0
Module/mod_cardissuerstore/CardIssuerStore_server_g.h

@@ -0,0 +1,1001 @@
+
+#ifndef __CARDISSUERSTORE_SERVER_G_H
+#define __CARDISSUERSTORE_SERVER_G_H
+
+#pragma once
+
+// This code is generated by spgen tool!
+
+#include "CardIssuerStore_def_g.h"
+
+namespace CardIssuerStore {
+class CardIssuerStoreService_ServerSessionBase : public CServerSessionBase
+{
+public:
+	CardIssuerStoreService_ServerSessionBase()
+	{
+		/// override by user
+	}
+
+	virtual ~CardIssuerStoreService_ServerSessionBase()
+	{
+		/// override by user
+	}
+
+	virtual bool IsExclusive() { return false; }
+
+	virtual bool IsSessionOverlap() { return true; }
+
+	virtual ErrorCodeEnum GetMessageAttr(DWORD dwMessageID, DWORD dwSignature, bool &bOverlap)
+	{
+		ErrorCodeEnum Error = Error_Succeed;
+		switch (dwMessageID) {
+		case CardIssuerStoreService_Method_Insert:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Insert) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_CancelInsert:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_CancelInsert) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_InsertWaitMore:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_InsertWaitMore) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Read:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Read) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Capture:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Capture) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Eject:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Eject) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PreOnline:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_PreOnline) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PostOnline:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_PostOnline) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Exit:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Exit) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Issue:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Issue) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetMaterialCount:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_GetMaterialCount) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetMaterialCount:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_SetMaterialCount) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetIssueFlag:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_SetIssueFlag) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_ReadEx:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_ReadEx) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCardInfo:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_QueryCardInfo) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_WriteTrack:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_WriteTrack) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetMaterialCountEx:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_GetMaterialCountEx) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetMaterialCountEx:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_SetMaterialCountEx) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetSomeFlag:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_SetSomeFlag) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetSCIInfo:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_GetSCIInfo) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_IssueEx:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_IssueEx) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_OpenSafeLock:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_OpenSafeLock) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SAMICCommand:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_SAMICCommand) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryPrinterStatus:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_QueryPrinterStatus) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Print:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_Print) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QuerySCIList:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_QuerySCIList) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_BindSCI:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_BindSCI) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PreOnlineOnStore:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_PreOnlineOnStore) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_NotifyPreonline:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_NotifyPreonline) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCardInfoOnStore:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_QueryCardInfoOnStore) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetAddCardInfo:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_GetAddCardInfo) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PrintCardImmediately:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_PrintCardImmediately) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCIStatus:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_QueryCIStatus) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetDevInfo:
+			if (dwSignature == CardIssuerStoreService_MethodSignature_GetDevInfo) {
+				bOverlap = true;
+			} else {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		default:
+			Error = Error_MethodNotFound;
+			break;
+		}
+		return Error;
+	}
+
+	int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
+	{
+		ErrorCodeEnum Error = Error_Succeed;
+		switch (dwMessageID) {
+		case CardIssuerStoreService_Method_Insert:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Insert) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_CancelInsert:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_CancelInsert) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_InsertWaitMore:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_InsertWaitMore) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Read:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Read) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Capture:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Capture) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Eject:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Eject) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PreOnline:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_PreOnline) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PostOnline:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_PostOnline) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Exit:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Exit) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Issue:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Issue) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetMaterialCount:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_GetMaterialCount) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetMaterialCount:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_SetMaterialCount) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetIssueFlag:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_SetIssueFlag) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_ReadEx:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_ReadEx) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCardInfo:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_QueryCardInfo) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_WriteTrack:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_WriteTrack) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetMaterialCountEx:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_GetMaterialCountEx) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetMaterialCountEx:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_SetMaterialCountEx) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SetSomeFlag:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_SetSomeFlag) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetSCIInfo:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_GetSCIInfo) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_IssueEx:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_IssueEx) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_OpenSafeLock:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_OpenSafeLock) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_SAMICCommand:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_SAMICCommand) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryPrinterStatus:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_QueryPrinterStatus) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_Print:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_Print) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QuerySCIList:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_QuerySCIList) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_BindSCI:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_BindSCI) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PreOnlineOnStore:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_PreOnlineOnStore) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_NotifyPreonline:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_NotifyPreonline) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCardInfoOnStore:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_QueryCardInfoOnStore) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetAddCardInfo:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_GetAddCardInfo) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_PrintCardImmediately:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_PrintCardImmediately) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_QueryCIStatus:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_QueryCIStatus) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		case CardIssuerStoreService_Method_GetDevInfo:
+			if (dwSignature != CardIssuerStoreService_MethodSignature_GetDevInfo) {
+				Error = Error_MethodSignatureFailed;
+			}
+			break;
+		default:
+			Error = Error_MethodNotFound;
+			break;
+		}
+		return Error;
+	}
+
+	virtual void Handle_Insert(SpReqAnsContext<CardIssuerStoreService_Insert_Req, CardIssuerStoreService_Insert_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_CancelInsert(SpOnewayCallContext<CardIssuerStoreService_CancelInsert_Info>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_InsertWaitMore(SpOnewayCallContext<CardIssuerStoreService_InsertWaitMore_Info>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Read(SpReqAnsContext<CardIssuerStoreService_Read_Req, CardIssuerStoreService_Read_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Capture(SpReqAnsContext<CardIssuerStoreService_Capture_Req, CardIssuerStoreService_Capture_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Eject(SpReqAnsContext<CardIssuerStoreService_Eject_Req, CardIssuerStoreService_Eject_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_PreOnline(SpReqAnsContext<CardIssuerStoreService_PreOnline_Req, CardIssuerStoreService_PreOnline_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_PostOnline(SpReqAnsContext<CardIssuerStoreService_PostOnline_Req, CardIssuerStoreService_PostOnline_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Exit(SpOnewayCallContext<CardIssuerStoreService_Exit_Info>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Issue(SpReqAnsContext<CardIssuerStoreService_Issue_Req, CardIssuerStoreService_Issue_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_GetMaterialCount(SpReqAnsContext<CardIssuerStoreService_GetMaterialCount_Req, CardIssuerStoreService_GetMaterialCount_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_SetMaterialCount(SpReqAnsContext<CardIssuerStoreService_SetMaterialCount_Req, CardIssuerStoreService_SetMaterialCount_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_SetIssueFlag(SpOnewayCallContext<CardIssuerStoreService_SetIssueFlag_Info>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_ReadEx(SpReqAnsContext<CardIssuerStoreService_ReadEx_Req, CardIssuerStoreService_ReadEx_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_QueryCardInfo(SpReqAnsContext<CardIssuerStoreService_QueryCardInfo_Req, CardIssuerStoreService_QueryCardInfo_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_WriteTrack(SpReqAnsContext<CardIssuerStoreService_WriteTrack_Req, CardIssuerStoreService_WriteTrack_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_GetMaterialCountEx(SpReqAnsContext<CardIssuerStoreService_GetMaterialCountEx_Req, CardIssuerStoreService_GetMaterialCountEx_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_SetMaterialCountEx(SpReqAnsContext<CardIssuerStoreService_SetMaterialCountEx_Req, CardIssuerStoreService_SetMaterialCountEx_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_SetSomeFlag(SpReqAnsContext<CardIssuerStoreService_SetSomeFlag_Req, CardIssuerStoreService_SetSomeFlag_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_GetSCIInfo(SpReqAnsContext<CardIssuerStoreService_GetSCIInfo_Req, CardIssuerStoreService_GetSCIInfo_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_IssueEx(SpReqAnsContext<CardIssuerStoreService_IssueEx_Req, CardIssuerStoreService_IssueEx_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_OpenSafeLock(SpReqAnsContext<CardIssuerStoreService_OpenSafeLock_Req, CardIssuerStoreService_OpenSafeLock_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_SAMICCommand(SpReqAnsContext<CardIssuerStoreService_SAMICCommand_Req, CardIssuerStoreService_SAMICCommand_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_QueryPrinterStatus(SpReqAnsContext<CardIssuerStoreService_QueryPrinterStatus_Req, CardIssuerStoreService_QueryPrinterStatus_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_Print(SpReqAnsContext<CardIssuerStoreService_Print_Req, CardIssuerStoreService_Print_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_QuerySCIList(SpReqAnsContext<CardIssuerStoreService_QuerySCIList_Req, CardIssuerStoreService_QuerySCIList_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_BindSCI(SpReqAnsContext<CardIssuerStoreService_BindSCI_Req, CardIssuerStoreService_BindSCI_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_PreOnlineOnStore(SpReqAnsContext<CardIssuerStoreService_PreOnlineOnStore_Req, CardIssuerStoreService_PreOnlineOnStore_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_NotifyPreonline(SpReqAnsContext<CardIssuerStoreService_NotifyPreonline_Req, CardIssuerStoreService_NotifyPreonline_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_QueryCardInfoOnStore(SpReqAnsContext<CardIssuerStoreService_QueryCardInfoOnStore_Req, CardIssuerStoreService_QueryCardInfoOnStore_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_GetAddCardInfo(SpReqAnsContext<CardIssuerStoreService_GetAddCardInfo_Req, CardIssuerStoreService_GetAddCardInfo_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_PrintCardImmediately(SpReqAnsContext<CardIssuerStoreService_PrintCardImmediately_Req, CardIssuerStoreService_PrintCardImmediately_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_QueryCIStatus(SpReqAnsContext<CardIssuerStoreService_QueryCIStatus_Req, CardIssuerStoreService_QueryCIStatus_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void Handle_GetDevInfo(SpReqAnsContext<CardIssuerStoreService_GetDevInfo_Req, CardIssuerStoreService_GetDevInfo_Ans>::Pointer ctx)
+	{
+	/// override by user
+	}
+
+	virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
+	{
+		CAutoBuffer Buf;
+		DWORD dwMessageID;
+		DWORD dwMessageSignature;
+		ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
+		if (Error == Error_Succeed) {
+#ifdef DEBUG
+			assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
+#else
+			if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
+				pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
+				return;
+			}
+#endif
+			switch (dwMessageID) {
+				case CardIssuerStoreService_Method_Insert:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Insert_Req,CardIssuerStoreService_Insert_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Insert_Req,CardIssuerStoreService_Insert_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Insert(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_CancelInsert:
+					{
+						SpOnewayCallContext<CardIssuerStoreService_CancelInsert_Info>::Pointer ctx;
+						ctx.Attach(new SpOnewayCallContext<CardIssuerStoreService_CancelInsert_Info>());
+						SpBuffer2Object(Buf, ctx->Info);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_CancelInsert(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_InsertWaitMore:
+					{
+						SpOnewayCallContext<CardIssuerStoreService_InsertWaitMore_Info>::Pointer ctx;
+						ctx.Attach(new SpOnewayCallContext<CardIssuerStoreService_InsertWaitMore_Info>());
+						SpBuffer2Object(Buf, ctx->Info);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_InsertWaitMore(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Read:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Read_Req,CardIssuerStoreService_Read_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Read_Req,CardIssuerStoreService_Read_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Read(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Capture:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Capture_Req,CardIssuerStoreService_Capture_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Capture_Req,CardIssuerStoreService_Capture_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Capture(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Eject:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Eject_Req,CardIssuerStoreService_Eject_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Eject_Req,CardIssuerStoreService_Eject_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Eject(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_PreOnline:
+					{
+						SpReqAnsContext<CardIssuerStoreService_PreOnline_Req,CardIssuerStoreService_PreOnline_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_PreOnline_Req,CardIssuerStoreService_PreOnline_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_PreOnline(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_PostOnline:
+					{
+						SpReqAnsContext<CardIssuerStoreService_PostOnline_Req,CardIssuerStoreService_PostOnline_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_PostOnline_Req,CardIssuerStoreService_PostOnline_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_PostOnline(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Exit:
+					{
+						SpOnewayCallContext<CardIssuerStoreService_Exit_Info>::Pointer ctx;
+						ctx.Attach(new SpOnewayCallContext<CardIssuerStoreService_Exit_Info>());
+						SpBuffer2Object(Buf, ctx->Info);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Exit(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Issue:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Issue_Req,CardIssuerStoreService_Issue_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Issue_Req,CardIssuerStoreService_Issue_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Issue(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_GetMaterialCount:
+					{
+						SpReqAnsContext<CardIssuerStoreService_GetMaterialCount_Req,CardIssuerStoreService_GetMaterialCount_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_GetMaterialCount_Req,CardIssuerStoreService_GetMaterialCount_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_GetMaterialCount(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_SetMaterialCount:
+					{
+						SpReqAnsContext<CardIssuerStoreService_SetMaterialCount_Req,CardIssuerStoreService_SetMaterialCount_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_SetMaterialCount_Req,CardIssuerStoreService_SetMaterialCount_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_SetMaterialCount(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_SetIssueFlag:
+					{
+						SpOnewayCallContext<CardIssuerStoreService_SetIssueFlag_Info>::Pointer ctx;
+						ctx.Attach(new SpOnewayCallContext<CardIssuerStoreService_SetIssueFlag_Info>());
+						SpBuffer2Object(Buf, ctx->Info);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_SetIssueFlag(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_ReadEx:
+					{
+						SpReqAnsContext<CardIssuerStoreService_ReadEx_Req,CardIssuerStoreService_ReadEx_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_ReadEx_Req,CardIssuerStoreService_ReadEx_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_ReadEx(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_QueryCardInfo:
+					{
+						SpReqAnsContext<CardIssuerStoreService_QueryCardInfo_Req,CardIssuerStoreService_QueryCardInfo_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_QueryCardInfo_Req,CardIssuerStoreService_QueryCardInfo_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_QueryCardInfo(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_WriteTrack:
+					{
+						SpReqAnsContext<CardIssuerStoreService_WriteTrack_Req,CardIssuerStoreService_WriteTrack_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_WriteTrack_Req,CardIssuerStoreService_WriteTrack_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_WriteTrack(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_GetMaterialCountEx:
+					{
+						SpReqAnsContext<CardIssuerStoreService_GetMaterialCountEx_Req,CardIssuerStoreService_GetMaterialCountEx_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_GetMaterialCountEx_Req,CardIssuerStoreService_GetMaterialCountEx_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_GetMaterialCountEx(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_SetMaterialCountEx:
+					{
+						SpReqAnsContext<CardIssuerStoreService_SetMaterialCountEx_Req,CardIssuerStoreService_SetMaterialCountEx_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_SetMaterialCountEx_Req,CardIssuerStoreService_SetMaterialCountEx_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_SetMaterialCountEx(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_SetSomeFlag:
+					{
+						SpReqAnsContext<CardIssuerStoreService_SetSomeFlag_Req,CardIssuerStoreService_SetSomeFlag_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_SetSomeFlag_Req,CardIssuerStoreService_SetSomeFlag_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_SetSomeFlag(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_GetSCIInfo:
+					{
+						SpReqAnsContext<CardIssuerStoreService_GetSCIInfo_Req,CardIssuerStoreService_GetSCIInfo_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_GetSCIInfo_Req,CardIssuerStoreService_GetSCIInfo_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_GetSCIInfo(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_IssueEx:
+					{
+						SpReqAnsContext<CardIssuerStoreService_IssueEx_Req,CardIssuerStoreService_IssueEx_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_IssueEx_Req,CardIssuerStoreService_IssueEx_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_IssueEx(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_OpenSafeLock:
+					{
+						SpReqAnsContext<CardIssuerStoreService_OpenSafeLock_Req,CardIssuerStoreService_OpenSafeLock_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_OpenSafeLock_Req,CardIssuerStoreService_OpenSafeLock_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_OpenSafeLock(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_SAMICCommand:
+					{
+						SpReqAnsContext<CardIssuerStoreService_SAMICCommand_Req,CardIssuerStoreService_SAMICCommand_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_SAMICCommand_Req,CardIssuerStoreService_SAMICCommand_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_SAMICCommand(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_QueryPrinterStatus:
+					{
+						SpReqAnsContext<CardIssuerStoreService_QueryPrinterStatus_Req,CardIssuerStoreService_QueryPrinterStatus_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_QueryPrinterStatus_Req,CardIssuerStoreService_QueryPrinterStatus_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_QueryPrinterStatus(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_Print:
+					{
+						SpReqAnsContext<CardIssuerStoreService_Print_Req,CardIssuerStoreService_Print_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_Print_Req,CardIssuerStoreService_Print_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_Print(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_QuerySCIList:
+					{
+						SpReqAnsContext<CardIssuerStoreService_QuerySCIList_Req,CardIssuerStoreService_QuerySCIList_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_QuerySCIList_Req,CardIssuerStoreService_QuerySCIList_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_QuerySCIList(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_BindSCI:
+					{
+						SpReqAnsContext<CardIssuerStoreService_BindSCI_Req,CardIssuerStoreService_BindSCI_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_BindSCI_Req,CardIssuerStoreService_BindSCI_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_BindSCI(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_PreOnlineOnStore:
+					{
+						SpReqAnsContext<CardIssuerStoreService_PreOnlineOnStore_Req,CardIssuerStoreService_PreOnlineOnStore_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_PreOnlineOnStore_Req,CardIssuerStoreService_PreOnlineOnStore_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_PreOnlineOnStore(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_NotifyPreonline:
+					{
+						SpReqAnsContext<CardIssuerStoreService_NotifyPreonline_Req,CardIssuerStoreService_NotifyPreonline_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_NotifyPreonline_Req,CardIssuerStoreService_NotifyPreonline_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_NotifyPreonline(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_QueryCardInfoOnStore:
+					{
+						SpReqAnsContext<CardIssuerStoreService_QueryCardInfoOnStore_Req,CardIssuerStoreService_QueryCardInfoOnStore_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_QueryCardInfoOnStore_Req,CardIssuerStoreService_QueryCardInfoOnStore_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_QueryCardInfoOnStore(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_GetAddCardInfo:
+					{
+						SpReqAnsContext<CardIssuerStoreService_GetAddCardInfo_Req,CardIssuerStoreService_GetAddCardInfo_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_GetAddCardInfo_Req,CardIssuerStoreService_GetAddCardInfo_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_GetAddCardInfo(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_PrintCardImmediately:
+					{
+						SpReqAnsContext<CardIssuerStoreService_PrintCardImmediately_Req,CardIssuerStoreService_PrintCardImmediately_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_PrintCardImmediately_Req,CardIssuerStoreService_PrintCardImmediately_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_PrintCardImmediately(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_QueryCIStatus:
+					{
+						SpReqAnsContext<CardIssuerStoreService_QueryCIStatus_Req,CardIssuerStoreService_QueryCIStatus_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_QueryCIStatus_Req,CardIssuerStoreService_QueryCIStatus_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_QueryCIStatus(ctx);
+					}
+					break;
+				case CardIssuerStoreService_Method_GetDevInfo:
+					{
+						SpReqAnsContext<CardIssuerStoreService_GetDevInfo_Req,CardIssuerStoreService_GetDevInfo_Ans>::Pointer ctx;
+						ctx.Attach(new SpReqAnsContext<CardIssuerStoreService_GetDevInfo_Req,CardIssuerStoreService_GetDevInfo_Ans>(pTransactionContext));
+						SpBuffer2Object(Buf, ctx->Req);
+						pTransactionContext->GetLinkContext(ctx->link);
+						EntityResource::setLink(ctx->link);
+						Handle_GetDevInfo(ctx);
+					}
+					break;
+				default:
+					assert(0);
+					break;
+			}
+			
+		} else {
+			pTransactionContext->SendAnswer(Error);
+		}
+	}
+
+};
+
+
+///////////////////////////
+
+} // namespace CardIssuerStore
+#endif // __CARDISSUERSTORE_SERVER_G_H