685 lines
23 KiB
C
685 lines
23 KiB
C
#include "windows.h"
|
|
#include <port1632.h>
|
|
#include "global.h"
|
|
#include "dumpdlg.h"
|
|
#include "parse.h"
|
|
#include "msg.h"
|
|
#include "error.h"
|
|
#include <stdio.h> /* for remove() */
|
|
|
|
extern CHAR ScreenSpec[13];
|
|
/*NAMECHANGE*/
|
|
CHAR ScreenSpec[13] = "*.SCN";
|
|
extern CHAR ScreenPath[128];
|
|
CHAR ScreenPath[128];
|
|
extern INT iScreenId;
|
|
|
|
CHAR FAR ErrorMessage[50];
|
|
|
|
POINT Prev;
|
|
|
|
BOOL fOptions = FALSE;
|
|
BOOL fDumpWhere = DUMP_APPEND;
|
|
BOOL fFileLoc = DUMP_FILE;
|
|
BOOL fFileFormat = DUMP_SNAPSHOT;
|
|
|
|
BOOL APIENTRY Dump(hDlg, message, wParam, lParam)
|
|
|
|
register HWND hDlg;
|
|
register UINT message;
|
|
WPARAM wParam;
|
|
LPARAM lParam;
|
|
{
|
|
|
|
static BOOL bCapturing, bBlocking, fView;
|
|
static POINT org, len;
|
|
static POINT temp1,temp2;
|
|
static BOOL bPrevWhereDump,bPrevOptions,bPrevFileFormat,bPrevFileLoc;
|
|
static INT iPrevScreen;
|
|
|
|
HWND hWndNextApp;
|
|
INT iGetXY;
|
|
CHAR tempStr[96];
|
|
BOOL bFlag;
|
|
|
|
switch (message) {
|
|
case WM_INITDIALOG:
|
|
Prev.x = 0;
|
|
Prev.y = 0;
|
|
org.x = 0;
|
|
org.y = 0;
|
|
len.x = 0;
|
|
len.y = 0;
|
|
|
|
bCapturing = bBlocking = fView = FALSE ;
|
|
|
|
bPrevWhereDump = fDumpWhere;
|
|
bPrevOptions = fOptions;
|
|
bPrevFileFormat = fFileFormat;
|
|
bPrevFileLoc = fFileLoc;
|
|
iPrevScreen = iScreenId;
|
|
|
|
SetDlgItemInt(hDlg,DUMP_SCRNUM,iScreenId,FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_VIEW),FALSE);
|
|
|
|
SendDlgItemMessage(hDlg,fDumpWhere,BM_SETCHECK,1,0l);
|
|
SendDlgItemMessage(hDlg,fFileFormat,BM_SETCHECK,1,0l);
|
|
SendDlgItemMessage(hDlg,fFileLoc,BM_SETCHECK,1,0l);
|
|
|
|
|
|
if (fOptions) {
|
|
SetDialogSize(hDlg,TRUE); // Expanded Dialog
|
|
} else {
|
|
SetDialogSize(hDlg,FALSE); // Contracted Dialog
|
|
}
|
|
#ifdef WIN32
|
|
// Since SetCapture is scrwey in NT, don't do it.
|
|
|
|
EnableWindow (GetDlgItem (hDlg, DUMP_SELECT), FALSE);
|
|
#endif
|
|
|
|
SendDlgItemMessage(hDlg,
|
|
DUMP_SCRNUM,
|
|
EM_LIMITTEXT,
|
|
LEN_SCRBOX,
|
|
MAKELONG(0, 0x7fff));
|
|
|
|
|
|
SendDlgItemMessage(hDlg,
|
|
DUMP_FLNAME,
|
|
EM_LIMITTEXT,
|
|
LEN_EDITBOX,
|
|
MAKELONG(0, 0x7fff));
|
|
|
|
UpdateListBoxes(hDlg,DUMP_FILELB,DUMP_DIRLB,
|
|
DUMP_DIRNAME,DUMP_FLNAME,ScreenPath,ScreenSpec);
|
|
|
|
return (FALSE);
|
|
break;
|
|
|
|
|
|
case WM_CLOSE:
|
|
case WM_DESTROY:
|
|
|
|
iScreenId = GetDlgItemInt(hDlg,DUMP_SCRNUM,&bFlag,FALSE);
|
|
if (!bFlag) iScreenId = 1;
|
|
|
|
EndDialog(hDlg, TRUE);
|
|
return (TRUE);
|
|
|
|
case WM_KEYDOWN:
|
|
case WM_KEYUP:
|
|
case WM_CHAR:
|
|
case WM_DEADCHAR:
|
|
case WM_SYSKEYDOWN:
|
|
case WM_SYSKEYUP:
|
|
case WM_SYSCHAR:
|
|
case WM_SYSDEADCHAR:
|
|
case WM_LBUTTONDBLCLK:
|
|
if (fView) {
|
|
ClearBlock(hDlg, temp1, temp2);
|
|
ShowWindow(hwnd,SW_SHOW);
|
|
ShowWindow(hDlg,SW_SHOW);
|
|
ReleaseCapture();
|
|
fView = FALSE;
|
|
return(TRUE);
|
|
}
|
|
|
|
return(FALSE);
|
|
break;
|
|
|
|
case WM_LBUTTONDOWN:
|
|
if (bCapturing) {
|
|
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
|
|
bBlocking = TRUE;
|
|
|
|
// erase previous rectangle
|
|
// ClearBlock (hDlg, org, len) ;
|
|
|
|
LONG2POINT(lParam, org);
|
|
ClientToScreen (hDlg, &org) ;
|
|
Prev.x = org.x;
|
|
Prev.y = org.y;
|
|
len.x = org.x;
|
|
len.y = org.y;
|
|
SetDlgItemInt(hDlg,DUMP_X1,org.x,FALSE);
|
|
SetDlgItemInt(hDlg,DUMP_Y1,org.y,FALSE);
|
|
return(TRUE);
|
|
}
|
|
return(FALSE);
|
|
break ;
|
|
|
|
case WM_MOUSEMOVE:
|
|
if (bBlocking) {
|
|
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
|
|
LONG2POINT(lParam, len);
|
|
ClientToScreen (hDlg, &len) ;
|
|
SetDlgItemInt(hDlg,DUMP_X2,len.x,FALSE);
|
|
SetDlgItemInt(hDlg,DUMP_Y2,len.y,FALSE);
|
|
InvertBlock (hDlg, org, len) ;
|
|
return(TRUE);
|
|
}
|
|
return(FALSE);
|
|
break ;
|
|
|
|
case WM_LBUTTONUP:
|
|
if (bBlocking) {
|
|
bCapturing = bBlocking = FALSE ;
|
|
ReleaseCapture();
|
|
|
|
ClearBlock (hDlg, org, len) ;
|
|
SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
|
|
ShowWindow(hwnd,SW_SHOW);
|
|
ShowWindow(hDlg,SW_SHOW);
|
|
return(TRUE);
|
|
}
|
|
return(FALSE);
|
|
break;
|
|
|
|
case WM_VSCROLL:
|
|
AdjustScreenNumber (hDlg,DUMP_SCRNUM,
|
|
GET_WM_VSCROLL_CODE (wParam, lParam),
|
|
&iScreenId);
|
|
return(TRUE);
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
|
|
#ifndef WIN32
|
|
|
|
if (!(GetXY(hDlg,&temp1,&temp2))) {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_VIEW),TRUE);
|
|
} else {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_VIEW),FALSE);
|
|
}
|
|
|
|
#endif
|
|
// [ptr65] added or case on the following if to handle the fact
|
|
// that the capture button should be enabled if the clipboard
|
|
// is selected. - nancyba 5/10/90
|
|
|
|
if ((GetDlgItemText(hDlg,DUMP_FLNAME,tempStr,4)) || (SendDlgItemMessage(hDlg,DUMP_CLIP,BM_GETCHECK,0,0L))) {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_DUMP),TRUE);
|
|
} else {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_DUMP),FALSE);
|
|
}
|
|
|
|
|
|
switch (GET_WM_COMMAND_ID (wParam, lParam)) {
|
|
case DUMP_SELECT:
|
|
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
|
|
SetCapture (hDlg) ;
|
|
bCapturing=TRUE;
|
|
ShowWindow(hDlg,SW_HIDE);
|
|
ShowWindow(hwnd,SW_HIDE);
|
|
return(TRUE);
|
|
break;
|
|
|
|
case DUMP_FILE:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fFileLoc = DUMP_FILE;
|
|
SetDumpFileOptions(hDlg);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_CLIP:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fFileLoc = DUMP_CLIP;
|
|
fFileFormat = DUMP_BITMAP;
|
|
SetDumpFileOptions(hDlg);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_SNAPSHOT:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fFileFormat = DUMP_SNAPSHOT;
|
|
SetDumpFileOptions(hDlg);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_BITMAP:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fFileFormat = DUMP_BITMAP;
|
|
SetDumpFileOptions(hDlg);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_APPEND:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fDumpWhere = DUMP_APPEND;
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),FALSE);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_REPLACE:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fDumpWhere = DUMP_REPLACE;
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),TRUE);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_INSERT:
|
|
if (GET_WM_COMMAND_CMD (wParam, lParam) == BN_CLICKED) {
|
|
fDumpWhere = DUMP_INSERT;
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),TRUE);
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
case DUMP_OPTIONS:
|
|
if (!fOptions) {
|
|
fOptions = TRUE;
|
|
SetDialogSize(hDlg,TRUE); // Big
|
|
} else {
|
|
fOptions = FALSE;
|
|
SetDialogSize(hDlg,FALSE); // Little
|
|
}
|
|
|
|
SetFocus(GetDlgItem(hDlg,DUMP_OPTIONS));
|
|
return(TRUE);
|
|
break;
|
|
|
|
case DUMP_VIEW:
|
|
if (!(iGetXY=GetXY(hDlg,&temp1,&temp2))) {
|
|
|
|
SetCapture (hDlg) ;
|
|
ShowWindow(hDlg,SW_HIDE);
|
|
ShowWindow(hwnd,SW_HIDE);
|
|
hWndNextApp = GetWindow(GetDesktopWindow(),GW_CHILD);
|
|
do {
|
|
InvalidateRect(hWndNextApp,NULL,TRUE);
|
|
UpdateWindow(hWndNextApp);
|
|
} while (hWndNextApp = GetWindow(hWndNextApp,GW_HWNDNEXT));
|
|
ClearBlock(hDlg, temp1, temp2);
|
|
fView = TRUE;
|
|
} else {
|
|
SendDlgItemMessage(hDlg,
|
|
iGetXY,
|
|
EM_SETSEL,
|
|
GET_EM_SETSEL_MPS (0, 0x7fff));
|
|
SetFocus(GetDlgItem(hDlg,iGetXY));
|
|
}
|
|
return(TRUE);
|
|
break;
|
|
|
|
case DUMP_DIRLB:
|
|
switch (GET_WM_COMMAND_CMD (wParam, lParam)) {
|
|
case LBN_DBLCLK:
|
|
if (MDlgDirSelect(hDlg, ScreenPath, 128, DUMP_DIRLB))
|
|
UpdateListBoxes(hDlg,DUMP_FILELB,DUMP_DIRLB,
|
|
DUMP_DIRNAME,DUMP_FLNAME,ScreenPath,ScreenSpec);
|
|
case LBN_SELCHANGE:
|
|
if (MDlgDirSelect(hDlg, tempStr, 96, DUMP_DIRLB)) {
|
|
lstrcat(tempStr,ScreenSpec);
|
|
SetDlgItemText(hDlg,DUMP_FLNAME,tempStr);
|
|
}
|
|
}
|
|
return (TRUE);
|
|
break;
|
|
case DUMP_FILELB:
|
|
switch (GET_WM_COMMAND_CMD (wParam, lParam)) {
|
|
case LBN_DBLCLK:
|
|
return(Dump_Button(hDlg,fDumpWhere,&temp1,&temp2));
|
|
break;
|
|
case LBN_SELCHANGE:
|
|
if (!MDlgDirSelect(hDlg, tempStr, 96, DUMP_FILELB)) {
|
|
SetDlgItemText(hDlg,DUMP_FLNAME,tempStr);
|
|
}
|
|
|
|
}
|
|
return (TRUE);
|
|
break;
|
|
case DUMP_CANCEL:
|
|
case IDCANCEL:
|
|
|
|
fDumpWhere = bPrevWhereDump;
|
|
fOptions = bPrevOptions;
|
|
iScreenId = iPrevScreen;
|
|
fFileFormat = bPrevFileFormat;
|
|
fFileLoc = bPrevFileLoc;
|
|
|
|
EndDialog(hDlg, TRUE);
|
|
return (TRUE);
|
|
break;
|
|
case DUMP_DUMP:
|
|
return(Dump_Button(hDlg,fDumpWhere,&temp1,&temp2));
|
|
break;
|
|
|
|
}
|
|
return (TRUE);
|
|
break;
|
|
}
|
|
return (FALSE);
|
|
}
|
|
|
|
|
|
|
|
VOID APIENTRY InvertBlock (hWnd, org, len)
|
|
HWND hWnd ;
|
|
POINT org, len ;
|
|
{
|
|
HDC hDC ;
|
|
|
|
|
|
if ((len.x != Prev.x) || (len.y != Prev.y)) {
|
|
|
|
hDC = GetDC(NULL);
|
|
SetROP2(hDC, R2_NOT); /* Erases the previous box */
|
|
|
|
MMoveTo(hDC, org.x, org.y);
|
|
LineTo(hDC, org.x, Prev.y);
|
|
LineTo(hDC, Prev.x, Prev.y);
|
|
LineTo(hDC, Prev.x, org.y);
|
|
LineTo(hDC, org.x, org.y);
|
|
|
|
/* Get the current mouse position */
|
|
|
|
Prev.x = len.x;
|
|
Prev.y = len.y;
|
|
MMoveTo(hDC, org.x, org.y); /* Draws the new box */
|
|
LineTo(hDC, org.x, Prev.y);
|
|
LineTo(hDC, Prev.x, Prev.y);
|
|
LineTo(hDC, Prev.x, org.y);
|
|
LineTo(hDC, org.x, org.y);
|
|
ReleaseDC (NULL,hDC) ;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
VOID APIENTRY ClearBlock (hWnd, org, len)
|
|
HWND hWnd ;
|
|
POINT org, len ;
|
|
{
|
|
HDC hDC ;
|
|
|
|
hDC = GetDC(NULL);
|
|
SetROP2(hDC, R2_NOT); /* Erases the previous box */
|
|
|
|
MMoveTo(hDC, org.x, org.y);
|
|
LineTo(hDC, org.x, len.y);
|
|
LineTo(hDC, len.x, len.y);
|
|
LineTo(hDC, len.x, org.y);
|
|
LineTo(hDC, org.x, org.y);
|
|
|
|
ReleaseDC (NULL,hDC) ;
|
|
}
|
|
|
|
INT APIENTRY GetXY (hDlg,xy1,xy2)
|
|
HWND hDlg;
|
|
POINT * xy1;
|
|
POINT * xy2;
|
|
{
|
|
BOOL bFlag;
|
|
INT iErrorFlag=FALSE;
|
|
|
|
xy1->x = (INT) GetDlgItemInt(hDlg,DUMP_X1,&bFlag,FALSE);
|
|
if (!bFlag) {
|
|
lstrcpy(ErrorMessage,"Error in X1");
|
|
iErrorFlag = DUMP_X1;
|
|
}
|
|
xy1->y = (INT) GetDlgItemInt(hDlg,DUMP_Y1,&bFlag,FALSE);
|
|
if (!bFlag) {
|
|
if (iErrorFlag) {
|
|
lstrcat(ErrorMessage,", Y1 ");
|
|
} else {
|
|
lstrcpy(ErrorMessage,"Error in Y1");
|
|
iErrorFlag = DUMP_Y1;
|
|
}
|
|
}
|
|
xy2->x = (INT) GetDlgItemInt(hDlg,DUMP_X2,&bFlag,FALSE);
|
|
if (!bFlag) {
|
|
if (iErrorFlag) {
|
|
lstrcat(ErrorMessage,", X2 ");
|
|
} else {
|
|
lstrcpy(ErrorMessage,"Error in X2");
|
|
iErrorFlag = DUMP_X2;
|
|
}
|
|
}
|
|
xy2->y = (INT) GetDlgItemInt(hDlg,DUMP_Y2,&bFlag,FALSE);
|
|
if (!bFlag) {
|
|
if (iErrorFlag) {
|
|
lstrcat(ErrorMessage,", Y2 ");
|
|
} else {
|
|
lstrcpy(ErrorMessage,"Error in Y2");
|
|
iErrorFlag = DUMP_Y2;
|
|
}
|
|
}
|
|
return(iErrorFlag);
|
|
|
|
}
|
|
|
|
|
|
VOID SetDialogSize(hDlg,fBigSize)
|
|
HWND hDlg;
|
|
BOOL fBigSize; // TRUE == BIG, FALSE = SMALL
|
|
|
|
{
|
|
LONG lDlgBaseUnits;
|
|
INT newx,newy;
|
|
|
|
lDlgBaseUnits = GetDialogBaseUnits();
|
|
if (fBigSize) {
|
|
newx = (225 * LOWORD(lDlgBaseUnits)) / 4;
|
|
newy = (186 * HIWORD(lDlgBaseUnits)) / 8;
|
|
|
|
SetDumpFileOptions(hDlg);
|
|
|
|
SetWindowPos(hDlg,NULL,0,0,newx,newy,SWP_NOZORDER | SWP_NOMOVE) ;
|
|
|
|
} else {
|
|
newx = (225 * LOWORD(lDlgBaseUnits)) / 4;
|
|
newy = (118 * HIWORD(lDlgBaseUnits)) / 8;
|
|
|
|
SetWindowPos(hDlg,NULL,0,0,newx,newy,SWP_NOZORDER | SWP_NOMOVE) ;
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_APPEND),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_INSERT),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_REPLACE),FALSE);
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),FALSE);
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_FILE),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_CLIP),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_BITMAP),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SNAPSHOT),FALSE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOL APIENTRY Dump_Button(hDlg,fDumpWhere,temp1,temp2)
|
|
|
|
HWND hDlg;
|
|
BOOL fDumpWhere;
|
|
POINT * temp1;
|
|
POINT * temp2;
|
|
|
|
{
|
|
INT iGetXY;
|
|
INT retCode;
|
|
INT errCode;
|
|
BOOL bFlag;
|
|
HWND hWndNextApp;
|
|
RECT Point2;
|
|
CHAR pszCapBuff[cbMsgBuff+1];
|
|
INT FocusControl;
|
|
|
|
|
|
// If we don't have the clipboard selected, Parse the filename
|
|
if (fFileLoc != DUMP_CLIP) {
|
|
retCode = ParseFileName(hDlg,DUMP_FLNAME,ScreenPath,ScreenSpec);
|
|
} else {
|
|
retCode = EXIST_FILESPEC; //This value is set so we can switch
|
|
}
|
|
|
|
switch (retCode) {
|
|
case VALID_FILENAME:
|
|
case EXIST_FILESPEC:
|
|
UpdateListBoxes(hDlg,DUMP_FILELB,DUMP_DIRLB,
|
|
DUMP_DIRNAME,DUMP_FLNAME,ScreenPath,ScreenSpec);
|
|
|
|
if ((retCode == EXIST_FILESPEC) && (fFileFormat == DUMP_BITMAP) && (fFileLoc == DUMP_FILE)) {
|
|
if (DisplayMessageRet(hDlg,retCode,MSG_ERRORCAPTION) == IDCANCEL) {
|
|
SendDlgItemMessage(hDlg,
|
|
DUMP_FLNAME,
|
|
EM_SETSEL,
|
|
GET_EM_SETSEL_MPS (0, 0x7fff));
|
|
SetFocus(GetDlgItem(hDlg, DUMP_FLNAME));
|
|
return(FALSE);
|
|
}
|
|
/* was asked overwrite, didn't answer cancel */
|
|
/* get rid of the file */
|
|
MDeleteFile(ScreenSpec);
|
|
}
|
|
if (!(iGetXY=GetXY(hDlg,temp1,temp2))) {
|
|
|
|
Point2.left = temp1->x;
|
|
Point2.top = temp1->y;
|
|
Point2.right = temp2->x;
|
|
Point2.bottom = temp2->y;
|
|
|
|
if (fDumpWhere != DUMP_APPEND) {
|
|
iScreenId = GetDlgItemInt(hDlg,DUMP_SCRNUM,&bFlag,FALSE);
|
|
if (!bFlag) {
|
|
return(DisplayErrSetFocus(hDlg,ERR_BADSCREENNUMBER,DUMP_SCRNUM));
|
|
}
|
|
} else {
|
|
iScreenId = 0;
|
|
}
|
|
|
|
ShowWindow(hDlg,SW_HIDE);
|
|
ShowWindow(hwnd,SW_HIDE);
|
|
hWndNextApp = GetWindow(GetDesktopWindow(),GW_CHILD);
|
|
do {
|
|
InvalidateRect(hWndNextApp,NULL,TRUE);
|
|
UpdateWindow(hWndNextApp);
|
|
} while (hWndNextApp = GetWindow(hWndNextApp,GW_HWNDNEXT));
|
|
|
|
SetCursor(LoadCursor(NULL, IDC_WAIT));
|
|
|
|
if (fFileLoc == DUMP_FILE) {
|
|
if (fFileFormat == DUMP_SNAPSHOT) {
|
|
errCode = fDumpScreen(ScreenSpec,&Point2,(fDumpWhere - DUMP_APPEND),iScreenId,FALSE);
|
|
} else {
|
|
errCode = fSaveSrnToDIB(ScreenSpec,&Point2,FALSE);
|
|
}
|
|
} else {
|
|
errCode = fDumpSrnToClip(&Point2,FALSE);
|
|
}
|
|
|
|
SetCursor(LoadCursor(NULL, IDC_ARROW));
|
|
ShowWindow(hwnd,SW_SHOW);
|
|
|
|
if (errCode) {
|
|
ShowWindow(hDlg, TRUE);
|
|
switch (errCode) {
|
|
case ERR_SCREENID:
|
|
FocusControl = DUMP_SCRNUM;
|
|
break;
|
|
default:
|
|
FocusControl = DUMP_FLNAME;
|
|
break;
|
|
}
|
|
return(DisplayErrSetFocus(hDlg,errCode,FocusControl));
|
|
} else {
|
|
EndDialog(hDlg, TRUE);
|
|
}
|
|
|
|
return (TRUE);
|
|
} else {
|
|
LoadString(hInst,MSG_ERRORCAPTION,pszCapBuff,cbMsgBuff);
|
|
MessageBox(hDlg,ErrorMessage,pszCapBuff,MB_ICONSTOP);
|
|
ErrorMessage[0]=0;
|
|
SendDlgItemMessage(hDlg,
|
|
iGetXY,
|
|
EM_SETSEL,
|
|
GET_EM_SETSEL_MPS (0, 0x7fff));
|
|
SetFocus(GetDlgItem(hDlg,iGetXY));
|
|
return(TRUE);
|
|
}
|
|
break;
|
|
case VALID_FILESPEC:
|
|
UpdateListBoxes(hDlg,DUMP_FILELB,DUMP_DIRLB,
|
|
DUMP_DIRNAME,DUMP_FLNAME,ScreenPath,ScreenSpec);
|
|
return (FALSE);
|
|
break;
|
|
case INVALID_FILESPEC:
|
|
return(DisplayErrSetFocus(hDlg,ERR_BADPATH,DUMP_FLNAME));
|
|
break;
|
|
};
|
|
|
|
};
|
|
|
|
BOOL SetDumpFileOptions(hDlg)
|
|
HWND hDlg;
|
|
{
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_FILE),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_CLIP),TRUE);
|
|
|
|
if (fFileLoc == DUMP_CLIP) {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_BITMAP),TRUE);
|
|
SendDlgItemMessage(hDlg,DUMP_SNAPSHOT,BM_SETCHECK,0,0l);
|
|
SendDlgItemMessage(hDlg,DUMP_BITMAP,BM_SETCHECK,1,0l);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SNAPSHOT),FALSE);
|
|
|
|
// Disable Other File Options.
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_APPEND),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_INSERT),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_REPLACE),FALSE);
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),FALSE);
|
|
return(TRUE);
|
|
}
|
|
|
|
if (fFileLoc == DUMP_FILE) {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_BITMAP),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SNAPSHOT),TRUE);
|
|
|
|
|
|
// Enable File Options.
|
|
|
|
if (fFileFormat == DUMP_SNAPSHOT) {
|
|
// Enable the file options if snapshot format
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_APPEND),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_INSERT),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_REPLACE),TRUE);
|
|
if (fDumpWhere != DUMP_APPEND) {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),TRUE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),TRUE);
|
|
} else {
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),FALSE);
|
|
}
|
|
} else {
|
|
|
|
// Disable other file options if bitmap format
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_APPEND),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_INSERT),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_REPLACE),FALSE);
|
|
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRSNM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,DUMP_SCRNUM),FALSE);
|
|
EnableWindow(GetDlgItem(hDlg,ALL_SCROLLBAR),FALSE);
|
|
}
|
|
}
|
|
}
|