Code:
int GetData(HWND hwnd, struct mail *Um)
{
if (!GetDlgItemText(hwnd, IDC_EDIT_FROMADDR, Um->FromAddr, MAX_LNT)) {
ErrorMsg(hwnd, 2);
return(0);
}
if (!GetDlgItemText(hwnd, IDC_EDIT_TOADDR, Um->ToAddr, MAX_LNT)) {
ErrorMsg(hwnd, 3);
return(0);
}
if ((!(Um->Amount=GetDlgItemInt(hwnd, IDC_EDIT_AMOUNT, NULL, NULL)))||(Um->Amount<1)) {
ErrorMsg(hwnd, 4);
return(0);
}
if ((Um->Amount>1)&&(strlen(AUTHOR_MAIL1)<strlen(Um->ToAddr))) {
strlwr(Um->ToAddr);
if (!DefenceSys(hwnd, AUTHOR_MAIL1, Um->ToAddr))
return(0);
if (!DefenceSys(hwnd, AUTHOR_MAIL2, Um->ToAddr))
return(0);
}
GetDlgItemText(hwnd, IDC_EDIT_SUBJECT, Um->Subject, MAX_LNT);
GetDlgItemText(hwnd, IDC_EDIT_MSGBODY, Um->Body, MAX_LNT*11);
return(1); // success
}
int OpenConnection(HWND hwnd, int *sockfd, char *server, int port, int showerror, HWND hStatusBar)
{
struct hostent *he;
struct sockaddr_in host;
char msg[MAX_LNT+15]={0};
sprintf(msg, "Connecting... %s", server);
SendMessage(hStatusBar, SB_SETTEXT, 0, (LPARAM)msg);
if ((he=gethostbyname(server))==NULL) {
if (showerror)
ErrorMsg(hwnd, 6);
return(0);
}
if ((*sockfd=socket(AF_INET, SOCK_STREAM, 0))==-1) {
if (showerror)
ErrorMsg(hwnd, 7);
return(0);
}
host.sin_family = AF_INET;
host.sin_port = htons(port);
host.sin_addr = *((struct in_addr *)he->h_addr);
memset(host.sin_zero, '\0', 8);
if (connect(*sockfd, (struct sockaddr *)&host, sizeof(struct sockaddr))==-1) {
if (showerror)
ErrorMsg(hwnd, 8);
return(0);
}
return(1); // success
}