WindowExtensionMethods.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / WindowExtensionMethods.cs / 1305376 / WindowExtensionMethods.cs

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

namespace System.Activities.Presentation.View 
{
    using System.Runtime.InteropServices; 
    using System.Windows; 
    using System.Windows.Interop;
 
    static class WindowExtensionMethods
    {
        public static void ShowContextHelpButton(this Window window)
        { 
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
            IntPtr exStyle = Win32Interop.GetWindowLongPtr(hwnd, Win32Interop.GWL_EXSTYLE); 
            if (IntPtr.Size == 4) 
            {
                exStyle = new IntPtr(exStyle.ToInt32() | Win32Interop.WS_EX_CONTEXTHELP); 
            }
            else
            {
                exStyle = new IntPtr(exStyle.ToInt64() | ((long)Win32Interop.WS_EX_CONTEXTHELP)); 
            }
            Win32Interop.SetWindowLongPtr(new HandleRef(window, hwnd), Win32Interop.GWL_EXSTYLE, exStyle); 
        } 

        public static void HideMinMaxButton(this Window window) 
        {
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
            IntPtr style = Win32Interop.GetWindowLongPtr(hwnd, Win32Interop.GWL_STYLE);
            if (IntPtr.Size == 4) 
            {
                int intValue = style.ToInt32(); 
                intValue = SetBit(Win32Interop.WS_MAXIMIZEBOX, intValue, false); 
                intValue = SetBit(Win32Interop.WS_MINIMIZEBOX, intValue, false);
                style = new IntPtr(intValue); 
            }
            else
            {
                long longValue = style.ToInt64(); 
                longValue = SetBit((long)Win32Interop.WS_MAXIMIZEBOX, longValue, false);
                longValue = SetBit((long)Win32Interop.WS_MINIMIZEBOX, longValue, false); 
                style = new IntPtr(longValue); 
            }
            Win32Interop.SetWindowLongPtr(new HandleRef(window, hwnd), Win32Interop.GWL_STYLE, style); 
        }

        public static void AddWindowsHook(this Window window, HwndSourceHook wmHandler)
        { 
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
            HwndSource source = HwndSource.FromHwnd(hwnd); 
            source.AddHook(wmHandler); 
        }
 
        public static void RemoveWindowsHook(this Window window, HwndSourceHook wmHandler)
        {
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
            HwndSource source = HwndSource.FromHwnd(hwnd); 
            source.RemoveHook(wmHandler);
        } 
 
        public static void HideIcon(this Window window)
        { 
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
            IntPtr exStyle = Win32Interop.GetWindowLongPtr(hwnd, Win32Interop.GWL_EXSTYLE);
            if (IntPtr.Size == 4)
            { 
                exStyle = new IntPtr(exStyle.ToInt32() | Win32Interop.WS_EX_DLGMODALFRAME);
            } 
            else 
            {
                exStyle = new IntPtr(exStyle.ToInt64() | ((long)Win32Interop.WS_EX_DLGMODALFRAME)); 
            }
            Win32Interop.SetWindowLongPtr(new HandleRef(window, hwnd), Win32Interop.GWL_EXSTYLE, exStyle);

            Win32Interop.SendMessage(hwnd, Win32Interop.WM_SETICON, new IntPtr(Win32Interop.ICON_SMALL), IntPtr.Zero); 
            Win32Interop.SendMessage(hwnd, Win32Interop.WM_SETICON, new IntPtr(Win32Interop.ICON_BIG), IntPtr.Zero);
        } 
 
        private static long SetBit(long mask, long value, bool flag)
        { 
            if (flag)
            {
                return value | mask;
            } 
            else
            { 
                return value & ~mask; 
            }
        } 

        private static int SetBit(int mask, int value, bool flag)
        {
            if (flag) 
            {
                return value | mask; 
            } 
            else
            { 
                return value & ~mask;
            }
        }
    } 
}

// 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