!!***************************************************************************
!!
!! Electronic Value Reader Writer Opos Control Object Data File
!!
!!     Date                   Modification                          Author
!! -----------|----------------------------------------------------|----------
!!  2008/01/15 1.12.000: Initial version.                           C. Monroe
!!  2013/10/03 1.14.000: Add properties, methods, and events for    C. Monroe
!!               1.14.
!!  2015/02/07 1.14.100:                                            C. Monroe
!!               Add properties, methods, and events for 1.14.001.
!!               These are listed below as 1.15, so that Builder will
!!                 generate a new interface for it.
!!                 Then manual changes will be applied.
!!
!!***************************************************************************

! Names: Device, Uppercase Device
DeviceName      =ElectronicValueRW
DeviceUpper     =ELECTRONICVALUERW

! Short device designation used by OPOS.
!   Include file is Opos@DeviceShortName@.hi
!   Property index prefix is PIDX@DeviceShortName@.
DeviceShortName =Evrw
! Short upper case device designation used by OPOS.
!   Device registry key is OPOS_CLASSKEY_@DeviceShortUpper@
DeviceShortUpper=EVRW

! If Claim and Release are not supported, comment out the next line.
!   (The macro values are not important. We only check for defined or not defined.)
ClaimRelease    =

! If sharable device, comment out the next line.
!   (The macro value is not important. We only check for defined or not defined.)
Exclusive       =

! If any methods or properties use currency, then define "Currency"
Currency        =

! Supported events. Comment out the unsupported ones.
!   (The macro values are not important. We only check for defined or not defined.)
EventData       =
EventDirectIO   =
EventError      =
EventOutput     =
EventStatus     =
EventTransition =

! If SAFEARRAYs are used, then uncomment the following line to enable debug trace logic.
!!SafeArray       =

! UUIDs. UUIDLibrary is required to be the full GUID.
!   The others can be specified in full, or a "*" indicates that the bytes 3-4
!   (hexadecimal chars 5-8) of the UUIDLibrary should be incremented to
!   form their GUIDs.
UUIDControl     =0330
UUIDLibrary     =UUID:@UUIDPre@@UUIDControl@-@UUIDPost@
UUIDInterface   =UUID*
UUIDCoclass     =UUID*
UUIDEvents      =UUID*

! OPOS Version Number: On recommendation from OPOS-J, calling EVRW 1.14.100 instead of 1.14.001,
!   due to incompatible changes from 1.14.000.
BuildVersion    =100

! For each version up to the @Version@, list the properties and methods.
!   If method:
!     M  = Method.
!     Release = 1.x
!     Number = Dispatch ID.
!     Details = IDL formatted method and parameters, with assumed ", [out] LONG* pRC )" at end.
!       If usage omitted, assume [in].
!       Parameter types restricted to BOOL, LONG, CURRENCY, and BSTR.
!   If parameter:
!     First char = C for Common (or S for Specific [optional]).
!     Next one or two chars = R for Readable or W for Writable.
!     Release = 1.x
!     Number = Dispatch ID.
!     Details = Property name followed by type in parentheses.
!       Type restricted to BOOL, LONG, CURRENCY, and BSTR.
!     Property Index name without prefix (optional)

:MethodsProperties
!> Added Property
 CR  1.12  49 OpenResult(LONG)
!> Common Properties
 CRW 1.12  10 AutoDisable(BOOL)
 CRW 1.12  11 BinaryConversion(LONG)
 CR  1.12  12 CapPowerReporting(LONG)
 CR  1.12  13 CheckHealthText(BSTR)
 CR  1.12  14 Claimed(BOOL)
 CR  1.12  15 DataCount(LONG)
 CRW 1.12  16 DataEventEnabled(BOOL)
 CRW 1.12  17 DeviceEnabled(BOOL)
 CRW 1.12  18 FreezeEvents(BOOL)
 CR  1.12  19 OutputID(LONG)
 CRW 1.12  20 PowerNotify(LONG)
 CR  1.12  21 PowerState(LONG)
 CR  1.12  22 ResultCode(LONG)
 CR  1.12  23 ResultCodeExtended(LONG)
 CR  1.12  24 State(LONG)
!
 CR  1.12  25 ControlObjectDescription(BSTR)
 CR  1.12  26 ControlObjectVersion(LONG)
 CR  1.12  27 ServiceObjectDescription(BSTR)
 CR  1.12  28 ServiceObjectVersion(LONG)
 CR  1.12  29 DeviceDescription(BSTR)
 CR  1.12  30 DeviceName(BSTR)
!     Added in Release 1.8
 CR  1.12  39 CapStatisticsReporting(BOOL)
 CR  1.12  40 CapUpdateStatistics(BOOL)
!     Added in Release 1.9
 CR  1.12  44 CapCompareFirmwareVersion(BOOL)
 CR  1.12  45 CapUpdateFirmware(BOOL)
!
!> Common Methods
 M   1.12  31 CheckHealth(LONG Level)
 M   1.12  32 Claim(LONG Timeout)
 M   1.12  33 ClearInput()
 M   1.12  34 ClearOutput()
 M   1.12  35 Close()
 M   1.12  36 DirectIO(LONG Command, [in, out] LONG* pData, [in, out] BSTR* pString)
 M   1.12  37 Open(BSTR DeviceName)
 M   1.12  38 Release()
