Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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 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.
//------------------------------------------------------------------------------
// 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 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
- DateBoldEvent.cs
- PEFileEvidenceFactory.cs
- iisPickupDirectory.cs
- SelectiveScrollingGrid.cs
- VisualBrush.cs
- InternalBufferOverflowException.cs
- HtmlLink.cs
- PeerTransportSecuritySettings.cs
- ScriptHandlerFactory.cs
- NavigationExpr.cs
- DashStyle.cs
- Location.cs
- ListBox.cs
- Bitmap.cs
- TextLine.cs
- DropDownButton.cs
- EventRouteFactory.cs
- DataListItemEventArgs.cs
- ExpressionLexer.cs
- DeclaredTypeValidator.cs
- XmlLoader.cs
- XsltLoader.cs
- TreeView.cs
- AuthorizationSection.cs
- EntityCollectionChangedParams.cs
- MemberDomainMap.cs
- RoleGroupCollection.cs
- QueryableDataSourceView.cs
- EnvironmentPermission.cs
- StringWriter.cs
- DataViewSetting.cs
- _ProxyRegBlob.cs
- SymmetricAlgorithm.cs
- QuadraticBezierSegment.cs
- EllipseGeometry.cs
- FixedStringLookup.cs
- Polygon.cs
- COM2ExtendedUITypeEditor.cs
- WebControlAdapter.cs
- ListSortDescription.cs
- ExtenderProvidedPropertyAttribute.cs
- HtmlTableRowCollection.cs
- HiddenField.cs
- TextContainer.cs
- AuthenticationModuleElementCollection.cs
- ObjectDataSourceView.cs
- XomlSerializationHelpers.cs
- FormsAuthenticationEventArgs.cs
- panel.cs
- Base64Decoder.cs
- ListViewItemEventArgs.cs
- SoapRpcServiceAttribute.cs
- IProvider.cs
- WebPartConnectionsConnectVerb.cs
- SelectingProviderEventArgs.cs
- SystemMulticastIPAddressInformation.cs
- SetterBase.cs
- ParameterEditorUserControl.cs
- QueryParameter.cs
- TreeView.cs
- WindowShowOrOpenTracker.cs
- FormCollection.cs
- EntitySqlException.cs
- CodePageUtils.cs
- DragDrop.cs
- UnicastIPAddressInformationCollection.cs
- Atom10FormatterFactory.cs
- WeakReference.cs
- CryptoApi.cs
- MetadataPropertyAttribute.cs
- HttpRawResponse.cs
- TypeUtils.cs
- DefaultObjectMappingItemCollection.cs
- Converter.cs
- BasicViewGenerator.cs
- DataKeyCollection.cs
- ReachPrintTicketSerializerAsync.cs
- GradientSpreadMethodValidation.cs
- UnmanagedBitmapWrapper.cs
- ObjectParameter.cs
- SmiEventSink_DeferedProcessing.cs
- MemberMaps.cs
- SafeMarshalContext.cs
- webclient.cs
- SamlAttributeStatement.cs
- DataSourceHelper.cs
- EdmProviderManifest.cs
- ToolStripSplitStackLayout.cs
- Parameter.cs
- _LoggingObject.cs
- DoubleCollection.cs
- DateTimeValueSerializer.cs
- UnauthorizedWebPart.cs
- NavigationProperty.cs
- AmbientProperties.cs
- WebServiceMethodData.cs
- HttpHandlerActionCollection.cs
- PropertyItemInternal.cs
- ECDsaCng.cs
- GridLengthConverter.cs