Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WriteLine.cs
- CultureInfoConverter.cs
- WebControlAdapter.cs
- URLString.cs
- FormViewModeEventArgs.cs
- ManagementQuery.cs
- InlinedAggregationOperatorEnumerator.cs
- Camera.cs
- SizeKeyFrameCollection.cs
- _NTAuthentication.cs
- SeparatorAutomationPeer.cs
- DataGridTextBoxColumn.cs
- RuleSetDialog.cs
- SmiEventStream.cs
- RegistrySecurity.cs
- ContainsRowNumberChecker.cs
- TreePrinter.cs
- FontStretch.cs
- UIElement.cs
- HScrollProperties.cs
- validation.cs
- CapacityStreamGeometryContext.cs
- CoTaskMemHandle.cs
- CancellationState.cs
- CodeSubDirectory.cs
- ColorConvertedBitmap.cs
- WaveHeader.cs
- DnsPermission.cs
- DeviceContexts.cs
- EntityDataSourceChangingEventArgs.cs
- Panel.cs
- TCPClient.cs
- RangeBase.cs
- MeshGeometry3D.cs
- SqlDependencyUtils.cs
- SpecialNameAttribute.cs
- PropertyValueUIItem.cs
- RectangleGeometry.cs
- DesignerAttribute.cs
- XmlNodeChangedEventArgs.cs
- DataObjectAttribute.cs
- X509SecurityToken.cs
- ConnectionConsumerAttribute.cs
- ImageAnimator.cs
- SingleTagSectionHandler.cs
- InstanceHandleConflictException.cs
- FileDialog_Vista.cs
- QilName.cs
- GregorianCalendarHelper.cs
- ReadOnlyDictionary.cs
- ObjectDataSource.cs
- DataGridRow.cs
- MenuItem.cs
- ConfigXmlWhitespace.cs
- ComponentResourceManager.cs
- DbgCompiler.cs
- TemplateControlCodeDomTreeGenerator.cs
- Scene3D.cs
- PropertySet.cs
- NonVisualControlAttribute.cs
- CachedPathData.cs
- TextServicesDisplayAttribute.cs
- AssemblyNameProxy.cs
- DashStyles.cs
- ColumnReorderedEventArgs.cs
- HtmlElementErrorEventArgs.cs
- TimelineClockCollection.cs
- CaseInsensitiveComparer.cs
- WeakReferenceList.cs
- LookupBindingPropertiesAttribute.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ClientTargetSection.cs
- TypeInitializationException.cs
- WebPartUtil.cs
- SelectionItemPattern.cs
- SessionState.cs
- FileDialogCustomPlacesCollection.cs
- Menu.cs
- BulletDecorator.cs
- CounterSampleCalculator.cs
- Context.cs
- WriteTimeStream.cs
- PersistChildrenAttribute.cs
- WindowsGrip.cs
- AssemblyUtil.cs
- GridViewRowEventArgs.cs
- PersonalizationStateQuery.cs
- Rules.cs
- _FtpControlStream.cs
- LogReservationCollection.cs
- EventLevel.cs
- XmlHierarchyData.cs
- LogicalExpressionTypeConverter.cs
- ComboBox.cs
- WriteableOnDemandStream.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ContainerAction.cs
- ModelPropertyCollectionImpl.cs
- Bidi.cs
- FontStyles.cs