Compartilhar via


Método IVsRunningDocumentTable.FindAndLockDocument (UInt32, String, IVsHierarchy, UInt32, IntPtr, UInt32)

 

Localiza um documento em que o RDT usando o nome de arquivo do documento e, em seguida, obtém um bloqueio de leitura ou edição nesse documento.

Namespace:   Microsoft.VisualStudio.Shell.Interop
Assembly:  Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)

Sintaxe

int FindAndLockDocument(
    uint dwRDTLockType,
    string pszMkDocument,
    out IVsHierarchy ppHier,
    out uint pitemid,
    out IntPtr ppunkDocData,
    out uint pdwCookie
)
int FindAndLockDocument(
    unsigned int dwRDTLockType,
    String^ pszMkDocument,
    [OutAttribute] IVsHierarchy^% ppHier,
    [OutAttribute] unsigned int% pitemid,
    [OutAttribute] IntPtr% ppunkDocData,
    [OutAttribute] unsigned int% pdwCookie
)
abstract FindAndLockDocument : 
        dwRDTLockType:uint32 *
        pszMkDocument:string *
        ppHier:IVsHierarchy byref *
        pitemid:uint32 byref *
        ppunkDocData:nativeint byref *
        pdwCookie:uint32 byref -> int
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

Parâmetros

  • dwRDTLockType
    [in] Sinalizadores cujos valores são obtidos a partir do _VSRDTFLAGS enumeração.
  • pszMkDocument
    [in] Caminho para o documento localizado.
  • ppHier
    [out, opcional] Retorna o IVsHierarchy interface para o documento localizado.
  • ppunkDocData
    [out, opcional] Retorna o IUnknown interface.Consulte os comentários para obter detalhes.
  • pdwCookie
    [out, opcional] Retorna um valor abstrato para o documento.

Valor de retorno

Type: System.Int32

Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.

Comentários

FindAndLockDocumentExé semelhante a este método, mas também permite a especificação de um par de hierarquia/itemid preferencial para o documento, no caso de um RDT_EditLock for desejado e o documento no momento é registrado com apenas um RDT_ReadLock com nenhuma hierarquia/itemid atribuído.

Para evitar um vazamento de memória, você deve chamar M:System.Runtime.InteropServices.Marshal.Release sobre o ppunkDocData objeto retornado por esse método.

COM assinatura

De vsshell.idl:

HRESULT IVsRunningDocumentTable::FindAndLockDocument(
   [in] VSRDTFLAGS      dwRDTLockType,
   [in] LPCOLESTR       pszMkDocument,
   [out] IVsHierarchy **ppHier,
   [out] VSITEMID      *pitemid,
   [out] IUnknown     **ppunkDocData,
   [out] VSCOOKIE      *pdwCookie
);

Parâmetro de punkDocData

Se o documento estiver registrado, em seguida, a punkDocData valor retornado é sempre não-nulo porque o ambiente irá criar um punkDocData em nome dos editores registrado com um null valor de punkDocData, assim como acontece quando um Editor não tem separação/modo de exibição de dados.Este objeto representa o objeto de dados de documento associado ao documento registrado.Normalmente, o IVsPersistDocData e IVsDocDataFileChangeControl interfaces são obtidos a partir dessa IUnknown objeto.

Parâmetro de pdwCookie

O pdwCookie parâmetro retorna um cookie que representa o documento.Esse cookie pode ser passado para os seguintes métodos:

Consulte também

Interface IVsRunningDocumentTable
Namespace Microsoft.VisualStudio.Shell.Interop

Retornar ao topo