Hello, I have made a patch for comdlg32 on Mac OS X that replaces Wine's own color picker dialog with the native one. Bellow are the sources for colordlg.c, cocoa_colordlg.m and Makefile.in (without comments). -------------------- colordlg.c -------------------- static BOOL ChooseColor_CocoaCommon(COLORREF *color, BOOL init); BOOL WINAPI ChooseColorW( CHOOSECOLORW *lpChCol ) { if (!lpChCol) return FALSE; return ChooseColor_CocoaCommon(&lpChCol->rgbResult, lpChCol->Flags & CC_RGBINIT); } BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) { if (!lpChCol) return FALSE; return ChooseColor_CocoaCommon(&lpChCol->rgbResult, lpChCol->Flags & CC_RGBINIT); } struct RGBColor { unsigned short red; unsigned short green; unsigned short blue; }; int cocoa_run_color_dialog_modal(struct RGBColor *color); static BOOL ChooseColor_CocoaCommon(COLORREF *color, BOOL init) { struct RGBColor rgb = { 0, 0, 0 }; if (init) { rgb.red = GetRValue(*color) * 257; rgb.green = GetGValue(*color) * 257; rgb.blue = GetBValue(*color) * 257; } BOOL ret = cocoa_run_color_dialog_modal(&rgb); if (ret) *color = RGB(rgb.red / 257, rgb.green / 257, rgb.blue / 257); return ret; } -------------------- cocoa_colordlg.m -------------------- #import <AppKit/AppKit.h> #import <Carbon/Carbon.h> int cocoa_run_color_dialog_modal(RGBColor *color) { __block int ret = 0; void (^block)(void) = ^{ ret = GetColor((Point){ 0, 0 }, (const unsigned char *)"Color", color, color); }; if ([NSThread isMainThread]) block(); else dispatch_sync(dispatch_get_main_queue(), block); return ret; } -------------------- Makefile.in -------------------- MODULE = comdlg32.dll IMPORTLIB = comdlg32 IMPORTS = uuid shell32 shlwapi comctl32 winspool user32 gdi32 advapi32 DELAYIMPORTS = ole32 EXTRALIBS = -framework AppKit -framework Carbon C_SRCS = \ cdlg32.c \ colordlg.c \ filedlg.c \ filedlg31.c \ filedlgbrowser.c \ finddlg.c \ fontdlg.c \ itemdlg.c \ printdlg.c RC_SRCS = comdlg32.rc SVG_SRCS = \ pd32_collate.svg \ pd32_landscape.svg \ pd32_nocollate.svg \ pd32_portrait.svg OBJC_SRCS = \ cocoa_colordlg.m IDL_R_SRCS = comdlg32_classes.idl @MAKE_DLL_RULES@ ------------------------------------------------------------ Any comments are welcome.