Export (0) Print
Expand All

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)

[GuidAttribute("E6691CDE-9A41-4891-8D8C-C1E93958E6A0")]
public interface VCCodeModel : CodeModel2

The VCCodeModel type exposes the following members.

  NameDescription
Public propertyAttributesGets a collection of all of the attributes for the object.
Public propertyClassesGets a collection of classes for the object.
Public propertyCodeElementsGets a collection of code elements.
Public propertyDelegatesGets a collection of delegates for the object.
Public propertyDialogClassesGets a collection of dialog classes.
Public propertyDTEGets the top-level extensibility object.
Public propertyEnumsGets a collection of enumerations for the object.
Public propertyFunctionsGets a collection of functions for the object.
Public propertyIDLImportsGets the collection of Import statements from the .idl file of the parent object.
Public propertyIDLLibrariesGets the collection of Library elements on the object.
Public propertyImportsGets the collection of #import statements for the parent object.
Public propertyIncludesGets the collection of #include statements for the object.
Public propertyInterfacesGets the collection of interfaces for the object.
Public propertyIsCaseSensitiveGets a value indicating whether a code element is case-sensitive.
Public propertyIsSynchronizedDetermines whether VCCodeModel is in sync with the source code for the solution.
Public propertyLanguageGets the programming language used to author the code.
Public propertyMacrosGets the collection of macros (#define statements) for the object.
Public propertyMapsGets the collection of maps for the object.
Public propertyNamespacesGets the collection of namespaces for the object.
Public propertyParentGets the immediate parent object of a given object.
Public propertyStructsGets the collection of structure elements for the object.
Public propertyTypedefsGets the collection of Typedef elements for the object.
Public propertyUnionsGets the collection of Union elements for the object.
Public propertyUsingAliasesGets the collection of alias elements for the object.
Public propertyUsingsGets the collection of #using elements for the object.
Public propertyVariablesGets the collection of variables for the object.
Top

  NameDescription
Public methodAbortTransactionCancels the current transaction.
Public methodAddAttributeCreates a new attribute code construct and inserts the code in the correct location.
Public methodAddClassCreates a new class code construct and inserts the code in the correct location.
Public methodAddDelegateCreates a new delegate code construct and inserts the code in the correct location.
Public methodAddEnumCreates a new enumeration code construct and inserts the code in the correct location.
Public methodAddFunctionCreates a new function code construct and inserts the code in the correct location.
Public methodAddIDLImportAdds a new import statement to a specific .idl file.
Public methodAddIDLLibraryAdds a new library statement to a specific .idl file.
Public methodAddImportAdds a #import element to a specific file.
Public methodAddIncludeAdds a #include element to a specific file.
Public methodAddInterfaceCreates a new interface code construct and inserts the code in the correct location.
Public methodAddMacroAdds a #define element to a specific file.
Public methodAddMapAdds a map entry to the object.
Public methodAddNamespaceCreates a new namespace code construct and inserts the code in the correct location.
Public methodAddStructCreates a new structure code construct and inserts the code in the correct location.
Public methodAddTypedefAdds a typedef element to a specific file.
Public methodAddUnionAdds a union element to the VCCodeModel object.
Public methodAddUsingAdds a #using element to a specific file.
Public methodAddUsingAliasAdds a using alias.
Public methodAddVariableCreates a new variable code construct and inserts the code in the correct location.
Public methodCodeElementFromFullNameGets a collection of the specified code elements for the object.
Public methodCodeElementFromFullName2Gets a collection of the specified code elements for the object. It is identical to CodeElementFromFullName, except that it ignores namespaces during lookup.
Public methodCodeTypeFromFullNameReturns a code element based on a fully qualified name.
Public methodCodeTypeFromFullName2Returns a code element based on a fully qualified name. It is identical to CodeTypeFromFullName except that it will attempt typedef resolution.
Public methodCommitTransactionCommits the current transaction for the object.
Public methodCreateCodeTypeRefA CodeTypeRef object based on the data type indicator passed.
Public methodDotNetNameFromLanguageSpecificTranslates the namespace to a .NET form.
Public methodElementFromIDNot implemented.
Public methodGetClassesDerivedFromReturns the classes derived from the specified class.
Public methodIsValidIDReturns whether a specified name is a valid programmatic identifier for the current language.
Public methodLanguageSpecificNameFromDotNetTranslates from the fully qualified name to an unmanaged namespace form.
Public methodRemoveRemoves the specified project from the solution.
Public methodRemoveExRemoves the specified project from the solution.
Public methodStartTransactionBegins a transaction.
Public methodSynchronizeSynchronizes all code model objects in the solution with edits made to source files.
Public methodSynchronizeCancellableDisplays a dialog box that has a progress bar. The user can cancel waiting and unblock the thread.
Public methodSynchronizeFilesEnsures that the FileCodeModel property on a project file is not null.
Public methodValidateMemberValidates that the proposed name is a valid C++ name for the kind given in the context of the parent object.
Public methodValidateMemberNameValidates the name of an element.
Top

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.

NoteNote

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 By Using the Add Reference Dialog Box.

See How to: Compile Example Code for Visual C++ Code Model Extensibility for information about how to compile and run this sample.

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
Show:
© 2014 Microsoft