WebBrowserHelper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / WebBrowserHelper.cs / 1305376 / WebBrowserHelper.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System.Runtime.Serialization.Formatters.Binary; 
using System.Threading; 
using System.Configuration.Assemblies;
using System.Runtime.Remoting; 
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.ComponentModel;
using System.Diagnostics; 
using System;
using System.Reflection; 
using System.Globalization; 
using System.Security.Permissions;
using Microsoft.Win32; 
using System.Collections;
using System.Collections.Specialized;
using System.IO;
using System.Drawing; 
using System.Windows.Forms.Design;
using System.Windows.Forms.ComponentModel; 
using System.Windows.Forms.ComponentModel.Com2Interop; 
using System.ComponentModel.Design;
using System.Windows.Forms; 
using System.Drawing.Imaging;
using System.Drawing.Design;

namespace System.Windows.Forms { 
    //
    // This class contains static properties/methods that are internal. 
    // It also has types that make sense only for ActiveX hosting classes. 
    // In other words, this is a helper class for the ActiveX hosting classes.
    // 
    internal static class WebBrowserHelper {
        //
        // Types:
        // 

        // 
        // Enumeration of the different states of the ActiveX control 
        internal enum AXState {
            Passive = 0,        // Not loaded 
            Loaded = 1,         // Loaded, but no server   [ocx created]
            Running = 2,        // Server running, invisible [depersisted]
            InPlaceActive = 4,  // Server in-place active [visible]
            UIActive = 8        // Used only by WebBrowserSiteBase 
        }
        // 
        // Enumeration of the different Edit modes 
        internal enum AXEditMode {
            None = 0,       // object not being edited 
            Object = 1,     // object provided an edit verb and we invoked it
            Host = 2        // we invoked our own edit verb
        };
        // 
        // Enumeration of Selection Styles
        internal enum SelectionStyle { 
            NotSelected = 0, 
            Selected = 1,
            Active = 2 
        };


        // 
        // Static members:
        // 
 
        //
        // BitVector32 masks for various internal state flags. 
        internal static readonly int sinkAttached = BitVector32.CreateMask();
        internal static readonly int manualUpdate = BitVector32.CreateMask(sinkAttached);
        internal static readonly int setClientSiteFirst = BitVector32.CreateMask(manualUpdate);
        internal static readonly int addedSelectionHandler = BitVector32.CreateMask(setClientSiteFirst); 
        internal static readonly int siteProcessedInputKey = BitVector32.CreateMask(addedSelectionHandler);
        internal static readonly int inTransition = BitVector32.CreateMask(siteProcessedInputKey); 
        internal static readonly int processingKeyUp = BitVector32.CreateMask(inTransition); 
        internal static readonly int isMaskEdit = BitVector32.CreateMask(processingKeyUp);
        internal static readonly int recomputeContainingControl = BitVector32.CreateMask(isMaskEdit); 
        //
        // Gets the LOGPIXELSX of the screen DC.
        private static int logPixelsX = -1;
        private static int logPixelsY = -1; 
        private const int HMperInch = 2540;
        // 
        // Special guids 
        private static Guid ifont_Guid = typeof(UnsafeNativeMethods.IFont).GUID;
        internal  static Guid windowsMediaPlayer_Clsid = new Guid("{22d6f312-b0f6-11d0-94ab-0080c74c7e95}"); 
        internal  static Guid comctlImageCombo_Clsid   = new Guid("{a98a24c0-b06f-3684-8c12-c52ae341e0bc}");
        internal  static Guid maskEdit_Clsid           = new Guid("{c932ba85-4374-101b-a56c-00aa003668dc}");
        //
        // Window message to check if we have already sub-classed 
        internal static readonly int REGMSG_MSG = SafeNativeMethods.RegisterWindowMessage(Application.WindowMessagesVersion + "_subclassCheck");
        internal const int REGMSG_RETVAL = 123; 
 

        // 
        // Static helper methods:
        //

        internal static int Pix2HM(int pix, int logP) { 
            return(HMperInch * pix + ( logP >> 1)) / logP;
        } 
 
