home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Support Encyclopedia 96-1
/
novell-nsepro-1996-1-cd2.iso
/
download
/
gw
/
oddev.exe
/
DIALOGS.CPP
next >
Wrap
C/C++ Source or Header
|
1994-07-15
|
4KB
|
151 lines
/* dialogs.c - Dialog procedures for ODMA sample DMS.
*
* COPYRIGHT (C) 1994
* SoftSolutions Technology Corporation
* Orem, Utah USA
* All Rights Reserved
*/
#include <windows.h>
#include "odmasamp.h"
BOOL CALLBACK _export SelectDocProc( HWND hwndDlg, UINT message, WPARAM wParam,
LPARAM lParam)
{
static char FAR *DocId;
int i, count;
Document *pDoc;
char *lp;
switch (message) {
case WM_INITDIALOG:
DocId = (char FAR *)lParam;
for( i = 0, count = 0; i < MAXDOCS; i++ ) {
pDoc = DocList.GetDocumentByIndex( i );
if (pDoc == NULL)
continue;
lp = pDoc->GetId();
SendDlgItemMessage( hwndDlg, IDC_SELECT, LB_ADDSTRING, 0,
(LPARAM)lp );
count++;
}
if (count == 0) {
// No documents in the DMS!
EnableWindow(GetDlgItem(hwndDlg, IDOK), FALSE );
} else {
// Select the first item in the list.
SendDlgItemMessage( hwndDlg, IDC_SELECT, LB_SETCURSEL, 0, 0 );
}
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
wsprintf( DocId, "::ODMA\\%s\\", (LPSTR) DMSID );
i = (int) SendDlgItemMessage( hwndDlg, IDC_SELECT, LB_GETCURSEL,
0, 0 );
SendDlgItemMessage( hwndDlg, IDC_SELECT, LB_GETTEXT, i,
(LPARAM)(DocId+strlen(DocId)) );
/* Fall through. */
case IDCANCEL:
case IDAPPSELECT:
EndDialog(hwndDlg, wParam);
return TRUE;
}
}
return FALSE;
}
BOOL CALLBACK _export SaveAsProc( HWND hwndDlg, UINT message, WPARAM wParam,
LPARAM lParam)
{
static SaveAsData FAR *pSaveAsData;
char *lp;
switch (message) {
case WM_INITDIALOG:
pSaveAsData = (SaveAsData FAR *)lParam;
SendDlgItemMessage( hwndDlg, ST_FORMAT, WM_SETTEXT, 0,
(LPARAM)(pSaveAsData->Format) );
if (pSaveAsData->pcbCallBack == NULL)
ShowWindow( GetDlgItem( hwndDlg, IDC_OPTIONS ), SW_HIDE );
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_OPTIONS:
lp = pSaveAsData->pcbCallBack( (DWORD)hwndDlg, pSaveAsData->Format,
pSaveAsData->pInstanceData );
strncpy( pSaveAsData->Format, lp, sizeof(pSaveAsData->Format) );
pSaveAsData->Format[sizeof(pSaveAsData->Format)-1] = '\0';
SendDlgItemMessage( hwndDlg, ST_FORMAT, WM_SETTEXT, 0,
(LPARAM)(pSaveAsData->Format) );
return TRUE;
case IDOK:
case IDCOPY:
case IDCANCEL:
EndDialog(hwndDlg, wParam);
return TRUE;
}
}
return FALSE;
}
BOOL CALLBACK _export ProfileProc( HWND hwndDlg, UINT message, WPARAM wParam,
LPARAM lParam)
{
static ProDlgData FAR *pDlgData;
switch (message) {
case WM_INITDIALOG:
pDlgData = (ProDlgData FAR *)lParam;
SendDlgItemMessage( hwndDlg, ST_DOCID, WM_SETTEXT, 0,
(LPARAM)(pDlgData->pDocument->GetId()) );
SendDlgItemMessage( hwndDlg, IDC_NAME, WM_SETTEXT, 0,
(LPARAM)pDlgData->pDocument->Name );
SendDlgItemMessage( hwndDlg, IDC_AUTHOR, WM_SETTEXT, 0,
(LPARAM)pDlgData->pDocument->Author );
SendDlgItemMessage( hwndDlg, IDC_TYPE, WM_SETTEXT, 0,
(LPARAM)pDlgData->pDocument->DocType );
if (pDlgData->Mode & PROFILE_EDIT) {
SendDlgItemMessage( hwndDlg, IDC_NAME, EM_SETREADONLY, 0, 0 );
SendDlgItemMessage( hwndDlg, IDC_AUTHOR, EM_SETREADONLY, 0, 0 );
SendDlgItemMessage( hwndDlg, IDC_TYPE, EM_SETREADONLY, 0, 0 );
SetFocus( GetDlgItem( hwndDlg, IDC_NAME ) );
} else {
SetFocus( GetDlgItem( hwndDlg, IDOK ) );
ShowWindow( GetDlgItem( hwndDlg, IDCANCEL ), SW_HIDE );
}
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
if (pDlgData->Mode & PROFILE_EDIT) {
SendDlgItemMessage( hwndDlg, IDC_NAME, WM_GETTEXT,
sizeof(pDlgData->pDocument->Name),
(LPARAM)pDlgData->pDocument->Name );
SendDlgItemMessage( hwndDlg, IDC_AUTHOR, WM_GETTEXT,
sizeof(pDlgData->pDocument->Author), (
LPARAM)pDlgData->pDocument->Author );
SendDlgItemMessage( hwndDlg, IDC_TYPE, WM_GETTEXT,
sizeof(pDlgData->pDocument->DocType),
(LPARAM)pDlgData->pDocument->DocType );
}
// fall through to below
case IDCANCEL:
EndDialog(hwndDlg, wParam);
return TRUE;
}
}
return FALSE;
}