mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
4.5 KiB
186 lines
4.5 KiB
//+-------------------------------------------------------------------
|
|
//
|
|
// File: wterm2.cxx
|
|
//
|
|
// Contents: Shared Windows Procedures
|
|
//
|
|
// Classes: none
|
|
//
|
|
// History: 23-Nov-92 Rickhi Created
|
|
//
|
|
//--------------------------------------------------------------------
|
|
#include <pch.cxx>
|
|
#pragma hdrstop
|
|
|
|
extern "C"
|
|
{
|
|
#include "wterm.h"
|
|
#include <memory.h>
|
|
#include <stdio.h>
|
|
}
|
|
|
|
// function prototypes
|
|
long ProcessMenu(HWND hWindow, UINT uiMessage, WPARAM wParam, LPARAM lParam,
|
|
void *);
|
|
long ProcessChar(HWND hWindow, UINT uiMessage, WPARAM wParam, LPARAM lParam,
|
|
void *);
|
|
long ProcessClose(
|
|
HWND hWindow,
|
|
UINT uiMessage,
|
|
WPARAM wParam,
|
|
LPARAM lParam,
|
|
void *pvCallBackData);
|
|
|
|
#define IDM_DEBUG 0x100
|
|
|
|
// global variables.
|
|
|
|
HWND g_hMain;
|
|
#if DBG==1
|
|
BOOL g_fDisplay = 1;
|
|
#else
|
|
BOOL g_fDisplay = 0;
|
|
#endif
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Function: Display
|
|
//
|
|
// Synopsis: prints a message on the window
|
|
//
|
|
// History: 06-Aug-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
void Display(TCHAR *pszFmt, ...)
|
|
{
|
|
// since it takes a long time to display these messages and we dont
|
|
// want to skew benchmarks, displaying the messages is optional.
|
|
// the messages are usefull for debugging.
|
|
|
|
if (!g_fDisplay)
|
|
return;
|
|
|
|
va_list marker;
|
|
TCHAR szBuffer[256];
|
|
|
|
va_start(marker, pszFmt);
|
|
|
|
#ifdef UNICODE
|
|
int iLen = vswprintf(szBuffer, pszFmt, marker);
|
|
#else
|
|
int iLen = vsprintf(szBuffer, pszFmt, marker);
|
|
#endif
|
|
|
|
va_end(marker);
|
|
|
|
// Display the message on terminal window
|
|
SendMessage(g_hMain, WM_PRINT_LINE, iLen, (LONG) szBuffer);
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Function: ProcessMenu
|
|
//
|
|
// Synopsis: Gets called when a WM_COMMAND message received.
|
|
//
|
|
// Arguments: [hWindow] - handle for the window
|
|
// [uiMessage] - message id
|
|
// [wParam] - word parameter
|
|
// [lParam] - long parameter
|
|
//
|
|
// Returns: DefWindowProc result
|
|
//
|
|
// History: 06-Aug-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
long ProcessMenu(HWND hWindow, UINT uiMessage, WPARAM wParam, LPARAM lParam,
|
|
void *)
|
|
{
|
|
return (DefWindowProc(hWindow, uiMessage, wParam, lParam));
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Function: ProcessChar
|
|
//
|
|
// Synopsis: Gets called when a WM_CHAR message received.
|
|
//
|
|
// Arguments: [hWindow] - handle for the window
|
|
// [uiMessage] - message id
|
|
// [wParam] - word parameter
|
|
// [lParam] - long parameter
|
|
//
|
|
// Returns: DefWindowProc result
|
|
//
|
|
// History: 06-Aug-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
long ProcessChar(HWND hWindow, UINT uiMessage, WPARAM wParam, LPARAM lParam,
|
|
void *)
|
|
{
|
|
return (DefWindowProc(hWindow, uiMessage, wParam, lParam));
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Function: ProcessClose
|
|
//
|
|
// Synopsis: Gets called when a NC_DESTROY message received.
|
|
//
|
|
// Arguments: [hWindow] - handle for the window
|
|
// [uiMessage] - message id
|
|
// [wParam] - word parameter
|
|
// [lParam] - long parameter
|
|
//
|
|
// Returns: DefWindowProc result
|
|
//
|
|
// History: 06-Aug-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
long ProcessClose(
|
|
HWND hWindow,
|
|
UINT uiMessage,
|
|
WPARAM wParam,
|
|
LPARAM lParam,
|
|
void *pvCallBackData)
|
|
{
|
|
// Take default action with message
|
|
return (DefWindowProc(hWindow, uiMessage, wParam, lParam));
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Function: MakeTheWindow
|
|
//
|
|
// Synopsis: Creates the terminal window.
|
|
//
|
|
// Arguments: [hInstance] -
|
|
// [pwszAppName] - app name to display
|
|
//
|
|
// History: 06-Aug-92 Ricksa Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
void MakeTheWindow(HANDLE hInstance, TCHAR *pwszAppName)
|
|
{
|
|
// Register the window class
|
|
TermRegisterClass(hInstance, (LPTSTR) pwszAppName,
|
|
(LPTSTR) pwszAppName, (LPTSTR) (1));
|
|
|
|
// Create the server window
|
|
TermCreateWindow(
|
|
(LPTSTR) pwszAppName,
|
|
(LPTSTR) pwszAppName,
|
|
NULL,
|
|
ProcessMenu,
|
|
ProcessChar,
|
|
ProcessClose,
|
|
SW_SHOWMINIMIZED,
|
|
(HWND *)&g_hMain,
|
|
NULL);
|
|
|
|
// Add debug option to system menu
|
|
HMENU hmenu = GetSystemMenu(g_hMain, FALSE);
|
|
AppendMenu(hmenu, MF_SEPARATOR, 0, NULL);
|
|
AppendMenu(hmenu, MF_STRING | MF_ENABLED, IDM_DEBUG, TEXT("Debug"));
|
|
}
|