Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#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 ////////////////////////////////////////////////
|