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.
Возвращаемое значение
Если метод завершается успешно, возвращает значение 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. Если ни один проект не может обслуживать файл, а проект прочих файлов еще не существует, среда создает проект прочих файлов и пытается снова выполнить операцию.