TN3270E Working Group Thomas Brawn Internet Draft: IBM Corporation Expiration Date: tbd Stephen Gunn Attachmate Corporation Open Host Interface Objects for TN3270E Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To view the entire list of current Internet-Drafts, please check the "lid-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Abstract The purpose of this memo is to define an object oriented interface to TN3270E. Brawn & Gunn Informational Page 1 Ohio-00 Open Host Interface Objects September 1998 Copyright Notice Copyright (C) The Internet Society (1997). All Rights Reserved. Table of Contents 1.0 Introduction...................................................2 2.0 Object Definitions.............................................3 2.1 Ohio...........................................................3 2.2 OhioField......................................................5 2.3 OhioFields.....................................................5 2.4 OhioManager....................................................6 2.5 OhioOIA........................................................6 2.6 OhioPosition...................................................7 2.7 OhioScreen.....................................................7 2.8 OhioSession....................................................7 2.9 OhioSessions...................................................8 3.0 Acknowledgements...............................................8 4.0 References.....................................................9 5.0 How to Contact the Authors.....................................9 Appendix A - Ohio Java Mapping....................................10 Appendix B - Ohio ActiveX IDL Mapping.............................16 Appendix C - Sendkeys Mnemonics...................................27 1.0 Introduction The following is the Ohio containment hierarchy: OhioManager: Contains one: OhioSessions: Contains a collection of: OhioSession: Contains one: OhioScreen: Contains one of each of: OhioOIA: The operator information area OhioFields: Contains a collection of: OhioField: A field in the presentation space The Ohio inheritance hierarchy is: Ohio: Base class OhioManager OhioSessions OhioSession OhioScreen OhioOIA OhioFields OhioField Brawn & Gunn Informational Page 2 Ohio-00 Open Host Interface Objects September 1998 2.0 Object Definitions OMG IDL Version 2.1 is used to define the following objects. For a mapping of the IDL to Java, see Appendix A - Ohio Java Mapping. For a mapping of the IDL to ActiveX IDL, see Appendix B - Ohio ActiveX IDL Mapping. Note: "1" based counting is used throughout this standard for both positions (the first position on the screen is position 1, not position 0) and sizes (the first item in a collection is item 1, not item 0). 2.1 Ohio Interface Ohio { // Properties Readonly enum OHIO_DIRECTION { OHIO_DIRECTION_FORWARD, OHIO_DIRECTION_BACKWARD }; Readonly enum OHIO_TYPE { OHIO_TYPE_UNKNOWN, OHIO_TYPE_3270, OHIO_TYPE_5250, OHIO_TYPE_VT }; Readonly enum OHIO_STATE { OHIO_STATE_DISCONNECTED, OHIO_STATE_CONNECTED }; Readonly enum OHIO_PLANE { OHIO_PLANE_TEXT, OHIO_PLANE_COLOR, OHIO_PLANE_FIELD, OHIO_PLANE_EXTENDED }; Brawn & Gunn Informational Page 3 Ohio-00 Open Host Interface Objects September 1998 Readonly enum OHIO_COLOR { OHIO_COLOR_BLACK, OHIO_COLOR_BLUE, OHIO_COLOR_GREEN, OHIO_COLOR_CYAN, OHIO_COLOR_RED, OHIO_COLOR_MAGENTA, OHIO_COLOR_WHITE, OHIO_COLOR_YELLOW }; Readonly enum OHIO_EXTENDED { OHIO_EXTENDED_HILITE, OHIO_EXTENDED_COLOR, OHIO_EXTENDED_RESERVED, OHIO_EXTENDED_HILITE_NORMAL, OHIO_EXTENDED_HILITE_BLINK, OHIO_EXTENDED_HILITE_REVERSEVIDEO, OHIO_EXTENDED_HILITE_UNDERSCORE, OHIO_EXTENDED_COLOR_DEFAULT, OHIO_EXTENDED_COLOR_BLUE, OHIO_EXTENDED_COLOR_RED, OHIO_EXTENDED_COLOR_PINK, OHIO_EXTENDED_COLOR_GREEN, OHIO_EXTENDED_COLOR_TURQUOISE, OHIO_EXTENDED_COLOR_YELLOW, OHIO_EXTENDED_COLOR_WHITE }; Readonly enum OHIO_FIELD { OHIO_FIELD_ATTRIBUTE, OHIO_FIELD_PROTECTED, OHIO_FIELD_NUMERIC, OHIO_FIELD_PEN_SELECTABLE, OHIO_FIELD_HIGH_INTENSITY, OHIO_FIELD_HIDDEN, OHIO_FIELD_RESERVED, OHIO_FIELD_MODIFIED }; Readonly enum OHIO_UPDATE { OHIO_UPDATE_HOST, OHIO_UPDATE_CLIENT }; Brawn & Gunn Informational Page 4 Ohio-00 Open Host Interface Objects September 1998 Readonly enum OHIO_OWNER { OHIO_OWNER_UNKNOWN, OHIO_OWNER_APP, OHIO_OWNER_MYJOB, OHIO_OWNER_NVT, OHIO_OWNER_UNOWNED, OHIO_OWNER_SSCP }; Readonly enum OHIO_INPUTINHIBITED { OHIO_INPUTINHIBITED_NOTINHIBITED, OHIO_INPUTINHIBITED_SYSTEM_WAIT, OHIO_INPUTINHIBITED_COMMCHECK, OHIO_INPUTINHIBITED_PROGCHECK, OHIO_INPUTINHIBITED_MACHINECHECK, OHIO_INPUTINHIBITED_OTHER }; }; 2.2 OhioField Interface OhioField { // Properties Readonly OhioPosition Start; Readonly OhioPosition End; Readonly long Length; Readonly boolean Modified; Readonly boolean Protected; Readonly boolean Numeric; Readonly boolean HighIntensity; Readonly boolean PenSelectable; Readonly boolean Hidden; Readonly boolean Normal; Read/Write string Text; Readonly OHIO_FIELD Attribute; // Methods byte GetData(OHIO_PLANE); }; 2.3 OhioFields Interface OhioFields { Brawn & Gunn Informational Page 5 Ohio-00 Open Host Interface Objects September 1998 // Properties Readonly long count; // Methods OhioField Item(long); Void Refresh(); OhioField FindByString(string target, OhioPosition start, OhioPosition end, OHIO_DIRECTION direction, boolean IgnoreCase); OhioField FindByPosition(OhioPosition); }; 2.4 OhioManager Interface OhioManager { // Properties OhioSessions Sessions; // Methods OhioSession FindSession(string configurationResource, string sessionName); }; 2.5 OhioOIA Interface OhioOIA { // Properties Readonly boolean Alphanumeric; Readonly boolean APL; Readonly boolean Numeric; Readonly boolean InsertMode; Readonly OHIO_OWNER owner; Readonly OHIO_INPUTINHIBITED InputInhibited; Readonly long ProgCheckCode; Readonly long CommCheckCode; Readonly long MachineCheckCode; // Methods // Events OIAChanged() }; Brawn & Gunn Informational Page 6 Ohio-00 Open Host Interface Objects September 1998 2.6 OhioPosition Interface OhioPosition { // Properties long Row; long Column; }; 2.7 OhioScreen Interface OhioScreen { // Properties Readonly Attribute OhioPosition Cursor; // Position of cursor Readonly Attribute OhioOIA OIA; // OIA object for this Screen Readonly Attribute OhioFields Fields; // Collection of fields Readonly Attribute long Rows; // Number of rows in Screen Readonly Attribute long Columns; // Number of columns in Screen Readonly Attribute string Text; // Entire Screen as text string // Methods bytes GetData(long BuffLen, OhioPosition Start, OhioPosition End, OHIO_PLANE Plane); OhioPosition FindString(string text, OhioPosition Start, OhioPosition End, PS_DIR Dir, boolean IgnoreCase); void SendKeys(string text, OhioPosition insertPosition); void PutString(string text, OhioPosition insertLocation); // Events CursorMoved(cursor position) ScreenChanged(screen delta, OHIO_UPDATE, OhioPosition pos, OhioPosition pos); SizeChanged - tbd }; 2.8 OhioSession Interface OhioSession { Brawn & Gunn Informational Page 7 Ohio-00 Open Host Interface Objects September 1998 // Properties Readonly string configurationResource; Readonly string sessionName; Readonly OHIO_TYPE sessionType; Readonly OHIO_STATE connected; Readonly OhioScreen Screen; // Methods void Connect(); void Disconnect(); // Events SessionChanged(OHIO_UPDATE); }; 2.9 OhioSessions Interface OhioSessions{ // Properties long count; // Methods OhioSession Item(long); OhioSession Item(string); Void Refresh(); // Events }; 3.0 Acknowledgments This document is a product of the TN3270E Working Group. The authors wish to thank the following individuals for their contributions to this standard: Mark McMillan, IBM Corporation Hemant Nanivadekar, Attachmate Corporation J. Burke Ryder, Attachmate Corporation Blair Cooper, Attachmate Corporation Brian L. Henry, Attachmate Corporation Brawn & Gunn Informational Page 8 Ohio-00 Open Host Interface Objects September 1998 4.0 References 1) International Business Machines Corporation, "eNetwork Personal Communications Version 4.2 for Windows 95 and Windows NT Host Access Class Library", September 1997. 2) International Business Machines Corporation, "Host On-Demand Version 2.0 Host Access Class Library for Java Reference", October 1997. 3) Attachmate Corporation, "EXTRA! Objects SDK Reference Guide for C++", October 1997. 5.0 How to Contact the Authors Thomas Brawn IBM Corporation 4205 S. Miami Blvd RTP, NC 27709 e-mail: brawntj@us.ibm.com phone: 919-254-8301 Stephen Gunn Attachmate Corporation 3617 131st Ave. S.E. Bellevue, Washington 98006 e-mail: stevegu@attachmate.com phone: 425-649-6221 Brawn & Gunn Informational Page 9 Ohio-00 Open Host Interface Objects September 1998 Appendix A - Ohio Java Mapping // // // Ohio -- Base interface for all Ohio Interfaces // // public interface Ohio { public Object getVendor(); // enum OHIO_DIRECTION public static final int OHIO_DIRECTION_FORWARD = 0; public static final int OHIO_DIRECTION_BACKWARD = 1; // enum OHIO_TYPE -- used by OHIOSession.SessionType public static final int OHIO_TYPE_UNKNOWN = 0; public static final int OHIO_TYPE_3270 = 1; public static final int OHIO_TYPE_5250 = 2; public static final int OHIO_TYPE_VT = 3; // enum OHI_STATE -- used by OHIOSessionEvents.onSessionChanged public static final int OHIO_STATE_DISCONNECTED = 0; public static final int OHIO_STATE_CONNECTED = 1; // enum OHIO_PLANE - used by OHIOScreen.getData public static final int OHIO_PLANE_TEXT = 1; public static final int OHIO_PLANE_COLOR = 2; public static final int OHIO_PLANE_FIELD = 4; public static final int OHIO_PLANE_EXTENDED = 8; // type OHIO_COLOR - used by OHIOScreen.getData(COLOR) public static final int OHIO_COLOR_BLACK = 0; public static final int OHIO_COLOR_BLUE = 1; public static final int OHIO_COLOR_GREEN = 2; public static final int OHIO_COLOR_CYAN = 3; public static final int OHIO_COLOR_RED = 4; public static final int OHIO_COLOR_MAGENTA = 5; public static final int OHIO_COLOR_WHITE = 7; public static final int OHIO_COLOR_YELLOW = 14; // OHIO_EXTENDED -- used by OhioScreen.getData(EXTENDED) public static final int OHIO_EXTENDED_HILITE = 0xC0; public static final int OHIO_EXTENDED_COLOR = 0x38; public static final int OHIO_EXTENDED_RESERVED = 0x07; Brawn & Gunn Informational Page 10 Ohio-00 Open Host Interface Objects September 1998 // OHIO_EXTENDED >> 6 public static final int OHIO_EXTENDED_HILITE_NORMAL = 0; public static final int OHIO_EXTENDED_HILITE_BLINK = 1; public static final int OHIO_EXTENDED_HILITE_REVERSEVIDEO = 2; public static final int OHIO_EXTENDED_HILITE_UNDERSCORE = 3; // (OHIO_EXTENDED>>3) & 7 public static final int OHIO_EXTENDED_COLOR_DEFAULT = 0; public static final int OHIO_EXTENDED_COLOR_BLUE = 1; public static final int OHIO_EXTENDED_COLOR_RED = 2; public static final int OHIO_EXTENDED_COLOR_PINK = 3; public static final int OHIO_EXTENDED_COLOR_GREEN = 4; public static final int OHIO_EXTENDED_COLOR_TURQUOISE = 5; public static final int OHIO_EXTENDED_COLOR_YELLOW = 6; public static final int OHIO_EXTENDED_COLOR_WHITE = 7; // type OHIO_FIELD -- used by OhioScreen.getData(FIELD) public static final int OHIO_FIELD_ATTRIBUTE = 0xC0; public static final int OHIO_FIELD_PROTECTED = 0x20; public static final int OHIO_FIELD_NUMERIC = 0x10; public static final int OHIO_FIELD_PEN_SELECTABLE = 0x08; public static final int OHIO_FIELD_HIGH_INTENSITY = 0x04; public static final int OHIO_FIELD_HIDDEN = 0x0C; public static final int OHIO_FIELD_RESERVED = 0x02; public static final int OHIO_FIELD_MODIFIED = 0x01; // enum OHIO_UPDATE - used by OhioScreenEvents.onScreenChanged public static final int OHIO_UPDATE_HOST = 0; public static final int OHIO_UPDATE_CLIENT = 1; // enum OHIO_OWNER -- used by OhioOIA.owner public static final int OHIO_OWNER_UNKNOWN = 0; public static final int OHIO_OWNER_APP = 1; public static final int OHIO_OWNER_MYJOB = 1; public static final int OHIO_OWNER_NVT = 2; public static final int OHIO_OWNER_UNOWNED = 3; public static final int OHIO_OWNER_SSCP = 4; // enum OHIO_INPUTINHIBITED - used by OhioOIA.InputInhibited public static final int OHIO_INPUTINHIBITED_NOTINHIBITED = 0; public static final int OHIO_INPUTINHIBITED_SYSTEM_WAIT = 1; public static final int OHIO_INPUTINHIBITED_COMMCHECK = 2; public static final int OHIO_INPUTINHIBITED_PROGCHECK = 3; public static final int OHIO_INPUTINHIBITED_MACHINECHECK = 4; public static final int OHIO_INPUTINHIBITED_OTHER = 5; } public interface OhioManager { Brawn & Gunn Informational Page 11 Ohio-00 Open Host Interface Objects September 1998 // Properties public OhioSessions getSessions(); // Methods public OhioSession findSession(String configurationResource, String sessionName); } public interface OhioSessions extends Ohio { // Properties public int getCount(); // Methods public OhioSession Item(int sessionNumber); public OhioSession Item(String sessionName); public void refresh(); } public interface OhioSession extends Ohio { // Properties public String getConfigurationResource(); public boolean isConnected(); public String getSessionName(); public int getSessionType(); public OhioScreen Screen; // Methods public void connect(); public void disconnect(); // Events public void addSessionListener(OHIOSessionListener listener); public void removeSessionListener(OHIOSessionListener listener); } public interface OhioScreen extends Ohio { // Properties public OhioPosition getCursor(); public void setCursor(OhioPosition position); public OhioOIA getOIA(); public OhioFields getFields(); public int getRows(); Brawn & Gunn Informational Page 12 Ohio-00 Open Host Interface Objects September 1998 public int getColumns(); public String getText(); // Methods public byte getData(OhioPosition start, OhioPosition end, int plane); public OhioPosition findString(String text, OhioPosition start, OhioPosition end, int direction, boolean ignoreCase); public void sendKeys(String text, OhioPosition location); public void putString(String text, OhioPosition location); // Events public void addScreenListener(OHIOScreenListener listener); public void removeScreenListener(OHIOScreenListener listener); } public interface OhioScreenListener { public void onScreenChanged(int inUpdate, OhioPosition inStart, OhioPosition inEnd); } public interface OhioOIA extends Ohio { // Properties public boolean isAlphanumeric(); public boolean isAPL(); public int getCommCheckCode(); public int getInputInhibited(); // Uses OHIO_INPUT_INHIBITED public int getMachineCheckCode(); public boolean isNumeric(); //public boolean isInsertMode(); public int getOwner(); // Uses OHIO_OWNER public int getProgCheckCode(); // Methods Brawn & Gunn Informational Page 13 Ohio-00 Open Host Interface Objects September 1998 // Events public void addOIAListener(OhioOIAListener listener); public void removeOIAListener(OhioOIAListener listener); } public interface OhioOIAListener { public void onOIAChanged(); } public interface OhioFields extends Ohio { // Properties public int getCount(); // Methods public OhioField Item(int fieldIndex); public void refresh(); public OhioField findByString(String targetString, OhioPosition startPos, OhioPosition endPos, int dir, // Uses OHIO_DIRECTION boolean ignoreCase); public OhioField findByPosition(OhioPosition targetPosition); } public interface OhioField extends Ohio { // Properties public OhioPosition getStart(); public OhioPosition getEnd(); public int getLength(); public int getAttribute(); // Uses OHIO_FIELD enumeration public boolean isModified(); public boolean isProtected(); public boolean isNumeric(); public boolean isHighIntensity(); public boolean isPenSelectable(); public boolean isHidden(); public String getText(); public void setText(String text); Brawn & Gunn Informational Page 14 Ohio-00 Open Host Interface Objects September 1998 // Methods public byte getData(int targetPlane); // Uses OHIO_PLANE } public interface OhioPosition { // Properties public int getRow(); public int getColumn(); public void setRow(int); public void setColumn(int); } Brawn & Gunn Informational Page 15 Ohio-00 Open Host Interface Objects September 1998 Appendix B - Ohio ActiveX IDL Mapping //+--------------------------------------------------------------------+ // OPEN HOST INTERFACE OBJECT (OHIO) INTERFACE DEFINITIONS //+--------------------------------------------------------------------+ // IOhioManager Manager provides access to a... // IOhioSessions Collection of... // IOhioSession Sessions, which has a... // IOhioScreen Screen containing an... // IOhioOIA OIA, and a... // IOhioFields Collection of... // IOhioField Fields // // IOhioPosition 1-based Row/Col Position used // //+--------------------------------------------------------------------+ import "oaidl.idl"; import "ocidl.idl"; //+--------------------------------------------------------------+ // OHIO DATA TYPES //+--------------------------------------------------------------+ typedef v1_enum enum OHIO_DIRECTION { OHIO_DIRECTION_FORWARD = 0, OHIO_DIRECTION_BACKWARD = 1 } OHIO_DIRECTION; //+---------------------------------------------+ // SESSION DATA TYPES //+---------------------------------------------+ typedef v1_enum enum OHIO_TYPE { OHIO_TYPE_UNKNOWN = 0, OHIO_TYPE_3270 = 1, OHIO_TYPE_5250 = 2, OHIO_TYPE_VT = 3 } OHIO_TYPE; // USED BY IOhioSession.SessionType typedef v1_enum enum OHIO_STATE { OHIO_STATE_DISCONNECTED = 0, OHIO_STATE_CONNECTED = 1 } OHIO_STATE; //USED BY IOhioSessionEvents.OnSessionChanged Brawn & Gunn Informational Page 16 Ohio-00 Open Host Interface Objects September 1998 //+---------------------------------------------+ // SCREEN DATA TYPES //+---------------------------------------------+ typedef v1_enum enum OHIO_PLANE { OHIO_PLANE_TEXT = 1, OHIO_PLANE_COLOR = 2, OHIO_PLANE_FIELD = 4, OHIO_PLANE_EXTENDED = 8 } OHIO_PLANE; //USED BY IOhioScreen.GetData typedef long OHIO_COLOR; //USED BY IOhioScreen.GetData(COLOR) const long OHIO_COLOR_BLACK = 0; const long OHIO_COLOR_BLUE = 1; const long OHIO_COLOR_GREEN = 2; const long OHIO_COLOR_CYAN = 3; const long OHIO_COLOR_RED = 4; const long OHIO_COLOR_MAGENTA = 5; const long OHIO_COLOR_WHITE = 7; const long OHIO_COLOR_YELLOW = 14; typedef long OHIO_EXTENDED; //USED BY IOhioScreen.GetData(EXTENDED) const long OHIO_EXTENDED_HILITE = 0xC0; const long OHIO_EXTENDED_COLOR = 0x38; const long OHIO_EXTENDED_RESERVED = 0x07; //OHIO_EXTENDED>>6 const long OHIO_EXTENDED_HILITE_NORMAL = 0; const long OHIO_EXTENDED_HILITE_BLINK = 1; const long OHIO_EXTENDED_HILITE_REVERSEVIDEO = 2; const long OHIO_EXTENDED_HILITE_UNDERSCORE = 3; //(OHIO_EXTENDED>>3)&7 const long OHIO_EXTENDED_COLOR_DEFAULT = 0; const long OHIO_EXTENDED_COLOR_BLUE = 1; const long OHIO_EXTENDED_COLOR_RED = 2; const long OHIO_EXTENDED_COLOR_PINK = 3; const long OHIO_EXTENDED_COLOR_GREEN = 4; const long OHIO_EXTENDED_COLOR_TURQUOISE = 5; const long OHIO_EXTENDED_COLOR_YELLOW = 6; const long OHIO_EXTENDED_COLOR_WHITE = 7; Brawn & Gunn Informational Page 17 Ohio-00 Open Host Interface Objects September 1998 typedef long OHIO_FIELD; //USED BY IOhioScreen.GetData(FIELD) const long OHIO_FIELD_ATTRIBUTE = 0xC0; const long OHIO_FIELD_PROTECTED = 0x20; const long OHIO_FIELD_NUMERIC = 0x10; const long OHIO_FIELD_PEN_SELECTABLE = 0x08; const long OHIO_FIELD_HIGH_INTENSITY = 0x04; const long OHIO_FIELD_HIDDEN = 0x0C; const long OHIO_FIELD_RESERVED = 0x02; const long OHIO_FIELD_MODIFIED = 0x01; typedef v1_enum enum OHIO_UPDATE { OHIO_UPDATE_HOST = 0, OHIO_UPDATE_CLIENT = 1, } OHIO_UPDATE; //USED BY IOhioScreenEvents.OnScreenChanged //+---------------------------------------------+ // OIA DATA TYPES //+---------------------------------------------+ typedef v1_enum enum OHIO_OWNER { OHIO_OWNER_UNKNOWN = 0, OHIO_OWNER_APP = 1, OHIO_OWNER_MYJOB = 1, OHIO_OWNER_NVT = 2, OHIO_OWNER_UNOWNED = 3, OHIO_OWNER_SSCP = 4 } OHIO_OWNER; //USED BY IOhioOIA.Owner typedef v1_enum enum OHIO_INPUTINHIBITED { OHIO_INPUTINHIBITED_NOTINHIBITED = 0, OHIO_INPUTINHIBITED_SYSTEM_WAIT = 1, OHIO_INPUTINHIBITED_COMMCHECK = 2, OHIO_INPUTINHIBITED_PROGCHECK = 3, OHIO_INPUTINHIBITED_MACHINECHECK = 4, OHIO_INPUTINHIBITED_OTHER = 5 } OHIO_INPUTINHIBITED; //USED BY IOhioOIA.InputInhibited Brawn & Gunn Informational Page 18 Ohio-00 Open Host Interface Objects September 1998 //+--------------------------------------------------------------+ // IOhio //+--------------------------------------------------------------+ // Base interface for all OHIO interfaces //+--------------------------------------------------------------+ object, uuid(10065CA3-E921-11D1-B2DF-0060080708DC), dual, helpstring("IOhio Interface"), pointer_default(unique) interface IOhio : IDispatch { id(99),propget HRESULT Vendor (out,retval IDispatch** outValue); } //+--------------------------------------------------------------+ // IOhioPosition //+--------------------------------------------------------------+ // Zero is a "don't care" value. //+--------------------------------------------------------------+ object, uuid(25BEAEFC-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioPosition Interface"), pointer_default(unique) interface IOhioPosition : IOhio { id(1), propput HRESULT Row (in long inRow ); id(1), propget HRESULT Row (out,retval long* outRow ); id(2), propput HRESULT Column(in long inColumn); id(2), propget HRESULT Column(out,retval long* outColumn); }; //+--------------------------------------------------------------+ // IOhioOIA //+--------------------------------------------------------------+ object, uuid(25BEAEF2-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioOIA Interface"), pointer_default(unique) Brawn & Gunn Informational Page 19 Ohio-00 Open Host Interface Objects September 1998 interface IOhioOIA : IOhio { id(0 ),propget HRESULT Text (out,retval BSTR* outValue); id(1 ),propget HRESULT Alphanumeric (out,retval VARIANT_BOOL* outValue); id(2 ),propget HRESULT APL (out,retval VARIANT_BOOL* outValue); id(3 ),propget HRESULT Numeric (out,retval VARIANT_BOOL* outValue); id(4 ),propget HRESULT InsertMode (out,retval VARIANT_BOOL* outValue); id(10),propget HRESULT ProgCheckCode (out,retval long* outValue); id(11),propget HRESULT CommCheckCode (out,retval long* outValue); id(12),propget HRESULT MachineCheckCode (out,retval long* outValue); id(20),propget HRESULT Owner (out,retval OHIO_OWNER* outValue); id(21),propget HRESULT InputInhibited (out,retval OHIO_INPUTINHIBITED* outValue); }; object, uuid(45896ACE-BCF8-11D1-B2D3-0060080708DC), dual, helpstring("IOhioOIAEvents Interface"), pointer_default(unique) interface IOhioOIAEvents : IUnknown { id(0) HRESULT OnOIAChanged(); }; cpp_quote("EXTERN_C const IID IID_DOhioOIAEvents;") uuid(45896AD0-BCF8-11D1-B2D3-0060080708DC), hidden, helpstring("DOhioOIAEvents Interface"), dispinterface DOhioOIAEvents { properties: methods: id(0) HRESULT OnOIAChanged(); }; Brawn & Gunn Informational Page 20 Ohio-00 Open Host Interface Objects September 1998 //+--------------------------------------------------------------+ // IOhioField //+--------------------------------------------------------------+ object, uuid(25BEAEF4-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioField Interface"), pointer_default(unique) interface IOhioField : IOhio { id(0), propput HRESULT Text (in BSTR inValue); id(0), propget HRESULT Text (out,retval BSTR* outValue); id(1), propget HRESULT Start (out,retval IOhioPosition** outValue); id(2), propget HRESULT End (out,retval IOhioPosition** outValue); id(3), propget HRESULT Length (out,retval long* outValue); id(10),propget HRESULT Attribute (out,retval OHIO_FIELD* outValue); id(11),propget HRESULT Modified (out,retval VARIANT_BOOL* outValue); id(12),propget HRESULT Protected (out,retval VARIANT_BOOL* outValue); id(13),propget HRESULT Numeric (out,retval VARIANT_BOOL* outValue); id(14),propget HRESULT PenSelectable (out,retval VARIANT_BOOL* outValue); id(15),propget HRESULT Hidden (out,retval VARIANT_BOOL* outValue); id(16),propget HRESULT HighIntensity (out,retval VARIANT_BOOL* outValue); id(17),propget HRESULT Normal (out,retval VARIANT_BOOL* outValue); id(30) HRESULT GetData (in OHIO_PLANE inPlane,out,retval VARIANT* outData); }; Brawn & Gunn Informational Page 21 Ohio-00 Open Host Interface Objects September 1998 //+--------------------------------------------------------------+ // IOhioFields //+--------------------------------------------------------------+ object, uuid(25BEAEFA-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioFields Interface"), pointer_default(unique) interface IOhioFields : IOhio { id(0), propget HRESULT Item (in long inIndexOrKey,out,retval IOhioField** outElement); id(1), propget HRESULT Count (out,retval long *pVal); id(10) HRESULT Refresh (); id(20) HRESULT FindByPosition (in IOhioPosition* inPosition,out,retval IOhioField** outField); id(21) HRESULT FindByString (in BSTR inString, in IOhioPosition* inStart, in IOhioPosition* inEnd, in OHIO_DIRECTION inDir, in VARIANT_BOOL inIgnoreCase, out,retval IOhioField** outField); id(DISPID_NEWENUM),propget,restricted HRESULT _NewEnum(out,retval IUnknown** outEnum); }; //+--------------------------------------------------------------+ // IOhioScreen //+--------------------------------------------------------------+ object, uuid(25BEAEEE-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioScreen Interface"), pointer_default(unique) interface IOhioScreen : IOhio { id(0), propget HRESULT OIA (out,retval IOhioOIA** outOIA); id(1), propget HRESULT Fields (out,retval IOhioFields** outOIA); id(2), propget HRESULT Text (out,retval BSTR* outText); Brawn & Gunn Informational Page 22 Ohio-00 Open Host Interface Objects September 1998 id(10),propget HRESULT Rows (out,retval long* outRows); id(11),propget HRESULT Columns (out,retval long* outColumns); id(12),propput HRESULT Cursor (in IOhioPosition* inPos); id(12),propget HRESULT Cursor (out,retval IOhioPosition** outPos); id(20) HRESULT SendKeys (in BSTR inKeys, in IOhioPosition* inPos); id(22) HRESULT FindString (in BSTR inString, in IOhioPosition* inStart, in IOhioPosition* inEnd, in OHIO_DIRECTION inDir, in VARIANT_BOOL inIgnoreCase, out,retval IOhioPosition** outPos); id(23) HRESULT PutString (in BSTR inText, in IOhioPosition* inStart); id(30) HRESULT GetData (in IOhioPosition* inStart, in IOhioPosition* inEnd, in OHIO_PLANE inPlane, out,retval VARIANT* outData); }; object, uuid(45896AC5-BCF8-11D1-B2D3-0060080708DC), dual, helpstring("IOhioScreenEvents Interface"), pointer_default(unique) interface IOhioScreenEvents : IUnknown { id(0) HRESULT OnScreenChanged (in OHIO_UPDATE inUpdate, in IOhioPosition* inStart, in IOhioPosition* inEnd); }; Brawn & Gunn Informational Page 23 Ohio-00 Open Host Interface Objects September 1998 cpp_quote("EXTERN_C const IID IID_DOhioScreenEvents;") uuid(45896AC7-BCF8-11D1-B2D3-0060080708DC), hidden, helpstring("DOhioScreenEvents Interface"), dispinterface DOhioScreenEvents { properties: methods: id(0) HRESULT OnScreenChanged (in OHIO_UPDATE inUpdate, in IOhioPosition* inStart, in IOhioPosition* inEnd); }; //+--------------------------------------------------------------+ // IOhioSession //+--------------------------------------------------------------+ object, uuid(25BEAEF6-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioSession Interface"), pointer_default(unique) interface IOhioSession : IOhio { id(0), propget HRESULT Screen (out,retval IOhioScreen** outScreen); id(1), propget HRESULT Connected (out,retval OHIO_STATE* outValue); id(2) HRESULT Connect (); id(3) HRESULT Disconnect (); id(10),propget HRESULT ConfigurationResource(out,retval BSTR* outValue); id(11),propget HRESULT SessionName (out,retval BSTR* outValue); id(12),propget HRESULT SessionType (out,retval OHIO_TYPE* outValue); }; object, uuid(45896ACA-BCF8-11D1-B2D3-0060080708DC), dual, helpstring("IOhioSessionEvents Interface"), pointer_default(unique) Brawn & Gunn Informational Page 24 Ohio-00 Open Host Interface Objects September 1998 interface IOhioSessionEvents : IUnknown { id(0) HRESULT OnSessionChanged (in OHIO_STATE inState); }; cpp_quote("EXTERN_C const IID IID_DOhioSessionEvents;") uuid(45896ACC-BCF8-11D1-B2D3-0060080708DC), hidden, helpstring("DOhioSessionEvents Interface"), dispinterface DOhioSessionEvents { properties: methods: id(0) HRESULT OnSessionChanged (in OHIO_STATE inState); }; //+--------------------------------------------------------------+ // IOhioSessions //+--------------------------------------------------------------+ object, uuid(25BEAEF8-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioSessions Interface"), pointer_default(unique) interface IOhioSessions : IOhio { id(0), propget HRESULT Item (in VARIANT inIndexOrKey, out,retval IOhioSession** outElement); id(1), propget HRESULT Count (out,retval long *pVal); id(10), HRESULT Refresh (); id(DISPID_NEWENUM),propget,restricted HRESULT _NewEnum(out,retval IUnknown** outEnum); }; //+--------------------------------------------------------------+ // IOhioManager //+--------------------------------------------------------------+ object, uuid(25BEAF00-B795-11D1-B2D1-0060080708DC), dual, helpstring("IOhioManager Interface"), pointer_default(unique) Brawn & Gunn Informational Page 25 Ohio-00 Open Host Interface Objects September 1998 interface IOhioManager : IOhio { id(0), propget HRESULT Sessions (out,retval IOhioSessions** outSessions); id(1) HRESULT FindSession (in BSTR inConfigResource, in BSTR inSessionName, out,retval IOhioSession** outSession); }; Brawn & Gunn Informational Page 26 Ohio-00 Open Host Interface Objects September 1998 Appendix C - SendKeys Mnemonics This table contains the list of mnemonic keywords valid in the OhioScreen::SendKey() method. Mnemonic keywords adhere to the following rules: 1) Keywords are enclosed in square brackets "". 2) Keywords are case insensitive (for example, Attn is identical to attn). 3) Literal square brackets must be doubled. Example SendKey strings: abcpf1 Sends character keys "abc" followed by the PF1 AID key backspaceٍx Sends 3270 backspace key followed by the 3 characters "x" xyzCLEAR Sends characters "xyz" followed by 3270 Clear AID key +----------------+-----------------------+------------+----------------+ 3270 IBM HACL Extra! Objects Mnemonic Function Description Equivalent Equivalent +----------------+-----------------------+------------+----------------+ attn Attention AID key attn +----------------+-----------------------+------------+----------------+ clear Clear AID key clear +----------------+-----------------------+------------+----------------+ cursorselect Cursor Select AID key crsel ??? +----------------+-----------------------+------------+----------------+ enter Enter AID key enter +----------------+-----------------------+------------+----------------+ sysreq System Request sysreq +----------------+-----------------------+------------+----------------+ pa1 Program Attention 1 pa1 AID key +----------------+-----------------------+------------+----------------+ pa2 Program Attention 2 pa2 AID key +----------------+-----------------------+------------+----------------+ pa3 Program Attention 3 pa3 AID key +----------------+-----------------------+------------+----------------+ pf1 Program Function 1 pf1 AID key +----------------+-----------------------+------------+----------------+ pf2 Program Function 2 pf2 AID key Brawn & Gunn Informational Page 27 Ohio-00 Open Host Interface Objects September 1998 +----------------+-----------------------+------------+----------------+ pf3 Program Function 3 pf3 AID key +----------------+-----------------------+------------+----------------+ pf4 Program Function 4 pf4 AID key +----------------+-----------------------+------------+----------------+ pf5 Program Function 5 pf5 AID key +----------------+-----------------------+------------+----------------+ pf6 Program Function 6 pf6 AID key +----------------+-----------------------+------------+----------------+ pf7 Program Function 7 pf7 AID key +----------------+-----------------------+------------+----------------+ pf8 Program Function 8 pf8 AID key +----------------+-----------------------+------------+----------------+ pf9 Program Function 9 pf9 AID key +----------------+-----------------------+------------+----------------+ pf10 Program Function 10 pf10 AID key +----------------+-----------------------+------------+----------------+ pf11 Program Function 11 pf11 AID key +----------------+-----------------------+------------+----------------+ pf12 Program Function 12 pf12 AID key +----------------+-----------------------+------------+----------------+ pf13 Program Function 13 pf13 AID key +----------------+-----------------------+------------+----------------+ pf14 Program Function 14 pf14 AID key +----------------+-----------------------+------------+----------------+ pf15 Program Function 15 pf15 AID key +----------------+-----------------------+------------+----------------+ pf16 Program Function 16 pf16 AID key +----------------+-----------------------+------------+----------------+ pf17 Program Function 17 pf17 AID key +----------------+-----------------------+------------+----------------+ pf18 Program Function 18 pf18 AID key Brawn & Gunn Informational Page 28 Ohio-00 Open Host Interface Objects September 1998 +----------------+-----------------------+------------+----------------+ pf19 Program Function 19 pf19 AID key +----------------+-----------------------+------------+----------------+ pf20 Program Function 20 pf20 AID key +----------------+-----------------------+------------+----------------+ pf21 Program Function 21 pf21 AID key +----------------+-----------------------+------------+----------------+ pf22 Program Function 22 pf22 AID key +----------------+-----------------------+------------+----------------+ pf23 Program Function 23 pf23 AID key +----------------+-----------------------+------------+----------------+ pf24 Program Function 24 pf24 AID key +----------------+-----------------------+------------+----------------+ tab Tab forward to next tab unprotected field +----------------+-----------------------+------------+----------------+ backtab Back Tab - tab to backtab previous unprotected field +----------------+-----------------------+------------+----------------+ up Cursor up up +----------------+-----------------------+------------+----------------+ down Cursor down down +----------------+-----------------------+------------+----------------+ right Cursor right right +----------------+-----------------------+------------+----------------+ left Cursor left left +----------------+-----------------------+------------+----------------+ fastup Cursor up two rows fastup +----------------+-----------------------+------------+----------------+ fastdown Cursor down two rows fastdown +----------------+-----------------------+------------+----------------+ fastright Cusor right two fastrightٺ positions +----------------+-----------------------+------------+----------------+ fastleft Cursor left two fastleft positions +----------------+-----------------------+------------+----------------+ home Home home Brawn & Gunn Informational Page 29 Ohio-00 Open Host Interface Objects September 1998 +----------------+-----------------------+------------+----------------+ newline New line - move to newline first unprotected field on next or subsequent line +----------------+-----------------------+------------+----------------+ reset Reset - clear reset keyboard lock and clear insert mode +----------------+-----------------------+------------+----------------+ insert Insert mode - turns insert on insert mode for all subsequent keystrokes until reset +----------------+-----------------------+------------+----------------+ backspace Destructive Backspace backspaceٺ - move cursor one position left, delete character, shift remainder of field one position left. +----------------+-----------------------+------------+----------------+ delete Delete at cursor, delete shift remainder of field one position left +----------------+-----------------------+------------+----------------+ eraseinput Erase input - clear erinp all unprotected fields +----------------+-----------------------+------------+----------------+ eraseeof Erase from cursor to eraseeof end of field, inclusive +----------------+-----------------------+------------+----------------+ dup Duplicate dup +----------------+-----------------------+------------+----------------+ fieldmark Field Mark fieldmarkٺ +----------------+-----------------------+------------+----------------+ Brawn & Gunn Informational Page 30