hWnd error

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • BarryM
    New Member
    • Mar 2008
    • 32

    hWnd error

    I was told that this piece coding to find the es_password state in c# would work but an error message saying hWnd does not exist in the current context
    Code:
      internal static class UnsafeNativeMethods 
            {
                public const int GWL_STYLE = -16;
                public const int ES_PASSWORD = 0x20;
                [DllImport("user32.dll")]
                public static extern int GetClassName(HandleRef hWnd, System.Text.StringBuilder lpClassName, int nMaxCount);
                [DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto)]
                public static extern IntPtr GetWindowLong32(System.Runtime.InteropServices.HandleRef hWnd, int nIndex);
            
           }
            
          
            private void tmrpass_Tick(object sender, EventArgs e)
            {
    
                //start timer and espassword code
    
                // root the handle so it doesn't get disposed until were done with it
    
                Object root = new Object();
    
                System.Runtime.InteropServices.HandleRef handleRef = new System.Runtime.InteropServices.HandleRef(root, hWnd);
                System.Text.StringBuilder sb = new System.Text.StringBuilder(1024);
                // get the class name of the window
                UnsafeNativeMethods.GetClassName(new System.Runtime.InteropServices.HandleRef(root, hWnd), sb, sb.Capacity);
                // is it an edit box?
                if (sb.ToString() == "Edit" || sb.ToString().StartsWith("WindowsForms10.EDIT.app"))
                {
                    // get the window style of the edit box
                    int style = UnsafeNativeMethods.GetWindowLong32(new System.Runtime.InteropServices.HandleRef(root, hWnd), UnsafeNativeMethods.GWL_STYLE).ToInt32();
                    // is it a password edit or not?
                    if ((style & UnsafeNativeMethods.ES_PASSWORD) == UnsafeNativeMethods.ES_PASSWORD)
                    {
                        lblkd.Text = "edit is password text box";
                    }
                    else
                    {
                        lblkd.Text = "edit is not password text box";
                    }
                }
    
                //stop timer and es password code
            }
    i had fixed up all these other errors but not this one.
    if you have any slight of an idea please reply thanks
Working...