|
|
#ifndef DLG_H
#define DLG_H
#include <windows.h>
#include <windowsx.h>
#include <debug.h>
typedef void (*PFN)();
typedef union tagMMF { PFN pfn;
LRESULT (*pfn_lwwwl)(HWND, UINT, WPARAM, LPARAM); BOOL (*pfn_bwwwl)(HWND, UINT, WPARAM, LPARAM); void (*pfn_vv)(); BOOL (*pfn_bv)(); void (*pfn_vw)(WPARAM); BOOL (*pfn_bw)(WPARAM); void (*pfn_vh)(HANDLE); BOOL (*pfn_bh)(HANDLE); BOOL (*pfn_bhl)(HANDLE, LPARAM); void (*pfn_vhww)(HANDLE, UINT, WORD); void (*pfn_vhhw)(HANDLE, HANDLE, WORD); } MMF;
typedef enum tagMSIG { ms_end = 0,
ms_lwwwl, // LRESULT (HWND, UINT, WORD, LPARAM)
ms_bwwwl, // BOOL (HWND, UINT, WORD, LPARAM)
ms_vv, // void (void)
ms_bv, // BOOL (void)
ms_vw, // void (WPARAM)
ms_bw, // BOOL (WPARAM)
ms_vh, // void (HANDLE)
ms_bh, // BOOL (HANDLE)
ms_bhl, // BOOL (HANDLE, LPARAM)
ms_vhww, // void (HANDLE, UINT, WORD)
ms_vhhw, // void (HANDLE, HANDLE, WORD)
} MSIG;
typedef struct tagMSD { UINT msg; MSIG ms; PFN pfn; } MSD; typedef MSD *PMSD;
typedef struct tagCMD { UINT nID, nLastID; MSIG ms; PFN pfn; } CMD; typedef CMD *PCMD;
INT_PTR Dlg_MsgProc(const MSD *pmsd, HWND hDlg, UINT msg, WPARAM wp, LPARAM lp); BOOL Msg_OnCmd(const CMD *pcmd, HWND hDlg, UINT msg, WPARAM wp, LPARAM lp); #endif
|