zoukankan      html  css  js  c++  java
  • C# WebBrowser NativeMethods

    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace HttpBrowserApp
    {
        class NativeMethods
        {
            [ComImport]
            [Guid("0000010D-0000-0000-C000-000000000046")]
            [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
            interface IViewObject
            {
                void Draw([MarshalAs(UnmanagedType.U4)] uint dwAspect, int lindex, IntPtr pvAspect, [In] IntPtr ptd, IntPtr hdcTargetDev, IntPtr hdcDraw, [MarshalAs(UnmanagedType.Struct)] ref RECT lprcBounds, [In] IntPtr lprcWBounds, IntPtr pfnContinue, [MarshalAs(UnmanagedType.U4)] uint dwContinue);
            }
    
            [StructLayout(LayoutKind.Sequential, Pack = 4)]
            struct RECT
            {
                public int Left;
                public int Top;
                public int Right;
                public int Bottom;
            }
    
            public static void GetImage(object obj, Image destination, Color backgroundColor)
            {
                using (Graphics graphics = Graphics.FromImage(destination))
                {
                    IntPtr deviceContextHandle = IntPtr.Zero;
                    RECT rectangle = new RECT();
    
                    rectangle.Right = destination.Width;
                    rectangle.Bottom = destination.Height;
    
                    graphics.Clear(backgroundColor);
    
                    try
                    {
                        deviceContextHandle = graphics.GetHdc();
    
                        IViewObject viewObject = obj as IViewObject;
                        viewObject.Draw(1, -1, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, deviceContextHandle, ref rectangle, IntPtr.Zero, IntPtr.Zero, 0);
                    }
                    finally
                    {
                        if (deviceContextHandle != IntPtr.Zero)
                        {
                            graphics.ReleaseHdc(deviceContextHandle);
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    文件上传利器JQuery上传插件Uploadify
    记自己的第一个完整的java web项目
    win7下oracle的安装
    Linux下redis的安装
    微信公众号开发地理位置坐标的转换
    Apache Log4j配置说明
    eclipse安装svn插件
    网站引入外部js
    蛇形填数
    第一节:Scrapy开源框架初探
  • 原文地址:https://www.cnblogs.com/Googler/p/3723564.html
Copyright © 2011-2022 走看看