I've been working on getting the Free Borland installer working. It uses installshield so I think this pertains to all installshield installers .. I've found a problem in propsheet.c , PROPSHEET_CollectPageInfo() . It appears that the property pages that come out of the installer have the PSP_USETITLE flag set. So wine attempts to get the title from the pszTitle field. The problem occurs because the pszTitle field is null. Wine try's to use it as a resource ID then fails. From reading over some MS docs I think windows, in this situation, reverts the PSP_USETITLE flag then uses the title in the template. So far I can get the installer to work, but it doesn't have a title or caption I haven't figured out why.
I tryed changind it to "if (dwFlags & PSP_USETITLE && LOWORD(lppsp->pszTitle) != 0)" but it didn't have any effect. I also tryed reverting the PSP_USETITLE flag with no effect. Anyone have any ideas why there isn't a title?
The patch below should fix the borland installer and , I assume, other install shield installers. Let me know if this patch doesn't work..
Daniel Walker
--- ./dlls/comctl32/propsheet.c Mon Feb 12 10:08:31 2001 +++ ../../wine-20010305/dlls/comctl32/propsheet2.c Sat Apr 14 17:22:59 2001 @@ -296,12 +296,10 @@
if (dwFlags & PSP_USETITLE) { - if ( !HIWORD( lppsp->pszTitle ) ) - { char szTitle[256]; - - if ( !LoadStringA( lppsp->hInstance, (UINT) lppsp->pszTitle, szTitle, 256 ) ) - return FALSE; + + if ( !HIWORD( lppsp->pszTitle ) && LoadStringA( lppsp->hInstance, (UINT) lppsp->pszTitle, szTitle, 256 ) ) + {
psInfo->proppage[index].pszText = HEAP_strdupAtoW( GetProcessHeap(), 0, szTitle );