#include LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM w, LPARAM l) { switch(msg) { case WM_CREATE: { char fileBuf[MAX_PATH]; fileBuf[0] = '\0'; OPENFILENAMEA ofn; ZeroMemory(&ofn, sizeof(OPENFILENAMEA)); ofn.lStructSize = sizeof(OPENFILENAMEA); ofn.hwndOwner = wnd; ofn.hInstance = GetModuleHandle(NULL); ofn.lpstrFilter = "*.*"; ofn.lpstrFile = fileBuf; ofn.nMaxFile = MAX_PATH; GetOpenFileNameA(&ofn); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProcA(wnd, msg, w, l); } return 0; } int WINAPI WinMain(HINSTANCE inst, HINSTANCE, LPSTR, int) { WNDCLASSA wc; ZeroMemory(&wc, sizeof(WNDCLASS)); wc.hInstance = inst; wc.lpfnWndProc = &WndProc; wc.lpszClassName = "TheClass"; RegisterClassA(&wc); HWND wnd = CreateWindowExA(WS_EX_OVERLAPPEDWINDOW, "TheClass", "Test", WS_OVERLAPPEDWINDOW, -1, -1, -1, -1, NULL, NULL, inst, NULL); ShowWindow(wnd, SW_SHOW); MSG msg; while(GetMessageA(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessageA(&msg); } return msg.wParam; }