Your dialog uses a listview common control but you have not loaded in commctrl.dll so your application fails.
Before using CreateDialog:
Code:
INITCOMMONCONTROLSEX icx;
icx.dwSize=sizeof(icx);
icx.dwICC=ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icx);
You must #include <commctrl.h> and link with comctl32.lib to get this to work. Read up on the InitCommonControlsEx in msdn for more information.
Some other points: return values from messages such as WM_DESTROY, WM_CLOSE should be zero ie FALSE. Also return FALSE from WM_INITDIALOG unless you are explicitly setting the focus to a control in your dialog yourself.
Hope that helps.
edit: Also read up on WinMain - the third parameter should not be a TCHAR pointer, just stick with LPSTR. This is because this parameter is never a UNICODE string so if you compile with UNICODE #defined you'll probably have problems as you have written it. If you need a UNICODE command line, use the GetCommandLine api function.
edit: editing