IVsaItems.CreateItem Method
Creates a new instance of one of the IVsaItem types, as defined in the VsaItemType enumeration.
public: IVsaItem* CreateItem(
String* name,
VsaItemType itemType,
VsaItemFlag itemFlag
);
public IVsaItem CreateItem(
string name,
VsaItemType itemType,
VsaItemFlag itemFlag
);
MustOverride Overloads Public Function CreateItem( _
ByVal name As String, _
ByVal itemType As VsaItemType, _
ByVal itemFlag As VsaItemFlag _
) As IVsaItem
Return Value
Returns a reference to the IVsaItem object created.
Parameters
name
The name to associate with the new item.In cases where the item is a reference item type, the name parameter must be exactly the same as the name of the referenced assembly, as set with the IVsaReferenceItem.AssemblyName property. In JScript, however, if you do not specify an AssemblyName, JScript will use the ItemName as the name of the assembly.
itemType
The type of item created, as defined in the VsaItemType enumeration.itemFlag
The optional flag to specify the initial content of a Code item.
Remarks
The newly created object has its IVsaItem.Name property set to the value of the name parameter and is added to the IVsaItems collection with the name parameter used as the index into the collection.
Once created, you can retrieve the item from the collection using calling the Item(string) property passing in the name value, provided the Name property has not been updated.
Use the itemType parameter to set the newly created item's type. The item type is determined by values of the VsaItemType Enumeration. The following table shows the item types and their corresponding derived classes.
VsaItemType |
Derived Class |
---|---|
Reference |
|
AppGlobal |
|
Code |
The itemFlag parameter controls the initial contents of the item, as defined by the VsaItemFlag enumeration when the VsaItemType enumeration is set to Code. For item types other than Code, you must specify None. The following table shows the VsaItemFlag values and the associated initial code for each.
VsaItemFlag |
Initial Code |
---|---|
None |
None |
Class |
An empty class |
Module |
An empty module |
JScript .NET does not support the VsaItemFlag.Class flag, although users can create their own classes by adding a class declaration to their code. JScript .NET treats the Module and None flags as equivalent, allowing the user to write any code (classes, global methods, and so on) inside the item.
Upon creating an item, the IVsaEngine.IsDirty property returns true until the item is saved.
Exceptions
The following table shows the exceptions that the CreateItem method can throw.
Exception Type |
Condition |
---|---|
EngineClosed |
The IVsaEngine.Close method has been called and the engine is closed. |
EngineNotInitialized |
The engine has not been initialized. |
EngineRunning |
The engine is running. |
ItemNameInUse |
The specified name parameter is already in use in the current IVsaItems collection. |
ItemNameInvalid |
The name of the item is not valid. |
ItemTypeNotSupported |
The itemType parameter specified is not supported |
ItemFlagNotSupported |
The type of the itemFlag parameter specified is not supported, or is invalid for the itemType parameter. |