272 lines
5.1 KiB
C
272 lines
5.1 KiB
C
|
#ifndef _DLG_H_
|
||
|
#define _DLG_H_
|
||
|
|
||
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
DLG.CPP
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
C_Dlg implementation
|
||
|
|
||
|
Author:
|
||
|
|
||
|
990518 dane Created.
|
||
|
georgema 000310 updated
|
||
|
|
||
|
Environment:
|
||
|
Win98, Win2000
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <commctrl.h>
|
||
|
#include <tchar.h>
|
||
|
#include "macros.h"
|
||
|
#include <shfusion.h>
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// C_Dlg
|
||
|
//
|
||
|
// Base dialog class: handles default message routing and processing.
|
||
|
//
|
||
|
class C_Dlg
|
||
|
{
|
||
|
public: // operations
|
||
|
C_Dlg(
|
||
|
HWND hwndParent,
|
||
|
HINSTANCE hInstance,
|
||
|
LONG lIDD,
|
||
|
DLGPROC pfnDlgProc = NULL
|
||
|
);
|
||
|
|
||
|
~C_Dlg( );
|
||
|
|
||
|
virtual INT_PTR
|
||
|
DoModal(
|
||
|
LPARAM lparam = NULL
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
EndDialog(
|
||
|
INT nResult = 0
|
||
|
)
|
||
|
{
|
||
|
ASSERT(NULL != m_hwnd);
|
||
|
return ::EndDialog(m_hwnd, nResult);
|
||
|
} // EndDialog
|
||
|
|
||
|
// Link the object to the window handle
|
||
|
//
|
||
|
virtual BOOL
|
||
|
OnInitDialog(
|
||
|
HWND hwndDlg,
|
||
|
HWND hwndFocus
|
||
|
)
|
||
|
{
|
||
|
// Save the page's window handle & link the window handle to the page
|
||
|
// object.
|
||
|
//
|
||
|
m_hwnd = hwndDlg;
|
||
|
LinkHwnd( );
|
||
|
|
||
|
// Let the system set the default keyboard focus.
|
||
|
//
|
||
|
return TRUE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnDestroyDialog(void)
|
||
|
{
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
virtual BOOL
|
||
|
OnCommand(
|
||
|
WORD wNotifyCode,
|
||
|
WORD wId,
|
||
|
HWND hwndSender
|
||
|
)
|
||
|
{
|
||
|
// Message was not processed
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnHelpInfo(
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
// Message was not processed
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnContextMenu(
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
// Message was not processed
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnQueryCancel( )
|
||
|
{
|
||
|
// The message was not processed.
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnHelp( )
|
||
|
{
|
||
|
// User has clicked the Help button.
|
||
|
// TODO: Display help
|
||
|
|
||
|
// The message was not processed.
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual BOOL
|
||
|
OnNotify(
|
||
|
LPNMHDR pnmh
|
||
|
)
|
||
|
{
|
||
|
// Message was not processed.
|
||
|
//
|
||
|
return FALSE;
|
||
|
} //
|
||
|
|
||
|
virtual void
|
||
|
CenterWindow();
|
||
|
|
||
|
virtual void
|
||
|
OnShutdown() {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
#if 0
|
||
|
// Notification message return their results via the DWL_MSGRESULT window
|
||
|
// long. This wrapper keeps me from having to remember that.
|
||
|
//
|
||
|
virtual LONG
|
||
|
SetNotificationMessageResult(
|
||
|
LONG lResult
|
||
|
)
|
||
|
{
|
||
|
return SetWindowLong(m_hwnd, DWL_MSGRESULT, lResult);
|
||
|
} // SetNotificationMessageResult
|
||
|
#endif
|
||
|
|
||
|
// Process application-specific messages (WM_APP + n)
|
||
|
//
|
||
|
virtual BOOL
|
||
|
OnAppMessage(
|
||
|
UINT uMessage,
|
||
|
WPARAM wparam,
|
||
|
LPARAM lparam
|
||
|
)
|
||
|
{
|
||
|
// Message was not processed.
|
||
|
//
|
||
|
return FALSE;
|
||
|
} // OnAppMessage
|
||
|
|
||
|
static HRESULT
|
||
|
DlgFromHwnd(
|
||
|
HWND hwnd,
|
||
|
C_Dlg** ppDlg
|
||
|
);
|
||
|
|
||
|
const HWND
|
||
|
Hwnd( ) const
|
||
|
{
|
||
|
return m_hwnd;
|
||
|
} // Hwnd
|
||
|
|
||
|
virtual void
|
||
|
AssertValid( ) const
|
||
|
{
|
||
|
ASSERT(NULL != m_hwnd);
|
||
|
} // AssertValid
|
||
|
protected: // operations
|
||
|
|
||
|
static LPCTSTR SZ_HWND_PROP;
|
||
|
|
||
|
BOOL
|
||
|
LinkHwnd( );
|
||
|
|
||
|
BOOL
|
||
|
UnlinkHwnd( );
|
||
|
|
||
|
static BOOL CALLBACK
|
||
|
DlgProc(
|
||
|
HWND hwndDlg,
|
||
|
UINT uMessage,
|
||
|
WPARAM wparam,
|
||
|
LPARAM lparam
|
||
|
);
|
||
|
|
||
|
static BOOL
|
||
|
RouteNotificationMessage(
|
||
|
C_Dlg* pDlg,
|
||
|
NMHDR* pnmhdr
|
||
|
);
|
||
|
|
||
|
protected: // data
|
||
|
// Window handle of the dialog's parent window (may be NULL)
|
||
|
//
|
||
|
HWND m_hwndParent;
|
||
|
|
||
|
// Window handle of the dialog (may NOT be NULL)
|
||
|
//
|
||
|
HWND m_hwnd;
|
||
|
|
||
|
// Instance handle of the application displaying this dialog (may be NULL)
|
||
|
//
|
||
|
HINSTANCE m_hInstance;
|
||
|
|
||
|
// Identifier for the dialog template associated with this object
|
||
|
//
|
||
|
LONG m_lIDD;
|
||
|
|
||
|
// Procedure that processes message sent to this dialog
|
||
|
//
|
||
|
DLGPROC m_pfnDlgProc;
|
||
|
|
||
|
private: // operations
|
||
|
|
||
|
// Explicitly disallow copy constructor and assignment operator.
|
||
|
//
|
||
|
C_Dlg(
|
||
|
const C_Dlg& rhs
|
||
|
);
|
||
|
|
||
|
C_Dlg&
|
||
|
operator=(
|
||
|
const C_Dlg& rhs
|
||
|
);
|
||
|
|
||
|
private: // data
|
||
|
|
||
|
}; // C_Dlg
|
||
|
|
||
|
|
||
|
#endif // _DLG_H_
|
||
|
|
||
|
//
|
||
|
///// End of file: DLG.h ////////////////////////////////////////////////
|