3.1. Interfaces you should know

All project wizards have to implement this interface :

namespace SharpDevelop.Internal.Templates { 
    public interface INewProjectWizard 
    { 
                void StartWizard(Form mainWindow, INewProjectCreator creator); 
    } 
} 				
				

The mainWindow is only for setting the Owner property correctly (and maybe for really advanced wizards to cast it to a MainWindow).

public interface INewProjectCreator 
{ 
    Combine Combine { 
        get; 
    } 
    bool IsFilenameAvailable(string fileName); 
    void SaveFile(IProject project, string filename, string content, bool showFile); 
}