Click or drag to resize

ReadNoPoll

Reads data from a device without polling for instrument errors after the read.

virtual HRESULT ReadNoPoll(char& ch, bool bFlush = true, long lTimeout = CUR_TIMEOUT) override;

virtual HRESULT ReadNoPoll(BYTE* pBuf, long cbDesired, long* pcbActual, bool bFlush = true, long lTimeout = CUR_TIMEOUT) override;

virtual HRESULT ReadNoPoll(SAFEARRAY** pBuf, long cbDesired, bool bFlush = true, long lTimeout = CUR_TIMEOUT) override;
Parameters
ch

[out] Single character read from the device.

pBuf

[out] Array of bytes read from the device.

cbDesired

[in] Number of elements (bytes) to read from the device.

pcbActual

[out] Actual number of elements (bytes) read from the device.

bFlush

[in] If true, the formatted I/O read buffer is flushed.

lTimeout

[in] I/O timeout value in milliseconds.

Return Value

Returns S_OK if successful, otherwise a failure HRESULT.

Remarks

This function behaves identically to Read except that the device is not polled for errors after the data is read.

Example

The following example demonstrates use of the ReadNoPoll function.

C++
// CoAcme4321.cpp
STDMETHODIMP Acme4321::IAcme4321_QueryData(SAFEARRAY** ppsaData)
{
  HRESULT hr = S_OK;

  // Read 1000 Bytes.  Type of elements is automatically determined from the type of the ppsaData SAFEARRAY parameter
  hr = io.ReadNoPoll(ppsaData, 1000);

  return hr;
}
See Also

Download a complete CHM version of this documentation here.