/*---------------------------------------------------------------------------*\ | GLOBAL MODULE | This module contains global-variables for the appliciation. These were | isolate purely for maintainability of the app. | | | Copyright (c) Microsoft Corp., 1990-1993 | | created: 29-Dec-92 | history: 29-Dec-92 created with port to NT. | 19-Oct-93 unicode enhancements from a-dianeo. | \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include "winchat.h" #include "dialogs.h" // Send-Window Information. // HFONT hEditSndFont = NULL; HWND hwndSnd; HBRUSH hEditSndBrush; COLORREF SndColorref,SndBrushColor; LOGFONT lfSnd; RECT SndRc; // Receive-Window Information. // HFONT hEditRcvFont = NULL; HWND hwndRcv; HBRUSH hEditRcvBrush; COLORREF RcvColorref,RcvBrushColor; COLORREF PartBrushColor; LOGFONT lfRcv; RECT RcvRc; // DDEML Conversation. // DWORD idInst = 0; HSZ hszServiceName = (HSZ)0; HSZ hszConnect = (HSZ)0; HSZ hszChatTopic = (HSZ)0; HSZ hszChatShare = (HSZ)0; HSZ hszTextItem = (HSZ)0; HSZ hszConvPartner = (HSZ)0; HSZ hszConnectTest = (HSZ)0; HSZ hszLocalName = (HSZ)0; HCONV ghConv; // Misc global variables. // int dyStatus,dyButtonBar,dyBorder,cxIcon,cyIcon,cbTextLen; UINT_PTR idTimer; DWORD XactID,StrXactID; HANDLE hInst; HACCEL hAccel; HDC hMemDC; HBITMAP hOldBitmap,hPhnBitmap,hOldMemObj; HICON hPhones[3]; HFONT hFontStatus,hOldFont; HBRUSH hBtnFaceBrush; HPEN hShadowPen,hHilitePen,hFramePen; UINT cf_chatdata; HWND hwndActiveEdit,hwndApp; WNETCALL WNetServerBrowseDialog; int ASeq[4] = {0,1,0,2}; WORD cAnimate = 0; HANDLE hMemTextBuffer = NULL; int nConnectAttempt = 0; HWND hwndToolbar = NULL; HWND hwndStatus = NULL; // Pointer information. // WNDPROC lpfnOldEditProc; LPBYTE lpbTextBuffer; // Common-Dialog variables. // CHOOSEFONT chf; CHOOSECOLOR chc; DWORD CustColors[16]; CHATSTATE ChatState; CHATDATA ChatData, ChatDataRcv; WINDOWPLACEMENT Wpl; // Global Buffers. // TCHAR szHelv [SMLRCBUF]; TCHAR szAppName [SMLRCBUF]; TCHAR szServiceName [SMLRCBUF]; TCHAR szAlreadyConnect[BIGRCBUF]; TCHAR szAbandonFirst [BIGRCBUF]; TCHAR szDialing [BIGRCBUF]; TCHAR szYouCaller [BIGRCBUF]; TCHAR szNotCalled [BIGRCBUF]; TCHAR szNotConnected [BIGRCBUF]; TCHAR szConnectAbandon[BIGRCBUF]; TCHAR szHangingUp [BIGRCBUF]; TCHAR szHasTerminated [BIGRCBUF]; TCHAR szConnectedTo [BIGRCBUF]; TCHAR szConnecting [BIGRCBUF]; TCHAR szIsCalling [BIGRCBUF]; TCHAR szDialHelp [BIGRCBUF]; TCHAR szAnswerHelp [BIGRCBUF]; TCHAR szHangUpHelp [BIGRCBUF]; TCHAR szNoConnect [BIGRCBUF]; TCHAR szNoConnectionTo[BIGRCBUF]; TCHAR szSysErr [BIGRCBUF]; TCHAR szAlwaysOnTop [BIGRCBUF]; TCHAR szNoNet [SZBUFSIZ]; TCHAR szBuf [SZBUFSIZ]; // general purpose string buffer TCHAR szHelp [SZBUFSIZ]; TCHAR szIniSection [SZBUFSIZ]; TCHAR szIniKey1 [BIGRCBUF]; TCHAR szIniKey2 [BIGRCBUF]; TCHAR szIniRingIn [BIGRCBUF]; TCHAR szIniRingOut [BIGRCBUF]; TCHAR szConvPartner [UNCNLEN] = TEXT(""); // Conversation partner. TCHAR szLocalName [UNCNLEN] = TEXT(""); // Computer name. // localized strings // CONST TCHAR szChatTopic [] = TEXT("Chat"); TCHAR szChatShare [] = TEXT("CHAT$"); CONST TCHAR szWcRingIn [] = TEXT("RingIn"); CONST TCHAR szWcRingOut [] = TEXT("RingOut"); CONST TCHAR szSysIni [] = TEXT("system.ini"); CONST TCHAR szVredir [] = TEXT("Network"); CONST TCHAR szComputerName[] = TEXT("ComputerName"); CONST TCHAR szChatText [] = TEXT("ChatText"); CONST TCHAR szConnectTest [] = TEXT("___cnc3tst___"); CONST TCHAR szWinChatClass[] = TEXT("WinChatWClass"); CONST TCHAR szWinChatMenu [] = TEXT("WinChatMenu"); CONST TCHAR szHelpFile [] = TEXT("winchat.hlp"); CONST TCHAR szIni [] = TEXT("Winchat.ini"); CONST TCHAR szFnt [] = TEXT("Font"); CONST TCHAR szPref [] = TEXT("Preferences"); CONST TCHAR szSnd [] = TEXT("Sound"); CONST TCHAR szTool [] = TEXT("ToolBar"); CONST TCHAR szStat [] = TEXT("StatusBar"); CONST TCHAR szTop [] = TEXT("TopMost"); CONST TCHAR szUseOF [] = TEXT("UseOwnFont"); CONST TCHAR szSbS [] = TEXT("SideBySide"); CONST TCHAR szAutoAns [] = TEXT("AutoAnswer"); CONST TCHAR szBkgnd [] = TEXT("BkGnd"); CONST TCHAR szNull [] = TEXT(""); // This list must be NULL-terminated. // CONST UINT nIDs[] = {MH_BASE,MH_POPUPBASE,0,0}; // Code for all font aspects (CODEWORK - reduce to essential?) // CONST TCHAR szHeight [] = TEXT("Height"); CONST TCHAR szWeight [] = TEXT("Weight"); CONST TCHAR szPitchFam [] = TEXT("PitchFam"); CONST TCHAR szItalic [] = TEXT("Italic"); CONST TCHAR szUnderline [] = TEXT("Underline"); CONST TCHAR szStrikeOut [] = TEXT("Strikeout"); CONST TCHAR szFontName [] = TEXT("Name"); CONST TCHAR szWidth [] = TEXT("Width"); CONST TCHAR szCharSet [] = TEXT("TCHARset"); CONST TCHAR szOutPrecision[] = TEXT("OutPrecision"); CONST TCHAR szClipPrec [] = TEXT("ClipPrecision"); CONST TCHAR szQuality [] = TEXT("Quality"); CONST TCHAR szColor [] = TEXT("Color"); CONST TCHAR szPlacement [] = TEXT("Placement"); CONST TCHAR szPlcFmt [] = TEXT("%d %d %d %d %d %d %d"); BOOL gfDbcsEnabled; UINT WINAPI fakeFunc() { return 0; } HIMC (WINAPI* pfnImmGetContext)(HWND) = (PVOID)fakeFunc; BOOL (WINAPI* pfnImmReleaseContext)(HWND, HIMC) = (PVOID)fakeFunc; LONG (WINAPI* pfnImmGetCompositionStringW)(HIMC, DWORD, LPVOID, DWORD) = (PVOID)fakeFunc;