public override void Open() { if (string.IsNullOrWhiteSpace(_oposDeviceName)) { try { _oposDeviceName = GetConfigurationProperty("OposDeviceName"); _oposDeviceName.Trim(); } catch { _oposDeviceName = ""; } } if (string.IsNullOrWhiteSpace(_oposDeviceName)) { string strMessage = "OposDeviceName is not configured on " + DevicePath + "."; throw new Microsoft.PointOfService.PosControlException(strMessage, ErrorCode.NoExist); } if (_cco == null) { try { // CCO object CreateInstance _cco = new POS.Devices.OPOSPOSPrinter(); // Register event handler _cco.DirectIOEvent += new _IOPOSPOSPrinterEvents_DirectIOEventEventHandler(_cco_DirectIOEvent); _cco.ErrorEvent += new _IOPOSPOSPrinterEvents_ErrorEventEventHandler(_cco_ErrorEvent); _cco.OutputCompleteEvent += new _IOPOSPOSPrinterEvents_OutputCompleteEventEventHandler(_cco_OutputCompleteEvent); _cco.StatusUpdateEvent += new _IOPOSPOSPrinterEvents_StatusUpdateEventEventHandler(_cco_StatusUpdateEvent); } catch { string strMessage = "Can not create Common ControlObject on " + DevicePath + "."; throw new Microsoft.PointOfService.PosControlException(strMessage, ErrorCode.Failure); } } VerifyResult(_cco.Open(_oposDeviceName)); }