573 lines
18 KiB
C++
573 lines
18 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 1996 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
config.cpp
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module contains routines for the fax config dialog.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Wesley Witt (wesw) 13-Aug-1996
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include "faxext.h"
|
||
|
#include "faxhelp.h"
|
||
|
#include "resource.h"
|
||
|
|
||
|
|
||
|
extern HINSTANCE hInstance;
|
||
|
|
||
|
|
||
|
VOID
|
||
|
AddCoverPagesToList(
|
||
|
HWND hwndList,
|
||
|
LPSTR pDirPath,
|
||
|
BOOL ServerCoverPage
|
||
|
)
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Add the cover page files in the specified directory to a listbox
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
hwndList - Handle to a list window
|
||
|
pDirPath - Directory to look for coverpage files
|
||
|
ServerCoverPage - TRUE if the dir contains server cover pages
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
NONE
|
||
|
|
||
|
--*/
|
||
|
|
||
|
{
|
||
|
WIN32_FIND_DATA findData;
|
||
|
CHAR filename[MAX_PATH];
|
||
|
CHAR CpName[MAX_PATH];
|
||
|
HANDLE hFindFile;
|
||
|
LPSTR pFilename;
|
||
|
LPSTR pExtension;
|
||
|
INT listIndex;
|
||
|
INT dirLen;
|
||
|
INT fileLen;
|
||
|
INT flags = CPFLAG_LINK;
|
||
|
INT Cnt = 2;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Copy the directory path to a local buffer
|
||
|
//
|
||
|
|
||
|
if (pDirPath == NULL || pDirPath[0] == 0) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ((dirLen = strlen( pDirPath )) >= MAX_PATH - MAX_FILENAME_EXT - 1) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
strcpy( filename, pDirPath );
|
||
|
if (filename[dirLen] != '\\') {
|
||
|
filename[dirLen] = '\\';
|
||
|
filename[dirLen+1] = '\0';
|
||
|
dirLen++;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Go through the following loop twice:
|
||
|
// Once to add the files with .ncp extension
|
||
|
// Again to add the files with .lnk extension
|
||
|
//
|
||
|
// Don't chase links for server based cover pages
|
||
|
//
|
||
|
|
||
|
while( Cnt ) {
|
||
|
|
||
|
//
|
||
|
// Generate a specification for the files we're interested in
|
||
|
//
|
||
|
|
||
|
pFilename = &filename[dirLen];
|
||
|
*pFilename = TEXT('*');
|
||
|
strcpy( pFilename+1, ServerCoverPage ? CP_FILENAME_EXT : (flags & CPFLAG_LINK) ? LNK_FILENAME_EXT : CP_FILENAME_EXT );
|
||
|
|
||
|
//
|
||
|
// Call FindFirstFile/FindNextFile to enumerate the files
|
||
|
// matching our specification
|
||
|
//
|
||
|
|
||
|
hFindFile = FindFirstFile( filename, &findData );
|
||
|
|
||
|
if (hFindFile != INVALID_HANDLE_VALUE) {
|
||
|
|
||
|
do {
|
||
|
|
||
|
//
|
||
|
// Exclude directories and hidden files
|
||
|
//
|
||
|
|
||
|
if (findData.dwFileAttributes & (FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_DIRECTORY)) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Make sure we have enough room to store the full pathname
|
||
|
//
|
||
|
|
||
|
if ((fileLen = strlen( findData.cFileName)) <= MAX_FILENAME_EXT ) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (fileLen + dirLen >= MAX_PATH) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// If we're chasing links, make sure the link refers to
|
||
|
// a cover page file.
|
||
|
//
|
||
|
|
||
|
if (!ServerCoverPage && (flags & CPFLAG_LINK)) {
|
||
|
|
||
|
strcpy( pFilename, findData.cFileName );
|
||
|
|
||
|
if (!IsCoverPageShortcut(filename)) {
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Don't display the filename extension
|
||
|
//
|
||
|
|
||
|
if (pExtension = strrchr(findData.cFileName,'.')) {
|
||
|
*pExtension = NULL;
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Add the cover page name to the list window
|
||
|
//
|
||
|
|
||
|
strcpy( CpName, findData.cFileName );
|
||
|
if ( ! ServerCoverPage )
|
||
|
{
|
||
|
char szPersonal[30];
|
||
|
LoadString( hInstance, IDS_PERSONAL, szPersonal, 30 );
|
||
|
strcat( CpName, (char *) " " );
|
||
|
strcat( CpName, szPersonal );
|
||
|
}
|
||
|
|
||
|
listIndex = (INT)SendMessage(
|
||
|
hwndList,
|
||
|
LB_ADDSTRING,
|
||
|
0,
|
||
|
(LPARAM) CpName
|
||
|
);
|
||
|
|
||
|
if (listIndex != LB_ERR) {
|
||
|
SendMessage( hwndList, LB_SETITEMDATA, listIndex, ServerCoverPage );
|
||
|
}
|
||
|
|
||
|
} while (FindNextFile(hFindFile, &findData));
|
||
|
|
||
|
FindClose(hFindFile);
|
||
|
}
|
||
|
|
||
|
flags ^= CPFLAG_LINK;
|
||
|
Cnt -= 1;
|
||
|
if (ServerCoverPage) {
|
||
|
Cnt -= 1;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
LONG
|
||
|
MyLineGetTransCaps(
|
||
|
LPLINETRANSLATECAPS *LineTransCaps
|
||
|
)
|
||
|
{
|
||
|
DWORD LineTransCapsSize;
|
||
|
LONG Rslt = ERROR_SUCCESS;
|
||
|
|
||
|
|
||
|
//
|
||
|
// allocate the initial linetranscaps structure
|
||
|
//
|
||
|
|
||
|
LineTransCapsSize = sizeof(LINETRANSLATECAPS) + 4096;
|
||
|
*LineTransCaps = (LPLINETRANSLATECAPS) MemAlloc( LineTransCapsSize );
|
||
|
if (!*LineTransCaps) {
|
||
|
Rslt = ERROR_NOT_ENOUGH_MEMORY;
|
||
|
goto exit;
|
||
|
}
|
||
|
|
||
|
(*LineTransCaps)->dwTotalSize = LineTransCapsSize;
|
||
|
|
||
|
Rslt = lineGetTranslateCaps(
|
||
|
NULL,
|
||
|
0x00020000,
|
||
|
*LineTransCaps
|
||
|
);
|
||
|
if (Rslt != 0) {
|
||
|
goto exit;
|
||
|
}
|
||
|
|
||
|
if ((*LineTransCaps)->dwNeededSize > (*LineTransCaps)->dwTotalSize) {
|
||
|
|
||
|
//
|
||
|
// re-allocate the LineTransCaps structure
|
||
|
//
|
||
|
|
||
|
LineTransCapsSize = (*LineTransCaps)->dwNeededSize;
|
||
|
|
||
|
MemFree( *LineTransCaps );
|
||
|
|
||
|
*LineTransCaps = (LPLINETRANSLATECAPS) MemAlloc( LineTransCapsSize );
|
||
|
if (!*LineTransCaps) {
|
||
|
Rslt = ERROR_NOT_ENOUGH_MEMORY;
|
||
|
goto exit;
|
||
|
}
|
||
|
|
||
|
(*LineTransCaps)->dwTotalSize = LineTransCapsSize;
|
||
|
|
||
|
Rslt = lineGetTranslateCaps(
|
||
|
NULL,
|
||
|
0x00020000,
|
||
|
*LineTransCaps
|
||
|
);
|
||
|
|
||
|
if (Rslt != 0) {
|
||
|
goto exit;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
exit:
|
||
|
if (Rslt != ERROR_SUCCESS) {
|
||
|
MemFree( *LineTransCaps );
|
||
|
*LineTransCaps = NULL;
|
||
|
}
|
||
|
|
||
|
return Rslt;
|
||
|
}
|
||
|
|
||
|
INT_PTR CALLBACK
|
||
|
ConfigDlgProc(
|
||
|
HWND hDlg,
|
||
|
UINT message,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
Dialog procedure for the fax mail transport configuration
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
hDlg - Window handle for this dialog
|
||
|
message - Message number
|
||
|
wParam - Parameter #1
|
||
|
lParam - Parameter #2
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
TRUE - Message was handled
|
||
|
FALSE - Message was NOT handled
|
||
|
|
||
|
--*/
|
||
|
|
||
|
{
|
||
|
static LPLINETRANSLATECAPS LineTransCaps = NULL;
|
||
|
static LPLINELOCATIONENTRY LineLocation = NULL;
|
||
|
static PFAXXP_CONFIG FaxConfig;
|
||
|
static HWND hwndListPrn;
|
||
|
static HWND hwndListCov;
|
||
|
static HWND hwndListLoc;
|
||
|
static BOOL LocalPrinter;
|
||
|
static const DWORD faxextHelpIDs[] = {
|
||
|
|
||
|
IDC_PRINTER_LIST, IDH_FMA_FAX_PRINTERS,
|
||
|
IDC_USE_COVERPAGE, IDH_FMA_INCLUDE_COVER_PAGE,
|
||
|
IDC_COVERPAGE_LIST, IDH_FMA_COVER_PAGES,
|
||
|
IDC_DIALING_LOCATION, IDH_FMA_DIALING_LOCATION,
|
||
|
IDC_STATIC_DIALING_LOCATION,IDH_FMA_DIALING_LOCATION,
|
||
|
IDC_STATIC_COVERPAGE_GRP, IDH_FMA_COVER_PAGES,
|
||
|
IDC_STATIC_COVERPAGE, IDH_FMA_COVER_PAGES,
|
||
|
IDC_STATIC_PRINTER_LIST, IDH_FMA_FAX_PRINTERS,
|
||
|
IDC_STATIC, (ULONG)IDH_INACTIVE,
|
||
|
0, 0
|
||
|
};
|
||
|
|
||
|
PPRINTER_INFO_2 PrinterInfo;
|
||
|
DWORD CountPrinters;
|
||
|
DWORD Selection = 0;
|
||
|
BOOL Match;
|
||
|
CHAR Buffer[256];
|
||
|
CHAR CpDir[MAX_PATH];
|
||
|
LPSTR p;
|
||
|
DWORD i;
|
||
|
DWORD_PTR j;
|
||
|
HANDLE hFax;
|
||
|
PFAX_CONFIGURATION pFaxConfiguration;
|
||
|
DWORD dwPermanentLocationID = 0;
|
||
|
LPSTR pLocationName = NULL;
|
||
|
|
||
|
|
||
|
switch( message ) {
|
||
|
case WM_INITDIALOG:
|
||
|
FaxConfig = (PFAXXP_CONFIG) lParam;
|
||
|
//
|
||
|
// defer the server CP check to this point so we don't fire up fax service
|
||
|
// unless we really need this property
|
||
|
//
|
||
|
if (FaxConnectFaxServer(FaxConfig->ServerName,&hFax) ){
|
||
|
if (FaxGetConfiguration(hFax,&pFaxConfiguration) ){
|
||
|
FaxConfig->ServerCpOnly = pFaxConfiguration->ServerCp;
|
||
|
FaxFreeBuffer(pFaxConfiguration);
|
||
|
}
|
||
|
FaxClose(hFax);
|
||
|
}
|
||
|
|
||
|
hwndListPrn = GetDlgItem( hDlg, IDC_PRINTER_LIST );
|
||
|
hwndListCov = GetDlgItem( hDlg, IDC_COVERPAGE_LIST );
|
||
|
hwndListLoc = GetDlgItem( hDlg, IDC_DIALING_LOCATION );
|
||
|
|
||
|
Buffer[0] = 0;
|
||
|
PrinterInfo = (PPRINTER_INFO_2) MyEnumPrinters( NULL, 2, &CountPrinters, PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS );
|
||
|
Match = FALSE;
|
||
|
if (PrinterInfo) {
|
||
|
for (i=0,j=0; i<CountPrinters; i++) {
|
||
|
if (strcmp( PrinterInfo[i].pDriverName, FAX_DRIVER_NAME ) == 0) {
|
||
|
SendMessage( hwndListPrn, CB_ADDSTRING, 0, (LPARAM) PrinterInfo[i].pPrinterName );
|
||
|
if (FaxConfig->PrinterName && strcmp( PrinterInfo[i].pPrinterName, FaxConfig->PrinterName ) == 0) {
|
||
|
Match = TRUE;
|
||
|
if (PrinterInfo[i].pServerName) {
|
||
|
strcpy( Buffer, PrinterInfo[i].pServerName );
|
||
|
}
|
||
|
}
|
||
|
j += 1;
|
||
|
}
|
||
|
}
|
||
|
if (j == 0) {
|
||
|
//
|
||
|
// no fax printers
|
||
|
//
|
||
|
goto cp;
|
||
|
}
|
||
|
if (!Match) {
|
||
|
MemFree( FaxConfig->PrinterName );
|
||
|
FaxConfig->PrinterName = StringDup( PrinterInfo[0].pPrinterName );
|
||
|
}
|
||
|
MemFree( PrinterInfo );
|
||
|
SendMessage( hwndListPrn, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) FaxConfig->PrinterName );
|
||
|
PrinterInfo = (PPRINTER_INFO_2) MyGetPrinter( FaxConfig->PrinterName, 2 );
|
||
|
if (PrinterInfo && (PrinterInfo->Attributes & PRINTER_ATTRIBUTE_LOCAL)) {
|
||
|
LocalPrinter = TRUE;
|
||
|
} else {
|
||
|
LocalPrinter = FALSE;
|
||
|
}
|
||
|
MemFree( PrinterInfo );
|
||
|
}
|
||
|
cp:
|
||
|
if (FaxConfig->UseCoverPage) {
|
||
|
CheckDlgButton( hDlg, IDC_USE_COVERPAGE, BST_CHECKED );
|
||
|
} else {
|
||
|
EnableWindow( GetDlgItem( hDlg, IDC_COVERPAGE_LIST ), FALSE );
|
||
|
}
|
||
|
|
||
|
GetServerCpDir( Buffer[0] ? Buffer : NULL, CpDir, sizeof(CpDir) );
|
||
|
AddCoverPagesToList( hwndListCov, CpDir, TRUE );
|
||
|
|
||
|
|
||
|
if (!FaxConfig->ServerCpOnly) {
|
||
|
GetClientCpDir( CpDir, sizeof(CpDir) );
|
||
|
AddCoverPagesToList( hwndListCov, CpDir, FALSE );
|
||
|
}
|
||
|
|
||
|
Selection = (DWORD)SendMessage( hwndListCov, LB_FINDSTRING, 0, (LPARAM) FaxConfig->CoverPageName );
|
||
|
if (Selection == LB_ERR) {
|
||
|
Selection = 0;
|
||
|
}
|
||
|
SendMessage( hwndListCov, LB_SETCURSEL, (WPARAM) Selection, 0 );
|
||
|
|
||
|
MyLineGetTransCaps( &LineTransCaps );
|
||
|
if (LineTransCaps && LineTransCaps->dwLocationListSize && LineTransCaps->dwLocationListOffset) {
|
||
|
LineLocation = (LPLINELOCATIONENTRY) ((LPBYTE)LineTransCaps + LineTransCaps->dwLocationListOffset);
|
||
|
for (i=0; i<LineTransCaps->dwNumLocations; i++) {
|
||
|
if (LineLocation[i].dwLocationNameSize && LineLocation[i].dwLocationNameOffset) {
|
||
|
j = SendMessage(
|
||
|
hwndListLoc,
|
||
|
CB_ADDSTRING,
|
||
|
0,
|
||
|
(LPARAM) (LPSTR) ((LPBYTE)LineTransCaps + LineLocation[i].dwLocationNameOffset)
|
||
|
);
|
||
|
SendMessage(
|
||
|
hwndListLoc,
|
||
|
CB_SETITEMDATA,
|
||
|
j,
|
||
|
(LPARAM) LineLocation[i].dwPermanentLocationID
|
||
|
);
|
||
|
|
||
|
if (LineLocation[i].dwPermanentLocationID == LineTransCaps->dwCurrentLocationID) {
|
||
|
pLocationName = (LPSTR) ((LPBYTE)LineTransCaps + LineLocation[i].dwLocationNameOffset);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (pLocationName) {
|
||
|
SendMessage( hwndListLoc, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) pLocationName );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!LocalPrinter) {
|
||
|
EnableWindow( hwndListLoc, FALSE );
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
if (HIWORD(wParam) == BN_CLICKED) {
|
||
|
if (LOWORD(wParam) == IDC_USE_COVERPAGE) {
|
||
|
if (IsDlgButtonChecked( hDlg, IDC_USE_COVERPAGE ) == BST_CHECKED) {
|
||
|
EnableWindow( GetDlgItem( hDlg, IDC_COVERPAGE_LIST ), TRUE );
|
||
|
} else {
|
||
|
EnableWindow( GetDlgItem( hDlg, IDC_COVERPAGE_LIST ), FALSE );
|
||
|
}
|
||
|
return FALSE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (HIWORD(wParam) == LBN_SELCHANGE && LOWORD(wParam) == IDC_PRINTER_LIST) {
|
||
|
Selection = (DWORD)SendMessage( hwndListPrn, CB_GETCURSEL, 0, 0 );
|
||
|
SendMessage( hwndListPrn, CB_GETLBTEXT, Selection, (LPARAM) Buffer );
|
||
|
PrinterInfo = (PPRINTER_INFO_2) MyGetPrinter( Buffer, 2 );
|
||
|
if (PrinterInfo && (PrinterInfo->Attributes & PRINTER_ATTRIBUTE_LOCAL)) {
|
||
|
LocalPrinter = TRUE;
|
||
|
} else {
|
||
|
LocalPrinter = FALSE;
|
||
|
}
|
||
|
EnableWindow( hwndListLoc, LocalPrinter );
|
||
|
|
||
|
SendMessage( hwndListCov, LB_RESETCONTENT, 0, 0 );
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
GetServerCpDir( PrinterInfo ? PrinterInfo->pServerName : NULL, CpDir, sizeof(CpDir) );
|
||
|
AddCoverPagesToList( hwndListCov, CpDir, TRUE );
|
||
|
|
||
|
//
|
||
|
// check if the server name has changed
|
||
|
// (so we can update the "server CP only" flag)
|
||
|
//
|
||
|
BOOL ServerNameChange = FALSE;
|
||
|
if (FaxConfig->ServerName) {
|
||
|
if (PrinterInfo && PrinterInfo->pServerName) {
|
||
|
if (strcmp(FaxConfig->ServerName,PrinterInfo->pServerName) != 0) {
|
||
|
MemFree(FaxConfig->ServerName);
|
||
|
FaxConfig->ServerName = StringDup(PrinterInfo->pServerName);
|
||
|
ServerNameChange = TRUE;
|
||
|
}
|
||
|
} else {
|
||
|
MemFree(FaxConfig->ServerName);
|
||
|
FaxConfig->ServerName = NULL;
|
||
|
ServerNameChange = TRUE;
|
||
|
}
|
||
|
} else if (PrinterInfo && PrinterInfo->pServerName) {
|
||
|
FaxConfig->ServerName = StringDup(PrinterInfo->pServerName);
|
||
|
ServerNameChange = TRUE;
|
||
|
}
|
||
|
|
||
|
if (ServerNameChange) {
|
||
|
HANDLE hFax;
|
||
|
PFAX_CONFIGURATION pFaxConfiguration;
|
||
|
|
||
|
FaxConfig->ServerCpOnly = FALSE;
|
||
|
if (FaxConnectFaxServer(FaxConfig->ServerName,&hFax) ){
|
||
|
if (FaxGetConfiguration(hFax,&pFaxConfiguration) ){
|
||
|
FaxConfig->ServerCpOnly = pFaxConfiguration->ServerCp;
|
||
|
FaxFreeBuffer(pFaxConfiguration);
|
||
|
}
|
||
|
FaxClose(hFax);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
if (! FaxConfig->ServerCpOnly) {
|
||
|
GetClientCpDir( CpDir, sizeof(CpDir) );
|
||
|
AddCoverPagesToList( hwndListCov, CpDir, FALSE );
|
||
|
}
|
||
|
|
||
|
SendMessage( hwndListCov, LB_SETCURSEL, 0, 0 );
|
||
|
MemFree( PrinterInfo );
|
||
|
}
|
||
|
|
||
|
switch (wParam) {
|
||
|
case IDOK :
|
||
|
FaxConfig->UseCoverPage = IsDlgButtonChecked( hDlg, IDC_USE_COVERPAGE ) == BST_CHECKED;
|
||
|
Selection = (DWORD)SendMessage( hwndListPrn, CB_GETCURSEL, 0, 0 );
|
||
|
SendMessage( hwndListPrn, CB_GETLBTEXT, Selection, (LPARAM) Buffer );
|
||
|
MemFree( FaxConfig->PrinterName );
|
||
|
FaxConfig->PrinterName = StringDup( Buffer );
|
||
|
Selection = (DWORD)SendMessage( hwndListCov, LB_GETCURSEL, 0, 0 );
|
||
|
SendMessage( hwndListCov, LB_GETTEXT, Selection, (LPARAM) Buffer );
|
||
|
MemFree( FaxConfig->CoverPageName );
|
||
|
|
||
|
// Local cover page files are presented with the string " (Personal)"
|
||
|
// appended to the base of the cover page file name. Note the presence
|
||
|
// of a space character. The following code segment removes that string
|
||
|
// if it is present, before setting the CoverPageName member of FaxConfig.
|
||
|
|
||
|
p = strstr( Buffer, (const char *) " (" );
|
||
|
|
||
|
if ( p != NULL )
|
||
|
{
|
||
|
*p = (CHAR) '\0';
|
||
|
}
|
||
|
|
||
|
FaxConfig->CoverPageName = StringDup( Buffer );
|
||
|
FaxConfig->ServerCoverPage = (INT)SendMessage( hwndListCov, LB_GETITEMDATA, Selection, 0 );
|
||
|
Selection = (DWORD)SendMessage( hwndListLoc, CB_GETCURSEL, 0, 0 );
|
||
|
if (Selection >= 0 && LineTransCaps) {
|
||
|
dwPermanentLocationID = (DWORD) SendMessage( hwndListLoc, CB_GETITEMDATA, Selection, 0);
|
||
|
if (dwPermanentLocationID != LineTransCaps->dwCurrentLocationID) {
|
||
|
lineSetCurrentLocation( NULL, dwPermanentLocationID );
|
||
|
}
|
||
|
}
|
||
|
if (LineTransCaps) {
|
||
|
MemFree( LineTransCaps );
|
||
|
}
|
||
|
|
||
|
EndDialog( hDlg, IDOK );
|
||
|
break;
|
||
|
|
||
|
case IDCANCEL:
|
||
|
MemFree( LineTransCaps );
|
||
|
EndDialog( hDlg, IDCANCEL );
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case WM_HELP:
|
||
|
case WM_CONTEXTMENU:
|
||
|
|
||
|
FAXWINHELP( message, wParam, lParam, faxextHelpIDs );
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return FALSE;
|
||
|
}
|