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.
 
 
 
 
 
 

428 lines
7.5 KiB

/*
| Outside In for Windows
| Source File OIWPROC.C (Window procedure for word processor window)
|
| ²²²²² ²²²²²
| ² ² ²
| ² ² ²
| ² ² ²
| ²²²²² ²²²²²
|
| Outside In
|
*/
/*
| Creation Date: 10/14/90
| Original Programmer: Philip Boutros
|
|
|
|
|
*/
#include <platform.h>
#include <sccut.h>
#include <sccch.h>
#include <sccvw.h>
#include <sccd.h>
#include <sccfont.h>
#include "oiw.h"
#include "oiwstr.h"
#include "oiw.pro"
extern VOID OIWSysColorChangeNP(LPOIWORDINFO);
OIWPOP gWpOp =
{
sizeof(OIWPOP),
WPOP_FORMAT_TEXT | WPOP_FORMAT_RTF | WPOP_FORMAT_AMI2,
WPOP_INCLUDE_CHARATTR | WPOP_INCLUDE_CHARSIZE | WPOP_INCLUDE_CHARFACE | WPOP_INCLUDE_PARAINDENTALIGN | WPOP_INCLUDE_PARASPACING | WPOP_INCLUDE_TABSTOPS,
"Helv",
10,
WPOP_DISPLAY_NORMAL
};
#ifdef WINNT
BOOL APIENTRY LibMain( HANDLE hInstance, DWORD dwReason, LPVOID lpReserved )
{
return(TRUE);
}
#endif
DE_ENTRYSC DE_LRESULT DE_ENTRYMOD DEProc( message, wParam, lParam, lpWordInfo )
DE_MESSAGE message;
DE_WPARAM wParam;
DE_LPARAM lParam;
LPOIWORDINFO lpWordInfo;
{
LONG locRet;
locRet = 0;
switch (message)
{
case SCCD_LOADDE:
// ((SCCDOPTIONPROC)lParam)(wParam,sizeof(OIWPOP),(LPOIWPOP)&gWpOp);
break;
case SCCD_UNLOADDE:
// ((SCCDOPTIONPROC)lParam)(wParam,sizeof(OIWPOP),(LPOIWPOP)&gWpOp);
break;
case SCCD_GETINFO:
switch (wParam)
{
case SCCD_GETVERSION:
locRet = SCCD_CURRENTVERSION;
break;
case SCCD_GETGENINFOSIZE:
locRet = sizeof(SCCDGENINFO);
break;
case SCCD_GETDISPLAYINFOSIZE:
locRet = sizeof(OIWORDINFO);
break;
case SCCD_GETDISPLAYTYPE:
locRet = MAKELONG(SO_PARAGRAPHS,SCCD_CHUNK);
break;
case SCCD_GETFUNCTIONS:
locRet = SCCD_FNCLIPBOARD | SCCD_FNPRINT | SCCD_FNPRINTSEL | SCCD_FNSEARCH;
break;
case SCCD_GETOPTIONS:
locRet = SCCD_OPCLIPBOARD | SCCD_OPNEEDMENU;
break;
case SCCD_GETPOSITIONSIZE:
return ( sizeof ( OIWDRAWPOSITION ) );
break;
case SCCD_GETNAME:
locRet = SCCID_DOCUMENTDENAME;
break;
#ifdef NEVER
#ifdef WINDOWS
case SCCD_GETNAME:
{
BYTE szDEName[OIW_MAXDENAME];
szDEName[0] = '\0';
//JKXXX LoadString( hInst, OIWSTR_DENAME, szDEName, OIW_MAXDENAME );
UTstrcpy((LPSTR)lParam,szDEName);
break;
}
#endif //WINDOWS
#endif //NEVER
default:
locRet = 0;
}
break;
#ifdef WINDOWS
case SCCD_DOOPTION:
locRet = OIWDoOption((LPSCCDOPTIONINFO)lParam);
break;
#ifdef SCCFEATURE_MENU
case SCCD_FILLMENU:
locRet = OIWFillMenu((HMENU)wParam,LOWORD(lParam));
break;
case SCCD_DOMENUITEM:
OIWDoMenuItem(lpWordInfo,(HMENU)wParam,LOWORD(lParam));
break;
#endif
#ifdef SCCFEATURE_PRINT
case SCCD_PRINTERCHANGE:
OIWPrinterChanged(lpWordInfo);
break;
#endif
#ifdef SCCFEATURE_CLIP
case SCCVW_GETCLIPINFO:
locRet = OIWGetClipInfo(lpWordInfo);
break;
case SCCVW_RENDERRTFTOFILE:
locRet = OIWRenderRtfToFile(lpWordInfo,(LPSTR)lParam);
break;
#endif
#endif // WINDOWS
#ifdef SCCFEATURE_CLIP
case SCCD_GETRENDERCOUNT:
return ( OIWGetRenderCountNP(lpWordInfo) );
break;
case SCCD_GETRENDERINFO:
return ( OIWGetRenderInfoNP (lpWordInfo, (WORD)wParam, (PSCCDRENDERINFO)lParam ) );
break;
case SCCD_RENDERDATA:
return ( OIWRenderDataNP (lpWordInfo, (WORD)wParam, (PSCCDRENDERDATA)lParam ) );
break;
#endif
case SCCD_OPENDISPLAY:
OIWOpenDisplay(lpWordInfo);
OIWOpenSection(lpWordInfo);
break;
case SCCD_CLOSEDISPLAY:
OIWCloseDisplay(lpWordInfo);
break;
case SCCD_CLOSEFATAL:
OIWCloseFatal(lpWordInfo);
break;
case SCCD_BACKGROUND:
OIWDoBackgroundNP(lpWordInfo);
break;
case SCCD_READAHEAD:
OIWDoReadAhead(lpWordInfo);
break;
#ifdef SCCFEATURE_SELECT
case SCCVW_SELECTALL:
OIWSelectAll(lpWordInfo);
break;
#endif
case SCCD_LBUTTONDOWN:
case SCCD_LBUTTONDBLCLK:
case SCCD_LBUTTONUP:
case SCCD_RBUTTONDOWN:
case SCCD_RBUTTONDBLCLK:
case SCCD_RBUTTONUP:
case SCCD_MOUSEMOVE:
OIHandleWordMouseEvent(lpWordInfo,(WORD)message,(WORD)wParam,(SHORT)LOWORD(lParam),(SHORT)HIWORD(lParam));
break;
case SCCD_VSCROLL:
switch (wParam)
{
case SCCD_VDOWN:
OIWScrollDown(lpWordInfo,1);
break;
case SCCD_VUP:
OIWScrollUp(lpWordInfo,1);
break;
case SCCD_VPAGEDOWN:
OIWPageDown(lpWordInfo);
break;
case SCCD_VPAGEUP:
OIWPageUp(lpWordInfo);
break;
case SCCD_VPOSITION:
OIWPosVertical(lpWordInfo,LOWORD(lParam));
default:
break;
}
break;
case SCCD_HSCROLL:
switch (wParam)
{
case SCCD_HRIGHT:
OIWScrollRight(lpWordInfo);
break;
case SCCD_HLEFT:
OIWScrollLeft(lpWordInfo);
break;
case SCCD_HPAGERIGHT:
OIWPageRight(lpWordInfo);
break;
case SCCD_HPAGELEFT:
OIWPageLeft(lpWordInfo);
break;
case SCCD_HPOSITION:
OIWPosHorizontal(lpWordInfo,LOWORD(lParam));
break;
default:
break;
}
break;
case SCCD_UPDATE:
OIWPaint(lpWordInfo, (RECT FAR *)lParam);
break;
case SCCD_UPDATERECT:
{
LONGRECT destRect = *((LPLONGRECT)lParam);
OIWUpdateRect ( lpWordInfo, (LPLONGRECT)lParam );
}
return 0;
case SCCD_GETDOCDIMENSIONS:
OIWGetDocDimensions ( lpWordInfo, (LPLONGPOINT)lParam );
return 0;
case SCCD_GETDOCORIGIN:
OIWGetDocOrigin ( lpWordInfo, (LPLONGPOINT)lParam );
return 0;
case SCCD_SIZE:
OIWSize(lpWordInfo,(RECT FAR *)lParam);
break;
case SCCD_KEYDOWN:
OIWHandleKeyEvent(lpWordInfo,(WORD)wParam,LOWORD(lParam));
break;
case SCCD_OPTIONCHANGED:
switch (lParam)
{
case SCCID_DEFAULTDISPLAYFONT:
OIWScreenFontChange(lpWordInfo);
break;
#ifdef SCCFEATURE_LAYOUT
case SCCID_WPDISPLAYMODE:
OIWDisplayModeChange(lpWordInfo);
break;
#endif
}
break;
case SCCD_SCREENFONTCHANGE:
OIWScreenFontChange(lpWordInfo);
break;
#ifdef SCCFEATURE_PRINT
case SCCD_PRINTERFONTCHANGE:
OIWPrinterFontChange(lpWordInfo);
break;
#endif
#ifdef SCCFEATURE_DRAWTORECT
case SCCD_INITDRAWTORECT:
return(OIWInitDrawToRect ( lpWordInfo, (PSCCDDRAWTORECT)lParam ));
break;
case SCCD_MAPDRAWTORECT:
return(OIWMapDrawToRect ( lpWordInfo, (PSCCDDRAWTORECT)lParam ));
break;
case SCCD_DRAWTORECT:
return(OIWDrawToRect ( lpWordInfo, (PSCCDDRAWTORECT)lParam ));
break;
#endif
#ifdef WINDOWS
#ifdef SCCFEATURE_SEARCH
case SCCVW_SEARCH:
locRet = OIWSearch(lpWordInfo,(LPSCCVWSEARCHINFO)lParam);
break;
case SCCVW_SEARCHNEXT:
locRet = OIWSearchNext(lpWordInfo,(WORD)wParam);
break;
#endif //SCCFEATURE_SEARCH
#ifdef SCCFEATURE_HIGHLIGHT
case SCCVW_ADDHILITE:
OIWAddHilite(lpWordInfo,(LPSCCVWHILITE)lParam);
break;
case SCCVW_CLEARALLHILITE:
OIWClearAllHilite(lpWordInfo);
break;
case SCCVW_GOTOHILITE:
/* PJB Add to WIN.3E */
OIWGotoHilite(lpWordInfo,(WORD)wParam,(DWORD)lParam);
break;
case SCCVW_UPDATEHILITE:
OIWUpdateHilite(lpWordInfo);
break;
#endif //SCCFEATURE_HIGHLIGHT
case WM_SYSCOLORCHANGE:
OIWSysColorChangeNP (lpWordInfo);
break;
case WM_SETFOCUS:
OIWSetFocus(lpWordInfo);
break;
case WM_KILLFOCUS:
OIWKillFocus(lpWordInfo,(HWND)wParam);
break;
/*JKXXX
case WM_ERASEBKGND:
locRet = OIWEraseBackground(lpWordInfo,(WORD)wParam,(DWORD)lParam);
break;
*/
default:
locRet = DefWindowProc(lpWordInfo->wiGen.hWnd, message, wParam, lParam);
break;
#endif //WINDOWS
}
return (locRet);
}