        internal static int HM2Pix(int hm, int logP) {
            return(logP * hm + HMperInch / 2) / HMperInch; 
        }

        //
        // We cache LOGPIXELSX for optimization 
        internal static int LogPixelsX {
            get { 
                if (logPixelsX == -1) { 
                    IntPtr hDC = UnsafeNativeMethods.GetDC(NativeMethods.NullHandleRef);
                    if (hDC != IntPtr.Zero) { 
                        logPixelsX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(null, hDC), NativeMethods.LOGPIXELSX);
                        UnsafeNativeMethods.ReleaseDC(NativeMethods.NullHandleRef, new HandleRef(null, hDC));
                    }
                } 
                return logPixelsX;
            } 
        } 
        internal static void ResetLogPixelsX() {
            logPixelsX = -1; 
        }

        //
        // We cache LOGPIXELSY for optimization 
        internal static int LogPixelsY {
            get { 
                if (logPixelsY == -1) { 
                    IntPtr hDC = UnsafeNativeMethods.GetDC(NativeMethods.NullHandleRef);
                    if (hDC != IntPtr.Zero) { 
                        logPixelsY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(null, hDC), NativeMethods.LOGPIXELSY);
                        UnsafeNativeMethods.ReleaseDC(NativeMethods.NullHandleRef, new HandleRef(null, hDC));
                    }
                } 
                return logPixelsY;
            } 
        } 
        internal static void ResetLogPixelsY() {
            logPixelsY = -1; 
        }


        // 
        // Gets the selection service from the control's site
        internal static ISelectionService GetSelectionService(Control ctl) { 
            ISite site = ctl.Site; 
            if (site != null) {
                Object o = site.GetService(typeof(ISelectionService)); 
                Debug.Assert(o == null || o is ISelectionService, "service must implement ISelectionService");
                if (o is ISelectionService) {
                    return(ISelectionService) o;
                } 
            }
            return null; 
        } 

        // 
        // Returns a big COMRECT
        internal static NativeMethods.COMRECT GetClipRect() {
            return new NativeMethods.COMRECT(new Rectangle(0, 0, 32000, 32000));
        } 
    }
} 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System.Runtime.Serialization.Formatters.Binary; 
using System.Threading; 
using System.Configuration.Assemblies;
using System.Runtime.Remoting; 
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.ComponentModel;
using System.Diagnostics; 
using System;
using System.Reflection; 
using System.Globalization; 
using System.Security.Permissions;
using Microsoft.Win32; 
using System.Collections;
using System.Collections.Specialized;
using System.IO;
using System.Drawing; 
using System.Windows.Forms.Design;
using System.Windows.Forms.ComponentModel; 
using System.Windows.Forms.ComponentModel.Com2Interop; 
using System.ComponentModel.Design;
using System.Windows.Forms; 
using System.Drawing.Imaging;
using System.Drawing.Design;

namespace System.Windows.Forms { 
    //
    // This class contains static properties/methods that are internal. 
    // It also has types that make sense only for ActiveX hosting classes. 
    // In other words, this is a helper class for the ActiveX hosting classes.
    // 
    internal static class WebBrowserHelper {
        //
        // Types:
        // 

        // 
        // Enumeration of the different states of the ActiveX control 
        internal enum AXState {
            Passive = 0,        // Not loaded 
            Loaded = 1,         // Loaded, but no server   [ocx created]
            Running = 2,        // Server running, invisible [depersisted]
            InPlaceActive = 4,  // Server in-place active [visible]
            UIActive = 8        // Used only by WebBrowserSiteBase 
        }
        // 
        // Enumeration of the different Edit modes 
        internal enum AXEditMode {
            None = 0,       // object not being edited 
            Object = 1,     // object provided an edit verb and we invoked it
            Host = 2        // we invoked our own edit verb
        };
        // 
        // Enumeration of Selection Styles
        internal enum SelectionStyle { 
            NotSelected = 0, 
            Selected = 1,
            Active = 2 
        };


        // 
        // Static members:
        // 
 
