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
- InitializerFacet.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- SqlWebEventProvider.cs
- ETagAttribute.cs
- TokenBasedSet.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- UidManager.cs
- ListBindingConverter.cs
- HtmlShim.cs
- Icon.cs
- EventMappingSettingsCollection.cs
- OutputCacheModule.cs
- RelationshipConstraintValidator.cs
- MaskInputRejectedEventArgs.cs
- LabelDesigner.cs
- DataGridCell.cs
- XPathNodeIterator.cs
- BrowserCapabilitiesCodeGenerator.cs
- RadialGradientBrush.cs
- ThemeDirectoryCompiler.cs
- PlacementWorkspace.cs
- CommandHelpers.cs
- OdbcDataReader.cs
- BatchWriter.cs
- EventsTab.cs
- WebPartPersonalization.cs
- ListInitExpression.cs
- HtmlElementEventArgs.cs
- ControlCachePolicy.cs
- WorkflowRuntimeElement.cs
- GroupBoxAutomationPeer.cs
- _NtlmClient.cs
- SrgsText.cs
- Figure.cs
- CategoryNameCollection.cs
- WebAdminConfigurationHelper.cs
- BitmapFrameEncode.cs
- Win32MouseDevice.cs
- GridViewUpdatedEventArgs.cs
- FocusManager.cs
- AuthStoreRoleProvider.cs
- HttpSocketManager.cs
- XmlValidatingReader.cs
- StylusPlugin.cs
- RSAPKCS1KeyExchangeFormatter.cs
- GeometryCombineModeValidation.cs
- NullRuntimeConfig.cs
- SearchForVirtualItemEventArgs.cs
- TraceUtils.cs
- Ops.cs
- SqlWorkflowInstanceStoreLock.cs
- DataListItem.cs
- MappingModelBuildProvider.cs
- DefaultClaimSet.cs
- RIPEMD160.cs
- COM2IDispatchConverter.cs
- InputScopeAttribute.cs
- PointValueSerializer.cs
- odbcmetadatacollectionnames.cs
- SynchronizationLockException.cs
- WebConfigurationFileMap.cs
- ClaimSet.cs
- Operand.cs
- SystemIcons.cs
- CodeMemberMethod.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- dsa.cs
- QueryLifecycle.cs
- DesignerActionPanel.cs
- TextDecoration.cs
- ScriptingRoleServiceSection.cs
- XmlTypeAttribute.cs
- ProtocolViolationException.cs
- EntitySet.cs
- MenuItemBinding.cs
- CodeRemoveEventStatement.cs
- RuntimeHelpers.cs
- ModulesEntry.cs
- sqlser.cs
- ToolStripStatusLabel.cs
- ListViewDeletedEventArgs.cs
- DrawingBrush.cs
- ToolStripContainerActionList.cs
- ColorContext.cs
- MenuAdapter.cs
- TextEditorSpelling.cs
- SqlUDTStorage.cs
- DoubleCollectionConverter.cs
- WebPartDisplayModeCollection.cs
- XmlDocumentFragment.cs
- DependencyPropertyKind.cs
- EmptyEnumerator.cs
- HandlerMappingMemo.cs
- RecognizerStateChangedEventArgs.cs
- CatalogPartChrome.cs
- MsmqIntegrationProcessProtocolHandler.cs
- CatalogZoneBase.cs
- RequestCacheValidator.cs
- Region.cs
- TimelineCollection.cs