Click or drag to resize

ReadAsync

Reads data from a device asynchronously.

virtual HRESULT ReadAsync(BYTE* pBuf, long cbDesired, ULONG* plJobId) abstract;
Parameters
pBuf

[in] Data read from the device.

cbDesired

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

plJobId

[in] Asynchronous job identifier for the operation.

Return Value

Returns S_OK if successful, otherwise a failure HRESULT.

Remarks

The ReadAsync function asynchronously sends data to the device. Unlike the buffered I/O functions, such as Queryf, ReadReadNumber, etc., the ReadAsync function reads raw bytes directly from the device, rather than going through formatted I/O read buffer.

The ReadAsync function returns immediately. An I/O Completion event will be posted when the transfer is actually completed. The plJobId can be used with an I/O Completion event to identify which asynchronous write operation completed.

Example

The following example demonstrates use of the ReadAsync function.

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

  long lJobId;
  hr = io.LowLevel.ReadAsync(ppsaData, 1000, &lJobId);

  return hr;
}
See Also

Other Resources

Download a complete CHM version of this documentation here.