home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / dotNETSDK / SETUP.EXE / netfxsd1.cab / FL_OSInfo_cs________.3643236F_FC70_11D3_A536_0090278A1BB8 < prev    next >
Encoding:
Text File  |  2001-08-27  |  2.6 KB  |  96 lines

  1. // Copyright
  2. // Microsoft Corporation
  3. // All rights reserved
  4.  
  5. // OSInfo.cs
  6.  
  7. using System;
  8. using System.Runtime.InteropServices;
  9.  
  10. /*
  11. typedef struct _OSVERSIONINFO
  12.   DWORD dwOSVersionInfoSize; 
  13.   DWORD dwMajorVersion; 
  14.   DWORD dwMinorVersion; 
  15.   DWORD dwBuildNumber; 
  16.   DWORD dwPlatformId; 
  17.   TCHAR szCSDVersion[ 128 ]; 
  18. } OSVERSIONINFO; 
  19. */
  20.  
  21. [ StructLayout( LayoutKind.Sequential )]   
  22. public class OSVersionInfo 
  23. {            
  24.     public int OSVersionInfoSize;
  25.     public int majorVersion; 
  26.     public int minorVersion;
  27.     public int buildNumber;
  28.     public int platformId;
  29.  
  30.     [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]    
  31.     public String versionString;
  32. }
  33.  
  34. [ StructLayout( LayoutKind.Sequential )]  
  35. public struct OSVersionInfo2 
  36. {
  37.     public int OSVersionInfoSize;
  38.     public int majorVersion; 
  39.     public int minorVersion;
  40.     public int buildNumber;
  41.     public int platformId;
  42.  
  43.     [ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]    
  44.     public String versionString;
  45. }
  46.  
  47.  
  48. public class LibWrap 
  49. {
  50.     // BOOL GetVersionEx(LPOSVERSIONINFO lpVersionInfo);
  51.     
  52.     [ DllImport( "kernel32" )]                
  53.     public static extern bool GetVersionEx( [In, Out] OSVersionInfo osvi );
  54.  
  55.     [ DllImport( "kernel32", EntryPoint="GetVersionEx" )] 
  56.     public static extern bool GetVersionEx2( ref OSVersionInfo2 osvi );  
  57. }
  58.  
  59. public class App
  60. {
  61.     public static void Main()
  62.     {
  63.         Console.WriteLine( "\nPassing OSVersionInfo as class" );
  64.  
  65.         OSVersionInfo osvi = new OSVersionInfo();
  66.         osvi.OSVersionInfoSize = Marshal.SizeOf( osvi );
  67.  
  68.         LibWrap.GetVersionEx( osvi );
  69.         
  70.         Console.WriteLine( "Class size:    {0}", osvi.OSVersionInfoSize );
  71.         Console.WriteLine( "Major version: {0}", osvi.majorVersion );
  72.         Console.WriteLine( "Minor version: {0}", osvi.minorVersion );
  73.         Console.WriteLine( "Build number:  {0}", osvi.buildNumber );
  74.         Console.WriteLine( "Platform ID:   {0}", osvi.platformId );
  75.         Console.WriteLine( "Version:       {0}", osvi.versionString );
  76.  
  77.         Console.WriteLine( "\nPassing OSVersionInfo as struct" );
  78.  
  79.         OSVersionInfo2 osvi2 = new OSVersionInfo2();
  80.         osvi2.OSVersionInfoSize = Marshal.SizeOf( osvi2 );
  81.  
  82.         LibWrap.GetVersionEx2( ref osvi2 );
  83.  
  84.         Console.WriteLine( "Struct size:   {0}", osvi2.OSVersionInfoSize );
  85.         Console.WriteLine( "Major version: {0}", osvi2.majorVersion );
  86.         Console.WriteLine( "Minor version: {0}", osvi2.minorVersion );
  87.         Console.WriteLine( "Build number:  {0}", osvi2.buildNumber );
  88.         Console.WriteLine( "Platform ID:   {0}", osvi2.platformId );
  89.         Console.WriteLine( "Version:       {0}", osvi2.versionString );
  90.     }
  91. }
  92.  
  93.  
  94.  
  95.