Expand|Select|Wrap|Line Numbers
- #include<windows.h>
- #include<dos.h>
- #include<dir.h>
- #include<fstream.h>
- #include<stdio.h>
- #include<process.h>
- #include"resource.h" //resource header file
- long convert(char *pass) //to convert password in to long integer
- {
- long total=0;
- for(int i=0;i<strlen(pass);i++)
- {
- total+=pass[i];
- }
- total=total;
- return(total);
- }
- int check(char *p) // to check if the path entered is a file or directory
- {
- int done;
- struct ffblk ffblk;
- done=findfirst(p,&ffblk,0);
- while(!done)
- {
- if(ffblk.ff_attrib&&FA_DIREC) //returns 1 if its a directory
- return(1);
- done=findnext(&ffblk);
- }
- return(0);
- }
- int encode(char *path,int op,char *pass) //fuction to encode file
- {
- long password=0;
- int done;
- char ch;
- double ctr;
- ifstream fin;
- ofstream fout;
- struct ffblk ffblk;
- switch(op)
- {
- case 0:ctr=0;
- password=convert(pass);
- fin.open(path,ios::in|ios::binary);
- fout.open(path,ios::out|ios::ate|ios::nocreate|ios::binary);
- if(!fin||!fout) //place where something goes wrong I think
- return(-1);
- while(!fin.eof())
- {
- fin.seekg(ctr);
- fin.get(ch); //reading each character
- if(fin.eof())
- break;
- ch=int(ch+password); //adding some value to character(encoding)
- fout.seekp(ctr);
- fout.put(ch);
- ctr++;
- }
- fout.flush();
- fin.close();
- fout.close();
- break;
- case 1:chdir(path); //changing directory if the entere path is a folder
- done=findfirst("*.*",&ffblk,0); //searching every file
- while(!done)
- {
- encode(ffblk.ff_name,0,pass);
- done=findnext(&ffblk);
- }
- break;
- default:return(-1);
- }
- return(0);
- }
- int decode(char *path,int op,char *pass) //to decode file:similar to encode
- {
- long password=0;
- int done;
- char ch;
- double ctr;
- ifstream fin;
- ofstream fout;
- struct ffblk ffblk;
- if(op==-1)
- return(-1);
- switch(op)
- {
- case 0:ctr=0;
- password=convert(pass);
- fin.open(path,ios::in|ios::binary);
- fout.open(path,ios::out|ios::ate|ios::nocreate|ios::binary);
- if(!fout||!fin)
- return(-1);
- while(!fin.eof())
- {
- fin.seekg(ctr);
- fin.get(ch);
- if(fin.eof())
- break;
- ch=ch-int(password);
- fout.seekp(ctr);
- fout.put(ch);
- ctr++;
- }
- fout.flush();
- fin.close();
- fout.close();
- break;
- case 1:chdir(path);
- done=findfirst("*.*",&ffblk,0);
- while(!done)
- {
- decode(ffblk.ff_name,0,pass);
- done=findnext(&ffblk);
- }
- break;
- }
- return(0);
- }
- //No problem here I think.Here's where the dialog box stuff go
- BOOL CALLBACK DlgProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
- {
- switch(msg)
- {
- case WM_INITDIALOG:SetDlgItemText(hwnd,IDC_TEXT_I,"");
- SetDlgItemText(hwnd,IDC_TEXT_II,"");
- break;
- case WM_COMMAND :
- switch(LOWORD(wParam))
- {
- case IDC_ENCODE:{
- int len1=GetWindowTextLength(GetDlgItem(hwnd,IDC_TEXT_I));
- int len2=GetWindowTextLength(GetDlgItem(hwnd,IDC_TEXT_II));
- if(len1>0&&len2>0)
- {
- char *buf1,*buf2;
- buf1=(char*)GlobalAlloc(GPTR,len1+1);
- buf2=(char*)GlobalAlloc(GPTR,len2+1);
- GetDlgItemText(hwnd,IDC_TEXT_I,buf1,len1+1);
- GetDlgItemText(hwnd,IDC_TEXT_II,buf2,len2+1);
- int i=check(buf1);
- int e=encode(buf1,i,buf2);
- if(e==0)
- {
- MessageBox(hwnd,"ENCODING COMPLETED","REPORT",MB_OK|MB_ICONINFORMATION);
- SetDlgItemText(hwnd,IDC_TEXT_I,"");
- SetDlgItemText(hwnd,IDC_TEXT_II,"");
- }
- else if(e==-1)
- {
- MessageBox(hwnd,"ERROR IN ENCODING PROCESS","REPORT",MB_OK|MB_ICONEXCLAMATION);//This shows up as error
- }
- GlobalFree((HWND)buf1);
- GlobalFree((HWND)buf2);
- }
- else
- {
- MessageBox(hwnd,"PARAMETER(S) MISSING","WARNING",MB_OK|MB_ICONEXCLAMATION);
- }}
- break;
- case IDC_DECODE:{
- int len1=GetWindowTextLength(GetDlgItem(hwnd,IDC_TEXT_I));
- int len2=GetWindowTextLength(GetDlgItem(hwnd,IDC_TEXT_II));
- if(len1>0&&len2>0)
- {
- char *buf1,*buf2;
- buf1=(char*)GlobalAlloc(GPTR,len1+1);
- buf2=(char*)GlobalAlloc(GPTR,len2+1);
- GetDlgItemText(hwnd,IDC_TEXT_I,buf1,len1+1);
- GetDlgItemText(hwnd,IDC_TEXT_II,buf2,len2+1);
- int i=check(buf1);
- int e=decode(buf1,i,buf2);
- if(e==0)
- {
- MessageBox(hwnd,"ENCODING COMPLETED","REPORT",MB_OK|MB_ICONINFORMATION);
- SetDlgItemText(hwnd,IDC_TEXT_I,"");
- SetDlgItemText(hwnd,IDC_TEXT_II,"");
- }
- else if(e==-1)
- {
- MessageBox(hwnd,"ERROR IN DECODING PROCESS","REPORT",MB_OK|MB_ICONEXCLAMATION);//This shows up as error
- }
- GlobalFree((HWND)buf1);
- GlobalFree((HWND)buf2);
- }
- else
- {
- MessageBox(hwnd,"PARAMETER(S) MISSING","WARNING",MB_OK|MB_ICONEXCLAMATION);
- }}
- break;
- case IDC_about:MessageBox(hwnd,"FE for WINDOWS\r\n -by- \r\nRAHUL.ES\r\nCreated:18-2-07\r\nContact:es_rahul@yahoo.co.in","ABOUT",MB_ICONINFORMATION|MB_OK);
- break;
- }
- break;
- case WM_CLOSE : EndDialog(hwnd,0);
- break;
- default : return FALSE;
- }
- return TRUE;
- }
- //WinMain
- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
- {
- HICON hMyIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MYICON));
- return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc)
- ;
- }
Please Help.... :-)