From 97738d1ae99035695599e5ddec2f0cd5931101d5 Mon Sep 17 00:00:00 2001 From: grischka Date: Sat, 18 Jul 2009 22:07:10 +0200 Subject: [PATCH] win32: reformat examples, crt etc --- win32/examples/dll.c | 5 +- win32/examples/hello_win.c | 192 +++++++++++++++++++------------------ win32/lib/crt1.c | 16 ++-- win32/lib/wincrt1.c | 69 +++++++------ 4 files changed, 148 insertions(+), 134 deletions(-) diff --git a/win32/examples/dll.c b/win32/examples/dll.c index 4202e99c..4c1d8ce7 100644 --- a/win32/examples/dll.c +++ b/win32/examples/dll.c @@ -4,12 +4,9 @@ // #include - #define DLL_EXPORT __declspec(dllexport) - DLL_EXPORT void HelloWorld (void) { - MessageBox (0, "Hello World!", "From DLL", MB_ICONINFORMATION); + MessageBox (0, "Hello World!", "From DLL", MB_ICONINFORMATION); } - diff --git a/win32/examples/hello_win.c b/win32/examples/hello_win.c index 294b7279..96546e41 100644 --- a/win32/examples/hello_win.c +++ b/win32/examples/hello_win.c @@ -10,9 +10,7 @@ char szAppName[] = APPNAME; // The name of this application char szTitle[] = APPNAME; // The title bar text -char *pWindowText; - -HINSTANCE g_hInst; // current instance +const char *pWindowText; void CenterWindow(HWND hWnd); @@ -28,51 +26,49 @@ void CenterWindow(HWND hWnd); LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { - switch (message) - { - // ----------------------- first and last - case WM_CREATE: - CenterWindow(hwnd); - break; + switch (message) { - case WM_DESTROY: - PostQuitMessage(0); - break; + // ----------------------- first and last + case WM_CREATE: + CenterWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; - // ----------------------- get out of it... - case WM_RBUTTONUP: - DestroyWindow(hwnd); - break; + // ----------------------- get out of it... + case WM_RBUTTONUP: + DestroyWindow(hwnd); + break; - case WM_KEYDOWN: - if (VK_ESCAPE == wParam) - DestroyWindow(hwnd); - break; + case WM_KEYDOWN: + if (VK_ESCAPE == wParam) + DestroyWindow(hwnd); + break; + // ----------------------- display our minimal info + case WM_PAINT: + { + PAINTSTRUCT ps; + HDC hdc; + RECT rc; + hdc = BeginPaint(hwnd, &ps); - // ----------------------- display our minimal info - case WM_PAINT: - { - PAINTSTRUCT ps; - HDC hdc; - RECT rc; - hdc = BeginPaint(hwnd, &ps); + GetClientRect(hwnd, &rc); + SetTextColor(hdc, RGB(240,240,96)); + SetBkMode(hdc, TRANSPARENT); + DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER); - GetClientRect(hwnd, &rc); - SetTextColor(hdc, RGB(240,240,96)); - SetBkMode(hdc, TRANSPARENT); - DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER); + EndPaint(hwnd, &ps); + break; + } - EndPaint(hwnd, &ps); - break; - } - - // ----------------------- let windows do all other stuff - default: - return DefWindowProc(hwnd, message, wParam, lParam); - } - return 0; + // ----------------------- let windows do all other stuff + default: + return DefWindowProc(hwnd, message, wParam, lParam); + } + return 0; } //+--------------------------------------------------------------------------- @@ -83,57 +79,57 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) // //---------------------------------------------------------------------------- int APIENTRY WinMain( - HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) + HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow + ) { - MSG msg; + MSG msg; + WNDCLASS wc; + HWND hwnd; - WNDCLASS wc; + pWindowText = lpCmdLine[0] ? lpCmdLine : "Hello Windows!"; - HWND hwnd; + // Fill in window class structure with parameters that describe + // the main window. - // Fill in window class structure with parameters that describe - // the main window. + ZeroMemory(&wc, sizeof wc); + wc.hInstance = hInstance; + wc.lpszClassName = szAppName; + wc.lpfnWndProc = (WNDPROC)WndProc; + wc.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW; + wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); + wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); - ZeroMemory(&wc, sizeof wc); - wc.hInstance = hInstance; - wc.lpszClassName = szAppName; - wc.lpfnWndProc = (WNDPROC)WndProc; - wc.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW; - wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); - wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); + if (FALSE == RegisterClass(&wc)) + return 0; - if (FALSE == RegisterClass(&wc)) return 0; + // create the browser + hwnd = CreateWindow( + szAppName, + szTitle, + WS_OVERLAPPEDWINDOW|WS_VISIBLE, + CW_USEDEFAULT, + CW_USEDEFAULT, + 360,//CW_USEDEFAULT, + 240,//CW_USEDEFAULT, + 0, + 0, + hInstance, + 0); - // create the browser - hwnd = CreateWindow( - szAppName, - szTitle, - WS_OVERLAPPEDWINDOW|WS_VISIBLE, - CW_USEDEFAULT, - CW_USEDEFAULT, - 360,//CW_USEDEFAULT, - 240,//CW_USEDEFAULT, - 0, - 0, - g_hInst, - 0); + if (NULL == hwnd) + return 0; - if (NULL == hwnd) return 0; + // Main message loop: + while (GetMessage(&msg, NULL, 0, 0) > 0) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } - pWindowText = lpCmdLine[0] ? lpCmdLine : "Hello Windows!"; - - // Main message loop: - while (GetMessage(&msg, NULL, 0, 0) > 0) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - return msg.wParam; + return msg.wParam; } //+--------------------------------------------------------------------------- @@ -142,18 +138,26 @@ int APIENTRY WinMain( void CenterWindow(HWND hwnd_self) { - RECT rw_self, rc_parent, rw_parent; HWND hwnd_parent; - hwnd_parent = GetParent(hwnd_self); - if (NULL==hwnd_parent) hwnd_parent = GetDesktopWindow(); - GetWindowRect(hwnd_parent, &rw_parent); - GetClientRect(hwnd_parent, &rc_parent); - GetWindowRect(hwnd_self, &rw_self); - SetWindowPos(hwnd_self, NULL, - rw_parent.left + (rc_parent.right + rw_self.left - rw_self.right) / 2, - rw_parent.top + (rc_parent.bottom + rw_self.top - rw_self.bottom) / 2, - 0, 0, - SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE - ); + HWND hwnd_parent; + RECT rw_self, rc_parent, rw_parent; + int xpos, ypos; + + hwnd_parent = GetParent(hwnd_self); + if (NULL == hwnd_parent) + hwnd_parent = GetDesktopWindow(); + + GetWindowRect(hwnd_parent, &rw_parent); + GetClientRect(hwnd_parent, &rc_parent); + GetWindowRect(hwnd_self, &rw_self); + + xpos = rw_parent.left + (rc_parent.right + rw_self.left - rw_self.right) / 2; + ypos = rw_parent.top + (rc_parent.bottom + rw_self.top - rw_self.bottom) / 2; + + SetWindowPos( + hwnd_self, NULL, + xpos, ypos, 0, 0, + SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE + ); } //+--------------------------------------------------------------------------- diff --git a/win32/lib/crt1.c b/win32/lib/crt1.c index 1cf12f29..2e18c2b6 100644 --- a/win32/lib/crt1.c +++ b/win32/lib/crt1.c @@ -11,7 +11,7 @@ void _controlfp(unsigned a, unsigned b); typedef struct { - int newmode; + int newmode; } _startupinfo; void __getmainargs(int *pargc, char ***pargv, char ***penv, int globb, _startupinfo*); @@ -20,15 +20,15 @@ int main(int argc, char **argv, char **env); int _start(void) { - int argc; char **argv; char **env; int ret; - _startupinfo start_info = {0}; + int argc; char **argv; char **env; int ret; + _startupinfo start_info = {0}; - _controlfp(0x10000, 0x30000); - __set_app_type(__CONSOLE_APP); - __getmainargs(&argc, &argv, &env, 0, &start_info); + _controlfp(0x10000, 0x30000); + __set_app_type(__CONSOLE_APP); + __getmainargs(&argc, &argv, &env, 0, &start_info); - ret = main(argc, argv, env); - exit(ret); + ret = main(argc, argv, env); + exit(ret); } // ============================================= diff --git a/win32/lib/wincrt1.c b/win32/lib/wincrt1.c index 98edb6b9..212f9d47 100644 --- a/win32/lib/wincrt1.c +++ b/win32/lib/wincrt1.c @@ -10,40 +10,53 @@ void _controlfp(unsigned a, unsigned b); int _winstart(void) { - char *szCmd; STARTUPINFO startinfo; + char *szCmd; + STARTUPINFO startinfo; + int fShow; + int ret; - __set_app_type(__GUI_APP); - _controlfp(0x10000, 0x30000); + __set_app_type(__GUI_APP); + _controlfp(0x10000, 0x30000); - szCmd = GetCommandLine(); - if (szCmd) - { - while (' ' == *szCmd) szCmd++; - if ('\"' == *szCmd) - { - while (*++szCmd) - if ('\"' == *szCmd) { szCmd++; break; } - } - else - { - while (*szCmd && ' ' != *szCmd) szCmd++; - } - while (' ' == *szCmd) szCmd++; - } + szCmd = GetCommandLine(); + if (szCmd) { + while (' ' == *szCmd) + szCmd++; + if ('\"' == *szCmd) { + while (*++szCmd) + if ('\"' == *szCmd) { + szCmd++; + break; + } + } else { + while (*szCmd && ' ' != *szCmd) + szCmd++; + } + while (' ' == *szCmd) + szCmd++; + } - GetStartupInfo(&startinfo); - exit(WinMain(GetModuleHandle(NULL), NULL, szCmd, - (startinfo.dwFlags & STARTF_USESHOWWINDOW) ? - startinfo.wShowWindow : SW_SHOWDEFAULT)); + GetStartupInfo(&startinfo); + fShow = startinfo.wShowWindow; + if (0 == (startinfo.dwFlags & STARTF_USESHOWWINDOW)) + fShow = SW_SHOWDEFAULT; + + ret = WinMain(GetModuleHandle(NULL), NULL, szCmd, fShow); + exit(ret); } int _runwinmain(int argc, char **argv) { - char *szCmd = NULL; - char *p = GetCommandLine(); - if (argc > 1) szCmd = strstr(p, argv[1]); - if (NULL == szCmd) szCmd = ""; - else if (szCmd > p && szCmd[-1] == '\"') --szCmd; - return WinMain(GetModuleHandle(NULL), NULL, szCmd, SW_SHOWDEFAULT); + char *szCmd, *p; + + p = GetCommandLine(); + szCmd = NULL; + if (argc > 1) + szCmd = strstr(p, argv[1]); + if (NULL == szCmd) + szCmd = ""; + else if (szCmd > p && szCmd[-1] == '\"') + --szCmd; + return WinMain(GetModuleHandle(NULL), NULL, szCmd, SW_SHOWDEFAULT); }