IPersistStream (Interfaces)
Last changed: -199.181.202.7

.
Summary
TODO - a short description

C# Definition:

    /// <summary>
    /// Provides methods for reading from a simple serial stream (IStream).
    /// Filter data is read-only, therefore all methods associated with
    /// write operations should return E_NOTIMPL.
    /// </summary>
    [ComImport(),
    InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
    Guid("00000109-0000-0000-C000-000000000046")]
    public interface IPersistStream
    {
    void GetClassID(out Guid pClassID);

    /// <summary>
    /// Checks the object for changes since it was last saved.
    /// In the case of filters, this should always return either
    /// S_FALSE or E_NOTIMPL, because the stream is read-only.
    /// </summary>
    [PreserveSig]
    int IsDirty();

    /// <summary>
    /// Initializes an object from the stream where it was previously saved.
    /// Returns one of the following:
    ///  * S_OK: The object was successfully loaded.
    ///  * S_OUTOFMEMORY: The object was not loaded due to a lack of memory.
    ///  * S_FAIL: The object was not loaded due to some reason other than
    ///        a lack of memory.
    /// NOTE:  Since we are reading from a stream, you would normally not
    ///    perform any actual loading of data is performed within this
    ///    method.  Instead, use it to initialize the load operation,
    ///    such as in saving a reference to the supplied stream for
    ///    later use within the GetChunk method.
    /// </summary>
    int Load([MarshalAs(UnmanagedType.Interface)] object pStm);

    /// <summary>
    /// Saves an object to the specified stream.  Filters are read-only,
    /// so this method should always return E_NOTIMPL.
    /// </summary>
    int Save([MarshalAs(UnmanagedType.Interface)] object pStm,
        [MarshalAs(UnmanagedType.Bool)] bool fClearDirty);

    /// <summary>
    /// Returns the size in bytes of the stream needed to save the
    /// object.  Since a filter's data is read-only, this method
    /// should always return E_NOTIMPL.
    /// </summary>
    [PreserveSig] int GetSizeMax(out long pcbSize);

VB Definition:

#Region "IPersistStream Interface Definition"

  '/// <summary>
  '/// Provides methods for reading from a simple serial stream (IStream).
  '/// Filter data is read-only, therefore all methods associated with
  '/// write operations should return E_NOTIMPL.
  '/// </summary>
  <ComImport(), _
   InterfaceType(ComInterfaceType.InterfaceIsIUnknown), _
   Guid("00000109-0000-0000-C000-000000000046")> _
  Public Interface IPersistStream
    'sub GetClassID(<Out()> ByRef pClassID As Guid)

    '/// <summary>
    '/// Checks the object for changes since it was last saved.
    '/// In the case of filters, this should always return either
    '/// S_FALSE or E_NOTIMPL, because the stream is read-only.
    '/// </summary>
    <PreserveSigAttribute()> Function IsDirty() As IFilterReturnCodes

    '/// <summary>
    '/// Initializes an object from the stream where it was previously saved.
    '/// Returns one of the following:
    '///  * S_OK: The object was successfully loaded.
    '///  * S_OUTOFMEMORY: The object was not loaded due to a lack of memory.
    '///  * S_FAIL: The object was not loaded due to some reason other than
    '///        a lack of memory.
    '/// NOTE:  Since we are reading from a stream, you would normally not
    '///    perform any actual loading of data is performed within this
    '///    method.  Instead, use it to initialize the load operation,
    '///    such as in saving a reference to the supplied stream for
    '///    later use within the GetChunk method.
    '/// </summary>
    Function Load(<[In](), MarshalAs(UnmanagedType.Interface)> ByVal pStm As Object) As IFilterReturnCodes

    '/// <summary>
    '/// Saves an object to the specified stream.  Filters are read-only,
    '/// so this method should always return E_NOTIMPL.
    '/// </summary>
    Function Save(<[In](), MarshalAs(UnmanagedType.Interface)> ByRef pStm As Object, _
          <[In](), MarshalAs(UnmanagedType.Bool)> ByVal fClearDirty As Boolean) As IFilterReturnCodes

    '/// <summary>
    '/// Returns the size in bytes of the stream needed to save the
    '/// object.  Since a filter's data is read-only, this method
    '/// should always return E_NOTIMPL.
    '/// </summary>
    <PreserveSigAttribute()> Function GetSizeMax(<Out()> ByRef pcbSize As UInt64) As IFilterReturnCodes
  End Interface

#End Region

User-Defined Types:

IFilterReturnCodes list the codes that the interface methods return.

Notes:

None.

Documentation