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.

58 lines
1.4 KiB

  1. #ifndef DLG_H
  2. #define DLG_H
  3. #include <windows.h>
  4. #include <windowsx.h>
  5. #include <debug.h>
  6. typedef void (*PFN)();
  7. typedef union tagMMF {
  8. PFN pfn;
  9. LRESULT (*pfn_lwwwl)(HWND, UINT, WPARAM, LPARAM);
  10. BOOL (*pfn_bwwwl)(HWND, UINT, WPARAM, LPARAM);
  11. void (*pfn_vv)();
  12. BOOL (*pfn_bv)();
  13. void (*pfn_vw)(WPARAM);
  14. BOOL (*pfn_bw)(WPARAM);
  15. void (*pfn_vh)(HANDLE);
  16. BOOL (*pfn_bh)(HANDLE);
  17. BOOL (*pfn_bhl)(HANDLE, LPARAM);
  18. void (*pfn_vhww)(HANDLE, UINT, WORD);
  19. void (*pfn_vhhw)(HANDLE, HANDLE, WORD);
  20. } MMF;
  21. typedef enum tagMSIG {
  22. ms_end = 0,
  23. ms_lwwwl, // LRESULT (HWND, UINT, WORD, LPARAM)
  24. ms_bwwwl, // BOOL (HWND, UINT, WORD, LPARAM)
  25. ms_vv, // void (void)
  26. ms_bv, // BOOL (void)
  27. ms_vw, // void (WPARAM)
  28. ms_bw, // BOOL (WPARAM)
  29. ms_vh, // void (HANDLE)
  30. ms_bh, // BOOL (HANDLE)
  31. ms_bhl, // BOOL (HANDLE, LPARAM)
  32. ms_vhww, // void (HANDLE, UINT, WORD)
  33. ms_vhhw, // void (HANDLE, HANDLE, WORD)
  34. } MSIG;
  35. typedef struct tagMSD {
  36. UINT msg;
  37. MSIG ms;
  38. PFN pfn;
  39. } MSD;
  40. typedef MSD *PMSD;
  41. typedef struct tagCMD {
  42. UINT nID, nLastID;
  43. MSIG ms;
  44. PFN pfn;
  45. } CMD;
  46. typedef CMD *PCMD;
  47. INT_PTR Dlg_MsgProc(const MSD *pmsd, HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
  48. BOOL Msg_OnCmd(const CMD *pcmd, HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
  49. #endif