[in] String describing the format of the data to be read. See the topic I/O Format Specifiers for Read Operations for details.
ScanfWithTimeout
Reads formatted input from a device.
Syntax
Section titled “Syntax”virtual HRESULT ScanfWithTimeout(const CString strFormat, long lTimeout, [, argument] ...) abstract;Parameters
Section titled “Parameters”strFormat
argument
[in] Optional arguments interpreted by the format string.
lTimeout
[in] I/O timeout value in milliseconds.
Return value
Section titled “Return value”Returns S_OK if successful, otherwise a failure HRESULT.
Remarks
Section titled “Remarks”The ScanfWithTimeout function behaves identically to the Scanf function except that an I/O timeout parameter is supplied. The lTimeout parameter allows the I/O timeout to be temporarily changed to the specified value for the duration of the ScanfWithTimeout function call. The timeout is returned to its previous value after ScanfWithTimeout returns.
Example
Section titled “Example”The following example demonstrates use of the ScanfWithTimeout function. Note that the topic I/O Format Specifiers for Write Operations has many more examples of format strings that can be used with ScanfWithTimeout.
STDMETHODIMP Acme4321::IAcme4321_Configure(){ HRESULT hr = S_OK;
// Start a measurement that will generate a lot of data hr = io.PrintfNoPoll(_T("MEAS:DATA?")); if (SUCCEEDED(hr)) { // Read an IEEE 488.2 binary block, needs up to 10 seconds to complete SAFEARRAY* psaData = NULL; hr = io.ScanfWithTimeout(_T("%$Sb"), 10000, &psaData);
// I/O timeout automatically changed back to previous value before ScanfWithTimeout call }
return hr;}