Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Print / Reach / Packaging / XpsResourcePolicy.cs / 1 / XpsResourcePolicy.cs
/*++ Copyright (C) 2004 - 2005 Microsoft Corporation All rights reserved. Module Name: XpsResourcePolicy.cs Abstract: This file contains the definition and implementation for the XpsResourcePolicy class. This class controls how resources are shared and serialized within the Xps package. Author: [....] ([....]) 1-December-2004 Revision History: 07/12/2005: [....]: Reach -> Xps --*/ using System; using System.Collections.Generic; using System.Windows.Xps.Serialization; namespace System.Windows.Xps.Packaging { ////// /// internal class XpsResourcePolicy : IServiceProvider { #region Constructors ////// Constructs an instance of a XpsResourcePolicy used to /// determine how Xps resources are shared/stores/converted /// when being added to the Xps package. /// public XpsResourcePolicy( XpsResourceSharing sharingMode ) { _sharingMode = sharingMode; _imageCrcTable = null; _imageUriHashTable = null; _currentPageImageTable = null; _colorContextTable = null; _currentPageColorContextTable = null; _resourceDictionaryTable = null; _currentPageResourceDictionaryTable = null; } #endregion Constructors #region Public properties ////// Gets the current sharing mode for this resource policy. /// public XpsResourceSharing ResourceSharingMode { get { return _sharingMode; } } #endregion Public properties #region Public methods ////// This method registers a resource service with this resource /// policy for use by the packaging and serialization APIs. /// ///service or serviceType is null.. ///serviceType has already been registered.. public void RegisterService( object service, Type serviceType ) { if (serviceType == null) { throw new ArgumentNullException("serviceType"); } if (service == null) { throw new ArgumentNullException("service"); } if (!_objDict.ContainsKey(serviceType)) { _objDict.Add(serviceType, service); } else if (_objDict[serviceType] != service) { throw new XpsPackagingException(ReachSR.Get(ReachSRID.ReachPackaging_ServiceTypeAlreadyAdded, serviceType)); } } internal bool SubsetComplete(INode node) { FontSubsetterCommitPolicies signal = FontSubsetterCommitPolicies.CommitPerPage; bool validSubsetNode = true; bool subsetComplete = false; if( node is IXpsFixedDocumentSequenceWriter ) { signal = FontSubsetterCommitPolicies.CommitEntireSequence; } else if( node is IXpsFixedDocumentWriter ) { signal = FontSubsetterCommitPolicies.CommitPerDocument; } else if( node is IXpsFixedPageWriter ) { signal = FontSubsetterCommitPolicies.CommitPerPage; } else { validSubsetNode = false; } if( validSubsetNode ) { XpsFontSerializationService fontService = (XpsFontSerializationService)GetService(typeof(XpsFontSerializationService)); if( fontService != null ) { XpsFontSubsetter fontSubsetter = fontService.FontSubsetter; subsetComplete = fontSubsetter.CommitFontSubsetsSignal(signal); } } return subsetComplete; } #endregion Public methods #region Protected methods ////// Retrieves a service interface given the /// specified service type. /// /// /// Service type to retrieve. /// ////// A instance of the service interface. /// internal object GetService( Type serviceType ) { object service = null; if (_objDict.ContainsKey(serviceType)) { service = _objDict[serviceType]; } return service; } #endregion Protected methods #region IServiceProvider implementation object IServiceProvider.GetService( Type serviceType ) { return GetService(serviceType); } #endregion IServiceProvider implementation #region Internal Properties internal DictionaryImageCrcTable { get { return _imageCrcTable; } set { _imageCrcTable = value; } } internal Dictionary ImageUriHashTable { get { return _imageUriHashTable; } set { _imageUriHashTable = value; } } internal Dictionary CurrentPageImageTable { get { return _currentPageImageTable; } set { _currentPageImageTable = value; } } internal Dictionary ColorContextTable { get { return _colorContextTable; } set { _colorContextTable = value; } } internal Dictionary CurrentPageColorContextTable { get { return _currentPageColorContextTable; } set { _currentPageColorContextTable = value; } } internal Dictionary ResourceDictionaryTable { get { return _resourceDictionaryTable; } set { _resourceDictionaryTable = value; } } internal Dictionary CurrentPageResourceDictionaryTable { get { return _currentPageResourceDictionaryTable; } set { _currentPageResourceDictionaryTable = value; } } #endregion Internal Properties #region Private data private Dictionary _imageCrcTable; private Dictionary _imageUriHashTable; private Dictionary _currentPageImageTable; private Dictionary _colorContextTable; private Dictionary _currentPageColorContextTable; private Dictionary _resourceDictionaryTable; private Dictionary _currentPageResourceDictionaryTable; private XpsResourceSharing _sharingMode; private Dictionary _objDict = new Dictionary (); #endregion Private data } /// /// /// public enum XpsResourceSharing { ////// /// ShareResources = 0, ////// /// NoResourceSharing = 1 } } // 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
- HtmlImage.cs
- GregorianCalendar.cs
- EditorAttribute.cs
- Accessible.cs
- HandlerBase.cs
- RefExpr.cs
- QueryOpeningEnumerator.cs
- UserInitiatedRoutedEventPermission.cs
- SmiXetterAccessMap.cs
- ListView.cs
- ObjectMemberMapping.cs
- EventLogEntry.cs
- Base64Stream.cs
- DataTableReaderListener.cs
- WebPartAuthorizationEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- BasePropertyDescriptor.cs
- CompiledIdentityConstraint.cs
- BamlLocalizationDictionary.cs
- MasterPageCodeDomTreeGenerator.cs
- ConditionalExpression.cs
- DropShadowEffect.cs
- XmlSchemaAppInfo.cs
- CompressionTransform.cs
- CaseStatementSlot.cs
- SchemaAttDef.cs
- ActionMismatchAddressingException.cs
- TraceUtils.cs
- OdbcConnection.cs
- SHA384.cs
- counter.cs
- ViewStateException.cs
- HttpCapabilitiesSectionHandler.cs
- XmlEncodedRawTextWriter.cs
- XamlRtfConverter.cs
- PrimitiveXmlSerializers.cs
- TextServicesCompartmentEventSink.cs
- documentsequencetextcontainer.cs
- CodeMemberEvent.cs
- PersonalizableAttribute.cs
- DesignerEditorPartChrome.cs
- QilCloneVisitor.cs
- CompiledIdentityConstraint.cs
- MatrixIndependentAnimationStorage.cs
- ToolStripInSituService.cs
- ListView.cs
- ColumnResult.cs
- DesignerDataSchemaClass.cs
- Bold.cs
- ProgressPage.cs
- safex509handles.cs
- TextRangeEdit.cs
- SqlDataSourceCommandParser.cs
- PeerObject.cs
- PageThemeBuildProvider.cs
- DataRelationPropertyDescriptor.cs
- HtmlInputRadioButton.cs
- CellRelation.cs
- IdentifierService.cs
- GridEntryCollection.cs
- EventLogPropertySelector.cs
- AssemblyNameUtility.cs
- RuntimeHelpers.cs
- DispatcherOperation.cs
- DebugManager.cs
- ReferenceEqualityComparer.cs
- LinqDataView.cs
- ChildrenQuery.cs
- ClientUrlResolverWrapper.cs
- GuidTagList.cs
- IIS7UserPrincipal.cs
- ControlType.cs
- CharacterBufferReference.cs
- WebBaseEventKeyComparer.cs
- StateMachine.cs
- Publisher.cs
- HebrewCalendar.cs
- ConsoleTraceListener.cs
- EntityDataSourceMemberPath.cs
- EditorBrowsableAttribute.cs
- DockPanel.cs
- GridEntryCollection.cs
- ComponentRenameEvent.cs
- PersistencePipeline.cs
- WebSysDefaultValueAttribute.cs
- ProtocolsSection.cs
- ListSourceHelper.cs
- AliasGenerator.cs
- FormsAuthenticationEventArgs.cs
- AuthenticationManager.cs
- DataBoundLiteralControl.cs
- OperationSelectorBehavior.cs
- DatagridviewDisplayedBandsData.cs
- relpropertyhelper.cs
- FrameworkPropertyMetadata.cs
- WmlTextBoxAdapter.cs
- KeyboardNavigation.cs
- DynamicValidator.cs
- Encoder.cs
- PreProcessInputEventArgs.cs