#ifndef DLG_H #define DLG_H #include #include #include 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