// Token: 0x06006C84 RID: 27780 RVA: 0x001F3B50 File Offset: 0x001F1D50 internal UnsafeIndexingFilterStream(MS.Internal.Interop.IStream oleStream) { if (oleStream == null) { throw new ArgumentNullException("oleStream"); } this._oleStream = oleStream; this._disposed = false; }
void IPersistStream.Load(MS.Internal.Interop.IStream stream) { // Check argument. if (stream == null) { throw new ArgumentNullException("stream"); } // Only one of _package and _encryptedPackage can be non-null at a time. Invariant.Assert(_package == null || _encryptedPackage == null); // If there has been a previous call to Load, reinitialize everything. // Note closing a closed stream does not cause any exception. ReleaseResources(); _filter = null; _xpsFileName = null; try { _packageStream = new UnsafeIndexingFilterStream(stream); // different filter for encrypted package if (EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(_packageStream)) { // Open the encrypted package. _encryptedPackage = EncryptedPackageEnvelope.Open(_packageStream); _filter = new EncryptedPackageFilter(_encryptedPackage); } else { // Open the package. _package = Package.Open(_packageStream); _filter = new PackageFilter(_package); } } catch (IOException ex) { throw new COMException(ex.Message, (int)FilterErrorCode.FILTER_E_ACCESS); } catch (Exception ex) { throw new COMException(ex.Message, (int)FilterErrorCode.FILTER_E_UNKNOWNFORMAT); } finally { // clean-up if we failed if (_filter == null) { ReleaseResources(); } } }
/// <summary> /// Saves a copy of the object into the specified stream. /// </summary> /// <param name="stream">The stream to which the object is saved. </param> /// <param name="fClearDirty">Indicates whether the dirty state is to be cleared. </param> /// <remarks> /// Expected error codes are described at /// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/html/b748b4f9-ef9c-486b-bdc4-4d23c4640ff7.asp /// </remarks> void IPersistStream.Save(MS.Internal.Interop.IStream stream, bool fClearDirty) { throw new COMException(SR.Get(SRID.FilterIPersistStreamIsReadOnly), NativeMethods.STG_E_CANTSAVE); }