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)。
  • pbstrUpdatedProjref
    类型:System.String%
    [out] 为更新项目的指针引用字符串。

返回值

类型: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 安全性

请参见

参考

IVsSolution 接口

Microsoft.VisualStudio.Shell.Interop 命名空间