IVsSolution.GetProjectOfProjref(String, IVsHierarchy, String, VSUPDATEPROJREFREASON[]) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает иерархию для заданной строки ссылки на проект.
public:
int GetProjectOfProjref(System::String ^ pszProjref, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsHierarchy ^ % ppHierarchy, [Runtime::InteropServices::Out] System::String ^ % pbstrUpdatedProjref, cli::array <Microsoft::VisualStudio::Shell::Interop::VSUPDATEPROJREFREASON> ^ puprUpdateReason);
int GetProjectOfProjref(std::wstring const & pszProjref, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsHierarchy const & & ppHierarchy, [Runtime::InteropServices::Out] std::wstring const & & pbstrUpdatedProjref, std::Array <Microsoft::VisualStudio::Shell::Interop::VSUPDATEPROJREFREASON> const & puprUpdateReason);
public int GetProjectOfProjref (string pszProjref, out Microsoft.VisualStudio.Shell.Interop.IVsHierarchy ppHierarchy, out string pbstrUpdatedProjref, Microsoft.VisualStudio.Shell.Interop.VSUPDATEPROJREFREASON[] puprUpdateReason);
abstract member GetProjectOfProjref : string * IVsHierarchy * string * Microsoft.VisualStudio.Shell.Interop.VSUPDATEPROJREFREASON[] -> int
Public Function GetProjectOfProjref (pszProjref As String, ByRef ppHierarchy As IVsHierarchy, ByRef pbstrUpdatedProjref As String, puprUpdateReason As VSUPDATEPROJREFREASON()) As Integer
Параметры
- pszProjref
- String
[in] Указатель на строку ссылки существующего проекта, если применимо. Может иметь значение null.
- ppHierarchy
- IVsHierarchy
[out] Указатель на интерфейс IVsHierarchy, на который указывает ссылка проекта.
- pbstrUpdatedProjref
- String
[out] Указатель на обновленную строку ссылки проекта.
- puprUpdateReason
- VSUPDATEPROJREFREASON[]
[out] Идентификатор, описывающий причину для данного изменения в строке ссылки на проект. Список значений puprUpdateReason см. в VSUPDATEPROJREFREASON.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.
Комментарии
Подпись COM
Из всшелл. IDL:
HRESULT IVsSolution::GetProjectOfProjref(
[in] LPCOLESTR pszProjref,
[out] IVsHierarchy **ppHierarchy,
[out] BSTR *pbstrUpdatedProjref,
[out] VSUPDATEPROJREFREASON *puprUpdateReason
);
Существует два сценария для этого метода:
Ссылка на проект отслеживает, когда проект переименовывается в рамках одного решения. При попытке привязать ссылку проекта идентификатор GUID проекта сначала попытается вызвать метод GetProjectOfGuid . Если этот вызов выполнен успешно и проект был переименован, то для клиента также предоставляется обновленная ссылка на проект.
Проекты добавляются в новое решение, и ссылка на проект все еще может быть привязана. Если не удается привязать идентификатор GUID, будет предпринята попытка выполнить обнаружение проекта с использованием сведений о типе/имени. Если это будет выполнено, возвращается Обновленная ссылка на проект, включающая новый проект.
Содержимое ссылки на проект непрозрачно для клиента. Однако для поддержки этих двух сценариев в нашей внутренней реализации необходимо иметь строку ссылки на проект, состоящую из следующих сведений:
Идентификатор GUID проекта, назначенный и поддерживаемый файлом решения
Тип проекта (или имя)
Ниже приведено описание того, как GetProjectOfProjref метод используется для поддержки операций перетаскивания.
CF_VSPROJECTITEMSФорматы и CF_VSPROJECTS буфер обмена используют DROPFILES структуру таким же образом, как CF_HDROP или CF_PRINTERS . Данные, следующие за DROPFILES структурой, представляют собой список строк, заканчивающийся двойным нулем Projref . Потребитель операции DROP может использовать API Windows DragQueryFile для проверки данных в DROPFILES структуре. CF_VSPROJECTSформат предлагается, когда Projref строки обозначают проекты в целом, то есть * pitemid == VSITEMID_ROOT . CF_VSPROJECTITEMSФормат предлагается, когда Projref строки обозначают один или несколько отдельных элементов проекта. CF_VSPROJECTSНеобходимо либо CF_VSPROJECTITEMS предложение, либо, но не оба.