VCCodeModel Interface
An object providing project-level access to any contained code element.
Namespace: Microsoft.VisualStudio.VCCodeModel
Assembly: Microsoft.VisualStudio.VCCodeModel (in Microsoft.VisualStudio.VCCodeModel.dll)
Syntax
'Declaration
<GuidAttribute("2FCA4A98-5A65-4895-9FEF-1854182CEDC8")> _
Public Interface VCCodeModel _
Inherits CodeModel2
[GuidAttribute("2FCA4A98-5A65-4895-9FEF-1854182CEDC8")]
public interface VCCodeModel : CodeModel2
[GuidAttribute(L"2FCA4A98-5A65-4895-9FEF-1854182CEDC8")]
public interface class VCCodeModel : CodeModel2
[<GuidAttribute("2FCA4A98-5A65-4895-9FEF-1854182CEDC8")>]
type VCCodeModel =
interface
interface CodeModel2
end
public interface VCCodeModel extends CodeModel2
The VCCodeModel type exposes the following members.
Properties
Name | Description | |
---|---|---|
Attributes | Gets a collection of all of the attributes for the object. | |
Classes | Gets a collection of classes for the object. | |
CodeElements | (Inherited from CodeModel2.) | |
CodeElements | Gets a collection of code elements. | |
Delegates | Gets a collection of delegates for the object. | |
DialogClasses | Gets a collection of dialog classes. | |
DTE | (Inherited from CodeModel2.) | |
DTE | Gets the top-level extensibility object. | |
Enums | Gets a collection of enumerations for the object. | |
Functions | Gets a collection of functions for the object. | |
IDLImports | Gets the collection of Import statements from the .idl file of the parent object. | |
IDLLibraries | Gets the collection of Library elements on the object. | |
Imports | Gets the collection of #import statements for the parent object. | |
Includes | Gets the collection of #include statements for the object. | |
Interfaces | Gets the collection of interfaces for the object. | |
IsCaseSensitive | (Inherited from CodeModel2.) | |
IsCaseSensitive | Gets a value indicating whether a code element is case-sensitive. | |
IsSynchronized | Determines whether VCCodeModel is in sync with the source code for the solution. | |
Language | (Inherited from CodeModel2.) | |
Language | Gets the programming language used to author the code. | |
Macros | Gets the collection of macros (#define statements) for the object. | |
Maps | Gets the collection of maps for the object. | |
Namespaces | Gets the collection of namespaces for the object. | |
Parent | (Inherited from CodeModel2.) | |
Parent | Gets the immediate parent object of a given object. | |
Structs | Gets the collection of structure elements for the object. | |
Typedefs | Gets the collection of Typedef elements for the object. | |
Unions | Gets the collection of Union elements for the object. | |
Usings | Gets the collection of #using elements for the object. | |
Variables | Gets the collection of variables for the object. |
Top
Methods
Name | Description | |
---|---|---|
AbortTransaction | Cancels the current transaction. | |
AddAttribute(String, Object, String, Object) | (Inherited from CodeModel2.) | |
AddAttribute(String, Object, String, Object) | Creates a new attribute code construct and inserts the code in the correct location. | |
AddClass(String, Object, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddClass(String, Object, Object, Object, Object, vsCMAccess) | Creates a new class code construct and inserts the code in the correct location. | |
AddDelegate(String, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddDelegate(String, Object, Object, Object, vsCMAccess) | Creates a new delegate code construct and inserts the code in the correct location. | |
AddEnum(String, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddEnum(String, Object, Object, Object, vsCMAccess) | Creates a new enumeration code construct and inserts the code in the correct location. | |
AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess) | Creates a new function code construct and inserts the code in the correct location. | |
AddIDLImport | Adds a new import statement to a specific .idl file. | |
AddIDLLibrary | Adds a new library statement to a specific .idl file. | |
AddImport | Adds a #import element to a specific file. | |
AddInclude | Adds a #include element to a specific file. | |
AddInterface(String, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddInterface(String, Object, Object, Object, vsCMAccess) | Creates a new interface code construct and inserts the code in the correct location. | |
AddMacro | Adds a #define element to a specific file. | |
AddMap | Adds a map entry to the object. | |
AddNamespace(String, Object, Object) | (Inherited from CodeModel2.) | |
AddNamespace(String, Object, Object) | Creates a new namespace code construct and inserts the code in the correct location. | |
AddStruct(String, Object, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddStruct(String, Object, Object, Object, Object, vsCMAccess) | Creates a new structure code construct and inserts the code in the correct location. | |
AddTypedef | Adds a typedef element to a specific file. | |
AddUnion | Adds a union element to the VCCodeModel object. | |
AddUsing | Adds a #using element to a specific file. | |
AddVariable(String, Object, Object, Object, vsCMAccess) | (Inherited from CodeModel2.) | |
AddVariable(String, Object, Object, Object, vsCMAccess) | Creates a new variable code construct and inserts the code in the correct location. | |
CodeElementFromFullName | Gets a collection of the specified code elements for the object. | |
CodeElementFromFullName2 | Gets a collection of the specified code elements for the object. It is identical to CodeElementFromFullName, except that it ignores namespaces during lookup. | |
CodeTypeFromFullName(String) | (Inherited from CodeModel2.) | |
CodeTypeFromFullName(String) | Returns a code element based on a fully qualified name. | |
CodeTypeFromFullName2 | Returns a code element based on a fully qualified name. It is identical to CodeTypeFromFullName except that it will attempt typedef resolution. | |
CommitTransaction | Commits the current transaction for the object. | |
CreateCodeTypeRef(Object) | (Inherited from CodeModel2.) | |
CreateCodeTypeRef(Object) | A CodeTypeRef object based on the data type indicator passed. | |
DotNetNameFromLanguageSpecific(String) | (Inherited from CodeModel2.) | |
DotNetNameFromLanguageSpecific(String) | Translates the namespace to a .NET form. | |
ElementFromID(String) | (Inherited from CodeModel2.) | |
ElementFromID(String) | Not implemented. | |
IsValidID(String) | (Inherited from CodeModel2.) | |
IsValidID(String) | Returns whether a specified name is a valid programmatic identifier for the current language. | |
LanguageSpecificNameFromDotNet(String) | (Inherited from CodeModel2.) | |
LanguageSpecificNameFromDotNet(String) | Translates from the fully qualified name to an unmanaged namespace form. | |
Remove(Object) | (Inherited from CodeModel2.) | |
Remove(Object) | Removes the specified project from the solution. | |
RemoveEx | Removes the specified project from the solution. | |
StartTransaction | Begins a transaction. | |
Synchronize() | (Inherited from CodeModel2.) | |
Synchronize() | Synchronizes all code model objects in the solution with edits made to source files. | |
SynchronizeCancellable | Displays a dialog box that has a progress bar. The user can cancel waiting and unblock the thread. | |
SynchronizeFiles | Ensures that the FileCodeModel property on a project file is not null. | |
ValidateMember | Validates that the proposed name is a valid C++ name for the kind given in the context of the parent object. |
Top
Remarks
The VCCodeModel object provides code model functionality to various languages supported by Visual Studio (including Visual C++) at the project level.
Primarily, this object is used to find any code element accessible within a project (given a fully-qualified name). In addition, the object specifies the programming language in which the project is written.
Note
A large part of the functionality of this object is provided by the Visual Studio CodeModel2 object.
When using a VCCodeModel object within a managed project, include Microsoft.VisualStudio.VCCodeModel.dll as a reference. For more information about adding references to a managed project, see How to: Add or Remove References in Visual Studio.
See How to: Compile Example Code for Visual C++ Code Model Extensibility for information about how to compile and run this sample.
Examples
This function returns the VCCodeModel object representing the first project in a solution.
Function GetVCCodeModel() As VCCodeModel
GetVCCodeModel = Nothing
Dim codeModel As CodeModel
Dim vcCodeModel As VCCodeModel
Dim solution As Solution
solution = DTE.Solution
If (solution Is Nothing) Then
MsgBox("A Solution is not open")
Exit Function
Else
If (DTE.Solution.Count <> 0) Then
codeModel = DTE.Solution.Item(1).CodeModel
vcCodeModel = CType(codeModel, VCCodeModel)
If (vcCodeModel Is Nothing) Then
MsgBox("The first project is not a VC++ project.")
Exit Function
Else
GetVCCodeModel = vcCodeModel
End If
End If
End If
End Function