Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

139 lines
4.3 KiB

/****************************************************************************\
*
* PROGRAM: updown.c
*
* PURPOSE: updown template for Windows applications
*
* FUNCTIONS:
*
* WinMain() - calls initialization function, processes message loop
* InitApplication() - initializes window data and registers window
* InitInstance() - saves instance handle and creates main window
* MainWndProc() - processes messages
* About() - processes messages for "About" dialog box
*
* COMMENTS:
*
* Windows can have several copies of your application running at the
* same time. The variable hInst keeps track of which instance this
* application is so that processing will be to the correct window.
*
\****************************************************************************/
#include <windows.h>
#include <commctrl.h>
#include "updown.h"
HINSTANCE hInst;
HWND ghwndUpDown;
BOOL DoCommand( HWND hWnd, UINT wParam, LONG lParam );
int DoInsertItem(HWND hwndUpDowner, int iInsertAfter, int nWidth, LPSTR lpsz);
HWND DoCreateUpDowner(HWND hwndParent);
void ErrorBox( HWND hwnd, LPTSTR pszText );
/****************************************************************************
*
* FUNCTION: WinMain(HANDLE, HANDLE, LPSTR, int)
*
* PURPOSE: calls initialization function, processes message loop
*
* COMMENTS:
*
* Windows recognizes this function by name as the initial entry point
* for the program. This function calls the application initialization
* routine, if no other instance of the program is running, and always
* calls the instance initialization routine. It then executes a message
* retrieval and dispatch loop that is the top-level control structure
* for the remainder of execution. The loop is terminated when a WM_QUIT
* message is received, at which time this function exits the application
* instance by returning the value passed by PostQuitMessage().
*
* If this function must abort before entering the message loop, it
* returns the conventional value NULL.
*
\****************************************************************************/
typedef struct {
int idUpDown;
int idEdit;
DWORD dwRange;
DWORD iPos;
BOOL fHex;
} UPDOWN_ELM;
#define C_UPDOWN 6
UPDOWN_ELM aUpDown[C_UPDOWN] = {
{ ID_UD_VIRT, ID_ED_VIRT, MAKELONG(100, 0), MAKELONG(50, 0), FALSE },
{ ID_UD_HORZ, ID_ED_HORZ, MAKELONG(45, (USHORT)-45), MAKELONG(0, 0), FALSE },
{ ID_UD_HEX, ID_ED_HEX, MAKELONG(0x100, 0x80), MAKELONG(0xc0, 0), TRUE },
{ ID_UD_SEP, ID_ED_SEP, MAKELONG(10000, 990), MAKELONG(1000, 0), FALSE },
{ ID_UD_SEPH, ID_ED_SEPH, MAKELONG(100, 50), MAKELONG(1, 0), FALSE },
{ ID_UD_NORMAL, ID_ED_NORMAL, MAKELONG(100, 0), MAKELONG(1, 0), FALSE }
};
BOOL UpDownDlg( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam ) {
int i;
switch( msg ) {
case WM_INITDIALOG:
for (i = 0; i < C_UPDOWN; i++ ) {
SendDlgItemMessage( hDlg, aUpDown[i].idUpDown, UDM_SETBUDDY,
(WPARAM)GetDlgItem(hDlg, aUpDown[i].idEdit), 0);
SendDlgItemMessage( hDlg, aUpDown[i].idUpDown, UDM_SETRANGE,
0, aUpDown[i].dwRange);
SendDlgItemMessage( hDlg, aUpDown[i].idUpDown, UDM_SETPOS,
0, aUpDown[i].iPos);
if (aUpDown[i].fHex) {
SendDlgItemMessage( hDlg, aUpDown[i].idUpDown, UDM_SETBASE,
16, 0);
}
}
break;
case WM_COMMAND:
if ( LOWORD(wParam) == IDOK ) {
for (i = 0; i < C_UPDOWN; i++ ) {
SendDlgItemMessage( hDlg, aUpDown[i].idUpDown, UDM_SETBUDDY,
(WPARAM)0, 0);
}
EndDialog(hDlg, 0);
}
else
return FALSE;
break;
default:
return FALSE;
}
return TRUE;
}
int APIENTRY WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG msg; /* message */
UNREFERENCED_PARAMETER( lpCmdLine );
InitCommonControls();
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN),
GetDesktopWindow(), UpDownDlg );
return GetLastError();
}