Posted to tcl by kostix at Tue Oct 23 22:16:42 GMT 2007view pretty
static int CreateMonitorWindow ( Tcl_Interp *interp, Winpm_InterpData *statePtr) { CONST TCHAR name[] = _T("TkWinPMMonitorWindow"); CONST TCHAR titlePfx[] = _T("TkWinPMMonitorWindow"); HINSTANCE hinst; WNDCLASSEX wc; ATOM rc; TCHAR title[256]; HWND hwnd; hinst = Tk_GetHINSTANCE(); if (!globalState.classRegistered) { memset(&wc, 0, sizeof(wc)); wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC) WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hinst; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH) COLOR_WINDOW; wc.lpszMenuName = name; wc.lpszClassName = name; rc = RegisterClassEx(&wc); if (rc == 0) { Tcl_ResetResult(interp); AppendSystemError(interp, GetLastError()); return TCL_ERROR; } globalState.classRegistered = 1; } _tcscpy(title, titlePfx); if (globalState.instances >= 1) { _stprintf(title + _tcslen(title), _T(" #%d"), globalState.instances); } hwnd = CreateWindow(name, title, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinst, NULL); if (hwnd == NULL) { Tcl_ResetResult(interp); AppendSystemError(interp, GetLastError()); return TCL_ERROR; } SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG)statePtr); ShowWindow(hwnd, SW_HIDE); UpdateWindow(hwnd); statePtr->hwndMonitor = hwnd; return TCL_OK; }