windows-nt/Source/XPSP1/NT/shell/osshell/accesory/calc/scicalc.h
2020-09-26 16:20:57 +08:00

135 lines
3.5 KiB
C

/****************************Module*Header***********************************\
* Module Name: SCICALC.H
*
* Module Descripton: Main header file
*
* Warnings:
*
* Created:
*
* Author:
\****************************************************************************/
#define CALC_COMPILE
/* To keep a buncha junk outa compiles */
#define NOGDICAPMASKS
#define NOSYSMETRICS
#define NODRAWFRAME
#define NOKEYSTATES
#define OEMRESOURCE
#define NOATOM
#define NOMETAFILE
#define NOOPENFILE
#define NOSOUND
#define NOWH
#define NOCOMM
#define NOKANJI
#include <windows.h>
#include <windowsx.h>
#include "scimath.h"
#include "resource.h"
#include "wassert.h" // our own simple little assert
#include <htmlhelp.h>
#define CSTRMAX 256 /* Maximum length of any one string. */
#ifdef DEBUG
#define CCHSTRINGSMAX 3
#else
#define CCHSTRINGSMAX 1024 /* Initial bytes to allocate for strings. */
#endif
#define CMS_CALC_TIMEOUT (10 * 1000) // initial timeout == 10 secs
#define CMS_MAX_TIMEOUT (40 * 1000) // Max timeout == 40 secs
#define xwParam(x,y) ((wParam >=x) && (wParam <=y))
#define RSHF 7
/* Error values. */
#define SCERR_DIVIDEZERO 0
#define SCERR_DOMAIN 1
#define SCERR_UNDEFINED 2
#define SCERR_POS_INFINITY 3
#define SCERR_NEG_INFINITY 4
#define SCERR_ABORTED 5
/* F_INTMATH() returns TRUE if math should be intiger mode */
//
// Do int math if we are not in base ten
//
#define F_INTMATH() (nRadix != 10)
////////////////////////////////////////////////////////////////////////////
//
// Function prototypes.
//
////////////////////////////////////////////////////////////////////////////
/* Exports. */
LRESULT APIENTRY CalcWndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR APIENTRY StatBoxProc(HWND, UINT, WPARAM, LPARAM);
/* Functions called from several modules. Must be FAR. */
VOID APIENTRY DisplayError (INT);
VOID APIENTRY EnableToggles(BOOL bEnable);
VOID APIENTRY InitSciCalc (BOOL);
VOID APIENTRY MenuFunctions(DWORD);
VOID APIENTRY SciCalcFunctions (PHNUMOBJ phnoNum, DWORD wOp);
VOID APIENTRY SetStat (BOOL);
VOID APIENTRY StatFunctions (WPARAM);
VOID DisplayNum (VOID);
/* Internal near calls. */
void DoOperation (INT nOperation, HNUMOBJ *phnoNum, HNUMOBJ hnoX);
VOID NEAR ProcessCommands(WPARAM);
VOID NEAR SetBox (int, BOOL);
VOID NEAR SetRadix (DWORD);
LONG NEAR StatAlloc (WORD, DWORD);
VOID NEAR StatError (VOID);
void SwitchModes(DWORD wRadix, int nDecMode, int nHexMode);
void RecalcNumObjConstants(void);
BOOL SetWaitCursor( BOOL fOn );
void KillTimeCalc( void );
void TimeCalc( BOOL fStart );
BOOL SetDisplayText(HWND, LPCTSTR);
// these functions are from SciKeys.c and are used to access data stored
// in the key array
COLORREF GetKeyColor( int iID );
ULONG_PTR GetHelpID( int iID );
#define INDEXFROMID( x ) (x-IDC_FIRSTCONTROL)
////////////////////////////////////////////////////////////////////////////
//
// Global Variables
//
////////////////////////////////////////////////////////////////////////////
extern HWND g_hwndDlg;
extern HINSTANCE hInst;
extern ANGLE_TYPE nDecMode;
extern long nRadix;
extern long nPrecision;
extern long dwWordBitWidth;
extern BOOL bInv;
extern BOOL bHyp;
extern int nCalc;
extern int nHexMode;
extern HNUMOBJ g_ahnoChopNumbers[];
extern BOOL bFarEast;