Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / SplashScreenNativeMethods.cs / 1305600 / SplashScreenNativeMethods.cs
using System; using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; using System.Security; using System.Windows; using Microsoft.Internal; namespace MS.Win32 { internal sealed partial class UnsafeNativeMethods { [SecurityCritical(SecurityCriticalScope.Everything), SuppressUnmanagedCodeSecurity] internal class WIC { #region Constants internal const int WINCODEC_SDK_VERSION = 0x0236; internal static readonly Guid WICPixelFormat32bppPBGRA = new Guid(0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10); #endregion [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICCreateImagingFactory_Proxy")] internal static extern int CreateImagingFactory( UInt32 SDKVersion, out IntPtr ppICodecFactory); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateStream_Proxy")] internal static extern int /* HRESULT */ CreateStream( IntPtr pICodecFactory, out IntPtr /* IWICBitmapStream */ ppIStream); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICStream_InitializeFromMemory_Proxy")] internal static extern int /*HRESULT*/ InitializeStreamFromMemory( IntPtr pIWICStream, IntPtr pbBuffer, uint cbSize); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateDecoderFromStream_Proxy")] internal static extern int /*HRESULT*/ CreateDecoderFromStream( IntPtr pICodecFactory, IntPtr /* IStream */ pIStream, ref Guid guidVendor, UInt32 metadataFlags, out IntPtr /* IWICBitmapDecoder */ ppIDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetFrame_Proxy")] internal static extern int /* HRESULT */ GetFrame( IntPtr /* IWICBitmapDecoder */ THIS_PTR, UInt32 index, out IntPtr /* IWICBitmapFrameDecode */ ppIFrameDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateFormatConverter_Proxy")] internal static extern int /* HRESULT */ CreateFormatConverter( IntPtr pICodecFactory, out IntPtr /* IWICFormatConverter */ ppFormatConverter); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICFormatConverter_Initialize_Proxy")] internal static extern int /* HRESULT */ InitializeFormatConverter( IntPtr /* IWICFormatConverter */ THIS_PTR, IntPtr /* IWICBitmapSource */ source, ref Guid dstFormat, int dither, IntPtr /* IWICBitmapPalette */ bitmapPalette, double alphaThreshold, WICPaletteType paletteTranslate); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFlipRotator_Proxy")] internal static extern int /* HRESULT */ CreateBitmapFlipRotator( IntPtr pICodecFactory, out IntPtr /* IWICBitmapFlipRotator */ ppBitmapFlipRotator); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFlipRotator_Initialize_Proxy")] internal static extern int /* HRESULT */ InitializeBitmapFlipRotator( IntPtr /* IWICBitmapFlipRotator */ THIS_PTR, IntPtr /* IWICBitmapSource */ source, WICBitmapTransformOptions options); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_GetSize_Proxy")] internal static extern int /* HRESULT */ GetBitmapSize( IntPtr /* IWICBitmapSource */ THIS_PTR, out Int32 puiWidth, out Int32 puiHeight); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_CopyPixels_Proxy")] internal static extern int /* HRESULT */ CopyPixels( IntPtr /* IWICBitmapSource */ THIS_PTR, ref Int32Rect prc, Int32 cbStride, Int32 cbBufferSize, IntPtr /* BYTE* */ pvPixels); #region enums internal enum WICBitmapTransformOptions { WICBitmapTransformRotate0 = 0, WICBitmapTransformRotate90 = 0x1, WICBitmapTransformRotate180 = 0x2, WICBitmapTransformRotate270 = 0x3, WICBitmapTransformFlipHorizontal = 0x8, WICBitmapTransformFlipVertical = 0x10 } internal enum WICPaletteType { WICPaletteTypeCustom = 0, WICPaletteTypeOptimal = 1, WICPaletteTypeFixedBW = 2, WICPaletteTypeFixedHalftone8 = 3, WICPaletteTypeFixedHalftone27 = 4, WICPaletteTypeFixedHalftone64 = 5, WICPaletteTypeFixedHalftone125 = 6, WICPaletteTypeFixedHalftone216 = 7, WICPaletteTypeFixedWebPalette = 7, WICPaletteTypeFixedHalftone252 = 8, WICPaletteTypeFixedHalftone256 = 9, WICPaletteTypeFixedGray4 = 10, WICPaletteTypeFixedGray16 = 11, WICPaletteTypeFixedGray256 = 12 }; #endregion } internal class HRESULT { ////// Critical: This calls into Marshal.ThrowExceptionForHR which has a link demand /// Safe: Throwing an exception is deemed as a safe operation (throwing exceptions is allowed in Partial Trust). /// We ensure the call to ThrowExceptionForHR is safe since we pass an IntPtr that has a value of -1 so that /// ThrowExceptionForHR ignores IErrorInfo of the current thread, which could reveal critical information otherwise. /// [SecuritySafeCritical] public static void Check(int hr) { if (hr >= 0) { return; } else { // PresentationCore (wgx_render.cs) has a more complete system // for converting hresults to exceptions for MIL and windows codecs // but for splash screen we don't want to take a dependency on core. Marshal.ThrowExceptionForHR(hr, (IntPtr)(-1)); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; using System.Security; using System.Windows; using Microsoft.Internal; namespace MS.Win32 { internal sealed partial class UnsafeNativeMethods { [SecurityCritical(SecurityCriticalScope.Everything), SuppressUnmanagedCodeSecurity] internal class WIC { #region Constants internal const int WINCODEC_SDK_VERSION = 0x0236; internal static readonly Guid WICPixelFormat32bppPBGRA = new Guid(0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10); #endregion [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICCreateImagingFactory_Proxy")] internal static extern int CreateImagingFactory( UInt32 SDKVersion, out IntPtr ppICodecFactory); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateStream_Proxy")] internal static extern int /* HRESULT */ CreateStream( IntPtr pICodecFactory, out IntPtr /* IWICBitmapStream */ ppIStream); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICStream_InitializeFromMemory_Proxy")] internal static extern int /*HRESULT*/ InitializeStreamFromMemory( IntPtr pIWICStream, IntPtr pbBuffer, uint cbSize); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateDecoderFromStream_Proxy")] internal static extern int /*HRESULT*/ CreateDecoderFromStream( IntPtr pICodecFactory, IntPtr /* IStream */ pIStream, ref Guid guidVendor, UInt32 metadataFlags, out IntPtr /* IWICBitmapDecoder */ ppIDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetFrame_Proxy")] internal static extern int /* HRESULT */ GetFrame( IntPtr /* IWICBitmapDecoder */ THIS_PTR, UInt32 index, out IntPtr /* IWICBitmapFrameDecode */ ppIFrameDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateFormatConverter_Proxy")] internal static extern int /* HRESULT */ CreateFormatConverter( IntPtr pICodecFactory, out IntPtr /* IWICFormatConverter */ ppFormatConverter); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICFormatConverter_Initialize_Proxy")] internal static extern int /* HRESULT */ InitializeFormatConverter( IntPtr /* IWICFormatConverter */ THIS_PTR, IntPtr /* IWICBitmapSource */ source, ref Guid dstFormat, int dither, IntPtr /* IWICBitmapPalette */ bitmapPalette, double alphaThreshold, WICPaletteType paletteTranslate); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFlipRotator_Proxy")] internal static extern int /* HRESULT */ CreateBitmapFlipRotator( IntPtr pICodecFactory, out IntPtr /* IWICBitmapFlipRotator */ ppBitmapFlipRotator); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFlipRotator_Initialize_Proxy")] internal static extern int /* HRESULT */ InitializeBitmapFlipRotator( IntPtr /* IWICBitmapFlipRotator */ THIS_PTR, IntPtr /* IWICBitmapSource */ source, WICBitmapTransformOptions options); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_GetSize_Proxy")] internal static extern int /* HRESULT */ GetBitmapSize( IntPtr /* IWICBitmapSource */ THIS_PTR, out Int32 puiWidth, out Int32 puiHeight); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_CopyPixels_Proxy")] internal static extern int /* HRESULT */ CopyPixels( IntPtr /* IWICBitmapSource */ THIS_PTR, ref Int32Rect prc, Int32 cbStride, Int32 cbBufferSize, IntPtr /* BYTE* */ pvPixels); #region enums internal enum WICBitmapTransformOptions { WICBitmapTransformRotate0 = 0, WICBitmapTransformRotate90 = 0x1, WICBitmapTransformRotate180 = 0x2, WICBitmapTransformRotate270 = 0x3, WICBitmapTransformFlipHorizontal = 0x8, WICBitmapTransformFlipVertical = 0x10 } internal enum WICPaletteType { WICPaletteTypeCustom = 0, WICPaletteTypeOptimal = 1, WICPaletteTypeFixedBW = 2, WICPaletteTypeFixedHalftone8 = 3, WICPaletteTypeFixedHalftone27 = 4, WICPaletteTypeFixedHalftone64 = 5, WICPaletteTypeFixedHalftone125 = 6, WICPaletteTypeFixedHalftone216 = 7, WICPaletteTypeFixedWebPalette = 7, WICPaletteTypeFixedHalftone252 = 8, WICPaletteTypeFixedHalftone256 = 9, WICPaletteTypeFixedGray4 = 10, WICPaletteTypeFixedGray16 = 11, WICPaletteTypeFixedGray256 = 12 }; #endregion } internal class HRESULT { ////// Critical: This calls into Marshal.ThrowExceptionForHR which has a link demand /// Safe: Throwing an exception is deemed as a safe operation (throwing exceptions is allowed in Partial Trust). /// We ensure the call to ThrowExceptionForHR is safe since we pass an IntPtr that has a value of -1 so that /// ThrowExceptionForHR ignores IErrorInfo of the current thread, which could reveal critical information otherwise. /// [SecuritySafeCritical] public static void Check(int hr) { if (hr >= 0) { return; } else { // PresentationCore (wgx_render.cs) has a more complete system // for converting hresults to exceptions for MIL and windows codecs // but for splash screen we don't want to take a dependency on core. Marshal.ThrowExceptionForHR(hr, (IntPtr)(-1)); } } } } } // 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
- CategoryGridEntry.cs
- Point4D.cs
- StateItem.cs
- AnnotationComponentChooser.cs
- InkCanvasSelectionAdorner.cs
- CustomErrorsSectionWrapper.cs
- ScrollChrome.cs
- EventHandlerList.cs
- AvTraceFormat.cs
- HuffmanTree.cs
- D3DImage.cs
- CommandDevice.cs
- StandardCommands.cs
- BitmapEffectDrawing.cs
- SqlServer2KCompatibilityAnnotation.cs
- SqlCacheDependencyDatabase.cs
- DateTimeSerializationSection.cs
- AnyReturnReader.cs
- AQNBuilder.cs
- ManagedWndProcTracker.cs
- DataRowChangeEvent.cs
- ObjectSpanRewriter.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- XmlAttributeCollection.cs
- MethodImplAttribute.cs
- ConfigurationSectionHelper.cs
- SettingsPropertyValue.cs
- RadioButtonBaseAdapter.cs
- ControlBuilder.cs
- WebAdminConfigurationHelper.cs
- Label.cs
- MimeBasePart.cs
- DataGridViewCellCancelEventArgs.cs
- RadioButtonList.cs
- TreeNodeEventArgs.cs
- ImplicitInputBrush.cs
- URI.cs
- InstanceKeyCollisionException.cs
- FunctionDetailsReader.cs
- BitmapEffectRenderDataResource.cs
- DynamicPropertyHolder.cs
- CaseInsensitiveOrdinalStringComparer.cs
- BezierSegment.cs
- BufferedGraphics.cs
- SqlXmlStorage.cs
- InheritablePropertyChangeInfo.cs
- MessageHeaderAttribute.cs
- _ListenerRequestStream.cs
- XmlNode.cs
- XmlSchemaValidationException.cs
- KeyValuePairs.cs
- Utils.cs
- ConnectionDemuxer.cs
- CaseInsensitiveHashCodeProvider.cs
- NativeMethods.cs
- LostFocusEventManager.cs
- MissingMemberException.cs
- DataTemplateSelector.cs
- TreeViewEvent.cs
- NameTable.cs
- StructuredCompositeActivityDesigner.cs
- Delay.cs
- ClientConfigurationHost.cs
- TriggerBase.cs
- RNGCryptoServiceProvider.cs
- Attributes.cs
- DataGridViewCellStateChangedEventArgs.cs
- DemultiplexingClientMessageFormatter.cs
- MD5.cs
- IPAddress.cs
- WebPartTransformerAttribute.cs
- SHA1Managed.cs
- PeerTransportListenAddressValidator.cs
- PanelStyle.cs
- MetadataPropertyAttribute.cs
- StrongNameMembershipCondition.cs
- AutomationPeer.cs
- StreamGeometry.cs
- TransformConverter.cs
- Positioning.cs
- DoubleSumAggregationOperator.cs
- EntityParameterCollection.cs
- DiscoveryRequestHandler.cs
- RightsManagementLicense.cs
- CaseExpr.cs
- ListBindingConverter.cs
- MenuCommandsChangedEventArgs.cs
- FlowNode.cs
- MemoryFailPoint.cs
- XslTransformFileEditor.cs
- DiscoveryClientDocuments.cs
- AudioFileOut.cs
- PermissionSetTriple.cs
- QuaternionAnimationBase.cs
- DocumentPageTextView.cs
- SolidColorBrush.cs
- ColumnMapVisitor.cs
- RepeaterItemCollection.cs
- BeginSelectCardRequest.cs
- NavigationProperty.cs