
		/* method definitions */ 
		[id(1)] HRESULT Transaction([in] BSTR function, [in] long amount, [in] long options);
		[id(2)] HRESULT Commit([in] VARIANT_BOOL outcome);
		[id(3)] HRESULT CommitAmount([in] long commitPartialAmount);
		[id(4)] HRESULT CommitPartial([in] long commitPartialAmount);
		[id(5)] HRESULT Open();
		[id(6)] HRESULT Close();
		[id(7)] HRESULT Balance();
		[id(8)] HRESULT DeviceControl([in] long deviceControlClass, [in] long deviceControlCommand);
		[id(9)] HRESULT IccControl([in] long iccCommandCode);
		[id(10)] HRESULT DeviceAccess([in] BSTR deviceAccessId);
		[id(11)] HRESULT QueryStatus();
		[id(12)] HRESULT Validation([in] BSTR function, [in] long amount, [in] long options);
		[id(13)] HRESULT PrintOnEFT([in] BSTR printText, [in] long printOptions);
		[id(14)] HRESULT Complete([in] long timeout);
		[id(15)] HRESULT Abort();
		[id(16)] HRESULT Connect();
		[id(17)] HRESULT Disconnect();

		/* property definitions */ 
		[id(18), propget] HRESULT Async([out, retval] long * pVal);
		[id(18), propput] HRESULT Async([in] long newVal);
		[id(19), propget] HRESULT Timeout([out, retval] long * pVal);
		[id(19), propput] HRESULT Timeout([in] long newVal);
		[id(20), propget] HRESULT Status([out, retval] long * pVal);
		[id(21), propput] HRESULT AutoMode([in] long newVal);
		[id(22), propget] HRESULT Cashier([out, retval] long * pVal);
		[id(22), propput] HRESULT Cashier([in] long newVal);
		[id(23), propget] HRESULT ECRId([out, retval] BSTR * pVal);
		[id(23), propput] HRESULT ECRId([in] BSTR newVal);
		[id(24), propput] HRESULT UseMode([in] long newVal);
		[id(25), propget] HRESULT UseModeReply([out, retval] long * pVal);
		[id(26), propget] HRESULT ECRSequence([out, retval] long * pVal);
		[id(27), propput] HRESULT EntryMode([in] BSTR newVal);
		[id(28), propput] HRESULT Track2([in] BSTR newVal);
		[id(29), propput] HRESULT Track3([in] BSTR newVal);
		[id(30), propget] HRESULT Amount([out, retval] long * pVal);
		[id(30), propput] HRESULT Amount([in] long newVal);
		[id(31), propget] HRESULT AmountOrig([out, retval] long * pVal);
		[id(31), propput] HRESULT AmountOrig([in] long newVal);
		[id(32), propget] HRESULT AmountOther([out, retval] long * pVal);
		[id(32), propput] HRESULT AmountOther([in] long newVal);
		[id(33), propget] HRESULT FeeAmount([out, retval] long * pVal);
		[id(34), propget] HRESULT Currency([out, retval] BSTR * pVal);
		[id(34), propput] HRESULT Currency([in] BSTR newVal);
		[id(35), propput] HRESULT PrinterWidth([in] long newVal);
		[id(36), propget] HRESULT OperationMode([out, retval] BSTR * pVal);
		[id(36), propput] HRESULT OperationMode([in] BSTR newVal);
		[id(37), propget] HRESULT Time([out, retval] BSTR * pVal);
		[id(38), propget] HRESULT AID([out, retval] BSTR * pVal);
		[id(39), propput] HRESULT TrxTimeout([in] long newVal);
		[id(40), propput] HRESULT CardRemoveIndicator([in] long newVal);
		[id(41), propput] HRESULT SuppressReceiptOnTrm([in] long newVal);
		[id(42), propput] HRESULT DisplayText1([in] long newVal);
		[id(43), propput] HRESULT DisplayText2([in] long newVal);
		[id(44), propput] HRESULT CommitRequired([in] long newVal);
		[id(45), propget] HRESULT DccMode([out, retval] long * pVal);
		[id(45), propput] HRESULT DccMode([in] long newVal);
		[id(46), propget] HRESULT DccCurrency([out, retval] BSTR * pVal);
		[id(47), propget] HRESULT DccAmount([out, retval] long * pVal);
		[id(48), propget] HRESULT DccAmountExp([out, retval] long * pVal);
		[id(49), propget] HRESULT DccExrate([out, retval] BSTR * pVal);
		[id(50), propget] HRESULT DccExrateExp([out, retval] long * pVal);
		[id(51), propput] HRESULT DccOriginalDate([in] BSTR newVal);
		[id(52), propput] HRESULT TopupIssuerName([in] BSTR newVal);
		[id(53), propget] HRESULT TopupRefillCode([out, retval] BSTR * pVal);
		[id(54), propget] HRESULT TopupSerialNumber([out, retval] BSTR * pVal);
		[id(55), propget] HRESULT ExceptionMessage([out, retval] BSTR * pVal);
		[id(56), propget] HRESULT ExceptionCode([out, retval] long * pVal);
		[id(57), propget] HRESULT NativeMessage([out, retval] BSTR * pVal);
		[id(58), propget] HRESULT NativeStatus([out, retval] BSTR * pVal);
		[id(59), propget] HRESULT RefNumber([out, retval] BSTR * pVal);
		[id(59), propput] HRESULT RefNumber([in] BSTR newVal);
		[id(60), propget] HRESULT TrxSeqNum([out, retval] BSTR * pVal);
		[id(60), propput] HRESULT TrxSeqNum([in] BSTR newVal);
		[id(61), propget] HRESULT TrxRefNum([out, retval] BSTR * pVal);
		[id(61), propput] HRESULT TrxRefNum([in] BSTR newVal);
		[id(62), propget] HRESULT AuthCode([out, retval] BSTR * pVal);
		[id(62), propput] HRESULT AuthCode([in] BSTR newVal);
		[id(63), propget] HRESULT ReceiptText([out, retval] BSTR * pVal);
		[id(64), propget] HRESULT ReceiptMerchantText([out, retval] BSTR * pVal);
		[id(65), propget] HRESULT ContractNumber([out, retval] BSTR * pVal);
		[id(66), propget] HRESULT CardNumber([out, retval] BSTR * pVal);
		[id(67), propget] HRESULT CardExpiration([out, retval] BSTR * pVal);
		[id(68), propget] HRESULT PrintableCardNumber([out, retval] BSTR * pVal);
		[id(69), propget] HRESULT PosEntryMode([out, retval] BSTR * pVal);
		[id(70), propget] HRESULT AuthText([out, retval] BSTR * pVal);
		[id(71), propget] HRESULT BookingPeriod([out, retval] BSTR * pVal);
		[id(72), propget] HRESULT OperationPhase([out, retval] long * pVal);
		[id(73), propget] HRESULT ApplicationName([out, retval] BSTR * pVal);
		[id(74), propget] HRESULT ApplicationLabel([out, retval] BSTR * pVal);
		[id(75), propget] HRESULT ApplicationKey([out, retval] BSTR * pVal);
		[id(76), propget] HRESULT CustomerLanguage([out, retval] BSTR * pVal);
		[id(77), propget] HRESULT CardLanguage([out, retval] BSTR * pVal);
		[id(78), propget] HRESULT BrandId([out, retval] long * pVal);
		[id(79), propget] HRESULT TipAmount([out, retval] long * pVal);
		[id(80), propget] HRESULT EncryptedPan([out, retval] BSTR * pVal);
		[id(81), propget] HRESULT StaticKeyPanIndex([out, retval] long * pVal);
		[id(82), propget] HRESULT AcqId([out, retval] BSTR * pVal);
		[id(83), propget] HRESULT SubBrand([out, retval] BSTR * pVal);
		[id(84), propget] HRESULT CommitTimeout([out, retval] long * pVal);
		[id(85), propget] HRESULT ReferralPhoneNumber([out, retval] BSTR * pVal);
		[id(86), propget] HRESULT SaldoFlag([out, retval] VARIANT_BOOL * pVal);
		[id(87), propget] HRESULT Saldo([out, retval] long * pVal);
		[id(88), propget] HRESULT CouponValueUnit([out, retval] BSTR * pVal);
		[id(89), propget] HRESULT CouponValue([out, retval] long * pVal);
		[id(90), propget] HRESULT CouponType([out, retval] long * pVal);
		[id(91), propget] HRESULT CouponPromNumber([out, retval] long * pVal);
		[id(92), propget] HRESULT CouponReferenceNumber([out, retval] BSTR * pVal);
		[id(92), propput] HRESULT CouponReferenceNumber([in] BSTR newVal);
		[id(93), propget] HRESULT Outcome([out, retval] VARIANT_BOOL * pVal);
		[id(94), propget] HRESULT Options([out, retval] long * pVal);
		[id(95), propget] HRESULT Function([out, retval] BSTR * pVal);
		[id(96), propget] HRESULT Language([out, retval] BSTR * pVal);
		[id(96), propput] HRESULT Language([in] BSTR newVal);
		[id(97), propget] HRESULT Id([out, retval] BSTR * pVal);
		[id(97), propput] HRESULT Id([in] BSTR newVal);
		[id(98), propget] HRESULT TerminalId([out, retval] BSTR * pVal);
		[id(98), propput] HRESULT TerminalId([in] BSTR newVal);
		[id(99), propget] HRESULT MpdServerVersion([out, retval] BSTR * pVal);
		[id(100), propget] HRESULT MpdClientVersion([out, retval] BSTR * pVal);
		[id(101), propget] HRESULT ActivationSequence([out, retval] BSTR * pVal);
		[id(101), propput] HRESULT ActivationSequence([in] BSTR newVal);
		[id(102), propget] HRESULT ActivationState([out, retval] long * pVal);
		[id(103), propget] HRESULT ConnectionState([out, retval] long * pVal);
		[id(104), propput] HRESULT EcrManufacturer([in] BSTR newVal);
		[id(105), propput] HRESULT EcrName([in] BSTR newVal);
		[id(106), propput] HRESULT EcrVersion([in] BSTR newVal);
		[id(107), propput] HRESULT EftModuleManufacturer([in] BSTR newVal);
		[id(108), propput] HRESULT EftModuleName([in] BSTR newVal);
		[id(109), propput] HRESULT EftModuleVersion([in] BSTR newVal);
		[id(110), propget] HRESULT DeviceStatusCode([out, retval] long * pVal);
		[id(111), propget] HRESULT DeviceEventCode([out, retval] long * pVal);
		[id(112), propget] HRESULT ReaderStatusCode([out, retval] long * pVal);
		[id(113), propget] HRESULT CardProcessingInfo([out, retval] long * pVal);
		[id(114), propget] HRESULT DeviceApplicationKey([out, retval] BSTR * pVal);
		[id(115), propget] HRESULT DeviceAid([out, retval] BSTR * pVal);
		[id(116), propget] HRESULT DeviceId([out, retval] BSTR * pVal);
		[id(116), propput] HRESULT DeviceId([in] BSTR newVal);
		[id(117), propget] HRESULT DeviceMsgCode([out, retval] long * pVal);
		[id(118), propget] HRESULT DeviceMsg([out, retval] BSTR * pVal);
		[id(119), propget] HRESULT DeviceControlClass([out, retval] long * pVal);
		[id(120), propget] HRESULT DeviceControlCommand([out, retval] long * pVal);
		[id(121), propget] HRESULT DeviceControlData([out, retval] BSTR * pVal);
		[id(122), propget] HRESULT DeviceControlResult([out, retval] long * pVal);
		[id(123), propget] HRESULT BalanceTime([out, retval] BSTR * pVal);
		[id(124), propget] HRESULT ReceiptCopyCount([out, retval] long * pVal);
		[id(125), propget] HRESULT ReceiptMerchantCount([out, retval] long * pVal);
		[id(126), propget] HRESULT ReceiptSignatureFlag([out, retval] long * pVal);
		[id(127), propget] HRESULT ReceiptOptions([out, retval] long * pVal);
		[id(127), propput] HRESULT ReceiptOptions([in] long newVal);
		[id(128), propget] HRESULT ReceiptPrintFlag([out, retval] long * pVal);
		[id(128), propput] HRESULT ReceiptPrintFlag([in] long newVal);
		[id(129), propget] HRESULT Cvc([out, retval] BSTR * pVal);
		[id(129), propput] HRESULT Cvc([in] BSTR newVal);
		[id(130), propget] HRESULT DriverAddress([out, retval] BSTR * pVal);
		[id(130), propput] HRESULT DriverAddress([in] BSTR newVal);
		[id(131), propput] HRESULT CommitPartialTimeout([in] long newVal);
		[id(132), propput] HRESULT CommitPartialAmount([in] long newVal);
		[id(133), propget] HRESULT CommitedAmount([out, retval] long * pVal);
		[id(134), propget] HRESULT IccCommandCode([out, retval] long * pVal);
		[id(134), propput] HRESULT IccCommandCode([in] long newVal);
		[id(135), propget] HRESULT IccDeviceId([out, retval] BSTR * pVal);
		[id(135), propput] HRESULT IccDeviceId([in] BSTR newVal);
		[id(136), propget] HRESULT IccApduRequest([out, retval] BSTR * pVal);
		[id(136), propput] HRESULT IccApduRequest([in] BSTR newVal);
		[id(137), propget] HRESULT IccCardAtr([out, retval] BSTR * pVal);
		[id(138), propget] HRESULT IccApduResponse([out, retval] BSTR * pVal);
		[id(139), propget] HRESULT DeviceAccessId([out, retval] BSTR * pVal);
		[id(139), propput] HRESULT DeviceAccessId([in] BSTR newVal);
		[id(140), propget] HRESULT DeviceAccessData([out, retval] BSTR * pVal);
		[id(140), propput] HRESULT DeviceAccessData([in] BSTR newVal);
		[id(141), propget] HRESULT DeviceAccessResult([out, retval] long * pVal);
		[id(142), propget] HRESULT CompletedCommand([out, retval] long * pVal);
		[id(143), propget] HRESULT CompletedDeviceEvent([out, retval] long * pVal);
		[id(144), propget] HRESULT CardsRetained([out, retval] long * pVal);
		[id(144), propput] HRESULT CardsRetained([in] long newVal);
		[id(145), propput] HRESULT ExtraXmlNode([in] BSTR newVal);
		[id(148), propput] HRESULT PrintCharSet([in] long newVal);
		[id(149), propget] HRESULT PrinterState([out, retval] long * pVal);
		[id(150), propput] HRESULT TrxAddMode([in] long newVal);
		[id(151), propget] HRESULT TrxAddReply([out, retval] long * pVal);
		[id(152), propget] HRESULT NbrInstalments([out, retval] long * pVal);
		[id(152), propput] HRESULT NbrInstalments([in] long newVal);
		[id(153), propget] HRESULT HasCardInfos([out, retval] long * pVal);
		[id(154), propget] HRESULT ContextId([out, retval] long * pVal);
		[id(155), propget] HRESULT CardTrack2([out, retval] BSTR * pVal);
		[id(156), propget] HRESULT CardTrack3([out, retval] BSTR * pVal);
		[id(157), propget] HRESULT CardIcc([out, retval] BSTR * pVal);
		[id(158), propget] HRESULT CardAppExpDate([out, retval] BSTR * pVal);
		[id(159), propget] HRESULT CardPanHash([out, retval] BSTR * pVal);
		[id(160), propget] HRESULT ChipPanHash([out, retval] BSTR * pVal);
		[id(161), propget] HRESULT ProcessingTarget([out, retval] long * pVal);
		[id(162), propget] HRESULT DccDisclaimerText([out, retval] BSTR * pVal);
		[id(163), propget] HRESULT FeeDisclaimerText([out, retval] BSTR * pVal);
		[id(164), propput] HRESULT AccountIndex([in] long newVal);
		[id(165), propput] HRESULT EcrSeqCounter([in] long newVal);
		[id(166), propput] HRESULT ProceedNeeded([in] long newVal);
		[id(167), propget] HRESULT LoyaltyMode([out, retval] long * pVal);
		[id(167), propput] HRESULT LoyaltyMode([in] long newVal);
		[id(168), propget] HRESULT LoyaltyData([out, retval] BSTR * pVal);
		[id(169), propput] HRESULT LoyaltyInfo([in] BSTR newVal);
