Hi all, Making Resident Evil 3's configuration application work, I found this : 08078788:Call comctl32.PropertySheetA(406b0804) ret=004041c3 trace:propsheet:PropertySheetA (0x406b0804) trace:propsheet:PROPSHEET_CollectSheetInfoA ** PROPSHEETHEADER ** dwSize 52 dwFlags 00000180 hwndParent (nil) hInstance (nil) pszCaption '"VIDEO Setting"' nPages 1 pfnCallback (nil) trace:commctrl:COMCTL32_Alloc (0x1c) trace:commctrl:COMCTL32_Alloc -- ret=0x429a00f0 trace:propsheet:PROPSHEET_CollectPageInfo trace:propsheet:PROPSHEET_CollectPageInfo Tab 0 L"VIDEO" trace:propsheet:PROPSHEET_CreateDialog trace:commctrl:COMCTL32_Alloc (0x124) trace:commctrl:COMCTL32_Alloc -- ret=0x429a0328 trace:seh:EXC_RtlRaiseException code=c0000005 flags=0 addr=(nil) As seen, the '0x80' bit (ie USECALLBACK) is set but the callback is set to NULL. In one case of the propsheet code this case is handled but not in two other places. So this patch just does the same check on pfnCallback in these two other places. No idea if this is right or not but it certainly fixed my problem :-) Changelog: Check the value of the pfnCallback in addition to the callback bit. Lionel -- Lionel Ulmer - http://www.bbrox.org/
--- /home/ulmer/Wine/wine_base//dlls/comctl32/propsheet.c 2002-12-22 12:06:16.000000000 +0100 +++ /home/ulmer/Wine/wine_work//dlls/comctl32/propsheet.c 2003-01-02 18:40:57.000000000 +0100 @@ -287,7 +287,7 @@ psInfo->hasHelp = dwFlags & PSH_HASHELP; psInfo->hasApply = !(dwFlags & PSH_NOAPPLYNOW); - psInfo->useCallback = dwFlags & PSH_USECALLBACK; + psInfo->useCallback = (dwFlags & PSH_USECALLBACK )&& (lppsh->pfnCallback); psInfo->isModeless = dwFlags & PSH_MODELESS; memcpy(&psInfo->ppshheader,lppsh,dwSize); @@ -338,7 +338,7 @@ psInfo->hasHelp = dwFlags & PSH_HASHELP; psInfo->hasApply = !(dwFlags & PSH_NOAPPLYNOW); - psInfo->useCallback = dwFlags & PSH_USECALLBACK; + psInfo->useCallback = (dwFlags & PSH_USECALLBACK) && (lppsh->pfnCallback); psInfo->isModeless = dwFlags & PSH_MODELESS; memcpy(&psInfo->ppshheader,lppsh,dwSize);