Calling a Function with a Structure Parameter : Native Windows Function : Windows C# Examples


C# Examples » Windows » Native Windows Function »

 

Calling a Function with a Structure Parameter









    
//  Code  from  
//  A  Programmer's  Introduction  to  C#  2.0,  Third  Edition
//  copyright  2000  Eric  Gunnerson

using  System;
using  System.Runtime.InteropServices;

struct  Point
{
        public  int  x;
        public  int  y;
        
        public  override  string  ToString()
        {
                return(String.Format("({0},  {1})",  x,  y));
        }
}

struct  Rect
{
        public  int  left;
        public  int  top;
        public  int  right;
        public  int  bottom;
        
        public  override  string  ToString()
        {
                return(String.Format("({0},  {1})\n        ({2},  {3})",  left,  top,  right,  bottom));
        }
}

struct  WindowPlacement
{
        public  uint  length;
        public  uint  flags;
        public  uint  showCmd;
        public  Point  minPosition;
        public  Point  maxPosition;
        public  Rect  normalPosition;        
        
        public  override  string  ToString()
        {
                return(String.Format("min,  max,  normal:\n{0}\n{1}\n{2}",
                minPosition,  maxPosition,  normalPosition));
        }
}

class  MainClass
{
        [DllImport("user32")]
        static  extern  IntPtr  GetForegroundWindow();
        
        [DllImport("user32")]
        static  extern  bool  GetWindowPlacement(IntPtr  handle,  ref  WindowPlacement  wp);
        
        public  static  void  Main()
        {
                IntPtr  window  =  GetForegroundWindow();
                
                WindowPlacement  wp  =  new  WindowPlacement();
                wp.length  =  (uint)  Marshal.SizeOf(wp);
                
                bool  result  =  GetWindowPlacement(window,  ref  wp);
                
                if  (result)
                {
                        Console.WriteLine(wp);
                }
        }  
}
    
   
  
   



Output

min, max, normal:
(-32000, -32000)
(-60, -8)
(-1, -1)
    (1273, 728)


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Windows
» Native Windows Function