/*Segundo ejemplo que tenemos los usuarios para poder empezar a programar una ventanica.
 * Ay, que mono es el puto mundo.
 */
#include <windows.h>

LRESULT CALLBACK WndPrincipalProc(HWND vent,UINT msg,WPARAM wParam,LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstanciaAct,HINSTANCE hInstanciaPrev,LPSTR lpCmdLine,int iCmdShow){
	WNDCLASSEX clase;
	HWND ventana = NULL;
	MSG mensaje;
	
	clase.cbSize = sizeof(WNDCLASSEX);
	clase.cbWndExtra = 0;
	clase.cbClsExtra = 0;
	clase.style = CS_HREDRAW|CS_VREDRAW;
	clase.lpfnWndProc = WndPrincipalProc;
	clase.hInstance = hInstanciaAct;
	clase.hIcon = LoadIcon(NULL,IDI_APPLICATION); 
	clase.hIconSm = LoadIcon(NULL,IDI_APPLICATION);	
	clase.hCursor = LoadCursor(NULL,IDC_ARROW);
	clase.lpszClassName = NULL;
	clase.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
	
	if(!RegisterClassEx(&clase)){
		MessageBox(NULL, "No se puede ejecutar ventanica.","Error",MB_ICONERROR);
		return EXIT_FAILURE;
	}
	
	ventana = CreateWindowEx(0,"MICLASE","Ejemplo1",WS_OVERLAPPEDWINDOW,10,10,800,600,HWND_DESKTOP,NULL,hInstanciaAct,NULL);
	if(ventana == NULL){
		MessageBox(NULL,"Error, no se pudo crear la ventana principal, grandisimo genio...","Errorazo",MB_ICONERROR);
		return EXIT_FAILURE;
		
	}
	
	ShowWindow(ventana,iCmdShow);
	UpdateWindow(ventana);
	
	while(GetMessage(&mensaje,NULL,0,0) > 0){
		TranslateMessage(&mensaje);
		DispatchMessage(&mensaje);
		
	}
	
	return mensaje.wParam;
}

LRESULT CALLBACK WndPrincipalProc(HWND vent,UINT msg,WPARAM wParam,LPARAM lParam){
	switch(msg){
		case WM_DESTROY:{
			PostQuitMessage(0);
			break;
		}
		default:{
			return DefWindowProc(vent,msg,wParam,lParam);
		}
	}
	return 0;
}