Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Imaging / UnmanagedBitmapWrapper.cs / 1305600 / 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 : BitmapSource
{
///
/// Critical - calls critical code method BitmapSource.UpdateCachedSettings
/// TreatAsSafe - all inputs are checked
///
[SecurityCritical, SecurityTreatAsSafe]
public UnmanagedBitmapWrapper(BitmapSourceSafeMILHandle bitmapSource) :
base(true)
{
_bitmapInit.BeginInit();
//
// This constructor is used by BitmapDecoder and BitmapFrameDecode for thumbnails and
// previews. The bitmapSource parameter comes from BitmapSource.CreateCachedBitmap
// which already calculated memory pressure, so there's no need to do it here.
//
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();
}
}
///
/// Implementation of Freezable.CreateInstanceCore .
///
protected override Freezable CreateInstanceCore()
{
return new UnmanagedBitmapWrapper(false);
}
private void CopyCommon(UnmanagedBitmapWrapper sourceBitmap)
{
_bitmapInit.BeginInit();
_bitmapInit.EndInit();
}
///
/// Implementation of Freezable.CloneCore .
///
protected override void CloneCore(Freezable sourceFreezable)
{
UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable;
base.CloneCore(sourceFreezable);
CopyCommon(sourceBitmap);
}
///
/// Implementation of Freezable.CloneCurrentValueCore .
///
protected override void CloneCurrentValueCore(Freezable sourceFreezable)
{
UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable;
base.CloneCurrentValueCore(sourceFreezable);
CopyCommon(sourceBitmap);
}
///
/// Implementation of Freezable.GetAsFrozenCore .
///
protected override void GetAsFrozenCore(Freezable sourceFreezable)
{
UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable;
base.GetAsFrozenCore(sourceFreezable);
CopyCommon(sourceBitmap);
}
///
/// Implementation of Freezable.GetCurrentValueAsFrozenCore .
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextSimpleMarkerProperties.cs
- CallbackValidatorAttribute.cs
- BuildProviderCollection.cs
- SignatureGenerator.cs
- FixedSOMLineRanges.cs
- TemplateKeyConverter.cs
- ISAPIWorkerRequest.cs
- ByteStreamGeometryContext.cs
- XmlSchemaCompilationSettings.cs
- SecurityUniqueId.cs
- ExtensibleSyndicationObject.cs
- ManifestSignatureInformation.cs
- SymbolEqualComparer.cs
- WebPartConnectVerb.cs
- dataprotectionpermission.cs
- BidPrivateBase.cs
- SendMailErrorEventArgs.cs
- GuidTagList.cs
- TransformDescriptor.cs
- FastEncoder.cs
- EntityEntry.cs
- RectConverter.cs
- CryptoConfig.cs
- MemoryResponseElement.cs
- DocumentApplicationJournalEntryEventArgs.cs
- UnmanagedHandle.cs
- SmtpException.cs
- ScriptComponentDescriptor.cs
- HtmlForm.cs
- AutoScrollHelper.cs
- XPathNavigatorReader.cs
- MobileCategoryAttribute.cs
- PointAnimationUsingKeyFrames.cs
- SafeFileHandle.cs
- adornercollection.cs
- EntityProviderServices.cs
- ColorMap.cs
- XmlSchemaElement.cs
- StyleTypedPropertyAttribute.cs
- DataBoundControl.cs
- SoapObjectWriter.cs
- CellCreator.cs
- XmlDocument.cs
- RectangleGeometry.cs
- HandleRef.cs
- XPathBinder.cs
- SizeAnimation.cs
- ControlCollection.cs
- TypeDescriptionProvider.cs
- CodeParameterDeclarationExpressionCollection.cs
- AnnotationComponentChooser.cs
- MarkupCompilePass2.cs
- HttpModulesSection.cs
- __ComObject.cs
- SymbolTable.cs
- ServerReliableChannelBinder.cs
- XmlProcessingInstruction.cs
- UIElementIsland.cs
- ServiceNotStartedException.cs
- FixedDocument.cs
- SQLCharsStorage.cs
- RectangleGeometry.cs
- KnownColorTable.cs
- DesigntimeLicenseContextSerializer.cs
- Currency.cs
- DPCustomTypeDescriptor.cs
- ContainerUIElement3D.cs
- DataSourceHelper.cs
- BypassElement.cs
- IsolatedStorage.cs
- MediaScriptCommandRoutedEventArgs.cs
- EnumerableCollectionView.cs
- OperationCanceledException.cs
- XmlParserContext.cs
- DispatcherObject.cs
- X509ThumbprintKeyIdentifierClause.cs
- PropertyTabChangedEvent.cs
- IgnorePropertiesAttribute.cs
- ConfigurationPropertyAttribute.cs
- SqlPersonalizationProvider.cs
- OracleConnectionStringBuilder.cs
- TextParagraphCache.cs
- WebBrowserNavigatedEventHandler.cs
- MetadataSerializer.cs
- ListParaClient.cs
- ComponentResourceKeyConverter.cs
- X509ChainElement.cs
- MetaType.cs
- DocumentViewerHelper.cs
- EditorAttribute.cs
- documentsequencetextcontainer.cs
- XmlEncApr2001.cs
- PolicyLevel.cs
- XmlReaderSettings.cs
- SystemFonts.cs
- Item.cs
- AsymmetricAlgorithm.cs
- SqlConnectionPoolGroupProviderInfo.cs
- OrderByQueryOptionExpression.cs
- PasswordBox.cs