Commit 8b293b1a authored by Peter Achten's avatar Peter Achten
Browse files

(PA) Removed bug and reordered some code.

parent 37dfc924
This diff is collapsed.
#include "intrface_121.h"
#include "util_121.h"
extern int WinBeep (int);
extern void WinGetTime (int,int*,int*,int*,int*);
extern void WinGetDate (int,int*,int*,int*,int*,int*);
extern int WinWait (int,int);
extern void WinGetBlinkTime (int,int*,int*);
extern void WinGetTickCount (OS ios, int *tickCount, OS * oos);
extern void WinPlaySound (CLEAN_STRING clfilename, OS ios, Bool * ook, OS * oos);
extern void WinGetTickCount (OS, int*, OS*);
extern void WinPlaySound (CLEAN_STRING, OS, Bool*, OS*);
......@@ -118,19 +118,19 @@ LONG GetGWL_USERDATA (HWND hwnd)
WindowHasHScroll (hwnd) returns TRUE iff hwnd has a horizontal scrollbar;
WindowHasVScroll (hwnd) returns TRUE iff hwnd has a vertical scrollbar;
*/
LONG GetGWL_STYLE (HWND hwnd)
static LONG GetGWL_STYLE (HWND hwnd)
{
return GetWindowLong (hwnd, GWL_STYLE);
}
BOOL WindowHasHScroll (HWND hwnd)
static BOOL WindowHasHScroll (HWND hwnd)
{
LONG hwndStyle = GetGWL_STYLE (hwnd);
return (hwndStyle & WS_HSCROLL);
}
BOOL WindowHasVScroll (HWND hwnd)
static BOOL WindowHasVScroll (HWND hwnd)
{
LONG hwndStyle = GetGWL_STYLE (hwnd);
......
......@@ -107,7 +107,7 @@ static BYTE HiddenCursorXORmask[128] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
HCURSOR GetFatCrossCursor (void)
static HCURSOR GetFatCrossCursor (void)
{
if (ghFatCrossCursor != NULL)
return ghFatCrossCursor;
......@@ -120,7 +120,7 @@ HCURSOR GetFatCrossCursor (void)
);
return ghFatCrossCursor;
}
} /* GetFatCrossCursor */
HCURSOR GetHiddenCursor (void)
{
......@@ -135,7 +135,7 @@ HCURSOR GetHiddenCursor (void)
);
return ghHiddenCursor;
}
} /* GetHiddenCursor */
void DeleteCursors (void)
{
......@@ -150,7 +150,7 @@ void DeleteCursors (void)
DestroyCursor (ghHiddenCursor);
ghHiddenCursor = NULL;
}
}
} /* GetHiddenCursor */
HCURSOR SetCursorFromCode (int code)
{
......@@ -171,9 +171,27 @@ HCURSOR SetCursorFromCode (int code)
default:
return NULL;
}
} /* SetCursorFromCode */
int GetGlobalCursorCode (void)
{
return gGlobalCursorCode;
} /* GetGlobalCursorCode */
BOOL GlobalCursorSet (void)
{
return gGlobalCursorCode != -1;
} /* GlobalCursorSet */
/* PA: this routine does not seem to be used anymore.
static void ClearGlobalCursorCode (void)
{
gGlobalCursorCode = -1;
}
*/
BOOL IsApplicationWindow (HWND hwnd)
static BOOL IsApplicationWindow (HWND hwnd)
{
while (hwnd != NULL && hwnd != ghMainWindow)
hwnd = GetWindow (hwnd, GW_OWNER);
......@@ -181,7 +199,7 @@ BOOL IsApplicationWindow (HWND hwnd)
return (hwnd != NULL);
}
HWND ApplicationWindowUnderCursor ()
static HWND ApplicationWindowUnderCursor (void)
{
POINT p;
HWND hwnd;
......@@ -195,21 +213,6 @@ HWND ApplicationWindowUnderCursor ()
return NULL;
}
int GetGlobalCursorCode ()
{
return gGlobalCursorCode;
}
GlobalCursorSet ()
{
return gGlobalCursorCode != -1;
}
static void ClearGlobalCursorCode ()
{
gGlobalCursorCode = -1;
}
/* Cross call procedure implementations.
Eval<nr> corresponds with a CrossCallEntry generated by NewCrossCallEntry (nr,Eval<nr>).
......
......@@ -17,8 +17,8 @@ extern HCURSOR GetHiddenCursor (void);
extern void DeleteCursors (void);
extern HCURSOR SetCursorFromCode (int code);
extern int GetGlobalCursorCode ();
extern BOOL GlobalCursorSet ();
extern int GetGlobalCursorCode (void);
extern BOOL GlobalCursorSet (void);
// InstallCrossCallCursor adds the proper cross call procedures to the
// cross call procedures managed by cCrossCall_121.c.
......
......@@ -12,22 +12,22 @@
#include "cCrossCall_121.h"
int CALLBACK EnumFontNameProc (ENUMLOGFONT FAR * lpelf, /* pointer to logical-font data */
NEWTEXTMETRIC FAR * lpntm, /* pointer to physical-font data */
int fontType, /* type of font */
LPARAM lParam /* address of application-defined data */
)
static int CALLBACK EnumFontNameProc (ENUMLOGFONT FAR * lpelf, /* pointer to logical-font data */
NEWTEXTMETRIC FAR * lpntm, /* pointer to physical-font data */
int fontType, /* type of font */
LPARAM lParam /* address of application-defined data */
)
{
SendMessage1ToClean (CcCbFONTNAME, lpelf->elfLogFont.lfFaceName);
return 1;
}
int CALLBACK EnumFontSizeProc (ENUMLOGFONT FAR * lpelf, /* pointer to logical-font data */
NEWTEXTMETRIC FAR * lpntm, /* pointer to physical-font data */
int fontType, /* type of font */
LPARAM lParam /* address of application-defined data */
)
static int CALLBACK EnumFontSizeProc (ENUMLOGFONT FAR * lpelf, /* pointer to logical-font data */
NEWTEXTMETRIC FAR * lpntm, /* pointer to physical-font data */
int fontType, /* type of font */
LPARAM lParam /* address of application-defined data */
)
{
SendMessage2ToClean (CcCbFONTSIZE,lpntm->tmHeight - lpntm->tmInternalLeading, fontType == TRUETYPE_FONTTYPE);
......
......@@ -41,7 +41,7 @@ void EvalCcRqADDMENUSHORTKEY (CrossCallInfo *pcci) /* frameptr, cmd, key; no res
if (gAcceleratorTableIsUpToDate)
{
gAcceleratorTableIsUpToDate == !(ghActiveFrameWindow==frameptr);
gAcceleratorTableIsUpToDate = !(ghActiveFrameWindow==frameptr);
}
MakeReturn0Cci (pcci);
......@@ -63,7 +63,7 @@ void EvalCcRqREMOVEMENUSHORTKEY (CrossCallInfo *pcci) /* frameptr, cmd; no resul
if (gAcceleratorTableIsUpToDate)
{
gAcceleratorTableIsUpToDate == !(ghActiveFrameWindow==frameptr);
gAcceleratorTableIsUpToDate = !(ghActiveFrameWindow==frameptr);
}
MakeReturn0Cci (pcci);
......
......@@ -47,7 +47,7 @@ void FreeCrossCallEntry (CrossCallEntry cce)
}
// EmptyCrossCallProcedureTable creates an empty table.
CrossCallProcedureTable EmptyCrossCallProcedureTable ()
CrossCallProcedureTable EmptyCrossCallProcedureTable (void)
{
CrossCallProcedureTable ccpt = rmalloc (sizeof (struct _crosscallproceduretable));
......@@ -76,7 +76,7 @@ void FreeCrossCallProcedureTable (CrossCallProcedureTable ccpt)
is the entry after which a new entry with nr should be added, or
NULL in case nr should be placed before entry.
*/
CrossCallEntry SearchCrossCallEntry (int nr,CrossCallEntry entry)
static CrossCallEntry SearchCrossCallEntry (int nr,CrossCallEntry entry)
{
if (nr == entry->cce_code)
return entry; // entry found
......
......@@ -18,7 +18,7 @@ extern CrossCallEntry NewCrossCallEntry (int cce_code, CrossCallProcedure cce_pr
extern void FreeCrossCallEntry (CrossCallEntry cce);
// EmptyCrossCallProcedureTable creates an empty table.
extern CrossCallProcedureTable EmptyCrossCallProcedureTable ();
extern CrossCallProcedureTable EmptyCrossCallProcedureTable (void);
// GetCrossCallProcedureTableSize returns the current number of installed cross call procedures.
extern int GetCrossCallProcedureTableSize (CrossCallProcedureTable ccpt);
......
......@@ -27,7 +27,7 @@ static char TCPWindowClassName[] = "__CleanTCPWindow"; /* Class for TCP child
/* This function is used for looking up an element with a matching dnsHdl-field in
the DNSInfoList. This element will then be removed from the list.
*/
void lookUpAndRemove(WPARAM dnsHdl,DNSInfo **listPtr,DNSInfo **elPtr)
static void lookUpAndRemove(WPARAM dnsHdl,DNSInfo **listPtr,DNSInfo **elPtr)
{
if ((WPARAM)(*listPtr)->dnsHdl==dnsHdl)
{ // the object to look up has been found, so remove it from the list
......@@ -43,7 +43,7 @@ void lookUpAndRemove(WPARAM dnsHdl,DNSInfo **listPtr,DNSInfo **elPtr)
/* The callback routine for a TCP window (extracted from MainWindowProcedure).
It handles only PM_SOCKET_EVENT and PM_DNS_EVENT.
*/
LRESULT CALLBACK TCPWindowProcedure (HWND hWin, UINT uMess, WPARAM wPara, LPARAM lPara)
static LRESULT CALLBACK TCPWindowProcedure (HWND hWin, UINT uMess, WPARAM wPara, LPARAM lPara)
{
printMessage ("TCP Window", hWin, uMess, wPara, lPara);
switch (uMess)
......@@ -128,11 +128,12 @@ LRESULT CALLBACK TCPWindowProcedure (HWND hWin, UINT uMess, WPARAM wPara, LPARAM
/* Register the TCPWindow class:
*/
void InitialiseCrossCallTCP ()
void InitialiseCrossCallTCP (void)
{
WNDCLASS wclass;
WNDCLASSEX wclass;
/* register tcp window class */
wclass.cbSize = sizeof (WNDCLASSEX);
wclass.style = CS_NOCLOSE;
wclass.lpfnWndProc = (WNDPROC) TCPWindowProcedure;
wclass.cbClsExtra = 0;
......@@ -143,7 +144,8 @@ void InitialiseCrossCallTCP ()
wclass.hbrBackground = NULL;
wclass.lpszMenuName = NULL;
wclass.lpszClassName = TCPWindowClassName;
RegisterClass (&wclass);
wclass.hIconSm = NULL;
RegisterClassEx (&wclass);
}
......
......@@ -39,7 +39,7 @@ struct LocalWindowData
typedef struct LocalWindowData *LocalWindowData;
LocalWindowData AllocateLocalWindowData ()
static LocalWindowData AllocateLocalWindowData (void)
{
LocalWindowData lwd_wdata;
......@@ -52,15 +52,15 @@ LocalWindowData AllocateLocalWindowData ()
/* DestroyLocalWindowData (wdata) frees the memory used by the wdata.
*/
void DestroyLocalWindowData (LocalWindowData wdata)
static void DestroyLocalWindowData (LocalWindowData wdata)
{
rfree (wdata);
}
/* IsSDIDocumentWindow (hwnd)
returns TRUE if the class name of hwnd is SDIWindowClassName.
*/
/* PA: The following two procedures do not seem to be used anymore.
// IsSDIDocumentWindow (hwnd)
// returns TRUE if the class name of hwnd is SDIWindowClassName.
//
BOOL IsSDIDocumentWindow (HWND hwnd)
{
char *classname;
......@@ -78,9 +78,9 @@ BOOL IsSDIDocumentWindow (HWND hwnd)
return isSDI;
}
/* IsMDIDocumentWindow (hwnd)
returns TRUE if the class name of hwnd is MDIWindowClassName.
*/
// IsMDIDocumentWindow (hwnd)
// returns TRUE if the class name of hwnd is MDIWindowClassName.
//
BOOL IsMDIDocumentWindow (HWND hwnd)
{
char *classname;
......@@ -97,12 +97,13 @@ BOOL IsMDIDocumentWindow (HWND hwnd)
return isMDI;
}
*/
/* Find the first non CompoundControl parent window of the argument
hwnd. This procedure assumes that hwnd is the handle of a control.
*/
HWND GetControlParent (HWND hwndControl)
static HWND GetControlParent (HWND hwndControl)
{
HWND parent;
char *parentclassname;
......@@ -113,7 +114,7 @@ HWND GetControlParent (HWND hwndControl)
parentclassname = rmalloc (classnamelength);
GetClassName (parent, parentclassname, classnamelength);
while (nstrequal (classnamelength, parentclassname, CompoundControlClassName))
while (nstrequal (classnamelength-1, parentclassname, CompoundControlClassName))
{
parent = GetParent (parent);
GetClassName (parent,parentclassname,classnamelength);
......@@ -127,7 +128,7 @@ HWND GetControlParent (HWND hwndControl)
a Dialog then NULL is returned.
This procedure assumes that hwnd is the handle of a control.
*/
HWND GetControlParentDialog (HWND hwndControl)
static HWND GetControlParentDialog (HWND hwndControl)
{
HWND parent;
char *parentclassname;
......@@ -153,9 +154,9 @@ HWND GetControlParentDialog (HWND hwndControl)
}
BOOL CALLBACK SetControlFontProc (HWND hchild, /* handle to child window */
LPARAM lParam /* application-defined value */
)
static BOOL CALLBACK SetControlFontProc (HWND hchild, /* handle to child window */
LPARAM lParam /* application-defined value */
)
{
HFONT hfont;
......@@ -174,7 +175,7 @@ BOOL CALLBACK SetControlFontProc (HWND hchild, /* handle to child window */
/*********************************************************************************************
The callback routine for a modal/modeless dialog box.
*********************************************************************************************/
BOOL CALLBACK DialogProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static BOOL CALLBACK DialogProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
printMessage ("Dialog procedure", hwnd, message, wParam, lParam);
......@@ -493,7 +494,7 @@ BOOL CALLBACK DialogProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lP
/*********************************************************************************************
The callback routine for a custom control.
*********************************************************************************************/
LRESULT CALLBACK CustomControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK CustomControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
{
printMessage ("CustomControlProcedure", hwnd, uMess, wParam, lParam);
switch (uMess)
......@@ -678,7 +679,7 @@ LRESULT CALLBACK CustomControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, L
/*********************************************************************************************
The callback routine for a compound control.
*********************************************************************************************/
LRESULT CALLBACK CompoundControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK CompoundControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam)
{
printMessage ("CompoundControlProcedure", hwnd, uMess, wParam, lParam);
switch (uMess)
......@@ -742,14 +743,13 @@ LRESULT CALLBACK CompoundControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam,
HDC hdc;
PAINTSTRUCT ps;
// if (GetUpdateRect(hwnd,NULL,FALSE)) // determine if there is really an update area.
// {
parentwindow = GetControlParent (hwnd);
hdc = BeginPaint (hwnd, &ps);
SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, hwnd, hdc);
EndPaint (hwnd, &ps);
// }
if (GetUpdateRect(hwnd,NULL,FALSE)) // determine if there is really an update area.
{
parentwindow = GetControlParent (hwnd);
hdc = BeginPaint (hwnd, &ps);
SendMessage3ToClean (CcWmDRAWCONTROL, parentwindow, hwnd, hdc);
EndPaint (hwnd, &ps);
}
return 0;
} break;
......@@ -1080,7 +1080,7 @@ LRESULT CALLBACK CompoundControlProcedure (HWND hwnd, UINT uMess, WPARAM wParam,
SetFocus/KillFocus events are passed to Clean as Activate and Deactivate events.
All other events are handled as a standard windows edit control.
*********************************************************************************************/
LRESULT CALLBACK EditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
static LRESULT CALLBACK EditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
{
LRESULT stdresult;
......@@ -1245,7 +1245,7 @@ LRESULT CALLBACK EditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM
SetFocus/KillFocus events are passed to Clean as Activate and Deactivate events.
All other events are handled as a standard windows edit control.
*********************************************************************************************/
LRESULT CALLBACK SimpleEditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
static LRESULT CALLBACK SimpleEditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
{
LRESULT stdresult;
......@@ -1321,7 +1321,7 @@ LRESULT CALLBACK SimpleEditControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,
would, but in addition it also sends each keyboard input to Clean.
All other events are handled as a standard windows pop up control.
*********************************************************************************************/
LRESULT CALLBACK PopUpControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
static LRESULT CALLBACK PopUpControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARAM lParam)
{
LRESULT stdresult;
......@@ -1443,7 +1443,7 @@ LRESULT CALLBACK PopUpControlProcedure (HWND hwnd,UINT uMess,WPARAM wParam,LPARA
The callback routine handles all events for the client window of a SDI window.
The accelerator table is now managed by its parent SDI frame window callback routine.
*********************************************************************************************/
LRESULT CALLBACK SDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lPara)
static LRESULT CALLBACK SDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lPara)
{
printMessage ("Clean SDI Window", hWin, uMess, wPara, lPara);
switch (uMess)
......@@ -1829,15 +1829,13 @@ LRESULT CALLBACK SDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lP
} break;
case ODT_BUTTON:
{
{
SendMessage3ToClean (CcWmDRAWCONTROL, hWin, lpdis->hwndItem, lpdis->hDC);
if (lpdis->itemState & ODS_SELECTED)
InvertRect (lpdis->hDC, &lpdis->rcItem);
if (lpdis->itemState & ODS_FOCUS)
DrawFocusRect (lpdis->hDC, &lpdis->rcItem);
};
SendMessage3ToClean (CcWmDRAWCONTROL, hWin, lpdis->hwndItem, lpdis->hDC);
if (lpdis->itemState & ODS_SELECTED)
InvertRect (lpdis->hDC, &lpdis->rcItem);
if (lpdis->itemState & ODS_FOCUS)
DrawFocusRect (lpdis->hDC, &lpdis->rcItem);
return TRUE;
} break;
}
......@@ -1856,7 +1854,7 @@ LRESULT CALLBACK SDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lP
these do not work well when dialogs are involved. Instead WM_NCACTIVATE messages are
checked.
*********************************************************************************************/
LRESULT CALLBACK MDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lPara)
static LRESULT CALLBACK MDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lPara)
{
printMessage ("Clean MDI Doc Window",hWin,uMess,wPara,lPara);
switch (uMess)
......@@ -2272,15 +2270,13 @@ LRESULT CALLBACK MDIWindowProcedure (HWND hWin,UINT uMess,WPARAM wPara,LPARAM lP
} break;
case ODT_BUTTON:
{
{
SendMessage3ToClean (CcWmDRAWCONTROL, hWin, lpdis->hwndItem, lpdis->hDC);
if (lpdis->itemState & ODS_SELECTED)
InvertRect (lpdis->hDC, &lpdis->rcItem);
if (lpdis->itemState & ODS_FOCUS)
DrawFocusRect (lpdis->hDC, &lpdis->rcItem);
};
SendMessage3ToClean (CcWmDRAWCONTROL, hWin, lpdis->hwndItem, lpdis->hDC);
if (lpdis->itemState & ODS_SELECTED)
InvertRect (lpdis->hDC, &lpdis->rcItem);
if (lpdis->itemState & ODS_FOCUS)
DrawFocusRect (lpdis->hDC, &lpdis->rcItem);
return TRUE;
} break;
}
......@@ -3520,11 +3516,12 @@ void EvalCcRqDELCONTROLTIP (CrossCallInfo *pcci) /* parentPtr, controlPtr; no re
/* Initialisation:
*/
void InitialiseCrossCallWindows ()
void InitialiseCrossCallWindows (void)
{
WNDCLASS wclass;
WNDCLASSEX wclass;
/* register custom control class */
wclass.cbSize = sizeof (WNDCLASSEX);
wclass.style = CS_NOCLOSE | CS_PARENTDC;
wclass.lpfnWndProc = (WNDPROC) CustomControlProcedure;
wclass.cbClsExtra = 0;
......@@ -3535,9 +3532,11 @@ void InitialiseCrossCallWindows ()
wclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);
wclass.lpszMenuName = NULL;
wclass.lpszClassName = CustomControlClassName;
RegisterClass (&wclass);
wclass.hIconSm = NULL;
RegisterClassEx (&wclass);
/* register clean compound control class */
wclass.cbSize = sizeof (WNDCLASSEX);
wclass.style = CS_PARENTDC;
wclass.lpfnWndProc = (WNDPROC) CompoundControlProcedure;
wclass.cbClsExtra = 0;
......@@ -3548,9 +3547,11 @@ void InitialiseCrossCallWindows ()
wclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);//(NULL_BRUSH);
wclass.lpszMenuName = NULL;
wclass.lpszClassName = CompoundControlClassName;
RegisterClass (&wclass);
wclass.hIconSm = NULL;
RegisterClassEx (&wclass);
/* register clean SDI window class */
wclass.cbSize = sizeof (WNDCLASSEX);
wclass.style = 0;
wclass.lpfnWndProc = (WNDPROC) SDIWindowProcedure;
wclass.cbClsExtra = 0;
......@@ -3561,9 +3562,11 @@ void InitialiseCrossCallWindows ()
wclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wclass.lpszMenuName = NULL;
wclass.lpszClassName = SDIWindowClassName;
RegisterClass (&wclass);
wclass.hIconSm = NULL;
RegisterClassEx (&wclass);
/* register clean MDI window class */
wclass.cbSize = sizeof (WNDCLASSEX);
wclass.style = 0;
wclass.lpfnWndProc = (WNDPROC) MDIWindowProcedure;
wclass.cbClsExtra = 0;
......@@ -3574,7 +3577,8 @@ void InitialiseCrossCallWindows ()
wclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wclass.lpszMenuName = NULL;
wclass.lpszClassName = MDIWindowClassName;
RegisterClass (&wclass);
wclass.hIconSm = NULL;
RegisterClassEx (&wclass);
/* initialise the common control library. */
InitCommonControls ();
......
......@@ -32,10 +32,25 @@ extern CrossCallProcedureTable gCrossCallProcedureTable; /* The cross call proce
#define OSMenuIDEnd 10000
extern UINT NextMenuItemID (void);
extern BOOL CleanThreadRunning( void );
extern BOOL OsThreadRunning( void );
/* GetModifiers returns the modifiers that are currently pressed.
*/
extern int GetModifiers (void);
/* Translate virtual key codes to the codes shared with Clean.
If the keycode could not be translated, zero is returned.
*/
extern int CheckVirtualKeyCode (int keycode);
extern void HandleCleanRequest( CrossCallInfo *pcci );
extern BOOL CleanThreadRunning( void );
extern BOOL OsThreadRunning( void );
extern void WinInitOs (Bool*,OS*);
extern Bool WinCloseOs (OS);
extern OS WinStartOsThread (OS);
extern OS WinKillOsThread (OS);
extern void WinKickOsThread (int,int,int,int,int,int,int,OS,int*,int*,int*,int*,int*,int*,int*,OS*);
extern void KickCleanThread( CrossCallInfo *pcci );
extern void SendMessageToClean( int mess, int p1,int p2,int p3, int p4,int p5,int p6 );
......@@ -58,24 +73,13 @@ extern CrossCallInfo *MakeReturn4Cci (CrossCallInfo * pcci, int v1, int v2, int
extern CrossCallInfo *MakeReturn5Cci (CrossCallInfo * pcci, int v1, int v2, int v3, int v4, int v5);
extern CrossCallInfo *MakeReturn6Cci (CrossCallInfo * pcci, int v1, int v2, int v3, int v4, int v5, int v6);
extern DWORD OsThreadFunction( DWORD param );
extern BOOL IsReturnCci( CrossCallInfo *pcci );
/* GetModifiers returns the modifiers that are currently pressed.