Check all Callouts function pointers for NULL before using them. Don't load USER dll if not needed by the application.
diff --git a/objects/palette.c b/objects/palette.c index 4655819..3a634aa 100644 --- a/objects/palette.c +++ b/objects/palette.c
@@ -787,14 +787,16 @@ if (!(dc = DC_GetDCPtr( hDC ))) return 0; size = dc->devCaps->sizePalette; GDI_ReleaseObj( hDC ); - hWnd = Callout.WindowFromDC( hDC ); + if (Callout.WindowFromDC) + { + hWnd = Callout.WindowFromDC( hDC ); - /* Docs say that we have to remap current drawable pixel by pixel - * but it would take forever given the speed of XGet/PutPixel. - */ - if (hWnd && size) - Callout.RedrawWindow( hWnd, NULL, 0, RDW_INVALIDATE ); - + /* Docs say that we have to remap current drawable pixel by pixel + * but it would take forever given the speed of XGet/PutPixel. + */ + if (hWnd && size) + Callout.RedrawWindow( hWnd, NULL, 0, RDW_INVALIDATE ); + } return 0x666; }