# IStream::Stat

Retrieves the STATSTG structure for this stream.

HRESULT Stat(

STATSTG * pstatstg, | //Location for STATSTG structure
DWORD grfStatFlag | //Values taken from the STATFLAG enumeration
); |

Parameters

pstatstg
  [out] Points to a STATSTG structure where this method places information about this stream object. This pointer is NULL if an error occurs.
grfStatFlag
  [in] Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration.

Return Value

S_OK
  The STATSTG structure was successfully returned at the specified location.
E_PENDING
  Asynchronous Storage only: Part or all of the stream’s data is currently unavailable. For more information see IFillLockBytes and Asynchronous Storage.
STG_E_ACCESSDENIED
  The caller does not have sufficient permissions for accessing statistics for this storage object.
STG_E_INSUFFICIENTMEMORY
  The STATSTG structure was not returned due to a lack of memory.
STG_E_INVALIDFLAG
  The value for the grfStateFlag parameter is not valid.
STG_E_INVALIDPOINTER
  The pStatStg pointer is not valid.
STG_E_REVERTED
  The object has been invalidated by a revert operation above it in the transaction tree.

Remarks

IStream::Stat retrieves a pointer to the STATSTG structure that contains information about this open stream. When this stream is within a structured storage and IStorage::EnumElements is called, it creates an enumerator object with the IEnumSTATSTG interface on it, which can be called to enumerate the storages and streams through the STATSTG structures associated with each of them.

See Also

IStream - Compound File Implementation, STATFLAG, STATSTG