|
|
1.1 ! root 1: /*--------------------------------------------------- ! 2: SYSVALS1.C -- System Values Display Program No. 1 ! 3: ---------------------------------------------------*/ ! 4: ! 5: #define INCL_WIN ! 6: #define INCL_GPI ! 7: ! 8: #include <os2.h> ! 9: #include <stdio.h> ! 10: #include "sysvals.h" ! 11: ! 12: MRESULT EXPENTRY ClientWndProc (HWND, USHORT, MPARAM, MPARAM) ; ! 13: ! 14: int main (void) ! 15: { ! 16: static CHAR szClientClass [] = "SysVals1" ; ! 17: HAB hab ; ! 18: HMQ hmq ; ! 19: HWND hwndClient, hwndFrame ; ! 20: QMSG qmsg ; ! 21: ULONG flFrameFlags = FCF_STANDARD & ~FCF_MENU ; ! 22: ULONG flFrameStyle = WS_VISIBLE ; ! 23: ! 24: hab = WinInitialize (0) ; ! 25: hmq = WinCreateMsgQueue (hab, 0) ; ! 26: ! 27: WinRegisterClass (hab, szClientClass, ClientWndProc, CS_SIZEREDRAW, 0) ; ! 28: ! 29: hwndFrame = WinCreateStdWindow (HWND_DESKTOP, flFrameStyle, ! 30: &flFrameFlags, szClientClass, ! 31: "Presentation Manager System Values", ! 32: 0L, NULL, 0, &hwndClient) ; ! 33: ! 34: while (WinGetMsg (hab, &qmsg, NULL, 0, 0)) ! 35: WinDispatchMsg (hab, &qmsg) ; ! 36: ! 37: WinDestroyWindow (hwndFrame) ; ! 38: WinDestroyMsgQueue (hmq) ; ! 39: WinTerminate (hab) ; ! 40: ! 41: return 0 ; ! 42: } ! 43: ! 44: MRESULT EXPENTRY ClientWndProc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2) ! 45: { ! 46: static SHORT cxChar, cyChar, cyDesc, cxClient, cyClient ; ! 47: CHAR szBuffer [80] ; ! 48: FONTMETRICS fm ; ! 49: HPS hps ; ! 50: POINTL ptl ; ! 51: SHORT sLine ; ! 52: ! 53: switch (msg) ! 54: { ! 55: case WM_CREATE: ! 56: hps = WinGetPS (hwnd) ; ! 57: ! 58: GpiQueryFontMetrics (hps, (LONG) sizeof fm, &fm) ; ! 59: ! 60: cxChar = (SHORT) fm.lAveCharWidth ; ! 61: cyChar = (SHORT) fm.lMaxBaselineExt ; ! 62: cyDesc = (SHORT) fm.lMaxDescender ; ! 63: ! 64: WinReleasePS (hps) ; ! 65: return 0 ; ! 66: ! 67: case WM_SIZE: ! 68: cxClient = SHORT1FROMMP (mp2) ; ! 69: cyClient = SHORT2FROMMP (mp2) ; ! 70: return 0 ; ! 71: ! 72: case WM_PAINT: ! 73: hps = WinBeginPaint (hwnd, NULL, NULL) ; ! 74: ! 75: GpiErase (hps) ; ! 76: ! 77: for (sLine = 0 ; sLine < NUMLINES ; sLine++) ! 78: { ! 79: ptl.x = cxChar ; ! 80: ptl.y = cyClient - cyChar * (sLine + 1) + cyDesc ; ! 81: ! 82: GpiCharStringAt (hps, &ptl, ! 83: (LONG) sprintf (szBuffer, "%-20s%-34s%6ld", ! 84: sysvals[sLine].szIdentifier, ! 85: sysvals[sLine].szDescription, ! 86: WinQuerySysValue (HWND_DESKTOP, ! 87: sysvals[sLine].sIndex)), ! 88: szBuffer) ; ! 89: } ! 90: WinEndPaint (hps) ; ! 91: return 0 ; ! 92: } ! 93: return WinDefWindowProc (hwnd, msg, mp1, mp2) ; ! 94: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.