From: Pete Delgado on

"Rob" <Rob(a)discussions.microsoft.com> wrote in message
news:AA20CEBA-2515-429C-83DA-E69E37A3D0F2(a)microsoft.com...
>> If your prerequisites are packaged as MSI files, then the logic within
>> the
>> MSI file will determine whether a reboot is needed. You can use
>> MsiSetExternalUI and trap the messages to determine the requirements of
>> the
>> software at run-time and control the installation of the package with
>> your
>> wizard.
>>
> One of our prerequisites is SQL Server Express, which is packaged as an
> executable.

Run the executable on a clean system. You will find that it is simply a
self-extracting archive that houses the MSI files.

-Pete


From: Pete Delgado on

"Rob" <Rob(a)discussions.microsoft.com> wrote in message
news:AA20CEBA-2515-429C-83DA-E69E37A3D0F2(a)microsoft.com...
>> If your prerequisites are packaged as MSI files, then the logic within
>> the
>> MSI file will determine whether a reboot is needed. You can use
>> MsiSetExternalUI and trap the messages to determine the requirements of
>> the
>> software at run-time and control the installation of the package with
>> your
>> wizard.
>>
> One of our prerequisites is SQL Server Express, which is packaged as an
> executable.

http://www.devx.com/dbzone/Article/31648

The above article may help you...

-Pete


From: Rob on
>
> What the above code does is simply create what is known as an "exterior
> page". If you do not change the flags of the property page, then the page
> automatically becomes an "interior page".
>
> To set the "Finish" button you should do the following in your OnSetActive
> handler for the final CPropertyPage:
>
> CPropertySheet* pSheet = (CPropertySheet*)GetParent();
> ASSERT_KINDOF(CPropertySheet, pSheet);
> pSheet->SetFinishText (_T("Finish"));
> pSheet->SetWizardButtons(PSWIZB_FINISH);
>
> Please note that in order to allow for localization you should be loading a
> resource string for the text of your finish button.
>
> To enable or disable specific buttons use SetWizardButtons from the
> OnSetActive handler in each CPropertyPage:
>
> Example: (Enables the Next button only):
>
> CPropertySheet* pSheet = (CPropertySheet*)GetParent();
> ASSERT_KINDOF(CPropertySheet, pSheet);
> pSheet->SetWizardButtons(PSWIZB_NEXT);
>
> Example: (Enables the Next and Back buttons):
>
> CPropertySheet* pSheet = (CPropertySheet*)GetParent();
> ASSERT_KINDOF(CPropertySheet, pSheet);
> pSheet->SetWizardButtons( PSWIZB_BACK | PSWIZB_NEXT );
>
Is there any way to show the Finish button and hide only the Next button? I
want to leave the Back button showing, but CPropertySheet::SetFinishText()
hides the Back button as well as the Next button.

Also, how do I get access to the 'Next' button so that I can get its text?
(My wizard, implemented in the bootstrap program of an installer, is supposed
to be the first few pages of the installer wizard. The install that gets
launched after the last page of the portion in code is meant to carry on the
wizard where the bootstrap left off, so it would make sense for the text on
the 'Finish' button to be the same as on the 'Next' button to keep the
illusion intact.)
From: Tom Serface on
Hi Rob,

You could just call:

pSheet->SetWizardButtons( PSWIZB_BACK | PSWIZB_FINISH );

if you don't need to actually change the text.

You could try calling GetDlgItem(ID_WIZNEXT) to get the window for the Next
button. Then you could get or set the text on the button.

Tom


"Rob" <Rob(a)discussions.microsoft.com> wrote in message
news:8B5B0D31-5EEA-4231-A415-7F77C22113B5(a)microsoft.com...

> Is there any way to show the Finish button and hide only the Next button?
> I
> want to leave the Back button showing, but CPropertySheet::SetFinishText()
> hides the Back button as well as the Next button.
>
> Also, how do I get access to the 'Next' button so that I can get its text?
> (My wizard, implemented in the bootstrap program of an installer, is
> supposed
> to be the first few pages of the installer wizard. The install that gets
> launched after the last page of the portion in code is meant to carry on
> the
> wizard where the bootstrap left off, so it would make sense for the text
> on
> the 'Finish' button to be the same as on the 'Next' button to keep the
> illusion intact.)

From: Rob on
"Tom Serface" wrote:

> Hi Rob,
>
> You could just call:
>
> pSheet->SetWizardButtons( PSWIZB_BACK | PSWIZB_FINISH );
>
> if you don't need to actually change the text.
>
> You could try calling GetDlgItem(ID_WIZNEXT) to get the window for the Next
> button. Then you could get or set the text on the button.
>
> Tom
>
>
> "Rob" <Rob(a)discussions.microsoft.com> wrote in message
> news:8B5B0D31-5EEA-4231-A415-7F77C22113B5(a)microsoft.com...
>
> > Is there any way to show the Finish button and hide only the Next button?
> > I
> > want to leave the Back button showing, but CPropertySheet::SetFinishText()
> > hides the Back button as well as the Next button.
> >
> > Also, how do I get access to the 'Next' button so that I can get its text?
> > (My wizard, implemented in the bootstrap program of an installer, is
> > supposed
> > to be the first few pages of the installer wizard. The install that gets
> > launched after the last page of the portion in code is meant to carry on
> > the
> > wizard where the bootstrap left off, so it would make sense for the text
> > on
> > the 'Finish' button to be the same as on the 'Next' button to keep the
> > illusion intact.)
>
The problem is that, with the last page not having a Finish button, the
wizard doesn't exit the way it should. (In fact, it doesn't exit at all
unless the user clicks Cancel.) What would be helpful is to have a way for
the last Next button to behave as though it's the Finish button. With the
info that you gave, I guess it's possible to just hide the Next button, show
the Finish button and copy the text from the former to the latter. No big
deal, though. Concerns regarding look and feel consistency between the wizard
in the bootstrap program and the one in the main install have forced us to
rethink things and go with a wizard that has the exterior pages in the
bootstrap, so we're not going to be doing the crazy stuff any more.