IVsUIShellOpenDocument.OpenDocumentViaProjectWithSpecific(String, UInt32, Guid, String, Guid, IServiceProvider, IVsUIHierarchy, UInt32, IVsWindowFrame) Метод

Определение

Находит указанный проект для открытия этого документа.

public:
 int OpenDocumentViaProjectWithSpecific(System::String ^ pszMkDocument, System::UInt32 grfEditorFlags, Guid % rguidEditorType, System::String ^ pszPhysicalView, Guid % rguidLogicalView, [Runtime::InteropServices::Out] Microsoft::VisualStudio::OLE::Interop::IServiceProvider ^ % ppSP, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsUIHierarchy ^ % ppHier, [Runtime::InteropServices::Out] System::UInt32 % pitemid, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsWindowFrame ^ % ppWindowFrame);
public int OpenDocumentViaProjectWithSpecific (string pszMkDocument, uint grfEditorFlags, ref Guid rguidEditorType, string pszPhysicalView, ref Guid rguidLogicalView, out Microsoft.VisualStudio.OLE.Interop.IServiceProvider ppSP, out Microsoft.VisualStudio.Shell.Interop.IVsUIHierarchy ppHier, out uint pitemid, out Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame ppWindowFrame);
abstract member OpenDocumentViaProjectWithSpecific : string * uint32 * Guid * string * Guid * IServiceProvider * IVsUIHierarchy * uint32 * IVsWindowFrame -> int
Public Function OpenDocumentViaProjectWithSpecific (pszMkDocument As String, grfEditorFlags As UInteger, ByRef rguidEditorType As Guid, pszPhysicalView As String, ByRef rguidLogicalView As Guid, ByRef ppSP As IServiceProvider, ByRef ppHier As IVsUIHierarchy, ByRef pitemid As UInteger, ByRef ppWindowFrame As IVsWindowFrame) As Integer

Параметры

pszMkDocument
String

[in] Строковый формат уникального идентификатора моникера документа в системе проектов, например полный путь к файлу. В случаях, когда документ не является файлом, этот идентификатор часто имеет вид URL-адреса.

grfEditorFlags
UInt32

[in] Флаги, значения которых берутся из перечисления __VSSPECIFICEDITORFLAGS.

rguidEditorType
Guid

[in] Уникальный идентификатор типа редактора.

pszPhysicalView
String

[in] Уникальный идентификатор физического представления.

rguidLogicalView
Guid

[in] Уникальный идентификатор логического представления. Если редактор реализует IVsMultiViewDocumentView объект представления документа, значение, передаваемое в параметр, определяет, rguidLogicalView какое представление активируется при отображении окна редактора при создании экземпляра редактора. С помощью идентификаторов GUID логических представлений можно запросить определенное представление, соответствующее причине запроса такого представления. Например, укажите LOGVIEWID_Debugging для получения представления, подходящего для отладки, или LOGVIEWID_TextView для получения представления, подходящего для текстового редактора (т. е. представления, которое реализует IVsCodeWindow).

ppSP
IServiceProvider

[out] Указатель на интерфейс IServiceProvider.

ppHier
IVsUIHierarchy

[out] Указатель на интерфейс IVsUIHierarchy проекта, который может открывать документ.

pitemid
UInt32

[out] Указатель на идентификатор элемента иерархии пользовательского интерфейса для документа в проекте. Дополнительные сведения см. в разделе VSITEMID.

ppWindowFrame
IVsWindowFrame

[out, retval] Указатель на рамку окна, которая содержит редактор. Для получения дополнительной информации см. IVsWindowFrame.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Подпись COM

Из всшелл. IDL:

HRESULT IVsUIShellOpenDocument::OpenDocumentViaProjectWithSpecific(  
   [in] LPCOLESTR pszMkDocument,  
   [in] VSSPECIFICEDITORFLAGS grfEditorFlags,  
   [in] REFGUID rguidEditorType,  
   [in] LPCOLESTR pszPhysicalView,  
   [in] REFGUID rguidLogicalView,  
   [out] IServiceProvider **ppSP,  
   [out] IVsUIHierarchy **ppHier,  
   [out] VSITEMID *pitemid,  
   [out, retval] IVsWindowFrame **ppWindowFrame  
);  

Этот метод используется пакетами VSPackage, которые не являются проектами, которым требуется открыть документ в определенном редакторе, но не следует знать, какой проект открывает файл. Чтобы вызвать этот метод из VSPackage, необходимо точно знать, какая Фабрика редактора вам нужна, и точно, в каком именно окне нужно создать фабрику редактора (т. е. физическое представление). Логическое представление, указанное в rguidLogicalView параметре, позволяет указать, какая вкладка должна отображаться редактором, если редактор реализует IVsMultiViewDocumentView .

Этот метод вызывает OpenItem. Если ни один проект не может обслуживать файл, а проект прочих файлов еще не существует, среда создает проект прочих файлов и пытается снова выполнить операцию.

Применяется к