Mega Code Archive

 
Categories / C# / Development Class
 

Demonstrate compound modifiers and calls to external API

/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // //  GetUser.cs -- demonstratec compound modifiers and calls to external API // //                Compile this program with the following command line: //                    C:>csc /unsafe GetUser.cs // namespace nsUser {     using System;     using System.Runtime.InteropServices;          public class GetUser     {         [DllImport ("user32.dll")]         static extern public int MessageBox(int hWnd, string msg,                                             string title, int type);         [DllImport ("advapi32.dll")]         static unsafe extern public bool GetUserName(byte [] User,                                                      long *size);         [DllImport ("advapi32.dll")]         static unsafe extern public bool GetUserNameW(char [] User,                                                      long *size);         static public void Main ()         {             byte [] user = new byte[256];             long size = (long) user.Length;             unsafe             {                 if (GetUserName (user, &size) == false)                     Console.WriteLine ("Error getting user name");             }             string strUser = "";             foreach (byte ch in user)             {                 if (ch == 0)                     break;                 strUser += (char) ch;             }             MessageBox (0, "The current user is " + strUser, "Howdy", 0);             /*             //********************************************             // The following code uses the wide-character version GetUserNameW()             //             strUser = "";             char [] cUser = new char[256];             size = cUser.Length;             unsafe             {                 if (GetUserNameW (cUser, &size) == false)                     Console.WriteLine ("Error getting user name");             }             foreach (char ch in user)             {                 if (ch == 0)                     break;                 strUser += ch;             }             MessageBox (0, "The current user is " + strUser, "Howdy", 0);             */         }     } }