ProvideEditorExtensionAttribute ProvideEditorExtensionAttribute ProvideEditorExtensionAttribute ProvideEditorExtensionAttribute ProvideEditorExtensionAttribute Class


Associates a file extension to a given editor factory when applied to a class that inherits from Package or implements the interface IVsPackage.

public ref class ProvideEditorExtensionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideEditorExtensionAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideEditorExtensionAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
type ProvideEditorExtensionAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideEditorExtensionAttribute
Inherits RegistrationAttribute


This attribute associates a file extension with a given editor factory. The file extension should include the prefixing ".". The editor factory may be specified as either a GUID or a type.

This attribute also associates a priority with the editor factory. For a given file extension, the editor with the highest priority is given the chance to read a file first. If the editor fails to read the file, the remaining editors are used in order of priority. To make a given editor the default, assign a priority greater than 0x60.

This attribute class is only used to provide data for external registration tools. It does not affect runtime behavior.

When to Call

Apply this file extension attribute to a package class that implements an editor factory. The package class must inherit from Package or IVsPackage.

Registry Entries

The following registry entry is created by this attribute:

VSROOT\Editors\{FactoryGuid}\Extensions\Extension = Priority


The GUIDs for the Visual C# and Visual Basic project types are {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} and {F184B08F-C81C-45F6-A57F-5ABD9991F28F}, respectively.


ProvideEditorExtensionAttribute(Object, String, Int32) ProvideEditorExtensionAttribute(Object, String, Int32) ProvideEditorExtensionAttribute(Object, String, Int32) ProvideEditorExtensionAttribute(Object, String, Int32) ProvideEditorExtensionAttribute(Object, String, Int32)

Initializes an instance of ProvideEditorExtensionAttribute.


DefaultName DefaultName DefaultName DefaultName DefaultName

Gets or sets the default name of the editor.

EditorFactoryNotify EditorFactoryNotify EditorFactoryNotify EditorFactoryNotify EditorFactoryNotify

Determines whether or not the extension should be registered with a EditorFactoryNotify registry value, which associates a file extension with a specific editor factory.

Extension Extension Extension Extension Extension

Gets the file extension associated with this editor.

Factory Factory Factory Factory Factory

Returns the GUID of the associated factory.

NameResourceID NameResourceID NameResourceID NameResourceID NameResourceID

Gets and sets the integer NameResourceID.

Priority Priority Priority Priority Priority

Gets the editor's priority as set in the constructor.

ProjectGuid ProjectGuid ProjectGuid ProjectGuid ProjectGuid

Sets and gets the GUID of the project associated with this editor.

TemplateDir TemplateDir TemplateDir TemplateDir TemplateDir

Gets or sets the template directory to be used by the editor factory to retrieve its source files.

TypeId TypeId TypeId TypeId TypeId

Gets the current instance of this attribute.

(Inherited from RegistrationAttribute)


GetPackageRegKeyPath(Guid) GetPackageRegKeyPath(Guid) GetPackageRegKeyPath(Guid) GetPackageRegKeyPath(Guid) GetPackageRegKeyPath(Guid)

Gets the registry path (relative to the registry root of the application) of the VSPackage.

(Inherited from RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext) Register(RegistrationAttribute+RegistrationContext) Register(RegistrationAttribute+RegistrationContext) Register(RegistrationAttribute+RegistrationContext) Register(RegistrationAttribute+RegistrationContext)

Called to register this attribute with the given context. The context contains the location where the registration information should be placed. It also contains the type being registered and path information.

Unregister(RegistrationAttribute+RegistrationContext) Unregister(RegistrationAttribute+RegistrationContext) Unregister(RegistrationAttribute+RegistrationContext) Unregister(RegistrationAttribute+RegistrationContext) Unregister(RegistrationAttribute+RegistrationContext)

Removes the registration information about a VSPackage when called by an external registration tool such as RegPkg.exe. For more information, see Registering VSPackages.

Applies to