IVsSolution.GetProjectOfProjref 方法
返回指定的项目中的层次结构引用字符串。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function GetProjectOfProjref ( _
pszProjref As String, _
<OutAttribute> ByRef ppHierarchy As IVsHierarchy, _
<OutAttribute> ByRef pbstrUpdatedProjref As String, _
<OutAttribute> puprUpdateReason As VSUPDATEPROJREFREASON() _
) As Integer
int GetProjectOfProjref(
string pszProjref,
out IVsHierarchy ppHierarchy,
out string pbstrUpdatedProjref,
VSUPDATEPROJREFREASON[] puprUpdateReason
)
参数
- pszProjref
类型:System.String
[in] 与现有项目的指针引用字符串,如果适用)。可以为 nullnull 引用(在 Visual Basic 中为 Nothing)。
- ppHierarchy
类型:Microsoft.VisualStudio.Shell.Interop.IVsHierarchy%
[out] 为 IVsHierarchy 接口的指针由项目引用的引用。
- pbstrUpdatedProjref
类型:System.String%
[out] 为更新项目的指针引用字符串。
- puprUpdateReason
类型:array<Microsoft.VisualStudio.Shell.Interop.VSUPDATEPROJREFREASON[]
[out] 标识描述更改的原因在项目中引用字符串。有关 puprUpdateReason 值列表,请参见 VSUPDATEPROJREFREASON。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
COM 签名
从 vsshell.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相同。 下面是双 null 终止的 DROPFILES 结构的数据列表 Projref 字符串。 放置操作的使用者可以使用 windows API DragQueryFile 检查在 DROPFILES 结构的数据。 提供CF_VSPROJECTS 布局,同时,即时, Projref 字符串标识整体项目 *pitemid == VSITEMID_ROOT。 CF_VSPROJECTITEMS 布局,同时 Projref 字符串标识一个或多个单个项目项时,提供。 应提供 CF_VSPROJECTS 或 CF_VSPROJECTITEMS ,,但从未两个。
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。