void Generate(HWND hWnd) { char name[50], tmp[5], serial[50], sZSerial[50]; char stat[] = "PHOTOTOMOVIE"; unsigned long temp=0, sum=0, fir=0, sec=0; GetDlgItemText(hWnd,IDC_NAME,name,50); CharUpper(name); int len = strlen(name); if(len<1) { SetDlgItemText(hWnd,IDC_SERIAL,"Atleast One Digit"); } else { if(len & 1){ strcpy(stat,"YOUMISSHERPICTURE");} for (int i = 0; i < len; i++) { sum+=name[i]; temp=(name[i]+stat[i])-0x44; wsprintf(tmp, "0%u",temp); if(i==0) strcpy(serial,tmp); else strcat(serial,tmp); } if(sum & 1){ sec=1;} fir = sum; do{ sum=0; while(fir != 0) { sum += fir % 10; fir /= 10; } fir = sum; }while(sum >= 10); wsprintf(sZSerial,"%u%u%s",fir,sec,serial); SetDlgItemText(hWnd,IDC_SERIAL,sZSerial); } }