IRowPosition::GetRowPosition
Returns the hRow of the current row position.
Syntax
HRESULT GetRowPosition (
HCHAPTER * phChapter,
HROW * phRow,
DBPOSITIONFLAGS * pdwPositionFlags);
Parameters
phChapter
[out] A pointer to memory in which to return the chapter associated with the current row. If the rowset is not chaptered, phChapter is set to DB_NULL_HCHAPTER. If phChapter is a null pointer on input, no chapter value is returned.phRow
[out] A pointer to memory in which to return the hRow of the current row position; or DB_NULL_HROW if there is no current row position.pdwPositionFlags
[out] A pointer to memory in which to return additional information about the row position. If pdwPositionFlags is a null pointer on input, no additional information is returned for the row position. pdwPositionFlags can indicate one of the conditions described in the following table.Value
Meaning
DBPOSITION_OK
hRow specifies the current row position.
DBPOSITION_NOROW
hRow is DB_NULL_HROW, and the current row position is undefined.
DBPOSITION_BOF
hRow is DB_NULL_HROW, and the row position is before the beginning of the rowset.
DBPOSITION_EOF
hRow is DB_NULL_HROW, and the row position is off the end of the rowset.
Additional values for this flag may be defined in the future. If an unknown value is returned in pdwPositionFlags, the consumer should assume that there is no row if phRow is set to DB_NULL_HROW and that phRow points to a valid row if it is any other value.
Return Code
S_OK
The method succeeded.E_FAIL
A provider-specific error occurred.E_INVALIDARG
phRow was a null pointer.E_UNEXPECTED
IRowPosition::Initialize has not been called; the row position object is in an uninitialized state.ITransaction::Commit or ITransaction::Abort was called, and the object is in a zombie state.
There is no current rowset.
Comments
Before returning, the row position object calls IRowset::AddRefRows to increment the hRow's reference count and if the chapter is non-null, calls IChapteredRowset::AddRefChapter to increment the phChapter's reference count.
Calling IRowPosition::GetRowPosition prior to the first IRowPosition::SetRowPosition returns a value of DB_NULL_HROW for phRow, and a pdwPositionFlags value of DBPOSITION_NOROW.