        //
        // BitVector32 masks for various internal state flags. 
        internal static readonly int sinkAttached = BitVector32.CreateMask();
        internal static readonly int manualUpdate = BitVector32.CreateMask(sinkAttached);
        internal static readonly int setClientSiteFirst = BitVector32.CreateMask(manualUpdate);
        internal static readonly int addedSelectionHandler = BitVector32.CreateMask(setClientSiteFirst); 
        internal static readonly int siteProcessedInputKey = BitVector32.CreateMask(addedSelectionHandler);
        internal static readonly int inTransition = BitVector32.CreateMask(siteProcessedInputKey); 
        internal static readonly int processingKeyUp = BitVector32.CreateMask(inTransition); 
        internal static readonly int isMaskEdit = BitVector32.CreateMask(processingKeyUp);
        internal static readonly int recomputeContainingControl = BitVector32.CreateMask(isMaskEdit); 
        //
        // Gets the LOGPIXELSX of the screen DC.
        private static int logPixelsX = -1;
        private static int logPixelsY = -1; 
        private const int HMperInch = 2540;
        // 
        // Special guids 
        private static Guid ifont_Guid = typeof(UnsafeNativeMethods.IFont).GUID;
        internal  static Guid windowsMediaPlayer_Clsid = new Guid("{22d6f312-b0f6-11d0-94ab-0080c74c7e95}"); 
        internal  static Guid comctlImageCombo_Clsid   = new Guid("{a98a24c0-b06f-3684-8c12-c52ae341e0bc}");
        internal  static Guid maskEdit_Clsid           = new Guid("{c932ba85-4374-101b-a56c-00aa003668dc}");
        //
        // Window message to check if we have already sub-classed 
        internal static readonly int REGMSG_MSG = SafeNativeMethods.RegisterWindowMessage(Application.WindowMessagesVersion + "_subclassCheck");
        internal const int REGMSG_RETVAL = 123; 
 

        // 
        // Static helper methods:
        //

        internal static int Pix2HM(int pix, int logP) { 
            return(HMperInch * pix + ( logP >> 1)) / logP;
        } 
 
        internal static int HM2Pix(int hm, int logP) {
            return(logP * hm + HMperInch / 2) / HMperInch; 
        }

        //
        // We cache LOGPIXELSX for optimization 
        internal static int LogPixelsX {
            get { 
                if (logPixelsX == -1) { 
                    IntPtr hDC = UnsafeNativeMethods.GetDC(NativeMethods.NullHandleRef);
                    if (hDC != IntPtr.Zero) { 
                        logPixelsX = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(null, hDC), NativeMethods.LOGPIXELSX);
                        UnsafeNativeMethods.ReleaseDC(NativeMethods.NullHandleRef, new HandleRef(null, hDC));
                    }
                } 
                return logPixelsX;
            } 
        } 
        internal static void ResetLogPixelsX() {
            logPixelsX = -1; 
        }

        //
        // We cache LOGPIXELSY for optimization 
        internal static int LogPixelsY {
            get { 
                if (logPixelsY == -1) { 
                    IntPtr hDC = UnsafeNativeMethods.GetDC(NativeMethods.NullHandleRef);
                    if (hDC != IntPtr.Zero) { 
                        logPixelsY = UnsafeNativeMethods.GetDeviceCaps(new HandleRef(null, hDC), NativeMethods.LOGPIXELSY);
                        UnsafeNativeMethods.ReleaseDC(NativeMethods.NullHandleRef, new HandleRef(null, hDC));
                    }
                } 
                return logPixelsY;
            } 
        } 
        internal static void ResetLogPixelsY() {
            logPixelsY = -1; 
        }


        // 
        // Gets the selection service from the control's site
        internal static ISelectionService GetSelectionService(Control ctl) { 
            ISite site = ctl.Site; 
            if (site != null) {
                Object o = site.GetService(typeof(ISelectionService)); 
                Debug.Assert(o == null || o is ISelectionService, "service must implement ISelectionService");
                if (o is ISelectionService) {
                    return(ISelectionService) o;
                } 
            }
            return null; 
        } 

        // 
        // Returns a big COMRECT
        internal static NativeMethods.COMRECT GetClipRect() {
            return new NativeMethods.COMRECT(new Rectangle(0, 0, 32000, 32000));
        } 
    }
} 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK