|
|
1.1 ! root 1: /* ! 2: init.c ! 3: ! 4: initialisation, termination and error handling code ! 5: ! 6: */ ! 7: ! 8: #include <stdio.h> ! 9: #include <windows.h> ! 10: #include "PlaySnd.h" ! 11: #include <stdarg.h> ! 12: ! 13: ! 14: /*************************************************************************** ! 15: ! 16: @doc INTERNAL ! 17: ! 18: @api BOOL | InitApp | Initialise the application. ! 19: ! 20: @rdesc The return value is TRUE if the application is successfully ! 21: initialised, otherwise it is FALSE. ! 22: ! 23: ***************************************************************************/ ! 24: ! 25: BOOL InitApp() ! 26: { ! 27: WNDCLASS wc; ! 28: ! 29: // set up our module handle for resource loading etc. ! 30: ! 31: ghModule = GetModuleHandle(NULL); ! 32: ! 33: // get the name of our app ! 34: WinEval(LoadString(ghModule, IDS_APPNAME, szAppName, sizeof(szAppName))); ! 35: ! 36: // load the profile info ! 37: bSync = GetProfileInt(szAppName, "bSync", 0); ! 38: bNoWait = GetProfileInt(szAppName, "bNoWait", 0); ! 39: bResourceID = GetProfileInt(szAppName, "bResourceID", 0); ! 40: ! 41: #ifdef MEDIA_DEBUG ! 42: // If we are in DEBUG mode, get debug level for this module ! 43: dGetDebugLevel(szAppName); ! 44: dprintf("started (debug level %d)", __iDebugLevel); ! 45: #endif ! 46: ! 47: // define the class of the main window ! 48: ! 49: wc.lpszClassName = szAppName; ! 50: wc.style = CS_HREDRAW | CS_VREDRAW; ! 51: wc.hCursor = LoadCursor(NULL, IDC_ARROW); ! 52: wc.hIcon = LoadIcon(ghModule, MAKEINTRESOURCE(IDI_ICON)); ! 53: wc.lpszMenuName = MAKEINTRESOURCE(IDM_MENU); // "Menu"; ! 54: wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1); ! 55: wc.hInstance = ghModule; ! 56: wc.lpfnWndProc = (WNDPROC)MainWndProc; ! 57: wc.cbClsExtra = 0; ! 58: wc.cbWndExtra = 0; ! 59: ! 60: WinEval(RegisterClass(&wc)); ! 61: ! 62: // create a window for the application ! 63: ! 64: ghwndMain = CreateWindow(szAppName, ! 65: szAppName, ! 66: WS_OVERLAPPEDWINDOW, ! 67: GetSystemMetrics(SM_CXSCREEN) / 8, ! 68: GetSystemMetrics(SM_CYSCREEN) / 4, ! 69: GetSystemMetrics(SM_CXSCREEN) * 4 / 5, ! 70: GetSystemMetrics(SM_CYSCREEN) / 3, ! 71: (HWND)NULL, ! 72: (HMENU)NULL, ! 73: ghModule, ! 74: (LPSTR)NULL ! 75: ); ! 76: ! 77: WinAssert(ghwndMain); ! 78: ! 79: #ifdef MEDIA_DEBUG ! 80: dDbgSetDebugMenuLevel(__iDebugLevel); // set debug menu state ! 81: #endif ! 82: ! 83: ShowWindow(ghwndMain, SW_SHOWNORMAL); ! 84: UpdateWindow(ghwndMain); // paint it ! 85: ! 86: ! 87: return TRUE; ! 88: } ! 89: ! 90: /*************************************************************************** ! 91: ! 92: @doc INTERNAL ! 93: ! 94: @api void | CreateApp | Initialise the application when WM_CREATE ! 95: message is received. ! 96: ! 97: @parm HWND | hWnd | Handle to the parent window. ! 98: ! 99: @rdesc There is no return value. ! 100: ! 101: ***************************************************************************/ ! 102: ! 103: void CreateApp(HWND hWnd) ! 104: { ! 105: hWnd; ! 106: } ! 107: ! 108: /*************************************************************************** ! 109: ! 110: @doc INTERNAL ! 111: ! 112: @api void | TerminateApp | Terminate the application. ! 113: ! 114: @parm LPSTR | lpszFormat | A printf style format string ! 115: @parm ... | ... | Printf style args ! 116: ! 117: @rdesc There is no return value. ! 118: ! 119: ***************************************************************************/ ! 120: ! 121: void TerminateApp() ! 122: { ! 123: char buf[20]; ! 124: ! 125: // save profile info ! 126: sprintf(buf, "%d", bSync); ! 127: WriteProfileString(szAppName, "bSync", buf); ! 128: sprintf(buf, "%d", bNoWait); ! 129: WriteProfileString(szAppName, "bNoWait", buf); ! 130: sprintf(buf, "%d", bResourceID); ! 131: WriteProfileString(szAppName, "bResourceID", buf); ! 132: ! 133: ! 134: dprintf("ending", szAppName); ! 135: dSaveDebugLevel(szAppName); ! 136: } ! 137: ! 138: /*************************************************************************** ! 139: ! 140: @doc INTERNAL ! 141: ! 142: @api void | Error | Show an error message box. ! 143: ! 144: @rdesc There is no return value. ! 145: ! 146: ***************************************************************************/ ! 147: ! 148: void Error(LPSTR lpszFormat, ...) ! 149: { ! 150: int i; ! 151: char buf[256]; ! 152: va_list va; ! 153: ! 154: va_start(va, lpszFormat); ! 155: i = vsprintf(buf, lpszFormat, va); ! 156: va_end(va); ! 157: ! 158: MessageBeep(MB_ICONEXCLAMATION); ! 159: MessageBox(ghwndMain, buf, szAppName, MB_OK | MB_ICONEXCLAMATION); ! 160: } ! 161: ! 162:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.