123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- #include "windows.h"
- #include <stdio.h>
- #include <shlwapi.h>
- extern "C" {
- CHOOSECOLORW * bmx_win32maxgui_choosecolor_new(HWND parent, int rgb, int * customColors, int flags);
- int bmx_win32maxgui_choosecolor_ChooseColor(CHOOSECOLORW * cc);
- void bmx_win32maxgui_choosecolor_free(CHOOSECOLORW * cc);
- int bmx_win32maxgui_choosecolor_rgbResult(CHOOSECOLORW * cc);
- DLLVERSIONINFO2 * bmx_win32_DLLVERSIONINFO2_new();
- void bmx_win32_DLLVERSIONINFO2_free(DLLVERSIONINFO2 * info);
- int bmx_win32_DLLVERSIONINFO2_dwMajorVersion(DLLVERSIONINFO2 * info);
- int bmx_win32_DLLVERSIONINFO2_dwMinorVersion(DLLVERSIONINFO2 * info);
- int bmx_win32_DLLVERSIONINFO2_dwBuildNumber(DLLVERSIONINFO2 * info);
- DRAWITEMSTRUCT * bmx_win32_DRAWITEMSTRUCT_new();
- void bmx_win32_DRAWITEMSTRUCT_free(DRAWITEMSTRUCT * item);
- UINT bmx_win32_DRAWITEMSTRUCT_CtlType(DRAWITEMSTRUCT * item);
- UINT bmx_win32_DRAWITEMSTRUCT_CtlID(DRAWITEMSTRUCT * item);
- UINT bmx_win32_DRAWITEMSTRUCT_itemID(DRAWITEMSTRUCT * item);
- UINT bmx_win32_DRAWITEMSTRUCT_itemAction(DRAWITEMSTRUCT * item);
- HWND bmx_win32_DRAWITEMSTRUCT_hwndItem(DRAWITEMSTRUCT * item);
- HDC bmx_win32_DRAWITEMSTRUCT_hDC(DRAWITEMSTRUCT * item);
- RECT* bmx_win32_DRAWITEMSTRUCT_rcItem(DRAWITEMSTRUCT * item);
- UINT bmx_win32_DRAWITEMSTRUCT_itemState(DRAWITEMSTRUCT * item);
- ULONG_PTR bmx_win32_DRAWITEMSTRUCT_itemData(DRAWITEMSTRUCT * item);
- BOOL AlphaBlendArgs(HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc,
- int yoriginSrc, int wSrc, int hSrc, int blend);
- NONCLIENTMETRICSW * bmx_win32_NONCLIENTMETRICSW_new();
- void bmx_win32_NONCLIENTMETRICSW_free(NONCLIENTMETRICSW * metrics);
- LOGFONTW * bmx_win32_NONCLIENTMETRICSW_lfMessageFont(NONCLIENTMETRICSW * metrics);
- UINT bmx_win32_NONCLIENTMETRICSW_size();
- int bmx_win32_MOUSEHOOKSTRUCT_x(MOUSEHOOKSTRUCT * hook);
- int bmx_win32_MOUSEHOOKSTRUCT_y(MOUSEHOOKSTRUCT * hook);
- HWND bmx_win32_MOUSEHOOKSTRUCT_hwnd(MOUSEHOOKSTRUCT * hook);
- UINT bmx_win32_MOUSEHOOKSTRUCT_wHitTestCode(MOUSEHOOKSTRUCT * hook);
- }
- BOOL AlphaBlendArgs(HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc,
- int yoriginSrc, int wSrc, int hSrc, int blend) {
- BLENDFUNCTION ftn = { static_cast<BYTE>(blend & 0xff), static_cast<BYTE>((blend & 0xff00) >> 8), static_cast<BYTE>((blend & 0xff0000) >> 16),static_cast<BYTE>((blend & 0xff000000) >> 24) };
-
- return AlphaBlend(hdcDest, xoriginDest, yoriginDest, wDest, hDest, hdcSrc, xoriginSrc,
- yoriginSrc, wSrc, hSrc, ftn);
- }
- // ********************************************************
- CHOOSECOLORW * bmx_win32maxgui_choosecolor_new(HWND parent, int rgb, int * customColors, int flags) {
- CHOOSECOLORW * cc = (CHOOSECOLORW *)malloc(sizeof(CHOOSECOLORW));
- cc->lStructSize = sizeof(CHOOSECOLORW);
- cc->hwndOwner = parent;
- cc->rgbResult = rgb;
- cc->lpCustColors = (COLORREF*)customColors;
- cc->Flags = flags;
-
- return cc;
- }
- int bmx_win32maxgui_choosecolor_ChooseColor(CHOOSECOLORW * cc) {
- return ChooseColorW(cc);
- }
- void bmx_win32maxgui_choosecolor_free(CHOOSECOLORW * cc) {
- free(cc);
- }
- int bmx_win32maxgui_choosecolor_rgbResult(CHOOSECOLORW * cc) {
- return cc->rgbResult;
- }
- // ********************************************************
- DLLVERSIONINFO2 * bmx_win32_DLLVERSIONINFO2_new() {
- DLLVERSIONINFO2 * info = (DLLVERSIONINFO2 *)calloc(1,sizeof(DLLVERSIONINFO2));
- info->info1.cbSize = sizeof(DLLVERSIONINFO2);
- return info;
- }
- void bmx_win32_DLLVERSIONINFO2_free(DLLVERSIONINFO2 * info) {
- free(info);
- }
- int bmx_win32_DLLVERSIONINFO2_dwMajorVersion(DLLVERSIONINFO2 * info) {
- return info->info1.dwMajorVersion;
- }
- int bmx_win32_DLLVERSIONINFO2_dwMinorVersion(DLLVERSIONINFO2 * info) {
- return info->info1.dwMinorVersion;
- }
- int bmx_win32_DLLVERSIONINFO2_dwBuildNumber(DLLVERSIONINFO2 * info) {
- return info->info1.dwBuildNumber;
- }
- // ********************************************************
- DRAWITEMSTRUCT * bmx_win32_DRAWITEMSTRUCT_new() {
- return (DRAWITEMSTRUCT*)malloc(sizeof(DRAWITEMSTRUCT));
- }
- void bmx_win32_DRAWITEMSTRUCT_free(DRAWITEMSTRUCT * item) {
- free(item);
- }
- UINT bmx_win32_DRAWITEMSTRUCT_CtlType(DRAWITEMSTRUCT * item) {
- return item->CtlType;
- }
- UINT bmx_win32_DRAWITEMSTRUCT_CtlID(DRAWITEMSTRUCT * item) {
- return item->CtlID;
- }
- UINT bmx_win32_DRAWITEMSTRUCT_itemID(DRAWITEMSTRUCT * item) {
- return item->itemID;
- }
- UINT bmx_win32_DRAWITEMSTRUCT_itemAction(DRAWITEMSTRUCT * item) {
- return item->itemAction;
- }
- HWND bmx_win32_DRAWITEMSTRUCT_hwndItem(DRAWITEMSTRUCT * item) {
- return item->hwndItem;
- }
- HDC bmx_win32_DRAWITEMSTRUCT_hDC(DRAWITEMSTRUCT * item) {
- return item->hDC;
- }
- RECT* bmx_win32_DRAWITEMSTRUCT_rcItem(DRAWITEMSTRUCT * item) {
- return &item->rcItem;
- }
- UINT bmx_win32_DRAWITEMSTRUCT_itemState(DRAWITEMSTRUCT * item) {
- return item->itemState;
- }
- ULONG_PTR bmx_win32_DRAWITEMSTRUCT_itemData(DRAWITEMSTRUCT * item) {
- return item->itemData;
- }
- // ********************************************************
- NONCLIENTMETRICSW * bmx_win32_NONCLIENTMETRICSW_new() {
- NONCLIENTMETRICSW * metrics = (NONCLIENTMETRICSW *)calloc(1, sizeof(NONCLIENTMETRICSW));
- metrics->cbSize = sizeof(NONCLIENTMETRICSW);
- return metrics;
- }
- void bmx_win32_NONCLIENTMETRICSW_free(NONCLIENTMETRICSW * metrics) {
- free(metrics);
- }
- LOGFONTW * bmx_win32_NONCLIENTMETRICSW_lfMessageFont(NONCLIENTMETRICSW * metrics) {
- return &metrics->lfMessageFont;
- }
- UINT bmx_win32_NONCLIENTMETRICSW_size() {
- return sizeof(NONCLIENTMETRICSW);
- }
- // ********************************************************
- int bmx_win32_MOUSEHOOKSTRUCT_x(MOUSEHOOKSTRUCT * hook) {
- return hook->pt.x;
- }
- int bmx_win32_MOUSEHOOKSTRUCT_y(MOUSEHOOKSTRUCT * hook) {
- return hook->pt.y;
- }
- HWND bmx_win32_MOUSEHOOKSTRUCT_hwnd(MOUSEHOOKSTRUCT * hook) {
- return hook->hwnd;
- }
- UINT bmx_win32_MOUSEHOOKSTRUCT_wHitTestCode(MOUSEHOOKSTRUCT * hook) {
- return hook->wHitTestCode;
- }
|