|
|
/*************************************************
* sortdlg.c * * * * Copyright (C) 1995-1999 Microsoft Inc. * * * *************************************************/
#include "prop.h"
/*****************************************************************************
FUNCTION: SortDialogProc(HWND, UINT, WPARAM, LPARAM)
PURPOSE: Processes messages for "Sort" property sheet.
PARAMETERS: hdlg - window handle of the property sheet wMessage - type of message wparam - message-specific information lparam - message-specific information
RETURN VALUE: TRUE - message handled FALSE - message not handled
HISTORY: 04-18-95 Yehfew Tie Created. ****************************************************************************/
INT_PTR CALLBACK SortDialogProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) { static TCHAR DestFile[MAX_PATH]; static TCHAR SrcFile [MAX_PATH]; static TCHAR szStr [MAX_PATH]; //FARPROC lpProcInfo;
HANDLE hSrcFile; LPNMHDR lpnmhdr;
switch (uMessage) { case WM_INITDIALOG: EnableWindow(GetDlgItem(hdlg,IDC_RESULTNAME),FALSE); EnableWindow(GetDlgItem(hdlg,IDC_SORT),FALSE); break; case WM_NOTIFY: lpnmhdr = (NMHDR FAR *)lparam;
switch (lpnmhdr->code) { case PSN_SETACTIVE: hEncode = GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT, NUMENCODEAREA*sizeof(ENCODEAREA)); if(!hRule ) ProcessError(ERR_OUTOFMEMORY,hdlg,ERR); if ( hEncode ) ConvInitEncode(hEncode); break;
case PSN_KILLACTIVE: if(hEncode) GlobalFree(hEncode); break; default: break; }
break;
case WM_COMMAND:
switch (LOWORD(wparam)) { case ID_FILEOPEN: {
#ifdef UNICODE
static TCHAR szTitle[] = {0x6253, 0x5F00, 0x0000}; #else
TCHAR szTitle[MAX_PATH]; strcpy(szTitle,"����"); #endif
if(!TxtFileOpenDlg(hdlg,szStr,szTitle)) break; } lstrcpy(SrcFile, szStr); hSrcFile = Create_File(hdlg,SrcFile,GENERIC_READ,OPEN_EXISTING); if (hSrcFile == (HANDLE)-1) { EnableWindow (GetDlgItem(hdlg,IDC_RESULTNAME), FALSE); SrcFile[0]=0; SetDlgItemText (hdlg,IDC_SRCNAME,SrcFile); lstrcpy(DestFile,SrcFile); SetDlgItemText (hdlg,IDC_RESULTNAME,DestFile); break; } CloseHandle(hSrcFile); EnableWindow (GetDlgItem(hdlg,IDC_RESULTNAME), TRUE); fnsplit(SrcFile, szStr); SetDlgItemText(hdlg,IDC_SRCNAME,szStr); lstrcpy(DestFile,SrcFile); SetDlgItemText(hdlg,IDC_RESULTNAME,DestFile);
SendMessage(GetDlgItem(hdlg,ID_FILEOPEN),BM_SETSTYLE,BS_PUSHBUTTON,0L); SendMessage(GetDlgItem(hdlg,IDC_SORT),BM_SETSTYLE,BS_DEFPUSHBUTTON,TRUE); SetFocus(GetDlgItem(hdlg,IDC_SORT)); break;
case IDC_RESULTNAME: GetDlgItemText(hdlg,IDC_RESULTNAME,DestFile,32); if(lstrlen(DestFile) == 0) EnableWindow(GetDlgItem(hdlg,IDC_SORT),FALSE); else EnableWindow(GetDlgItem(hdlg,IDC_SORT),TRUE); break;
case IDC_GETMBFILE: lstrcpy((LPTSTR)lparam,DestFile); break;
case IDC_GETSRCFILE: lstrcpy((LPTSTR)lparam,SrcFile); break;
case IDC_SORT: //lpProcInfo = MakeProcInstance((FARPROC)InfoDlg, hInst);
pfnmsg=(PFNMSG)SortProc; bEndProp=FALSE; //DialogBox(hInst,
// MAKEINTRESOURCE(IDD_INFO),
// hdlg,
// (DLGPROC)lpProcInfo);
/*(bEndProp)
PropSheet_PressButton(GetParent(hdlg),PSBTN_OK);*/
//FreeProcInstance(lpProcInfo);
DialogBox(hInst, MAKEINTRESOURCE(IDD_INFO), hdlg, InfoDlg); break;
default: break; }
break;
default: break; }
return FALSE; }
VOID SortProc(LPVOID hWnd) { static TCHAR file1[MAX_PATH]=TEXT(""); static TCHAR file2[MAX_PATH]=TEXT(""); SendMessage(GetParent(hDlgless),WM_COMMAND,IDC_GETSRCFILE,(LPARAM)file1); SendMessage(GetParent(hDlgless),WM_COMMAND,IDC_GETMBFILE,(LPARAM)file2); if(ConvReadFile(hDlgless,file1,file2)) bEndProp=TRUE; SendMessage(hDlgless,WM_CLOSE,0,0L); }
|