IVsUIShellOpenDocument.SearchProjectsForRelativePath 方法

定义

将文档的相对路径转换为可传递到的绝对路径 OpenDocumentViaProject(String, Guid, IServiceProvider, IVsUIHierarchy, UInt32, IVsWindowFrame)

public:
 int SearchProjectsForRelativePath(System::UInt32 grfRPS, System::String ^ pszRelPath, cli::array <System::String ^> ^ pbstrAbsPath);
public:
 int SearchProjectsForRelativePath(unsigned int grfRPS, Platform::String ^ pszRelPath, Platform::Array <Platform::String ^> ^ pbstrAbsPath);
int SearchProjectsForRelativePath(unsigned int grfRPS, std::wstring const & pszRelPath, std::Array <std::wstring const &> const & pbstrAbsPath);
public int SearchProjectsForRelativePath (uint grfRPS, string pszRelPath, string[] pbstrAbsPath);
abstract member SearchProjectsForRelativePath : uint32 * string * string[] -> int
Public Function SearchProjectsForRelativePath (grfRPS As UInteger, pszRelPath As String, pbstrAbsPath As String()) As Integer

参数

grfRPS
UInt32

中指定应如何解析搜索路径的标志。 有关详细信息,请参阅 __VSRELPATHSEARCHFLAGS

pszRelPath
String

中文档的相对路径。 这可能只是文件名。

pbstrAbsPath
String[]

[out,retval]文档的完整路径名称。 这与 pszMkDocument 字符串值相同。

返回

Int32

如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。

注解

COM 签名

从 vsshell:

HRESULT IVsUIShellOpenDocument::SearchProjectsForRelativePath(  
   [in] VSRELPATHSEARCHFLAGS grfRPS,  
   [in] LPCOLESTR pszRelPath,  
   [out, retval] BSTR *pbstrAbsPath  
);  

此方法使用两个策略:

  • pszRelPath pszMkDocument 如果在 RPS_MatchByProjectPath 项目项) 指定了标志,则枚举所有项目中的项目项,并将其与 (或项目路径进行比较。 该比较不区分大小写。 的值 pszRelPath 可以是不包含路径的文档名称,也可以是包含与 (或项目路径的有效右部分匹配的部分路径的文档名称 pszMkDocument) 。 首先为活动项目指定优先级。 可以通过将参数设置为值,跳过此步骤 grfRPS RPS_SkipEnumProjectItems

  • 请求所有全局注册 IVsRelativePathResolver 的对象解析路径。 此机制允许项目语言服务解析非项目项的相对路径 (例如,如果项目具有包含搜索路径) 的概念。 全局 IVsRelativePathResolver 对象应将服务 GUID (SID 注册) 为注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\RelativePathResolvers 项下的子项。 QueryService 为接口的每个注册服务调用 IVsRelativePathResolver 。 可以通过将参数设置为,跳过此步骤 grfRPS RPS_SkipGlobalResolvers

如果尝试的方法都不是匹配项,则函数将 * 设置 pbstrAbsPathnull ,并返回 S_FALSE

适用于