public static IWICBitmapDecoder CreateDecoderFromFileHandle(this IWICImagingFactory imagingFactory, IntPtr hFile, WICDecodeOptions metadataOptions, Guid?pguidVendor = null) { using (var pguidVendorPtr = CoTaskMemPtr.From(pguidVendor)) { return(imagingFactory.CreateDecoderFromFileHandle(hFile, pguidVendorPtr, metadataOptions)); } }
public static IComObject <IWICBitmapDecoder> CreateDecoderFromFileHandle(this IWICImagingFactory factory, IntPtr handle, Guid?guidVendor = null, WICDecodeOptions metadataOptions = WICDecodeOptions.WICDecodeMetadataCacheOnDemand) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } using (var guid = new ComMemory(guidVendor)) { factory.CreateDecoderFromFileHandle(handle, guid.Pointer, metadataOptions, out var value).ThrowOnError(); return(new ComObject <IWICBitmapDecoder>(value)); } }