Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / InterOp / Imaging.cs / 1305600 / Imaging.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, All Rights Reserved.
//
// File: Imaging.cs
//
//-----------------------------------------------------------------------------
using System;
using System.Security;
using System.Security.Permissions;
using MS.Internal;
using System.Diagnostics;
using System.Windows;
using System.Windows.Media.Imaging;
using Microsoft.Win32.SafeHandles;
using MS.Internal.PresentationCore; // SecurityHelper
using System.Windows.Interop;
namespace System.Windows.Interop
{
///
/// Managed/Unmanaged Interop for Imaging.
///
public static class Imaging
{
///
/// Construct an Bitmap from a HBITMAP.
///
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical]
unsafe public static BitmapSource CreateBitmapSourceFromHBitmap(
IntPtr bitmap,
IntPtr palette,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions)
{
SecurityHelper.DemandUnmanagedCode();
// CR: [....] (1681459)
return CriticalCreateBitmapSourceFromHBitmap(bitmap, palette, sourceRect, sizeOptions, WICBitmapAlphaChannelOption.WICBitmapUseAlpha);
}
///
/// Construct an Bitmap from a HBITMAP.
///
///
///
///
///
///
///
/// Critical - calls critical code, access unmanaged resources
///
[SecurityCritical]
unsafe internal static BitmapSource CriticalCreateBitmapSourceFromHBitmap(
IntPtr bitmap,
IntPtr palette,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions,
WICBitmapAlphaChannelOption alphaOptions)
{
if (bitmap == IntPtr.Zero)
{
throw new ArgumentNullException("bitmap");
}
return new InteropBitmap(bitmap, palette, sourceRect, sizeOptions, alphaOptions); // use the critical version
}
///
/// Construct an Bitmap from a HICON.
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical ]
unsafe public static BitmapSource CreateBitmapSourceFromHIcon(
IntPtr icon,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions)
{
SecurityHelper.DemandUnmanagedCode();
if (icon == IntPtr.Zero)
{
throw new ArgumentNullException("icon");
}
return new InteropBitmap(icon, sourceRect, sizeOptions);
}
///
/// Construct an Bitmap from a section handle.
///
///
///
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical ]
unsafe public static BitmapSource CreateBitmapSourceFromMemorySection(
IntPtr section,
int pixelWidth,
int pixelHeight,
Media.PixelFormat format,
int stride,
int offset)
{
SecurityHelper.DemandUnmanagedCode();
if (section == IntPtr.Zero)
{
throw new ArgumentNullException("section");
}
return new InteropBitmap(section, pixelWidth, pixelHeight, format, stride, offset);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, All Rights Reserved.
//
// File: Imaging.cs
//
//-----------------------------------------------------------------------------
using System;
using System.Security;
using System.Security.Permissions;
using MS.Internal;
using System.Diagnostics;
using System.Windows;
using System.Windows.Media.Imaging;
using Microsoft.Win32.SafeHandles;
using MS.Internal.PresentationCore; // SecurityHelper
using System.Windows.Interop;
namespace System.Windows.Interop
{
///
/// Managed/Unmanaged Interop for Imaging.
///
public static class Imaging
{
///
/// Construct an Bitmap from a HBITMAP.
///
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical]
unsafe public static BitmapSource CreateBitmapSourceFromHBitmap(
IntPtr bitmap,
IntPtr palette,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions)
{
SecurityHelper.DemandUnmanagedCode();
// CR: [....] (1681459)
return CriticalCreateBitmapSourceFromHBitmap(bitmap, palette, sourceRect, sizeOptions, WICBitmapAlphaChannelOption.WICBitmapUseAlpha);
}
///
/// Construct an Bitmap from a HBITMAP.
///
///
///
///
///
///
///
/// Critical - calls critical code, access unmanaged resources
///
[SecurityCritical]
unsafe internal static BitmapSource CriticalCreateBitmapSourceFromHBitmap(
IntPtr bitmap,
IntPtr palette,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions,
WICBitmapAlphaChannelOption alphaOptions)
{
if (bitmap == IntPtr.Zero)
{
throw new ArgumentNullException("bitmap");
}
return new InteropBitmap(bitmap, palette, sourceRect, sizeOptions, alphaOptions); // use the critical version
}
///
/// Construct an Bitmap from a HICON.
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical ]
unsafe public static BitmapSource CreateBitmapSourceFromHIcon(
IntPtr icon,
Int32Rect sourceRect,
BitmapSizeOptions sizeOptions)
{
SecurityHelper.DemandUnmanagedCode();
if (icon == IntPtr.Zero)
{
throw new ArgumentNullException("icon");
}
return new InteropBitmap(icon, sourceRect, sizeOptions);
}
///
/// Construct an Bitmap from a section handle.
///
///
///
///
///
///
///
///
/// Callers must have UnmanagedCode permission to call this API.
///
///
/// Critical - calls critical code, access unmanaged resources
/// PublicOK - demands unmanaged code permission
///
[SecurityCritical ]
unsafe public static BitmapSource CreateBitmapSourceFromMemorySection(
IntPtr section,
int pixelWidth,
int pixelHeight,
Media.PixelFormat format,
int stride,
int offset)
{
SecurityHelper.DemandUnmanagedCode();
if (section == IntPtr.Zero)
{
throw new ArgumentNullException("section");
}
return new InteropBitmap(section, pixelWidth, pixelHeight, format, stride, offset);
}
}
}
// 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
- SystemException.cs
- ApplicationProxyInternal.cs
- XslUrlEditor.cs
- DataMisalignedException.cs
- BCryptSafeHandles.cs
- PageCache.cs
- PolyQuadraticBezierSegment.cs
- TrackingExtract.cs
- CategoryEditor.cs
- AuthenticationConfig.cs
- EntityTypeEmitter.cs
- CodeValidator.cs
- AddInEnvironment.cs
- HttpProxyCredentialType.cs
- Int16Storage.cs
- EdmProperty.cs
- ErrorFormatterPage.cs
- EmptyControlCollection.cs
- SafeFileMappingHandle.cs
- WebUtil.cs
- RegularExpressionValidator.cs
- Stack.cs
- EnumerableWrapperWeakToStrong.cs
- ControlBuilderAttribute.cs
- DataColumnMappingCollection.cs
- NumericUpDown.cs
- StringFormat.cs
- InternalUserCancelledException.cs
- VirtualDirectoryMapping.cs
- SecurityContext.cs
- AsyncPostBackTrigger.cs
- LocalClientSecuritySettingsElement.cs
- OciHandle.cs
- DatatypeImplementation.cs
- Propagator.JoinPropagator.cs
- TableProviderWrapper.cs
- CountAggregationOperator.cs
- StringToken.cs
- DataObjectAttribute.cs
- SapiAttributeParser.cs
- AspCompat.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- ShaderEffect.cs
- TextUtf8RawTextWriter.cs
- SerialStream.cs
- ResourcesChangeInfo.cs
- MemoryPressure.cs
- PDBReader.cs
- RequestCache.cs
- BufferBuilder.cs
- CodeGen.cs
- DockAndAnchorLayout.cs
- FontFamily.cs
- EdmValidator.cs
- InputBuffer.cs
- FontFaceLayoutInfo.cs
- ResourcePermissionBase.cs
- odbcmetadatacolumnnames.cs
- PaperSource.cs
- MasterPageBuildProvider.cs
- EventLog.cs
- TreeViewEvent.cs
- StringFunctions.cs
- FormCollection.cs
- BamlTreeMap.cs
- AdPostCacheSubstitution.cs
- TranslateTransform3D.cs
- SpeechDetectedEventArgs.cs
- SerializationException.cs
- ResourceProviderFactory.cs
- DataGridViewLinkColumn.cs
- NumericExpr.cs
- MobileControlDesigner.cs
- DataControlReferenceCollection.cs
- ObjectAnimationUsingKeyFrames.cs
- ToolStripProgressBar.cs
- RequestSecurityTokenResponseCollection.cs
- CompiledQuery.cs
- DupHandleConnectionReader.cs
- SchemaConstraints.cs
- GlyphsSerializer.cs
- InputBinding.cs
- HandlerWithFactory.cs
- DataQuery.cs
- InvokeGenerator.cs
- ItemsControl.cs
- CodeGotoStatement.cs
- InvocationExpression.cs
- ProfileService.cs
- NativeRecognizer.cs
- HashMembershipCondition.cs
- GridViewRow.cs
- SignatureHelper.cs
- AliasExpr.cs
- SkewTransform.cs
- FileDialogCustomPlace.cs
- wgx_sdk_version.cs
- BinaryReader.cs
- ServicePointManager.cs
- WinInet.cs