Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / InterOp / Imaging.cs / 1 / 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: dwaynen (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: dwaynen (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
- InfoCardSymmetricCrypto.cs
- ReadOnlyDictionary.cs
- Latin1Encoding.cs
- CachedTypeface.cs
- CompressedStack.cs
- XmlBinaryReader.cs
- ListViewSortEventArgs.cs
- ServiceDescriptionData.cs
- FloatMinMaxAggregationOperator.cs
- DuplexChannel.cs
- InheritanceAttribute.cs
- SerialStream.cs
- ProviderException.cs
- ToolboxItemCollection.cs
- LinearGradientBrush.cs
- EventToken.cs
- ConfigurationValues.cs
- File.cs
- SplineQuaternionKeyFrame.cs
- ExpressionVisitor.cs
- WebReferencesBuildProvider.cs
- WebPartEditorCancelVerb.cs
- MimeXmlImporter.cs
- ProxyAttribute.cs
- Asn1IntegerConverter.cs
- Bidi.cs
- StandardCommands.cs
- CheckBoxList.cs
- TextDecoration.cs
- SerializationInfoEnumerator.cs
- MergeFailedEvent.cs
- RoleService.cs
- FontStyles.cs
- SequentialOutput.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- XsltCompileContext.cs
- Error.cs
- ReadOnlyDataSource.cs
- BufferModesCollection.cs
- MtomMessageEncoder.cs
- ToolboxComponentsCreatedEventArgs.cs
- XamlValidatingReader.cs
- Documentation.cs
- TraceFilter.cs
- DrawingBrush.cs
- WSHttpBindingCollectionElement.cs
- SerializationFieldInfo.cs
- SoapSchemaExporter.cs
- SafeHandles.cs
- QilPatternFactory.cs
- CharacterMetrics.cs
- ColorAnimationUsingKeyFrames.cs
- NativeMethods.cs
- ObjectDataSourceFilteringEventArgs.cs
- PingOptions.cs
- relpropertyhelper.cs
- EndPoint.cs
- VarInfo.cs
- SecurityRuntime.cs
- Schema.cs
- InternalPermissions.cs
- FontFamily.cs
- ProtocolImporter.cs
- TableSectionStyle.cs
- Column.cs
- HyperLink.cs
- X509Utils.cs
- DataGridViewCell.cs
- TreeNodeCollection.cs
- XmlSerializer.cs
- StylusButton.cs
- EventRecord.cs
- DataSourceExpression.cs
- DeploymentSectionCache.cs
- Label.cs
- HybridObjectCache.cs
- DefaultTextStoreTextComposition.cs
- Vector3DConverter.cs
- BooleanSwitch.cs
- AutomationAttributeInfo.cs
- SQLStringStorage.cs
- StatusBarAutomationPeer.cs
- DetailsViewInsertEventArgs.cs
- OleDbCommandBuilder.cs
- CodeNamespace.cs
- AccessorTable.cs
- XmlnsCache.cs
- ProfileModule.cs
- DataContractSerializerOperationGenerator.cs
- DoubleSumAggregationOperator.cs
- StringStorage.cs
- BeginCreateSecurityTokenRequest.cs
- WebPartEditorOkVerb.cs
- securitycriticaldataformultiplegetandset.cs
- HttpCacheVary.cs
- MultipartContentParser.cs
- TabItem.cs
- SevenBitStream.cs
- BatchParser.cs
- UserControlAutomationPeer.cs