Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CollectionViewGroup.cs
- DBSqlParserColumn.cs
- DESCryptoServiceProvider.cs
- TextRange.cs
- TextPointerBase.cs
- TextSearch.cs
- FileUtil.cs
- PolyBezierSegment.cs
- DataGridViewRowPostPaintEventArgs.cs
- ElasticEase.cs
- DbConnectionStringCommon.cs
- NameSpaceExtractor.cs
- ChannelTraceRecord.cs
- ChooseAction.cs
- ListViewDataItem.cs
- RoleManagerModule.cs
- LocalizableResourceBuilder.cs
- WindowsListViewItem.cs
- LassoHelper.cs
- ToolConsole.cs
- ContentValidator.cs
- XappLauncher.cs
- Viewport3DAutomationPeer.cs
- QueryAccessibilityHelpEvent.cs
- CustomTypeDescriptor.cs
- ServiceOperationParameter.cs
- QilExpression.cs
- GeneralTransform.cs
- LogSwitch.cs
- shaper.cs
- AccessDataSourceWizardForm.cs
- PriorityQueue.cs
- Single.cs
- EventRouteFactory.cs
- AttributeEmitter.cs
- ManagementOperationWatcher.cs
- ContextStaticAttribute.cs
- ProcessRequestArgs.cs
- FragmentQueryProcessor.cs
- Buffer.cs
- PageBuildProvider.cs
- TableAutomationPeer.cs
- StylusLogic.cs
- OdbcParameterCollection.cs
- StrongNamePublicKeyBlob.cs
- TypeSemantics.cs
- XmlQueryCardinality.cs
- Vars.cs
- KeyValueInternalCollection.cs
- ValidateNames.cs
- FramingEncoders.cs
- ProfilePropertyNameValidator.cs
- DataServices.cs
- ListenerBinder.cs
- BufferedWebEventProvider.cs
- StringArrayConverter.cs
- CardSpacePolicyElement.cs
- TableChangeProcessor.cs
- HtmlTernaryTree.cs
- EntityKeyElement.cs
- HTTPRemotingHandler.cs
- DataGridViewTextBoxCell.cs
- ListViewDesigner.cs
- Debug.cs
- Decimal.cs
- SignatureDescription.cs
- TextParagraphCache.cs
- ThicknessAnimation.cs
- XmlSchemaSimpleContent.cs
- DataContext.cs
- RenderingEventArgs.cs
- DataList.cs
- _NestedMultipleAsyncResult.cs
- EndEvent.cs
- NativeMethods.cs
- FrameSecurityDescriptor.cs
- AddressHeaderCollection.cs
- TdsParserStateObject.cs
- HtmlInputRadioButton.cs
- ColorMap.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- StrongNameUtility.cs
- CheckedPointers.cs
- StatusBar.cs
- ExpandoObject.cs
- TreeNodeBindingCollection.cs
- MemberInfoSerializationHolder.cs
- FixedDSBuilder.cs
- PropertyEmitterBase.cs
- ObjectDisposedException.cs
- EnumerableValidator.cs
- MouseOverProperty.cs
- Visual3D.cs
- GroupLabel.cs
- SimplePropertyEntry.cs
- RTTypeWrapper.cs
- ManagementNamedValueCollection.cs
- XmlSchemaSet.cs
- Metafile.cs
- HttpApplicationStateBase.cs