private ushort GeneratePassword(SecureString randpass) { int rv; ushort len; try { len = Convert.ToUInt16(txtnoChars.Text); } catch { MessageBox.Show("Invalid password length"); return(0); } if (len < 1 | len > 255) { MessageBox.Show("Length must be between 1 and 255 characters"); return(0); } // Get a handle to our window so we can pass it to the native function var wnd = GetWindow(this); var wih = new WindowInteropHelper(wnd); var hptr = wih.Handle; if (chChars.IsChecked == true) { rv = _mgr.generate_and_view_password(len, PasswordFlag.All, ref randpass, hptr); } else { rv = _mgr.generate_and_view_password(len, PasswordFlag.UpperCase | PasswordFlag.LowerCase | PasswordFlag.Numerals, ref randpass, hptr); } if (rv == PasswordManagerStatus.UserCancelled) { return(0); } if (rv != PasswordManagerStatus.OK) { MessageBox.Show("Error generating password: " + rv.ToString()); return(0); } return(len); }