Export (0) Print
Expand All

IStream::Clone method

The Clone method creates a new stream object with its own seek pointer that references the same bytes as the original stream.

Syntax


HRESULT Clone(
  [out]  IStream **ppstm
);

Parameters

ppstm [out]

When successful, pointer to the location of an IStream pointer to the new stream object. If an error occurs, this parameter is NULL.

Return value

This method can return one of these values.

S_OK

The stream was successfully cloned.

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_INSUFFICIENTMEMORY

The stream was not cloned due to a lack of memory.

STG_E_INVALIDPOINTER

The ppStm pointer is not valid.

STG_E_REVERTED

The object has been invalidated by a revert operation above it in the transaction tree.

Remarks

The Clone method creates a new stream object for accessing the same bytes but using a separate seek pointer. The new stream object sees the same data as the source-stream object. Changes written to one object are immediately visible in the other. Range locking is shared between the stream objects.

The initial setting of the seek pointer in the cloned stream instance is the same as the current setting of the seek pointer in the original stream at the time of the clone operation.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps | Windows Store apps]

Minimum supported server

Windows 2000 Server [desktop apps | Windows Store apps]

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
IStream::CopyTo

 

 

Community Additions

ADD
Show:
© 2014 Microsoft