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
- WeakReferenceKey.cs
- ComNativeDescriptor.cs
- XmlSchemaInferenceException.cs
- PreviewPageInfo.cs
- ColorBuilder.cs
- Pair.cs
- QilBinary.cs
- QueryStack.cs
- GridViewAutomationPeer.cs
- RawStylusSystemGestureInputReport.cs
- FormattedTextSymbols.cs
- keycontainerpermission.cs
- SizeLimitedCache.cs
- XmlNamespaceManager.cs
- ActivityExecutor.cs
- Light.cs
- Html32TextWriter.cs
- DataService.cs
- BamlBinaryWriter.cs
- LinqDataSourceView.cs
- DataControlFieldHeaderCell.cs
- CalculatedColumn.cs
- SiteOfOriginPart.cs
- ErrorHandlingAcceptor.cs
- XmlSerializerAssemblyAttribute.cs
- KeyEvent.cs
- ContextMenuStripGroup.cs
- COMException.cs
- URLString.cs
- Stylesheet.cs
- StrokeCollectionDefaultValueFactory.cs
- SqlProcedureAttribute.cs
- COM2ExtendedTypeConverter.cs
- SqlGenerator.cs
- HtmlInputText.cs
- CustomTypeDescriptor.cs
- ColorConverter.cs
- Automation.cs
- HtmlTable.cs
- DecoderExceptionFallback.cs
- columnmapfactory.cs
- DataGridClipboardHelper.cs
- SQLResource.cs
- LocalizationComments.cs
- IntSecurity.cs
- SqlCommand.cs
- CacheEntry.cs
- OleDbTransaction.cs
- URLString.cs
- ParserOptions.cs
- StandardCommands.cs
- RegisteredExpandoAttribute.cs
- SegmentTree.cs
- CultureInfo.cs
- brushes.cs
- DataGridViewSelectedRowCollection.cs
- DbParameterCollectionHelper.cs
- CreateUserWizardDesigner.cs
- ComponentDispatcherThread.cs
- XPathMultyIterator.cs
- GenericAuthenticationEventArgs.cs
- XmlWriterDelegator.cs
- PointAnimationClockResource.cs
- TextFormatterImp.cs
- XmlCodeExporter.cs
- ObfuscateAssemblyAttribute.cs
- PropertyEntry.cs
- DictionaryTraceRecord.cs
- XmlDataSourceView.cs
- CreateInstanceBinder.cs
- Transform.cs
- ZeroOpNode.cs
- PropertyTab.cs
- WebAdminConfigurationHelper.cs
- FileStream.cs
- UITypeEditor.cs
- SQLMembershipProvider.cs
- XPathSelfQuery.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- FileDetails.cs
- MatrixCamera.cs
- PnrpPermission.cs
- ReadWriteObjectLock.cs
- XmlEncodedRawTextWriter.cs
- EncoderNLS.cs
- XmlSerializerFaultFormatter.cs
- ResourceExpression.cs
- CompositeDataBoundControl.cs
- GridViewUpdatedEventArgs.cs
- IDReferencePropertyAttribute.cs
- FileDataSourceCache.cs
- Style.cs
- FormViewPageEventArgs.cs
- DataPagerFieldItem.cs
- Win32Exception.cs
- RegexMatchCollection.cs
- StreamResourceInfo.cs
- ItemAutomationPeer.cs
- SafeNativeMethodsCLR.cs
- WarningException.cs