C# Class VsTeXProject.VisualStudio.Project.ProjectContainerNode

Inheritance: ProjectNode, IVsParentProject, IBuildDependencyOnProjectContainer
显示文件 Open project: mimura1133/vstex

Private Properties

Property Type Description
GetNestedHierarchy int
GetRegisteredProject RegisteredProjectType
OnNestedProjectFileChangedOnDisk void
RunVsTemplateWizard void

Public Methods

Method Description
CloseChildren ( ) : int
EnumNestedHierachiesForBuildDependency ( ) : IVsHierarchy[]

Enumerates the nested hierachies that should be added to the build dependency list.

IsItemDirty ( uint itemId, IntPtr punkDocData, int &pfDirty ) : int
OpenChildren ( ) : int
ReloadItem ( uint itemId, uint reserved ) : int

Called to reload a project item. Reloads a project and its nested project nodes.

SaveItem ( VSSAVEFLAGS dwSave, string silentSaveAsName, uint itemid, IntPtr punkDocData, int &pfCancelled ) : int

Protected Methods

Method Description
AddExistingNestedProject ( ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode

Add an existing project as a nested node of our hierarchy. This is used while loading the project and can also be used to add an existing project to our hierarchy.

AddNestedProjectFromTemplate ( ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode

This will clone a template project file and add it as a subproject to our hierarchy. If you want to create a project for which there exist a vstemplate, consider using RunVsTemplateWizard instead.

AddNestedProjectFromTemplate ( string fileName, string destination, string projectName, ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode

This can be called directly or through RunVsTemplateWizard. This will clone a template project file and add it as a subproject to our hierarchy. If you want to create a project for which there exist a vstemplate, consider using RunVsTemplateWizard instead.

AddVirtualProjects ( ) : void

Links the nested project nodes to the solution. The default implementation parses all nested project nodes and calles AddVirtualProjectEx on them.

CreateNestedProjectNode ( ProjectElement element ) : NestedProjectNode

Override this method if you want to provide your own type of nodes. This would be the case if you derive a class from NestedProjectNode

CreateNestedProjectNodes ( ) : void

This is used when loading the project to loop through all the items and for each SubProject it finds, it create the project and a node in our Hierarchy to hold the project.

FilterItemTypeToBeAddedToHierarchy ( string itemType ) : bool
GetProjectTemplatePath ( ProjectElement element ) : string

Based on the Template and TypeGuid properties of the element, generate the full template path. TypeGuid should be the Guid of a registered project factory. Template can be a full path, a project template (for projects that support VsTemplates) or a relative path (for other projects).

Reload ( ) : void

Reloads a project and its nested project nodes.

ReloadNestedProjectNode ( NestedProjectNode node ) : void

Reloads a nested project node by deleting it and readding it.

RemoveNestedProjectNodes ( ) : void

Private Methods

Method Description
GetNestedHierarchy ( uint itemId, System.Guid &iidHierarchyNested, IntPtr &ppHierarchyNested, uint &pItemId ) : int
GetRegisteredProject ( ProjectElement element ) : RegisteredProjectType

Get information from the registry based for the project factory corresponding to the TypeGuid of the element

OnNestedProjectFileChangedOnDisk ( object sender, FileChangedOnDiskEventArgs e ) : void

Event callback. Called when one of the nested project files is changed.

RunVsTemplateWizard ( ProjectElement element, bool silent ) : void

Method Details

AddExistingNestedProject() protected method

Add an existing project as a nested node of our hierarchy. This is used while loading the project and can also be used to add an existing project to our hierarchy.
protected AddExistingNestedProject ( ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode
element ProjectElement
creationFlags __VSCREATEPROJFLAGS
return NestedProjectNode

AddNestedProjectFromTemplate() protected method

This will clone a template project file and add it as a subproject to our hierarchy. If you want to create a project for which there exist a vstemplate, consider using RunVsTemplateWizard instead.
protected AddNestedProjectFromTemplate ( ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode
element ProjectElement
creationFlags __VSCREATEPROJFLAGS
return NestedProjectNode

AddNestedProjectFromTemplate() protected method

This can be called directly or through RunVsTemplateWizard. This will clone a template project file and add it as a subproject to our hierarchy. If you want to create a project for which there exist a vstemplate, consider using RunVsTemplateWizard instead.
protected AddNestedProjectFromTemplate ( string fileName, string destination, string projectName, ProjectElement element, __VSCREATEPROJFLAGS creationFlags ) : NestedProjectNode
fileName string
destination string
projectName string
element ProjectElement
creationFlags __VSCREATEPROJFLAGS
return NestedProjectNode

AddVirtualProjects() protected method

Links the nested project nodes to the solution. The default implementation parses all nested project nodes and calles AddVirtualProjectEx on them.
protected AddVirtualProjects ( ) : void
return void

CloseChildren() public method

public CloseChildren ( ) : int
return int

CreateNestedProjectNode() protected method

Override this method if you want to provide your own type of nodes. This would be the case if you derive a class from NestedProjectNode
protected CreateNestedProjectNode ( ProjectElement element ) : NestedProjectNode
element ProjectElement
return NestedProjectNode

CreateNestedProjectNodes() protected method

This is used when loading the project to loop through all the items and for each SubProject it finds, it create the project and a node in our Hierarchy to hold the project.
protected CreateNestedProjectNodes ( ) : void
return void

EnumNestedHierachiesForBuildDependency() public method

Enumerates the nested hierachies that should be added to the build dependency list.
public EnumNestedHierachiesForBuildDependency ( ) : IVsHierarchy[]
return IVsHierarchy[]

FilterItemTypeToBeAddedToHierarchy() protected method

protected FilterItemTypeToBeAddedToHierarchy ( string itemType ) : bool
itemType string
return bool

GetProjectTemplatePath() protected method

Based on the Template and TypeGuid properties of the element, generate the full template path. TypeGuid should be the Guid of a registered project factory. Template can be a full path, a project template (for projects that support VsTemplates) or a relative path (for other projects).
protected GetProjectTemplatePath ( ProjectElement element ) : string
element ProjectElement
return string

IsItemDirty() public method

public IsItemDirty ( uint itemId, IntPtr punkDocData, int &pfDirty ) : int
itemId uint
punkDocData System.IntPtr
pfDirty int
return int

OpenChildren() public method

public OpenChildren ( ) : int
return int

Reload() protected method

Reloads a project and its nested project nodes.
protected Reload ( ) : void
return void

ReloadItem() public method

Called to reload a project item. Reloads a project and its nested project nodes.
public ReloadItem ( uint itemId, uint reserved ) : int
itemId uint Specifies itemid from VSITEMID.
reserved uint Reserved.
return int

ReloadNestedProjectNode() protected method

Reloads a nested project node by deleting it and readding it.
protected ReloadNestedProjectNode ( NestedProjectNode node ) : void
node NestedProjectNode The node to reload.
return void

RemoveNestedProjectNodes() protected method

protected RemoveNestedProjectNodes ( ) : void
return void

SaveItem() public method

public SaveItem ( VSSAVEFLAGS dwSave, string silentSaveAsName, uint itemid, IntPtr punkDocData, int &pfCancelled ) : int
dwSave VSSAVEFLAGS
silentSaveAsName string
itemid uint
punkDocData System.IntPtr
pfCancelled int
return int