!COMIO.DEF [100] - Symbols and structures used in COMIO.SBR
!-------------------.-------------------.-------------------.-------------------.
!EDIT HISTORY
! VEDIT=100
! Note: history reformatted 9-Feb-17
! [100] 23-Apr-14 / jdm / created (COMOP_QUERY added in 6.1.1384.0)
!-------------------.-------------------.-------------------.-------------------.
!NOTES: 
! Define symbol COMIO_PROPERTY_DESCRIPTIONS=1 before including
! this module to include a mapped array COMIO'PROP$ containing
! descriptions corresponding to the SPDRP_xxx property symbols,
!   e.g.:
!       define COMIO_PROPERTY_DESCRIPTIONS=1
!       ++include ashinc:comio.def
!---------------------------------------------------------------

++ifndef COMOP_QUERY            ! if this module not already included

define COMOP_QUERY = 0
define COMOP_OPEN  = 1
define COMOP_CLOSE = 2
define COMOP_CHECK = 4
define COMOP_READ  = 8
define COMOP_WRITE = 16

define SPDRP_HARDWAREID                  = 01  ! HardwareID 
define SPDRP_COMPATIBLEIDS               = 02  ! CompatibleIDs 
define SPDRP_SERVICE                     = 04  ! Service 
define SPDRP_CLASS                       = 07  ! Class (tied to ClassGUID)
define SPDRP_CLASSGUID                   = 08  ! ClassGUID 
define SPDRP_DRIVER                      = 09  ! Driver 
define SPDRP_CONFIGFLAGS                 = 10  ! ConfigFlags 
define SPDRP_MFG                         = 11  ! Mfg 
define SPDRP_FRIENDLYNAME                = 12  ! FriendlyName 
define SPDRP_LOCATION_INFORMATION        = 13  ! LocationInformation 
define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME = 14  ! (PhysicalDeviceObjectName 
define SPDRP_CAPABILITIES                = 15  ! Capabilities 
define SPDRP_UI_NUMBER                   = 16  ! UiNumber 
define SPDRP_UPPERFILTERS                = 17  ! UpperFilters 
define SPDRP_LOWERFILTERS                = 18  ! LowerFilters 
define SPDRP_BUSTYPEGUID                 = 19  ! BusTypeGUID 
define SPDRP_LEGACYBUSTYPE               = 20  ! LegacyBusType 
define SPDRP_BUSNUMBER                   = 21  ! BusNumber 
define SPDRP_ENUMERATOR_NAME             = 22  ! Enumerator Name 
define SPDRP_SECURITY_SDS                = 24  ! Security 
define SPDRP_DEVTYPE                     = 25  ! Device Type 
define SPDRP_EXCLUSIVE                   = 26  ! Device is exclusive-access 
define SPDRP_CHARACTERISTICS             = 27  ! Device Characteristics 
define SPDRP_ADDRESS                     = 28  ! Device Address 
define SPDRP_UI_NUMBER_DESC_FORMAT       = 29  ! UiNumberDescFormat 
define SPDRP_DEVICE_POWER_DATA           = 30  ! Device Power Data 
define SPDRP_REMOVAL_POLICY              = 31  ! Removal Policy 
define SPDRP_REMOVAL_POLICY_HW_DEFAULT   = 32  ! Hardware Removal Policy 
define SPDRP_REMOVAL_POLICY_OVERRIDE     = 33  ! Removal Policy Override 
define SPDRP_INSTALL_STATE               = 34  ! Device Install State 
define SPDRP_LOCATION_PATHS              = 35  ! Device Location Paths 
define SPDRP_BASE_CONTAINERID            = 36  ! Base ContainerID 

defstruct ST_COMARY         ! structure used in COMOP_QUERY   
    map2 port,s,20          ! e.g. "COM4"
    map2 descr,s,128        ! e.g. "Prolific USB-to-Serial Port"
    map2 property,s,128     ! selected additional property to retrieve
endstruct

defstruct ST_COMOPEN        ! structure used in COMOP_OPEN
    map2 bytesize,b,1     ! 7=7 bits, 0 or 8 = 8 bits
    map2 parity,b,1       ! 0=none, 1=odd, 2=even, 3=mark, 4=space
    map2 stopbits,b,1     ! 0=1, 1=1.5, 2=2
    map2 flowctl,b,1      ! Add: 1=DTR/DSR, 2=RTS/CTS, 4=XON/XOFF
    map2 misc,b,2         ! Unused
    map2 port,s,20        ! e.g. "COM1" (no colon)
endstruct

++ifdef COMIO_PROPERTY_DESCRIPTIONS
  ++message Defining COMIO'PROP$()
map1 COMIO'PROP$(36),s,40
    COMIO'PROP$(SPDRP_HARDWAREID) = "Hardware ID"
    COMIO'PROP$(SPDRP_COMPATIBLEIDS) = "Compatible IDs"
    COMIO'PROP$(SPDRP_SERVICE) = "Service"
    COMIO'PROP$(SPDRP_CLASS) = "Class"
    COMIO'PROP$(SPDRP_CLASSGUID) = "Class GUID"
    COMIO'PROP$(SPDRP_DRIVER) = "Driver"
    COMIO'PROP$(SPDRP_CONFIGFLAGS) = "Config Flags"
    COMIO'PROP$(SPDRP_MFG) = "Mfg"
    COMIO'PROP$(SPDRP_FRIENDLYNAME) = "FriendlyName"
    COMIO'PROP$(SPDRP_LOCATION_INFORMATION) = "LocationInformation"
    COMIO'PROP$(SPDRP_PHYSICAL_DEVICE_OBJECT_NAME) = "PhysicalDeviceObjectName"
    COMIO'PROP$(SPDRP_CAPABILITIES) = "Capabilities"
    COMIO'PROP$(SPDRP_UI_NUMBER) = "UI Number"
    COMIO'PROP$(SPDRP_UPPERFILTERS) = "Upper Filters"
    COMIO'PROP$(SPDRP_LOWERFILTERS) = "LowerFilters"
    COMIO'PROP$(SPDRP_BUSTYPEGUID) = "Bus Type GUID"
    COMIO'PROP$(SPDRP_LEGACYBUSTYPE) = "Legacy Bus Type"
    COMIO'PROP$(SPDRP_BUSNUMBER) = "Bus Number"
    COMIO'PROP$(SPDRP_ENUMERATOR_NAME) = "Enumerator Name"
    COMIO'PROP$(SPDRP_SECURITY_SDS) = "Security"
    COMIO'PROP$(SPDRP_DEVTYPE) = "Device Type"
    COMIO'PROP$(SPDRP_EXCLUSIVE) = "Device is exclusive-access"
    COMIO'PROP$(SPDRP_CHARACTERISTICS) = "Device Characteristics"
    COMIO'PROP$(SPDRP_ADDRESS) = "Device Address"
    COMIO'PROP$(SPDRP_UI_NUMBER_DESC_FORMAT) = "UI Number Desc Format"
    COMIO'PROP$(SPDRP_DEVICE_POWER_DATA) = "Device Power Data"
    COMIO'PROP$(SPDRP_REMOVAL_POLICY) = "Removal Policy"
    COMIO'PROP$(SPDRP_REMOVAL_POLICY_HW_DEFAULT) = "Hardware Removal Policy"
    COMIO'PROP$(SPDRP_REMOVAL_POLICY_OVERRIDE) = "Removal Policy Override"
    COMIO'PROP$(SPDRP_INSTALL_STATE) = "Device Install State"
    COMIO'PROP$(SPDRP_LOCATION_PATHS) = "Device Location Paths"
    COMIO'PROP$(SPDRP_BASE_CONTAINERID) = "Base ContainerID"
++endif

++endif
