user32.cpp 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. #define WIN32_LEAN_AND_MEAN
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. extern "C" {
  6. WNDCLASSW * bmx_win32_WNDCLASSW_new();
  7. void bmx_win32_WNDCLASSW_free(WNDCLASSW * clas);
  8. void bmx_win32_WNDCLASSW_SetlpfnWndProc(WNDCLASSW * clas, WNDPROC lpfnWndProc);
  9. void bmx_win32_WNDCLASSW_SethInstance(WNDCLASSW * clas, HINSTANCE hInstance);
  10. void bmx_win32_WNDCLASSW_SethCursor(WNDCLASSW * clas, HCURSOR hCursor);
  11. void bmx_win32_WNDCLASSW_SetlpszClassName(WNDCLASSW * clas, LPCWSTR lpszClassName);
  12. void bmx_win32_WNDCLASSW_Setstyle(WNDCLASSW * clas, int style);
  13. void bmx_win32_WNDCLASSW_SethIcon(WNDCLASSW * clas, HICON hIcon);
  14. void bmx_win32_WNDCLASSW_SethbrBackground(WNDCLASSW * clas, int hbrBackground);
  15. void bmx_win32_WNDCLASSW_SetcbWndExtra(WNDCLASSW * clas, int cbWndExtra);
  16. ICONINFO * bmx_win32_ICONINFO_new();
  17. void bmx_win32_ICONINFO_free(ICONINFO * info);
  18. void bmx_win32_ICONINFO_SetfIcon(ICONINFO * info, int fIcon);
  19. void bmx_win32_ICONINFO_SethbmMask(ICONINFO * info, HBITMAP hbmMask);
  20. void bmx_win32_ICONINFO_SethbmColor(ICONINFO * info, HBITMAP hbmColor);
  21. MENUINFO * bmx_win32_MENUINFO_new();
  22. void bmx_win32_MENUINFO_free(MENUINFO * info);
  23. void bmx_win32_MENUINFO_SetfMask(MENUINFO * info, int fMask);
  24. void bmx_win32_MENUINFO_SetdwStyle(MENUINFO * info, int dwStyle);
  25. void bmx_win32_MENUINFO_SetcyMax(MENUINFO * info, UINT cyMax);
  26. void bmx_win32_MENUINFO_SethbrBack(MENUINFO * info, HBRUSH hbrBack);
  27. void bmx_win32_MENUINFO_SetdwContextHelpID(MENUINFO * info, int dwContextHelpID);
  28. void bmx_win32_MENUINFO_SetdwMenuData(MENUINFO * info, ULONG_PTR dwMenuData);
  29. MENUITEMINFOW * bmx_win32_MENUITEMINFOW_new();
  30. void bmx_win32_MENUITEMINFOW_free(MENUITEMINFOW * info);
  31. void bmx_win32_MENUITEMINFOW_SetfMask(MENUITEMINFOW * info, UINT fMask);
  32. void bmx_win32_MENUITEMINFOW_SetfType(MENUITEMINFOW * info, UINT fType);
  33. void bmx_win32_MENUITEMINFOW_SetfState(MENUITEMINFOW * info, UINT fState);
  34. void bmx_win32_MENUITEMINFOW_SetwID(MENUITEMINFOW * info, UINT wID);
  35. void bmx_win32_MENUITEMINFOW_SethSubMenu(MENUITEMINFOW * info, HMENU hSubMenu);
  36. void bmx_win32_MENUITEMINFOW_SetdwItemData(MENUITEMINFOW * info, ULONG_PTR dwItemData);
  37. void bmx_win32_MENUITEMINFOW_SetdwTypeData(MENUITEMINFOW * info, LPWSTR dwTypeData);
  38. LPWSTR bmx_win32_MENUITEMINFOW_dwTypeData(MENUITEMINFOW * info);
  39. SCROLLINFO * bmx_win32_SCROLLINFO_new();
  40. void bmx_win32_SCROLLINFO_free(SCROLLINFO * info);
  41. void bmx_win32_SCROLLINFO_SetfMask(SCROLLINFO * info, UINT fMask);
  42. void bmx_win32_SCROLLINFO_SetnMin(SCROLLINFO * info, int nMin);
  43. void bmx_win32_SCROLLINFO_SetnMax(SCROLLINFO * info, int nMax);
  44. void bmx_win32_SCROLLINFO_SetnPage(SCROLLINFO * info, UINT nPage);
  45. void bmx_win32_SCROLLINFO_SetnPos(SCROLLINFO * info, int nPos);
  46. void bmx_win32_SCROLLINFO_SetnTrackPos(SCROLLINFO * info, int nTrackPos);
  47. UINT bmx_win32_SCROLLINFO_nPage(SCROLLINFO * info);
  48. int bmx_win32_SCROLLINFO_nPos(SCROLLINFO * info);
  49. int bmx_win32_SCROLLINFO_nTrackPos(SCROLLINFO * info);
  50. WINDOWINFO * bmx_win32_WINDOWINFO_new();
  51. void bmx_win32_WINDOWINFO_free(WINDOWINFO * info);
  52. int bmx_win32_WINDOWINFO_dwStyle(WINDOWINFO * info);
  53. TRACKMOUSEEVENT * bmx_win32_TRACKMOUSEEVENT_new();
  54. void bmx_win32_TRACKMOUSEEVENT_free(TRACKMOUSEEVENT * event);
  55. void bmx_win32_TRACKMOUSEEVENT_SetdwFlags(TRACKMOUSEEVENT * event, int dwFlags);
  56. void bmx_win32_TRACKMOUSEEVENT_SethwndTrack(TRACKMOUSEEVENT * event, HWND hwndTrack);
  57. MINMAXINFO * bmx_win32_MINMAXINFO_new();
  58. void bmx_win32_MINMAXINFO_free(MINMAXINFO * info);
  59. void bmx_win32_MINMAXINFO_SetminTrackSizeX(MINMAXINFO * info, int x);
  60. void bmx_win32_MINMAXINFO_SetminTrackSizeY(MINMAXINFO * info, int y);
  61. void bmx_win32_MINMAXINFO_SetmaxTrackSizeX(MINMAXINFO * info, int x);
  62. void bmx_win32_MINMAXINFO_SetmaxTrackSizeY(MINMAXINFO * info, int y);
  63. }
  64. // ********************************************************
  65. WNDCLASSW * bmx_win32_WNDCLASSW_new() {
  66. return (WNDCLASSW *)calloc(1,sizeof(WNDCLASSW));
  67. }
  68. void bmx_win32_WNDCLASSW_free(WNDCLASSW * clas) {
  69. free(clas);
  70. }
  71. void bmx_win32_WNDCLASSW_SetlpfnWndProc(WNDCLASSW * clas, WNDPROC lpfnWndProc) {
  72. clas->lpfnWndProc = lpfnWndProc;
  73. }
  74. void bmx_win32_WNDCLASSW_SethInstance(WNDCLASSW * clas, HINSTANCE hInstance) {
  75. clas->hInstance = hInstance;
  76. }
  77. void bmx_win32_WNDCLASSW_SethCursor(WNDCLASSW * clas, HCURSOR hCursor) {
  78. clas->hCursor = hCursor;
  79. }
  80. void bmx_win32_WNDCLASSW_SetlpszClassName(WNDCLASSW * clas, LPCWSTR lpszClassName) {
  81. clas->lpszClassName = lpszClassName;
  82. }
  83. void bmx_win32_WNDCLASSW_Setstyle(WNDCLASSW * clas, int style) {
  84. clas->style = style;
  85. }
  86. void bmx_win32_WNDCLASSW_SethIcon(WNDCLASSW * clas, HICON hIcon) {
  87. clas->hIcon = hIcon;
  88. }
  89. void bmx_win32_WNDCLASSW_SethbrBackground(WNDCLASSW * clas, int hbrBackground) {
  90. clas->hbrBackground = (HBRUSH)hbrBackground;
  91. }
  92. void bmx_win32_WNDCLASSW_SetcbWndExtra(WNDCLASSW * clas, int cbWndExtra) {
  93. clas->cbWndExtra = cbWndExtra;
  94. }
  95. // ********************************************************
  96. ICONINFO * bmx_win32_ICONINFO_new() {
  97. return (ICONINFO *)calloc(1,sizeof(ICONINFO));
  98. }
  99. void bmx_win32_ICONINFO_free(ICONINFO * info) {
  100. free(info);
  101. }
  102. void bmx_win32_ICONINFO_SetfIcon(ICONINFO * info, int fIcon) {
  103. info->fIcon = fIcon;
  104. }
  105. void bmx_win32_ICONINFO_SethbmMask(ICONINFO * info, HBITMAP hbmMask) {
  106. info->hbmMask = hbmMask;
  107. }
  108. void bmx_win32_ICONINFO_SethbmColor(ICONINFO * info, HBITMAP hbmColor) {
  109. info->hbmColor = hbmColor;
  110. }
  111. // ********************************************************
  112. MENUINFO * bmx_win32_MENUINFO_new() {
  113. MENUINFO * info = (MENUINFO *)calloc(1,sizeof(MENUINFO));
  114. info->cbSize = sizeof(MENUINFO);
  115. return info;
  116. }
  117. void bmx_win32_MENUINFO_free(MENUINFO * info) {
  118. free(info);
  119. }
  120. void bmx_win32_MENUINFO_SetfMask(MENUINFO * info, int fMask) {
  121. info->fMask = fMask;
  122. }
  123. void bmx_win32_MENUINFO_SetdwStyle(MENUINFO * info, int dwStyle) {
  124. info->dwStyle = dwStyle;
  125. }
  126. void bmx_win32_MENUINFO_SetcyMax(MENUINFO * info, UINT cyMax) {
  127. info->cyMax = cyMax;
  128. }
  129. void bmx_win32_MENUINFO_SethbrBack(MENUINFO * info, HBRUSH hbrBack) {
  130. info->hbrBack = hbrBack;
  131. }
  132. void bmx_win32_MENUINFO_SetdwContextHelpID(MENUINFO * info, int dwContextHelpID) {
  133. info->dwContextHelpID = dwContextHelpID;
  134. }
  135. void bmx_win32_MENUINFO_SetdwMenuData(MENUINFO * info, ULONG_PTR dwMenuData) {
  136. info->dwMenuData = dwMenuData;
  137. }
  138. // ********************************************************
  139. MENUITEMINFOW * bmx_win32_MENUITEMINFOW_new() {
  140. MENUITEMINFOW * info = (MENUITEMINFOW *)calloc(1,sizeof(MENUITEMINFOW));
  141. info->cbSize = sizeof(MENUITEMINFOW);
  142. return info;
  143. }
  144. void bmx_win32_MENUITEMINFOW_free(MENUITEMINFOW * info) {
  145. free(info);
  146. }
  147. void bmx_win32_MENUITEMINFOW_SetfMask(MENUITEMINFOW * info, UINT fMask) {
  148. info->fMask = fMask;
  149. }
  150. void bmx_win32_MENUITEMINFOW_SetfType(MENUITEMINFOW * info, UINT fType) {
  151. info->fType = fType;
  152. }
  153. void bmx_win32_MENUITEMINFOW_SetfState(MENUITEMINFOW * info, UINT fState) {
  154. info->fState = fState;
  155. }
  156. void bmx_win32_MENUITEMINFOW_SetwID(MENUITEMINFOW * info, UINT wID) {
  157. info->wID = wID;
  158. }
  159. void bmx_win32_MENUITEMINFOW_SethSubMenu(MENUITEMINFOW * info, HMENU hSubMenu) {
  160. info->hSubMenu = hSubMenu;
  161. }
  162. void bmx_win32_MENUITEMINFOW_SetdwItemData(MENUITEMINFOW * info, ULONG_PTR dwItemData) {
  163. info->dwItemData = dwItemData;
  164. }
  165. void bmx_win32_MENUITEMINFOW_SetdwTypeData(MENUITEMINFOW * info, LPWSTR dwTypeData) {
  166. info->dwTypeData = dwTypeData;
  167. }
  168. LPWSTR bmx_win32_MENUITEMINFOW_dwTypeData(MENUITEMINFOW * info) {
  169. return info->dwTypeData;
  170. }
  171. // ********************************************************
  172. SCROLLINFO * bmx_win32_SCROLLINFO_new() {
  173. SCROLLINFO * info = (SCROLLINFO *)calloc(1,sizeof(SCROLLINFO));
  174. info->cbSize = sizeof(SCROLLINFO);
  175. return info;
  176. }
  177. void bmx_win32_SCROLLINFO_free(SCROLLINFO * info) {
  178. free(info);
  179. }
  180. void bmx_win32_SCROLLINFO_SetfMask(SCROLLINFO * info, UINT fMask) {
  181. info->fMask = fMask;
  182. }
  183. void bmx_win32_SCROLLINFO_SetnMin(SCROLLINFO * info, int nMin) {
  184. info->nMin = nMin;
  185. }
  186. void bmx_win32_SCROLLINFO_SetnMax(SCROLLINFO * info, int nMax) {
  187. info->nMax = nMax;
  188. }
  189. void bmx_win32_SCROLLINFO_SetnPage(SCROLLINFO * info, UINT nPage) {
  190. info->nPage = nPage;
  191. }
  192. void bmx_win32_SCROLLINFO_SetnPos(SCROLLINFO * info, int nPos) {
  193. info->nPos = nPos;
  194. }
  195. void bmx_win32_SCROLLINFO_SetnTrackPos(SCROLLINFO * info, int nTrackPos) {
  196. info->nTrackPos = nTrackPos;
  197. }
  198. UINT bmx_win32_SCROLLINFO_nPage(SCROLLINFO * info) {
  199. return info->nPage;
  200. }
  201. int bmx_win32_SCROLLINFO_nPos(SCROLLINFO * info) {
  202. return info->nPos;
  203. }
  204. int bmx_win32_SCROLLINFO_nTrackPos(SCROLLINFO * info) {
  205. return info->nTrackPos;
  206. }
  207. // ********************************************************
  208. WINDOWINFO * bmx_win32_WINDOWINFO_new() {
  209. return (WINDOWINFO *)calloc(1, sizeof(WINDOWINFO));
  210. }
  211. void bmx_win32_WINDOWINFO_free(WINDOWINFO * info) {
  212. free(info);
  213. }
  214. int bmx_win32_WINDOWINFO_dwStyle(WINDOWINFO * info) {
  215. return info->dwStyle;
  216. }
  217. // ********************************************************
  218. TRACKMOUSEEVENT * bmx_win32_TRACKMOUSEEVENT_new() {
  219. TRACKMOUSEEVENT * event = (TRACKMOUSEEVENT *)calloc(1, sizeof(TRACKMOUSEEVENT));
  220. event->cbSize = sizeof(TRACKMOUSEEVENT);
  221. return event;
  222. }
  223. void bmx_win32_TRACKMOUSEEVENT_free(TRACKMOUSEEVENT * event) {
  224. free(event);
  225. }
  226. void bmx_win32_TRACKMOUSEEVENT_SetdwFlags(TRACKMOUSEEVENT * event, int dwFlags) {
  227. event->dwFlags = dwFlags;
  228. }
  229. void bmx_win32_TRACKMOUSEEVENT_SethwndTrack(TRACKMOUSEEVENT * event, HWND hwndTrack) {
  230. event->hwndTrack = hwndTrack;
  231. }
  232. // ********************************************************
  233. MINMAXINFO * bmx_win32_MINMAXINFO_new() {
  234. return (MINMAXINFO *)calloc(1, sizeof(MINMAXINFO));
  235. }
  236. void bmx_win32_MINMAXINFO_free(MINMAXINFO * info) {
  237. free(info);
  238. }
  239. void bmx_win32_MINMAXINFO_SetminTrackSizeX(MINMAXINFO * info, int x) {
  240. info->ptMinTrackSize.x = x;
  241. }
  242. void bmx_win32_MINMAXINFO_SetminTrackSizeY(MINMAXINFO * info, int y) {
  243. info->ptMinTrackSize.y = y;
  244. }
  245. void bmx_win32_MINMAXINFO_SetmaxTrackSizeX(MINMAXINFO * info, int x) {
  246. info->ptMaxTrackSize.x = x;
  247. }
  248. void bmx_win32_MINMAXINFO_SetmaxTrackSizeY(MINMAXINFO * info, int y) {
  249. info->ptMaxTrackSize.y = y;
  250. }