Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / Imaging / UnmanagedBitmapWrapper.cs / 1 / UnmanagedBitmapWrapper.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation. All Rights Reserved. // // File: UnmanagedBitmapWrapper.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using MS.Win32.PresentationCore; using System.Security; using System.Security.Permissions; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Imaging { internal sealed class UnmanagedBitmapWrapper : System.Windows.Media.Imaging.BitmapSource { ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] public UnmanagedBitmapWrapper(BitmapSourceSafeMILHandle bitmapSource) : base(true) { _bitmapInit.BeginInit(); bitmapSource.CalculateSize(); WicSourceHandle = bitmapSource; _bitmapInit.EndInit(); UpdateCachedSettings(); } #region Protected Methods ////// Critical - eventually access'es critical resources (_wicSource) /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal UnmanagedBitmapWrapper(bool initialize) : base(true) { // Call BeginInit and EndInit if initialize is true. if (initialize) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } } ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal void UpdateBitmapSource(BitmapSource bitmapSource, DUCE.Channel channel) { WicSourceHandle = bitmapSource.WicSourceHandle; UpdateCachedSettings(); _needsUpdate = true; UpdateResource(channel, true /* skip "on channel" check - we already know that we're on channel */ ); } ////// Implementation of protected override Freezable CreateInstanceCore() { return new UnmanagedBitmapWrapper(false); } private void CopyCommon(UnmanagedBitmapWrapper sourceBitmap) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } ///Freezable.CreateInstanceCore . ////// Implementation of protected override void CloneCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCore . ////// Implementation of protected override void CloneCurrentValueCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCurrentValueCore . ////// Implementation of protected override void GetAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.GetAsFrozenCore . ////// Implementation of protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation. All Rights Reserved. // // File: UnmanagedBitmapWrapper.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using MS.Win32.PresentationCore; using System.Security; using System.Security.Permissions; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Imaging { internal sealed class UnmanagedBitmapWrapper : System.Windows.Media.Imaging.BitmapSource { ///Freezable.GetCurrentValueAsFrozenCore . ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] public UnmanagedBitmapWrapper(BitmapSourceSafeMILHandle bitmapSource) : base(true) { _bitmapInit.BeginInit(); bitmapSource.CalculateSize(); WicSourceHandle = bitmapSource; _bitmapInit.EndInit(); UpdateCachedSettings(); } #region Protected Methods ////// Critical - eventually access'es critical resources (_wicSource) /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal UnmanagedBitmapWrapper(bool initialize) : base(true) { // Call BeginInit and EndInit if initialize is true. if (initialize) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } } ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal void UpdateBitmapSource(BitmapSource bitmapSource, DUCE.Channel channel) { WicSourceHandle = bitmapSource.WicSourceHandle; UpdateCachedSettings(); _needsUpdate = true; UpdateResource(channel, true /* skip "on channel" check - we already know that we're on channel */ ); } ////// Implementation of protected override Freezable CreateInstanceCore() { return new UnmanagedBitmapWrapper(false); } private void CopyCommon(UnmanagedBitmapWrapper sourceBitmap) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } ///Freezable.CreateInstanceCore . ////// Implementation of protected override void CloneCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCore . ////// Implementation of protected override void CloneCurrentValueCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCurrentValueCore . ////// Implementation of protected override void GetAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.GetAsFrozenCore . ////// Implementation of protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Freezable.GetCurrentValueAsFrozenCore . ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FontNamesConverter.cs
- ToolboxItem.cs
- SqlFlattener.cs
- AttributeEmitter.cs
- BitmapEffectGeneralTransform.cs
- SmtpNegotiateAuthenticationModule.cs
- NativeCompoundFileAPIs.cs
- IriParsingElement.cs
- BlobPersonalizationState.cs
- StreamingContext.cs
- SelectionRangeConverter.cs
- HitTestParameters.cs
- StrokeDescriptor.cs
- WindowsAuthenticationEventArgs.cs
- ColumnProvider.cs
- WindowsGraphics2.cs
- SQLInt16.cs
- CaseInsensitiveHashCodeProvider.cs
- ScriptRegistrationManager.cs
- ContainerUIElement3D.cs
- TrackingExtract.cs
- FixedSOMTableCell.cs
- ResXResourceSet.cs
- DeferredReference.cs
- COSERVERINFO.cs
- propertytag.cs
- OleDbSchemaGuid.cs
- SafeViewOfFileHandle.cs
- HyperlinkAutomationPeer.cs
- DeadCharTextComposition.cs
- PropertyGridView.cs
- AlternationConverter.cs
- ZipFileInfo.cs
- XmlDeclaration.cs
- Convert.cs
- ColumnResizeUndoUnit.cs
- ModuleBuilder.cs
- WorkflowItemsPresenter.cs
- WindowsEditBoxRange.cs
- ClientFormsAuthenticationCredentials.cs
- CryptoApi.cs
- MethodToken.cs
- MultiBindingExpression.cs
- GeometryModel3D.cs
- CustomPopupPlacement.cs
- OutputCacheSettingsSection.cs
- ConsoleKeyInfo.cs
- QuaternionRotation3D.cs
- Block.cs
- TextModifier.cs
- Point.cs
- ContainsSearchOperator.cs
- XPathConvert.cs
- OdbcEnvironment.cs
- ToolboxBitmapAttribute.cs
- ContentFileHelper.cs
- DataRecordObjectView.cs
- ResourceSetExpression.cs
- PlatformNotSupportedException.cs
- WebPartConnection.cs
- GetBrowserTokenRequest.cs
- Cursors.cs
- HuffmanTree.cs
- TypeValidationEventArgs.cs
- WebPartTracker.cs
- HttpProfileBase.cs
- DnsPermission.cs
- ValidationError.cs
- AdditionalEntityFunctions.cs
- PaintValueEventArgs.cs
- DashStyle.cs
- IisTraceListener.cs
- PersonalizationProviderCollection.cs
- IFlowDocumentViewer.cs
- WindowPatternIdentifiers.cs
- Int32Collection.cs
- UriTemplateDispatchFormatter.cs
- Misc.cs
- ResourcePool.cs
- ConsoleEntryPoint.cs
- EventWaitHandleSecurity.cs
- PopupControlService.cs
- Activator.cs
- LineBreak.cs
- TableItemPatternIdentifiers.cs
- SizeValueSerializer.cs
- ServiceOperationDetailViewControl.cs
- FrameworkTemplate.cs
- ServiceModelConfigurationSectionCollection.cs
- ParameterCollection.cs
- ScriptControlManager.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataGridViewCellEventArgs.cs
- PreloadedPackages.cs
- XmlSecureResolver.cs
- DataSysAttribute.cs
- ErrorHandler.cs
- CompilationUtil.cs
- WizardStepBase.cs
- WebDescriptionAttribute.cs