ITableData::HrQueryRow

The ITableData::HrQueryRow method retrieves a table row.

Quick Info

See ITableData : IUnknown.

HRESULT HrQueryRow(
  LPSPropValue lpSPropValue,   
  LPSRow FAR * lppSRow,        
  ULONG FAR * lpuliRow         
);
 

Parameters

lpSPropValue
[in] Pointer to a property value structure describing the index column for the row to be retrieved. The ulPropTag member of the property value structure should contain the same property tag as the ulPropTagIndexColumn parameter from the call to CreateTable — the function used to access the ITableData implementation.
lppSRow
[out] Pointer to a pointer to the retrieved row.
lpuliRow
[in, out] On input, either a valid pointer or NULL, indicating no information need be returned. On output, a valid pointer points to the row's row number, a sequential number that identifies the row's position in the table.

Return Values

S_OK
The row was successfully retrieved.
MAPI_E_INVALID_PARAMETER
The SPropValue structure pointed to by lpSPropValue does not contain the index column property.

Remarks

The ITableData::HrQueryRow method retrieves all of the properties for the row that has an index column that matches the value of the index column included in the property structure pointed to by lpSPropValue. HrQueryRow also returns, if desired by the caller, the row number identifying the row's position within the table.

Because HrQueryRow does not modify the SPropValue structure pointed to by lpSPropValue, callers must free it when HrQueryRow returns. Callers must also free the SRow structure containing the retrieved row.

See Also

MAPIAllocateBuffer, MAPIFreeBuffer, SPropValue, SRow