The SetSize method changes the size of the stream object.
Syntax
HRESULT SetSize(
[in] ULARGE_INTEGER libNewSize
);
Parameters
- libNewSize [in]
-
Specifies the new size of the stream as a number of bytes.
Return Value
The method can return one of the following 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 valid. Since streams cannot be greater than 232 bytes in the COM-provided implementation, the high DWORD data type 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 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 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 - Compound File Implementation
- ISequentialStream::Write
Send comments about this topic to Microsoft
Build date: 11/12/2009