Share via


IStream::SetSize

This method resizes the stream object.

HRESULT SetSize( 
ULARGE_INTEGER libNewSize 
);

Parameters

  • libNewSize
    [in] Specifies the new size of the stream as a number of bytes.

Return Values

One of the values described in the following table is returned.

Value Description
S_OK The size of the stream object was successfully changed.
E_PENDING Asynchronous Storage only: Part or all of the streams 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. Since streams cannot be greater than 232 bytes in the COM-provided implementation, the high DWORD of libNewSize must be 0. 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.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 2.0 and later Objidl.h    

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.