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.
133 lines
3.8 KiB
133 lines
3.8 KiB
#include <windows.h> // required for all Windows applications
|
|
#include "dpspimp.h"
|
|
#include "logit.h"
|
|
#include "tapicode.h"
|
|
|
|
HINSTANCE hInst = NULL;
|
|
|
|
char szAppName[] = "DPlay Serial Monitor"; // The name of this application
|
|
|
|
DWORD WndProcStart(LPVOID lpv)
|
|
{
|
|
((CImpIDP_SP *)pSrv->pThis)->WndProc();
|
|
return(0);
|
|
|
|
}
|
|
|
|
DWORD CImpIDP_SP::WndProc()
|
|
{
|
|
|
|
MSG msg;
|
|
HANDLE hAccelTable;
|
|
HINSTANCE hInstance = (HINSTANCE) GetModuleHandle(NULL);
|
|
WNDCLASS wc;
|
|
HWND hWnd; // Main window handle.
|
|
|
|
|
|
|
|
if (! InitializeTAPI(NULL))
|
|
return(0);
|
|
|
|
TSHELL_INFO("WndProc starting");
|
|
|
|
wc.style = 0;// Class style(s).
|
|
wc.lpfnWndProc = (WNDPROC)WndProc; // Window Procedure
|
|
wc.cbClsExtra = 0; // No per-class extra data.
|
|
wc.cbWndExtra = 0; // No per-window extra data.
|
|
wc.hInstance = hInst; // Owner of this class
|
|
wc.hIcon = NULL;
|
|
wc.hCursor = NULL;
|
|
wc.hbrBackground = NULL;
|
|
wc.lpszMenuName = NULL;
|
|
wc.lpszClassName = szAppName; // Name to register as
|
|
|
|
RegisterClass(&wc);
|
|
|
|
hInst = hInstance;
|
|
|
|
hWnd = CreateWindow(
|
|
szAppName, // See RegisterClass() call.
|
|
NULL, // Text for window title bar.
|
|
WS_POPUP,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
NULL, // Overlapped windows have no parent.
|
|
NULL, // Use the window class menu.
|
|
hInstance, // This instance owns this window.
|
|
NULL // We don't use any data in our WM_CREATE
|
|
);
|
|
|
|
// If window could not be created, return "failure"
|
|
if (!hWnd)
|
|
{
|
|
return (FALSE);
|
|
}
|
|
|
|
TSHELL_INFO("hWnd Created");
|
|
|
|
ShowWindow(hWnd, SW_HIDE); // Show the window
|
|
|
|
/* Acquire and dispatch messages until a WM_QUIT message is received. */
|
|
|
|
while (GetMessage(&msg, // message structure
|
|
NULL, // handle of window receiving the message
|
|
0, // lowest message to examine
|
|
0) // highest message to examine
|
|
&& !m_bStopHwnd
|
|
{
|
|
TranslateMessage(&msg); // Translates virtual key codes
|
|
DispatchMessage(&msg); // Dispatches message to window
|
|
}
|
|
|
|
|
|
|
|
ShutDownTAPI();
|
|
return (0); // Returns the value from PostQuitMessage
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
|
|
FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
|
|
|
|
PURPOSE: Processes messages
|
|
|
|
MESSAGES:
|
|
|
|
WM_COMMAND - application menu (About dialog box)
|
|
WM_DESTROY - destroy window
|
|
|
|
COMMENTS:
|
|
|
|
To process the IDM_ABOUT message, call MakeProcInstance() to get the
|
|
current instance address of the About() function. Then call Dialog
|
|
box which will create the box according to the information in your
|
|
generic.rc file and turn control over to the About() function. When
|
|
it returns, free the intance address.
|
|
|
|
****************************************************************************/
|
|
|
|
LRESULT CALLBACK WndProc(
|
|
HWND hWnd, // window handle
|
|
UINT message, // type of message
|
|
WPARAM uParam, // additional information
|
|
LPARAM lParam) // additional information
|
|
{
|
|
FARPROC lpProcAbout; // pointer to the "About" function
|
|
int wmId, wmEvent;
|
|
|
|
switch (message)
|
|
{
|
|
case WM_DESTROY: // message: window being destroyed
|
|
PostQuitMessage(0);
|
|
break;
|
|
|
|
default: // Passes it on if unproccessed
|
|
return (DefWindowProc(hWnd, message, uParam, lParam));
|
|
}
|
|
return (0);
|
|
}
|
|
|
|
|