Partager via


IVsProject3.OpenItem Method

Opens an item in the project.

Namespace:  Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)

Syntax

'Déclaration
Function OpenItem ( _
    itemid As UInteger, _
    ByRef rguidLogicalView As Guid, _
    punkDocDataExisting As IntPtr, _
    <OutAttribute> ByRef ppWindowFrame As IVsWindowFrame _
) As Integer
'Utilisation
Dim instance As IVsProject3
Dim itemid As UInteger
Dim rguidLogicalView As Guid
Dim punkDocDataExisting As IntPtr
Dim ppWindowFrame As IVsWindowFrame
Dim returnValue As Integer

returnValue = instance.OpenItem(itemid, _
    rguidLogicalView, punkDocDataExisting, _
    ppWindowFrame)
int OpenItem(
    uint itemid,
    ref Guid rguidLogicalView,
    IntPtr punkDocDataExisting,
    out IVsWindowFrame ppWindowFrame
)
int OpenItem(
    [InAttribute] unsigned int itemid, 
    [InAttribute] Guid% rguidLogicalView, 
    [InAttribute] IntPtr punkDocDataExisting, 
    [OutAttribute] IVsWindowFrame^% ppWindowFrame
)
function OpenItem(
    itemid : uint, 
    rguidLogicalView : Guid, 
    punkDocDataExisting : IntPtr, 
    ppWindowFrame : IVsWindowFrame
) : int

Parameters

  • itemid
    Type: System.UInt32

    [in] Identifier of the item to open. Should be VSITEMID_ROOT or other valid item identifier. See the VSITEMID enumeration.

  • rguidLogicalView
    Type: System.Guid%

    [in] Unique identifier of the logical view. If not GUID_NULL, indicates a specific type of view to create. For more information, see the LOGVIEWID.

  • punkDocDataExisting
    Type: System.IntPtr

    [in] Pointer to the document data object of the item to open. If the caller of OpenItem had a pointer to the document data object, it would pass it in the punkDocDataExisting parameter. If the caller knew that the document data object was not open, it would pass nulla null reference (Nothing in Visual Basic). If the caller did not know if the document data object was open or if it did not want to look it up in the running document table (RDT) to find out, then it could pass in DOCDATAEXISTING_UNKNOWN If this value is passed, then OpenStandardEditor will look up the value in the RDT by calling FindAndLockDocument (RDT_EditLock) to determine whether the file (document data object) is already open.

Return Value

Type: System.Int32

If the method succeeds, it returns S_OK. If it fails, it returns an error code.

Implements

IVsProject2.OpenItem(UInt32, Guid%, IntPtr, IVsWindowFrame%)

Remarks

COM Signature

From vsshell.idl:

HRESULT IVsProject3::OpenItem(
   [in] VSITEMID itemid,
   [in] REFGUID rguidLogicalView,
   [in] IUnknown *punkDocDataExisting,
   [out] IVsWindowFrame **ppWindowFrame
);

By implementing IVsProjectSpecificEditorMap2 Interface on your project object, you can do project-specific handling of files. That is, you can support either opening the file in a project-specific editor or allowing the global editor to open the item. Opening an item requires launching an editor using OpenStandardEditor or OpenSpecificEditor, depending on the handling you want to implement. For more information, see GetSpecificEditorProperty.

Note

In your implementation of OpenItem, do not call Show on the window frame you return in ppWindowFrame.

Compare to ReopenItem method.

Permissions

See Also

Reference

IVsProject3 Interface

IVsProject3 Members

Microsoft.VisualStudio.Shell.Interop Namespace