IVsRunningDocumentTable.FindAndLockDocument 方法
使用文档文件名,查找文档 RDT,然后获取读取或编辑该锁文档。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function FindAndLockDocument ( _
dwRDTLockType As UInteger, _
pszMkDocument As String, _
<OutAttribute> ByRef ppHier As IVsHierarchy, _
<OutAttribute> ByRef pitemid As UInteger, _
<OutAttribute> ByRef ppunkDocData As IntPtr, _
<OutAttribute> ByRef pdwCookie As UInteger _
) As Integer
int FindAndLockDocument(
uint dwRDTLockType,
string pszMkDocument,
out IVsHierarchy ppHier,
out uint pitemid,
out IntPtr ppunkDocData,
out uint pdwCookie
)
参数
- dwRDTLockType
类型:System.UInt32
[in] 值从 _VSRDTFLAGS 枚举所采用的标志。
- pszMkDocument
类型:System.String
[in] 所在的路径文档。
- ppHier
类型:Microsoft.VisualStudio.Shell.Interop.IVsHierarchy%
[out, optional] 返回所在的 IVsHierarchy 接口文档。
- pitemid
类型:System.UInt32%
[out, optional] 返回找到的项 ID 文档。这是唯一标识符或它可以是下列值之一: VSITEMID_NIL、 VSITEMID_ROOT或 VSITEMID_SELECTION。
- ppunkDocData
类型:System.IntPtr%
[out, optional] 返回 IUnknown 接口。请参见 " 备注 " 了解详细信息。
- pdwCookie
类型:System.UInt32%
[out, optional] 返回文档的抽象值。
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
FindAndLockDocumentEx 类似于此方法,还允许一个首选层次结构/itemid 的指定文档对,以防 RDT_EditLock 需要,并且文档移动到当前仅 RDT_ReadLock 注册未指派的层次结构/itemid。
为了避免内存泄漏,应调用此方法返回的 ppunkDocData 对象的 Release 。
COM 签名
从 vsshell.idl:
HRESULT IVsRunningDocumentTable::FindAndLockDocument(
[in] VSRDTFLAGS dwRDTLockType,
[in] LPCOLESTR pszMkDocument,
[out] IVsHierarchy **ppHier,
[out] VSITEMID *pitemid,
[out] IUnknown **ppunkDocData,
[out] VSCOOKIE *pdwCookie
);
punkDocData 参数
如果文档注册,则返回的 punkDocData 值始终不为 null,因为环境委托给 punkDocData的一个 nullnull 引用(在 Visual Basic 中为 Nothing) 值注册编辑器将创建 punkDocData ,如用例,编辑没有数据/视图分开时。 此对象表示文档数据对象与注册的文档。 通常, IVsPersistDocData 和 IVsDocDataFileChangeControl 接口从此 IUnknown 对象获取。
pdwCookie 参数
pdwCookie 参数返回表示文档的 cookie。 此 cookie 可以传递给以下方法:
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。