// Change Password dialog UINT EmPasswordDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param) { RPC *r = (RPC *)param; char pass1[MAX_PATH]; char pass2[MAX_PATH]; UCHAR hash[SHA1_SIZE]; RPC_SET_PASSWORD t; // Validate arguments if (hWnd == NULL) { return 0; } switch (msg) { case WM_INITDIALOG: Focus(hWnd, E_PASSWORD1); break; case WM_COMMAND: switch (wParam) { case IDOK: GetTxtA(hWnd, E_PASSWORD1, pass1, sizeof(pass1)); Hash(hash, pass1, StrLen(pass1), true); Zero(&t, sizeof(t)); Copy(t.HashedPassword, hash, SHA1_SIZE); if (CALL(hWnd, EcSetPassword(r, &t)) == false) { break; } MsgBox(hWnd, MB_ICONINFORMATION, _UU("CM_PASSWORD_SET")); EndDialog(hWnd, 1); break; case IDCANCEL: Close(hWnd); break; } switch (LOWORD(wParam)) { case E_PASSWORD1: case E_PASSWORD2: GetTxtA(hWnd, E_PASSWORD1, pass1, sizeof(pass1)); GetTxtA(hWnd, E_PASSWORD2, pass2, sizeof(pass2)); SetEnable(hWnd, IDOK, StrCmp(pass1, pass2) == 0 ? true : false); break; } break; case WM_CLOSE: EndDialog(hWnd, 0); break; } return 0; }
// Change Password dialog UINT NmChangePasswordProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param) { RPC *r = (RPC *)param; char tmp1[MAX_SIZE]; char tmp2[MAX_SIZE]; RPC_SET_PASSWORD t; // Validate arguments if (hWnd == NULL) { return 0; } switch (msg) { case WM_INITDIALOG: FormatText(hWnd, 0, r->Sock->RemoteHostname); FormatText(hWnd, S_TITLE, r->Sock->RemoteHostname); break; case WM_COMMAND: GetTxtA(hWnd, E_PASSWORD1, tmp1, sizeof(tmp1)); GetTxtA(hWnd, E_PASSWORD2, tmp2, sizeof(tmp2)); switch (LOWORD(wParam)) { case E_PASSWORD1: case E_PASSWORD2: SetEnable(hWnd, IDOK, StrCmp(tmp1, tmp2) == 0); break; } switch (wParam) { case IDOK: Zero(&t, sizeof(t)); Hash(t.HashedPassword, tmp1, StrLen(tmp1), true); if (CALL(hWnd, NcSetPassword(r, &t))) { MsgBox(hWnd, MB_ICONINFORMATION, _UU("NM_PASSWORD_MSG")); EndDialog(hWnd, true); } break; case IDCANCEL: Close(hWnd); break; } break; case WM_CLOSE: EndDialog(hWnd, false); break; } return 0; }
// Convert the contents of the form to the VH_OPTION void NmEditVhOptionFormToVH(HWND hWnd, VH_OPTION *t) { char tmp[MAX_SIZE]; BUF *b; // Validate arguments if (hWnd == NULL || t == NULL) { return; } Zero(t, sizeof(VH_OPTION)); GetTxtA(hWnd, E_MAC, tmp, sizeof(tmp)); b = StrToBin(tmp); if (b != NULL) { if (b->Size == 6) { Copy(t->MacAddress, b->Buf, 6); } FreeBuf(b); } UINTToIP(&t->Ip, IpGet(hWnd, E_IP)); UINTToIP(&t->Mask, IpGet(hWnd, E_MASK)); t->UseNat = IsChecked(hWnd, R_USE_NAT); t->Mtu = GetInt(hWnd, E_MTU); t->NatTcpTimeout = GetInt(hWnd, E_TCP); t->NatUdpTimeout = GetInt(hWnd, E_UDP); t->UseDhcp = IsChecked(hWnd, R_USE_DHCP); UINTToIP(&t->DhcpLeaseIPStart, IpGet(hWnd, E_DHCP_START)); UINTToIP(&t->DhcpLeaseIPEnd, IpGet(hWnd, E_DHCP_END)); UINTToIP(&t->DhcpSubnetMask, IpGet(hWnd, E_DHCP_MASK)); t->DhcpExpireTimeSpan = GetInt(hWnd, E_EXPIRES); UINTToIP(&t->DhcpGatewayAddress, IpGet(hWnd, E_GATEWAY)); UINTToIP(&t->DhcpDnsServerAddress, IpGet(hWnd, E_DNS)); UINTToIP(&t->DhcpDnsServerAddress2, IpGet(hWnd, E_DNS2)); GetTxtA(hWnd, E_DOMAIN, t->DhcpDomainName, sizeof(t->DhcpDomainName)); t->SaveLog = IsChecked(hWnd, R_SAVE_LOG); }
// Login dialog UINT NmLogin(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param) { NM_LOGIN *login = (NM_LOGIN *)param; char tmp[MAX_SIZE]; // Validate arguments if (hWnd == NULL) { return 0; } switch (msg) { case WM_INITDIALOG: FormatText(hWnd, S_TITLE, login->Hostname); break; case WM_COMMAND: switch (wParam) { case IDOK: GetTxtA(hWnd, E_PASSWORD, tmp, sizeof(tmp)); Hash(login->hashed_password, tmp, StrLen(tmp), true); EndDialog(hWnd, true); break; case IDCANCEL: Close(hWnd); break; } break; case WM_CLOSE: EndDialog(hWnd, false); break; } return 0; }
// Shift treatment of text input void EmLicenseAddDlgShiftTextItem(HWND hWnd, UINT id1, UINT id2, UINT *next_focus) { char *s; // Validate arguments if (hWnd == NULL || next_focus == NULL) { return; } s = GetTextA(hWnd, id1); if (StrLen(s) >= 6) { char *s2 = CopyStr(s); char tmp[MAX_SIZE]; s2[6] = 0; SetTextA(hWnd, id1, s2); Free(s2); if (id2 != 0) { GetTxtA(hWnd, id2, tmp, sizeof(tmp)); StrCat(tmp, sizeof(tmp), s + 6); ReplaceStrEx(tmp, sizeof(tmp), tmp, "-", "", false); SetTextA(hWnd, id2, tmp); *next_focus = id2; } else { *next_focus = IDOK; } } Free(s); }