1 out of 2 rated this helpful - Rate this topic

IStream::SetSize method

Applies to: desktop apps | Metro style apps

The SetSize method changes the size of the stream object.

Syntax

HRESULT SetSize(
  [in]  ULARGE_INTEGER libNewSize
);

Parameters

libNewSize [in]

Specifies the new size, in bytes, of the stream.

Return value

This method can return one of these values.

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. For more information, see IFillLockBytes and Asynchronous Storage.

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 supported by the implementation. Not all streams support greater than 232 bytes. If a stream does not support more than 232 bytes, the high DWORD data type of libNewSize must be zero. If it is nonzero, the implementation may return STG_E_INVALIDFUNCTION. In general, COM-based implementations of the IStream interface do not support streams larger than 232 bytes.

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 parameter is larger than the current stream size, the stream is extended to the indicated size by filling the intervening space with bytes of undefined value. This operation is similar to the ISequentialStream::Write method if the seek pointer is past the current end of the stream.

If the libNewSize parameter is smaller than the current stream, 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 to obtain a large chunk of contiguous space.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Objidl.h

IDL

Objidl.idl

Library

Uuid.lib

DLL

Ole32.dll

IID

IID_IStream is defined as 0000000C-0000-0000-C000-000000000046

See also

IStream
IStream - Compound File Implementation
ISequentialStream::Write

 

 

Send comments about this topic to Microsoft

Build date: 2/15/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