IStream::SetSize
A version of this page is also available for
4/8/2010
This method resizes the stream object.
Syntax
HRESULT SetSize(
ULARGE_INTEGER libNewSize
);
Parameters
- libNewSize
[in] New size, in bytes, of the stream.
Return Value
The following table shows the return values for this method.
Value | Description |
---|---|
S_OK |
The size of the stream object was successfully changed. |
E_PENDING |
Asynchronous Storage only: Part or all of the stream's data is currently unavailable. |
STG_E_MEDIUMFULL |
The stream size is not changed because there is no space left on the storage device. |
STG_E_INVALIDFUNCTION |
The value of the libNewSize parameter is not valid. Because streams cannot be greater than 232 bytes in the COM-provided implementation, the high DWORD of libNewSize must be zero. If it is nonzero, this parameter is not valid. |
STG_E_REVERTED |
The object has been invalidated by a revert operation above it in the transaction tree. |
Remarks
IStream::SetSize changes the size of the stream object. Call this method to preallocate space for the stream.
If the libNewSize parameters larger than the current stream size, the stream is extended to the indicated size by filling the intervening space with bytes of undefined value.
If the libNewSize parameter is smaller than the current stream, then the stream is truncated to the indicated size.
The seek pointer is not affected by the change in stream size.
Calling IStream::SetSize can be an effective way of trying to obtain a large chunk of contiguous space.
To determine whether the platform supports this interface, see Determining Supported COM APIs.
Requirements
Header | objidl.h, objidl.idl |
Library | ole32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |