Code:
#include <windows.h>
#include "main.h"
#include <string>
#include <fstream>
#include <direct.h>
#include <algorithm>
#include <process.h>
#include <commctrl.h>
void Function(void *P);
CRITICAL_SECTION crit;
LRESULT CALLBACK MainMessageHandler(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
HWND CreateMainWindow(int nShow);
std::string songid,destination,basename,boogi,name,var,var2,str;
std::ifstream fin;
std::ofstream fer;
HWND hww,hww2,hww3,hww4,hww5,hwnd,hStatus;
char non[256],non2[500],non3[500],shelp[500],shelp2[256];
HMENU menu;
HINSTANCE hThisInstance;
HFONT hf,hf2;
long lf,lf2;
HDC hdc;
bool success;
int gar,leng,ga;
bool DownloadFile(LPCTSTR URL , LPCTSTR LocalFilename);
typedef long (WINAPI * MYPROC)(long,LPCTSTR,LPCTSTR,DWORD,long);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE reserved, LPSTR szCommand, INT nShow)
{
InitCommonControls();
MSG msg;
InitializeCriticalSection(&crit);
hwnd=CreateMainWindow(nShow);
while ( GetMessage(&msg, NULL, 0, 0) ){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DeleteCriticalSection(&crit);
return (int) msg.wParam;
}
bool DownloadFile(LPCTSTR URL , LPCTSTR LocalFilename)
{
long lngRetVal;
HMODULE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
hinstLib = LoadLibrary("urlmon.dll");
if(hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "URLDownloadToFileA");
if (NULL != ProcAdd)
{
fRunTimeLinkSuccess = TRUE;
lngRetVal = ProcAdd(0, URL, LocalFilename, 0, 0);
fFreeResult = FreeLibrary(hinstLib);
}
}
}
LRESULT CALLBACK MainMessageHandler(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:{
fin.open("test.txt"); gar=0;
while(fin>>boogi){
if(gar==0){
name+=boogi; gar=1;}
else{
name+=" "; name+=boogi;}}
*(std::copy(name.begin(), name.end() - name.begin() < 200 ? name.end() : name.begin() + 199, shelp)) = 0;
hww=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","",WS_CHILD|WS_VISIBLE|ES_NUMBER,
1,1,53,23,hwnd,(HMENU)0xED,GetModuleHandle(NULL),NULL);
hdc = GetDC(NULL);
hStatus=CreateWindowEx(0,STATUSCLASSNAME,"Enter",WS_CHILD|WS_VISIBLE,
0,0,0,0,hwnd,(HMENU)4997,GetModuleHandle(NULL),NULL);
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel ei tõmba midagi");
lf = -MulDiv(12, GetDeviceCaps(hdc, LOGPIXELSY), 72);
lf2 = -MulDiv(10, GetDeviceCaps(hdc, LOGPIXELSY), 72);
ReleaseDC(NULL, hdc);
hf = CreateFont(lf, 0, 0, 0, FW_MEDIUM, FALSE, 0, 0, 0, 0, 0, 0, 0, "Times New Roman");
SendMessage(hww,WM_SETFONT,(WPARAM)hf,TRUE);
hf2 = CreateFont(lf2, 0, 0, 0, 500, FALSE, 0, 0, 0, 0, 0, 0, 0, "Verdana");
hww2=CreateWindowEx(NULL,"Button","Tõmba",WS_BORDER|WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
56,1,80,23,hwnd,(HMENU)IDB_BUTTON,GetModuleHandle(NULL),NULL);
SendMessage(hww2,WM_SETFONT,(WPARAM)hf2,TRUE);
hww3=CreateWindowEx(WS_EX_CLIENTEDGE,"Edit","",WS_CHILD|WS_VISIBLE|ES_MULTILINE,
1,26,238,23,hwnd,(HMENU) 0xED, GetModuleHandle(NULL),NULL);
hww4=CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT",shelp,WS_CHILD|WS_VISIBLE|ES_MULTILINE,
1,52,238,46,hwnd,(HMENU) 0xED, GetModuleHandle(NULL),NULL);
SendMessage(hww3,WM_SETFONT,(WPARAM)hf,TRUE);
SendMessage(hww4,WM_SETFONT,(WPARAM)hf,TRUE);
hww5=CreateWindowEx(NULL,"Button","Surfa unos",WS_BORDER|WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
139,1,90,23,hwnd,(HMENU)IDB_BUTTON2,GetModuleHandle(NULL),NULL);
SendMessage(hww5,WM_SETFONT,(WPARAM)hf2,TRUE);
}
case WM_COMMAND:
switch(wParam){
case IDM_LEAVE:
DestroyWindow(hwnd);
return 0;
case IDM_DESTINATION:
MessageBox(hwnd,"Programm on täielikult illegaalne!","Programmist...",MB_OK | MB_ICONINFORMATION);
return 0;
case IDB_BUTTON2:
system("\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" http://www.u-pop.ee/uplayer");
return 0;
case IDB_BUTTON:
_beginthread(Function,0,NULL);
return 0;
}
break;
case 25688:
if(ga==0){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel ei tõmba midagi");
}
else if(ga==1){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel tõmbab 1 laul");
}
else if(ga==2){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel tõmbab 2 laulu");
}
else if(ga==3){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel tõmbab 3 laulu");
}
else if(ga==4){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel tõmbab 4 laulu");
}
else if(ga==5){
SendMessage(hStatus,SB_SETTEXT,0,(LPARAM)"Hetkel tõmbab 5 laulu");
}
break;
case WM_SIZE:
RECT rc;
GetClientRect(hwnd, &rc);
return 0;
case WM_DESTROY:
fin.close();
fer.open("test.txt");
GetWindowText(hww4,non,500);
fer<<non;
fer.close();
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
HWND CreateMainWindow(int nShow)
{
WNDCLASSEX wc = { 0 };
HWND hwnd = NULL;
wc.cbSize = sizeof(wc);
wc.style = 0;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = GetModuleHandle(NULL);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIconSm = NULL;
wc.lpfnWndProc = MainMessageHandler;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "Myapp";
if(RegisterClassEx(&wc)){
hwnd=CreateWindowEx(0,"Myapp","SongDownloader 2.1",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,250,178,NULL,NULL,GetModuleHandle(NULL),NULL);
ShowWindow(hwnd, nShow);
}
menu=LoadMenu(hThisInstance,MAKEINTRESOURCE(ID_MENU));
SetMenu(hwnd,menu);
return hwnd;
}
void Function(void *P){
if(ga>4){
MessageBox(hwnd,"Üle viie laulu ei saa korraga tõmmata!","Oota...",MB_OK|MB_ICONINFORMATION);
}
else{
GetWindowText(hww,non,255);
GetWindowText(hww3,non2,500);
GetWindowText(hww4,non3,500);
basename=non2;
destination=non3;
songid=non;
if(_chdir(non3)==0){
ga++;
SendMessage(hwnd,25688,0,0);
if(destination.substr(destination.length()-1,destination.length())=="\\"){
}
else{
destination+="\\";
}
var="http://data.uno.ee/juke/songid-"+songid+"-555/songs.asx";
var2="C:\\temp.abc";
*(std::copy(var.begin(), var.end() - var.begin() < 200 ? var.end() : var.begin() + 199, shelp)) = 0;
LPCTSTR URL = shelp;
*(std::copy(var2.begin(), var2.end() - var2.begin() < 200 ? var2.end() : var2.begin() + 199, shelp2)) = 0;
LPCTSTR File = shelp2;
DownloadFile(URL,File);
std::ifstream fi("C:\\temp.abc");
fi>>str;
fi>>str;
fi>>str;
fi>>str;
fi.close();
remove("C:\\temp.abc");
leng=str.length();
leng=leng-17;
str=str.substr(6,leng);
var=str;
var2=destination+basename+".wma";
*(std::copy(var.begin(), var.end() - var.begin() < 200 ? var.end() : var.begin() + 199, shelp)) = 0;
URL = shelp;
*(std::copy(var2.begin(), var2.end() - var2.begin() < 200 ? var2.end() : var2.begin() + 199, shelp2)) = 0;
File = shelp2;
success = DownloadFile(URL ,File);
if(success == false){
MessageBox(hwnd,"Selle numbriga laulu kas ei ole või ei saanud hetkel tõmmata!","Valmis",MB_OK | MB_ICONINFORMATION);
ga--;
SendMessage(hwnd,25688,0,0);
}
else{
MessageBox(hwnd,"Üks laul sai valmis!","Valmis",MB_OK | MB_ICONINFORMATION);
ga--;
SendMessage(hwnd,25688,0,0);
}
}
else{
MessageBox(hwnd,"Sisestatud kausta aadress ei ole õige!","Viga!",MB_OK | MB_ICONINFORMATION);
}
}
}