Sign in to follow this  
Fire Lancer

Creating a custom VC++ project wizard.

Recommended Posts

I'm trying to create a new VC++ project wizard based on the existing "Custom Wizard" template (VS2008). I'm having trouble with a number of aspects, and there doesn't seem to be a lot of information online to help with this. 1) I want the template to contain effectively two sets of source files. Which one it uses I want to be based on a check box in the Wizard? The information I've found only says about adding files into the "Templates.inf" file, but doesn't say anything about how to conditionally add them. 2) Is there any useful documentation on working with the HTML and CSS files for the Wizard? Personally I think this part of the system is a mess, and Ive been having a lot of trouble getting things to be laid out in a sensible manner, or even just simply not overlap... Also is there a way to add a directory browser control thing to it, so the use can select the directory some things are in? 3) Is it possible through the Java Script thing to copy some files, or create symbolic links if supported (since the files are quite large) to some files in the user-defined directory in 3)? If not, is it possible to invoke another program that is able to do this?

Share this post


Link to post
Share on other sites
I've started with a custom wizard in VS 2003, but the same things should apply (it's still javascript based):

1)
In templates.inf you can check the symbols like this. You need to set the symbols in the HTML pages source in their onclick-Event:

In HTML-View:

function CheckGUI_onclick()
{

window.external.RemoveSymbol( "INCLUDEGUI" );
if ( CheckGUI.checked )
{
window.external.AddSymbol( "INCLUDEGUI", "Yes" );
}

}


In templates.inf:

[!if MASTER3D != 0 ]
[!if GAMESTATES != 0 ]
3d\GSMenu.cpp
3d\GSMenu.h
[!endif]
3d\Empty3d.cpp
3d\Empty3d.h
3d\Empty3d.ico
3d\Empty3d.rc
3d\resource3d.h
[!endif ]
[!if MASTER2D != 0 ]
[!if GAMESTATES != 0 ]
2d\GSMenu.cpp
2d\GSMenu.h
[!endif]
2d\Empty2d.cpp
2d\Empty2d.h
2d\Empty2d.ico
2d\Empty2d.rc
2d\resource2d.h
[!endif ]
[!if DESKGAME != 0 ]
[!if GAMESTATES != 0 ]
desk\GSMenu.cpp
desk\GSMenu.h
[!endif]
desk\EmptyDeskGame.cpp
desk\EmptyDeskGame.h
desk\EmptyDeskGame.ico
desk\EmptyDeskGame.rc
desk\resourcedg.h
[!endif ]
[!if SINGLETON != 0 ]
Singleton.cpp
Singleton.h
[!endif]
[!if XTREME != 0 ]
[!if GAMESTATES != 0 ]
Xtreme\GSMenu.cpp
Xtreme\GSMenu.h
[!endif]
Xtreme\EmptyX.cpp
Xtreme\EmptyX.h
Xtreme\EmptyX.ico
Xtreme\EmptyX.rc
Xtreme\resourceX.h
[!endif ]
[!if XTREME2D != 0 ]
[!if GAMESTATES != 0 ]
Xtreme2d\GSMenu.cpp
Xtreme2d\GSMenu.h
[!endif]
Xtreme2d\EmptyX.cpp
Xtreme2d\EmptyX.h
Xtreme2d\EmptyX.ico
Xtreme2d\EmptyX.rc
Xtreme2d\resourceX.h
[!endif ]



2)
Can't help you with that. I did rearrange a few controls on one of the pages, but the inbuilt editor let me do that quite easily. I never touched the CSS, the wizards are quite fragile already.

3)
Can't help you with that either. For a bit of help you can look up the "VCWizCtl Object" in MSDN. It seems to be the object that is used beneath. Most of the methods documented apply.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this