home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / OWLINC.PAK / SIGNATUR.H < prev    next >
C/C++ Source or Header  |  1995-08-29  |  10KB  |  465 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
  4. //
  5. //   Message handler signature templates
  6. //----------------------------------------------------------------------------
  7. #if !defined(OWL_SIGNATUR_H)
  8. #define OWL_SIGNATUR_H
  9.  
  10. #if !defined(OWL_OWLDEFS_H)
  11. # include <owl/owldefs.h>
  12. #endif
  13. class _OWLCLASS TCommandEnabler;
  14. class _OWLCLASS TDocument;
  15. class _OWLCLASS TView;
  16. class TDropInfo;
  17. class TPoint;
  18. class TSize;
  19. class _BIDSCLASS TRect;
  20.  
  21. //----------------------------------------------------------------------------
  22. //  LEGEND: in order to keep signature names from getting too long, the
  23. //          following abbreviations are used for the data types passed to and
  24. //          returned from the methods. The first code is the return type, the
  25. //          rest are args in left to right order.
  26. //
  27. //  - v   (void return)
  28. //  - i   (int)
  29. //  - I32 (int32)
  30. //  - U   (uint)
  31. //  - B   (bool)
  32. //  - H   (HANDLE)
  33. //  - W   (HWND)
  34. //  - S   (char far*)
  35. //  - CS  (const char far*)
  36. //  - other types spelled out
  37. //
  38.  
  39. //----------------------------------------------------------------------------
  40.  
  41. template <class T>
  42. inline bool(T::*B_Sig(bool(T::*pmf)()))()
  43. {
  44.   return pmf;
  45. }
  46.  
  47. template <class T>
  48. inline bool(T::*B_B_Sig(bool(T::*pmf)(bool)))(bool)
  49. {
  50.   return pmf;
  51. }
  52.  
  53. template <class T>
  54. inline bool(T::*B_CREATE_Sig(bool(T::*pmf)(CREATESTRUCT far&)))(CREATESTRUCT far&)
  55. {
  56.   return pmf;
  57. }
  58.  
  59. template <class T>
  60. inline bool(T::*B_CS_Sig(bool(T::*pmf)(const char far*)))(const char far*)
  61. {
  62.   return pmf;
  63. }
  64.  
  65. template <class T>
  66. inline bool(T::*B_MSG_Sig(bool(T::*pmf)(MSG far*)))(MSG far*)
  67. {
  68.   return pmf;
  69. }
  70.  
  71. template <class T>
  72. inline bool(T::*B_RECT_Sig(bool(T::*pmf)(TRect far*)))(TRect far*)
  73. {
  74.   return pmf;
  75. }
  76.  
  77. template <class T>
  78. inline bool(T::*B_W_U_U_Sig(bool(T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  79. {
  80.   return pmf;
  81. }
  82.  
  83. template <class T>
  84. inline bool(T::*B_HDC_Sig(bool(T::*pmf)(HDC)))(HDC)
  85. {
  86.   return pmf;
  87. }
  88.  
  89. template <class T>
  90. inline bool(T::*B_I32_Sig(bool(T::*pmf)(int32)))(int32)
  91. {
  92.   return pmf;
  93. }
  94.  
  95. template <class T>
  96. inline bool(T::*B_PPALETTE_Sig(bool(T::*pmf)(LOGPALETTE far* far*)))(LOGPALETTE far* far*)
  97. {
  98.   return pmf;
  99. }
  100.  
  101. //----------------------------------------------------------------------------
  102.  
  103. template <class T>
  104. inline const char far*(T::*CS_Sig(const char far*(T::*pmf)()))()
  105. {
  106.   return pmf;
  107. }
  108.  
  109. //----------------------------------------------------------------------------
  110.  
  111. template <class T>
  112. inline HANDLE(T::*H_Sig(HANDLE(T::*pmf)()))()
  113. {
  114.   return pmf;
  115. }
  116.  
  117. //----------------------------------------------------------------------------
  118.  
  119. template <class T>
  120. inline HBRUSH(T::*HBRUSH_HDC_W_U_Sig(HBRUSH(T::*pmf)(HDC, HWND, uint)))(HDC, HWND, uint)
  121. {
  122.   return pmf;
  123. }
  124.  
  125. //----------------------------------------------------------------------------
  126.  
  127. template <class T>
  128. inline HFONT(T::*HFONT_Sig(HFONT(T::*pmf)()))()
  129. {
  130.   return pmf;
  131. }
  132.  
  133. //----------------------------------------------------------------------------
  134.  
  135. template <class T>
  136. inline int(T::*i_CREATE_Sig(int(T::*pmf)(CREATESTRUCT far&)))(CREATESTRUCT far&)
  137. {
  138.   return pmf;
  139. }
  140.  
  141. template <class T>
  142. inline int(T::*i_U_Sig(int(T::*pmf)(uint)))(uint)
  143. {
  144.   return pmf;
  145. }
  146.  
  147. template <class T>
  148. inline int(T::*i_U_W_U_Sig(int(T::*pmf)(uint, HWND, uint)))(uint, HWND, uint)
  149. {
  150.   return pmf;
  151. }
  152.  
  153. //----------------------------------------------------------------------------
  154.  
  155. template <class T>
  156. inline int32(T::*I32_MDICREATESTRUCT_Sig(int32(T::*pmf)(MDICREATESTRUCT far&)))
  157.                                         (MDICREATESTRUCT far&)
  158. {
  159.   return pmf;
  160. }
  161.  
  162. template <class T>
  163. inline int32(T::*I32_U_COMPAREITEM_Sig(int32(T::*pmf)(uint, COMPAREITEMSTRUCT far&)))
  164.                                       (uint, COMPAREITEMSTRUCT far&)
  165. {
  166.   return pmf;
  167. }
  168.  
  169. template <class T>
  170. inline int32(T::*I32_U_I32_Sig(int32(T::*pmf)(uint, int32)))(uint, int32)
  171. {
  172.   return pmf;
  173. }
  174.  
  175. template <class T>
  176. inline int32(T::*I32_U_U_HMENU_Sig(int32(T::*pmf)(uint, uint, HMENU)))(uint, uint, HMENU)
  177. {
  178.   return pmf;
  179. }
  180.  
  181. //----------------------------------------------------------------------------
  182.  
  183. template <class T>
  184. inline uint32(T::*U32_VOIDFP_Sig(uint32(T::*pmf)(void far*)))(void far*)
  185. {
  186.   return pmf;
  187. }
  188.  
  189. //----------------------------------------------------------------------------
  190.  
  191. template <class T>
  192. inline uint(T::*U_Sig(uint(T::*pmf)()))()
  193. {
  194.   return pmf;
  195. }
  196.  
  197. template <class T>
  198. inline uint(T::*U_B_CALCSIZE_Sig(uint(T::*pmf)(bool, NCCALCSIZE_PARAMS far&)))
  199.                                 (bool, NCCALCSIZE_PARAMS far&)
  200. {
  201.   return pmf;
  202. }
  203.  
  204. template <class T>
  205. inline uint(T::*U_MSG_Sig(uint(T::*pmf)(MSG far*)))(MSG far*)
  206. {
  207.   return pmf;
  208. }
  209.  
  210. template <class T>
  211. inline uint(T::*U_POINT_Sig(uint(T::*pmf)(TPoint&)))(TPoint&)
  212. {
  213.   return pmf;
  214. }
  215.  
  216. template <class T>
  217. inline uint(T::*U_W_U_U_Sig(uint(T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  218. {
  219.   return pmf;
  220. }
  221.  
  222. //----------------------------------------------------------------------------
  223.  
  224. template <class T>
  225. inline void(T::*v_Sig(void(T::*pmf)()))()
  226. {
  227.   return pmf;
  228. }
  229.  
  230. template <class T>
  231. inline void(T::*v_B_Sig(void(T::*pmf)(bool)))(bool)
  232. {
  233.   return pmf;
  234. }
  235.  
  236. template <class T>
  237. inline void(T::*v_B_HTASK_Sig(void(T::*pmf)(bool, HTASK)))(bool, HTASK)
  238. {
  239.   return pmf;
  240. }
  241.  
  242. template <class T>
  243. inline void(T::*v_B_U_Sig(void(T::*pmf)(bool, uint)))(bool, uint)
  244. {
  245.   return pmf;
  246. }
  247.  
  248. template <class T>
  249. inline void(T::*v_B_W_W_Sig(void(T::*pmf)(bool, HWND, HWND)))(bool, HWND, HWND)
  250. {
  251.   return pmf;
  252. }
  253.  
  254. template <class T>
  255. inline void(T::*v_COMMANDENABLER_Sig(void(T::*pmf)(TCommandEnabler&)))(TCommandEnabler&)
  256. {
  257.   return pmf;
  258. }
  259.  
  260. template <class T>
  261. inline void(T::*v_CS_Sig(void(T::*pmf)(const char far*)))(const char far*)
  262. {
  263.   return pmf;
  264. }
  265.  
  266. template <class T>
  267. inline void(T::*v_DROP_Sig(void(T::*pmf)(TDropInfo)))(TDropInfo)
  268. {
  269.   return pmf;
  270. }
  271.  
  272. template <class T>
  273. inline void(T::*v_H_Sig(void(T::*pmf)(HANDLE)))(HANDLE)
  274. {
  275.   return pmf;
  276. }
  277.  
  278. template <class T>
  279. inline void(T::*v_H_B_Sig(void(T::*pmf)(HANDLE, bool)))(HANDLE, bool)
  280. {
  281.   return pmf;
  282. }
  283.  
  284. template <class T>
  285. inline void(T::*v_HDC_Sig(void(T::*pmf)(HDC)))(HDC)
  286. {
  287.   return pmf;
  288. }
  289.  
  290. template <class T>
  291. inline void(T::*v_HFONT_B_Sig(void(T::*pmf)(HFONT, bool)))(HFONT, bool)
  292. {
  293.   return pmf;
  294. }
  295.  
  296. template <class T>
  297. inline void(T::*v_HMENU_Sig(void(T::*pmf)(HMENU)))(HMENU)
  298. {
  299.   return pmf;
  300. }
  301.  
  302. template <class T>
  303. inline void(T::*v_HMENU_U_B_Sig(void(T::*pmf)(HMENU, uint, bool)))(HMENU, uint, bool)
  304. {
  305.   return pmf;
  306. }
  307.  
  308. template <class T>
  309. inline void(T::*v_i_Sig(void(T::*pmf)(int)))(int)
  310. {
  311.   return pmf;
  312. }
  313.  
  314. template <class T>
  315. inline void(T::*v_MINMAXINFO_Sig(void(T::*pmf)(MINMAXINFO far&)))(MINMAXINFO far&)
  316. {
  317.   return pmf;
  318. }
  319.  
  320. template <class T>
  321. inline void(T::*v_OWLDOCUMENT_Sig(void(T::*pmf)(TDocument&)))(TDocument&)
  322. {
  323.   return pmf;
  324. }
  325.  
  326. template <class T>
  327. inline void(T::*v_OWLVIEW_Sig(void(T::*pmf)(TView&)))(TView&)
  328. {
  329.   return pmf;
  330. }
  331.  
  332. template <class T>
  333. inline void(T::*v_POINT_Sig(void(T::*pmf)(TPoint&)))(TPoint&)
  334. {
  335.   return pmf;
  336. }
  337.  
  338. template <class T>
  339. inline void(T::*v_S_Sig(void(T::*pmf)(char far*)))(char far*)
  340. {
  341.   return pmf;
  342. }
  343.  
  344. template <class T>
  345. inline void(T::*v_U_Sig(void(T::*pmf)(uint)))(uint)
  346. {
  347.   return pmf;
  348. }
  349.  
  350. template <class T>
  351. inline void(T::*v_U_B_W_Sig(void(T::*pmf)(uint, bool, HWND)))(uint, bool, HWND)
  352. {
  353.   return pmf;
  354. }
  355.  
  356. template <class T>
  357. inline void(T::*v_U_DELETEITEM_Sig(void(T::*pmf)(uint, DELETEITEMSTRUCT far&)))
  358.                                       (uint, DELETEITEMSTRUCT far&)
  359. {
  360.   return pmf;
  361. }
  362.  
  363. template <class T>
  364. inline void(T::*v_U_DRAWITEM_Sig(void(T::*pmf)(uint, DRAWITEMSTRUCT far&)))
  365.                                       (uint, DRAWITEMSTRUCT far&)
  366. {
  367.   return pmf;
  368. }
  369.  
  370. template <class T>
  371. inline void(T::*v_U_MEASUREITEM_Sig(void(T::*pmf)(uint, MEASUREITEMSTRUCT far&)))
  372.                                       (uint, MEASUREITEMSTRUCT far&)
  373. {
  374.   return pmf;
  375. }
  376.  
  377. template <class T>
  378. inline void(T::*v_U_POINT_Sig(void(T::*pmf)(uint, TPoint&)))(uint, TPoint&)
  379. {
  380.   return pmf;
  381. }
  382.  
  383. template <class T>
  384. inline void(T::*v_U_S_Sig(void(T::*pmf)(uint, char far*)))(uint, char far*)
  385. {
  386.   return pmf;
  387. }
  388.  
  389. template <class T>
  390. inline void(T::*v_U_SIZE_Sig(void(T::*pmf)(uint, TSize&)))(uint, TSize&)
  391. {
  392.   return pmf;
  393. }
  394.  
  395. template <class T>
  396. inline void(T::*v_U_U_Sig(void(T::*pmf)(uint, uint)))(uint, uint)
  397. {
  398.   return pmf;
  399. }
  400.  
  401. template <class T>
  402. inline void(T::*v_U_U_HMENU_Sig(void(T::*pmf)(uint, uint, HMENU)))(uint, uint, HMENU)
  403. {
  404.   return pmf;
  405. }
  406.  
  407. template <class T>
  408. inline void(T::*v_U_U_U_Sig(void(T::*pmf)(uint, uint, uint)))(uint, uint, uint)
  409. {
  410.   return pmf;
  411. }
  412.  
  413. template <class T>
  414. inline void(T::*v_U_U_W_Sig(void(T::*pmf)(uint, uint, HWND)))(uint, uint, HWND)
  415. {
  416.   return pmf;
  417. }
  418.  
  419. template <class T>
  420. inline void(T::*v_U_W_Sig(void(T::*pmf)(uint, HWND)))(uint, HWND)
  421. {
  422.   return pmf;
  423. }
  424.  
  425. template <class T>
  426. inline void(T::*v_W_Sig(void(T::*pmf)(HWND)))(HWND)
  427. {
  428.   return pmf;
  429. }
  430.  
  431. template <class T>
  432. inline void(T::*v_W_H_Sig(void(T::*pmf)(HWND, HANDLE)))(HWND, HANDLE)
  433. {
  434.   return pmf;
  435. }
  436.  
  437. template <class T>
  438. inline void(T::*v_W_U_U_Sig(void(T::*pmf)(HWND, uint, uint)))(HWND, uint, uint)
  439. {
  440.   return pmf;
  441. }
  442.  
  443. template <class T>
  444. inline void(T::*v_W_W_Sig(void(T::*pmf)(HWND, HWND)))(HWND, HWND)
  445. {
  446.   return pmf;
  447. }
  448.  
  449. template <class T>
  450. inline void(T::*v_WINDOWPOS_Sig(void(T::*pmf)(WINDOWPOS far&)))(WINDOWPOS far&)
  451. {
  452.   return pmf;
  453. }
  454.  
  455. //
  456. // Aliases for compatibility
  457. //
  458. #define LRESULT_WPARAM_LPARAM_Sig   I32_U_I32_Sig
  459. #define B_LPARAM_Sig                B_I32_Sig
  460. #define LRESULT_U_U_HMENU_Sig       I32_U_U_HMENU_Sig
  461. #define LRESULT_U_COMPAREITEM_Sig   I32_U_COMPAREITEM_Sig
  462. #define LRESULT_MDICREATESTRUCT_Sig I32_MDICREATESTRUCT_Sig
  463.  
  464. #endif  // OWL_SIGNATUR_H
  465.