!     Added in Release 1.8
 M   1.12  41 ResetStatistics(BSTR StatisticsBuffer)
 M   1.12  42 RetrieveStatistics([in, out] BSTR* pStatisticsBuffer)
 M   1.12  43 UpdateStatistics(BSTR StatisticsBuffer)
!     Added in Release 1.9
 M   1.12  46 CompareFirmwareVersion(BSTR FirmwareFileName, [out] LONG* pResult)
 M   1.12  47 UpdateFirmware(BSTR FirmwareFileName)
!     Added in Release 1.10
 M   1.12  48 ClearInputProperties()
!
!> Specific Properties
  R  1.12  70 AccountNumber(BSTR)
  RW 1.12  71 AdditionalSecurityInformation(BSTR)
  RW 1.12  72 Amount(CURRENCY)
  RW 1.12  73 ApprovalCode(BSTR)
  RW 1.12  74 AsyncMode(BOOL)
  R  1.12  75 Balance(CURRENCY)
  R  1.12  76 BalanceOfPoint(CURRENCY)
  R  1.12  77 CapActivateService(BOOL)
  R  1.12  78 CapAddValue(BOOL)
  R  1.12  79 CapCancelValue(BOOL)
  R  1.12  80 CapCardSensor(LONG)
  R  1.12  81 CapDetectionControl(LONG)
  R  1.12  82 CapElectronicMoney(BOOL)
  R  1.12  83 CapEnumerateCardServices(BOOL)
  R  1.12  84 CapIndirectTransactionLog(BOOL)
  R  1.12  85 CapLockTerminal(BOOL)
  R  1.12  86 CapLogStatus(BOOL)
  R  1.12  87 CapMediumID(BOOL)
!    1.14.100 == Added next after initial 1.14 release.
  R  1.15 116 CapMembershipCertificate(BOOL)
  R  1.14 112 CapPINDevice(BOOL)
  R  1.12  88 CapPoint(BOOL)
  R  1.12  89 CapSubtractValue(BOOL)
  R  1.14 113 CapTrainingMode(BOOL)
  R  1.12  90 CapTransaction(BOOL)
  R  1.12  91 CapTransactionLog(BOOL)
  R  1.12  92 CapUnlockTerminal(BOOL)
  R  1.12  93 CapUpdateKey(BOOL)
  R  1.12  94 CapVoucher(BOOL)
  R  1.12  95 CapWriteValue(BOOL)
  R  1.12  96 CardServiceList(BSTR)
  RW 1.12  97 CurrentService(BSTR)
  RW 1.12  98 DetectionControl(BOOL)
  R  1.12  99 DetectionStatus(LONG)
  R  1.12 100 ExpirationDate(BSTR)
  R  1.12 101 LastUsedDate(BSTR)
  R  1.12 102 LogStatus(LONG)
  RW 1.12 103 MediumID(BSTR)
  RW 1.14 114 PINEntry(LONG)
  RW 1.12 104 Point(CURRENCY)
  R  1.12 105 ReaderWriterServiceList(BSTR)
  R  1.12 106 SequenceNumber(LONG)
!    1.14.100 == Added next after initial 1.14 release.
  R  1.15 117 ServiceType(LONG)
  R  1.12 107 SettledAmount(CURRENCY)
  R  1.12 108 SettledPoint(CURRENCY)
  RW 1.14 115 TrainingModeState(LONG)
  R  1.12 109 TransactionLog(BSTR)
  RW 1.12 110 VoucherID(BSTR)
  RW 1.12 111 VoucherIDList(BSTR)
!> Specific Methods
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 161 AccessData(LONG DataType, [in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 140 AccessLog(LONG SequenceNumber, LONG Type, LONG Timeout)
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 162 ActivateEVService([in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 141 ActivateService([in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 142 AddValue(LONG SequenceNumber, LONG Timeout)
 M   1.12 143 BeginDetection(LONG Type, LONG Timeout)
 M   1.12 144 BeginRemoval(LONG Timeout)
 M   1.12 145 CancelValue(LONG SequenceNumber, LONG Timeout)
 M   1.12 146 CaptureCard()
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 163 CheckServiceRegistrationToMedium(LONG SequenceNumber, LONG Timeout)
 M   1.14 157 ClearParameterInformation()
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 164 CloseDailyEVService([in, out] LONG* pData, [in, out] BSTR* pObj)
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 165 DeactivateEVService([in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 147 EndDetection()
 M   1.12 148 EndRemoval()
 M   1.12 149 EnumerateCardServices()
 M   1.12 150 LockTerminal()
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 166 OpenDailyEVService([in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.14 158 QueryLastSuccessfulTransactionResult()
 M   1.12 151 ReadValue(LONG SequenceNumber, LONG Timeout)
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 167 RegisterServiceToMedium(LONG SequenceNumber, LONG Timeout)
 M   1.14 159 RetrieveResultInformation(BSTR Name, [in, out] BSTR* pValue)
 M   1.14 160 SetParameterInformation(BSTR Name, BSTR Value)
 M   1.12 152 SubtractValue(LONG SequenceNumber, LONG Timeout)
 M   1.12 153 TransactionAccess(LONG Control)
 M   1.12 154 UnlockTerminal()
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 168 UnregisterServiceToMedium(LONG SequenceNumber, LONG Timeout)
!    1.14.100 == Added next after initial 1.14 release.
 M   1.15 169 UpdateData(LONG DataType, [in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 155 UpdateKey([in, out] LONG* pData, [in, out] BSTR* pObj)
 M   1.12 156 WriteValue(LONG SequenceNumber, LONG Timeout)

!!End
