Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / IO / Packaging / EncryptedPackageFilter.cs / 1 / EncryptedPackageFilter.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Implements indexing filter for EncryptedPackageEnvelope. // Invoked by XpsFilter if the file/stream being filtered // is an EncryptedPackageEnvelope. // // History: // 07/18/2005: ArindamB: Initial implementation //--------------------------------------------------------------------------- using System; using System.Windows; using System.Runtime.InteropServices; using System.IO.Packaging; using MS.Internal.Interop; namespace MS.Internal.IO.Packaging { #region EncryptedPackageFilter ////// Implements IFilter methods to support indexing on EncryptedPackageEnvelope. /// internal class EncryptedPackageFilter : IFilter { #region Constructor ////// Constructor. /// /// EncryptedPackageEnvelope to filter on internal EncryptedPackageFilter(EncryptedPackageEnvelope encryptedPackage) { if (encryptedPackage == null) { throw new ArgumentNullException("encryptedPackage"); } // // Since CorePropertiesFilter is implemented as // a managed filter (supports IManagedFilter interface), // IndexingFilterMarshaler is used to get IFilter interface out of it. // _filter = new IndexingFilterMarshaler( new CorePropertiesFilter( encryptedPackage.PackageProperties )); } #endregion Constructor #region IFilter methods ////// Initialzes the session for this filter. /// /// usage flags /// number of elements in aAttributes array /// array of FULLPROPSPEC structs to restrict responses ///IFILTER_FLAGS_NONE. Return value is effectively ignored by the caller. public IFILTER_FLAGS Init( [In] IFILTER_INIT grfFlags, [In] uint cAttributes, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] FULLPROPSPEC[] aAttributes) { return _filter.Init(grfFlags, cAttributes, aAttributes); } ////// Returns description of the next chunk. /// ///Chunk descriptor public STAT_CHUNK GetChunk() { return _filter.GetChunk(); } ////// Gets text content corresponding to current chunk. /// /// /// ///Not supported in indexing of core properties. public void GetText(ref uint bufCharacterCount, IntPtr pBuffer) { throw new COMException(SR.Get(SRID.FilterGetTextNotSupported), (int)FilterErrorCode.FILTER_E_NO_TEXT); } ////// Gets the property value corresponding to current chunk. /// ///property value public IntPtr GetValue() { return _filter.GetValue(); } ////// Retrieves an interface representing the specified portion of the object. /// /// /// ///Not implemented. Reserved for future use. public IntPtr BindRegion([In] FILTERREGION origPos, [In] ref Guid riid) { throw new NotImplementedException(SR.Get(SRID.FilterBindRegionNotImplemented)); } #endregion IFilter methods #region Fields ////// Only filtering that is supported on EncryptedPackageEnvelope /// is of core properties. This points to EncryptedPackageCorePropertiesFilter /// wrapped by FilterMarshaler. /// private IFilter _filter = null; #endregion Fields } #endregion EncryptedPackageFilter } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Implements indexing filter for EncryptedPackageEnvelope. // Invoked by XpsFilter if the file/stream being filtered // is an EncryptedPackageEnvelope. // // History: // 07/18/2005: ArindamB: Initial implementation //--------------------------------------------------------------------------- using System; using System.Windows; using System.Runtime.InteropServices; using System.IO.Packaging; using MS.Internal.Interop; namespace MS.Internal.IO.Packaging { #region EncryptedPackageFilter ////// Implements IFilter methods to support indexing on EncryptedPackageEnvelope. /// internal class EncryptedPackageFilter : IFilter { #region Constructor ////// Constructor. /// /// EncryptedPackageEnvelope to filter on internal EncryptedPackageFilter(EncryptedPackageEnvelope encryptedPackage) { if (encryptedPackage == null) { throw new ArgumentNullException("encryptedPackage"); } // // Since CorePropertiesFilter is implemented as // a managed filter (supports IManagedFilter interface), // IndexingFilterMarshaler is used to get IFilter interface out of it. // _filter = new IndexingFilterMarshaler( new CorePropertiesFilter( encryptedPackage.PackageProperties )); } #endregion Constructor #region IFilter methods ////// Initialzes the session for this filter. /// /// usage flags /// number of elements in aAttributes array /// array of FULLPROPSPEC structs to restrict responses ///IFILTER_FLAGS_NONE. Return value is effectively ignored by the caller. public IFILTER_FLAGS Init( [In] IFILTER_INIT grfFlags, [In] uint cAttributes, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] FULLPROPSPEC[] aAttributes) { return _filter.Init(grfFlags, cAttributes, aAttributes); } ////// Returns description of the next chunk. /// ///Chunk descriptor public STAT_CHUNK GetChunk() { return _filter.GetChunk(); } ////// Gets text content corresponding to current chunk. /// /// /// ///Not supported in indexing of core properties. public void GetText(ref uint bufCharacterCount, IntPtr pBuffer) { throw new COMException(SR.Get(SRID.FilterGetTextNotSupported), (int)FilterErrorCode.FILTER_E_NO_TEXT); } ////// Gets the property value corresponding to current chunk. /// ///property value public IntPtr GetValue() { return _filter.GetValue(); } ////// Retrieves an interface representing the specified portion of the object. /// /// /// ///Not implemented. Reserved for future use. public IntPtr BindRegion([In] FILTERREGION origPos, [In] ref Guid riid) { throw new NotImplementedException(SR.Get(SRID.FilterBindRegionNotImplemented)); } #endregion IFilter methods #region Fields ////// Only filtering that is supported on EncryptedPackageEnvelope /// is of core properties. This points to EncryptedPackageCorePropertiesFilter /// wrapped by FilterMarshaler. /// private IFilter _filter = null; #endregion Fields } #endregion EncryptedPackageFilter } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RenderData.cs
- BinaryEditor.cs
- TextCompositionEventArgs.cs
- WorkflowLayouts.cs
- MatrixIndependentAnimationStorage.cs
- ObjectStateEntryDbDataRecord.cs
- ZoneMembershipCondition.cs
- RequestSecurityTokenSerializer.cs
- BooleanToVisibilityConverter.cs
- WriteableBitmap.cs
- Debug.cs
- BrowserCapabilitiesFactory.cs
- WorkflowRuntimeBehavior.cs
- ResXResourceReader.cs
- RuleSet.cs
- TypeGenericEnumerableViewSchema.cs
- BrowsableAttribute.cs
- ToolBarButtonClickEvent.cs
- ToolStripItemEventArgs.cs
- InputEventArgs.cs
- UIElement3D.cs
- TreeViewItem.cs
- SQLString.cs
- ConfigurationManagerInternal.cs
- GridViewDeleteEventArgs.cs
- ArgumentValidation.cs
- SafeProcessHandle.cs
- EventSetterHandlerConverter.cs
- LineBreak.cs
- PropertyTab.cs
- listitem.cs
- RenderContext.cs
- mansign.cs
- Pens.cs
- XPathBuilder.cs
- XsdDateTime.cs
- RequestStatusBarUpdateEventArgs.cs
- OdbcRowUpdatingEvent.cs
- WmlValidatorAdapter.cs
- TemplateBuilder.cs
- PasswordTextNavigator.cs
- CompositeKey.cs
- EdmScalarPropertyAttribute.cs
- Evidence.cs
- WeakReferenceKey.cs
- dbdatarecord.cs
- DetailsViewPageEventArgs.cs
- Int64AnimationUsingKeyFrames.cs
- EndpointDiscoveryMetadata.cs
- SQLBinary.cs
- ComponentEvent.cs
- DocumentViewerConstants.cs
- ExtensionQuery.cs
- DataServiceException.cs
- OptimisticConcurrencyException.cs
- DesignerAdapterUtil.cs
- RestHandlerFactory.cs
- MenuItemStyle.cs
- EncodingTable.cs
- RawUIStateInputReport.cs
- MimeWriter.cs
- XsltInput.cs
- RouteData.cs
- FixedStringLookup.cs
- WebPartDeleteVerb.cs
- ReadOnlyKeyedCollection.cs
- ClientBuildManagerCallback.cs
- PropertyInformation.cs
- GenericQueueSurrogate.cs
- XPathChildIterator.cs
- ToolStripSeparatorRenderEventArgs.cs
- RoleManagerSection.cs
- ConsoleKeyInfo.cs
- SocketPermission.cs
- UIElementPropertyUndoUnit.cs
- CultureInfo.cs
- EntityContainer.cs
- Crypto.cs
- ColumnClickEvent.cs
- SamlAdvice.cs
- QueryContinueDragEvent.cs
- PermissionSet.cs
- SortDescriptionCollection.cs
- CuspData.cs
- SqlBulkCopyColumnMappingCollection.cs
- PathFigure.cs
- Globals.cs
- EnumConverter.cs
- SecurityState.cs
- HTTPNotFoundHandler.cs
- OrderedDictionaryStateHelper.cs
- BufferBuilder.cs
- Deflater.cs
- HeaderUtility.cs
- ConfigurationSettings.cs
- StringAnimationBase.cs
- ImplicitInputBrush.cs
- CommandID.cs
- CopyOnWriteList.cs
- EventLogEntryCollection.cs