Compartilhar via


IMoniker::RelativePathTo

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Thismethod constrói um relativo moniker entre o moniker especificado e outra.

Syntax

HRESULT RelativePathTo( 
  IMoniker* pmkOther, 
  IMoniker** ppmkRelPath
);

Parameters

  • pmkOther
    [no] Ponteiro para o IMoniker interface no moniker aos quais um caminho relativo devem ser seguidas.
  • ppmkRelPath
    [out] Endereço das IMonikervariável * pointer que recebe o ponteiro interface para o relativo moniker.

    Quando bem-sucedido, a implementação deve chamar o IUnknown::AddRef método no moniker novo; é responsabilidade do chamador para chamar o IUnknown::Release método.

    Se ocorrer um erro, a implementação definirá *ppmkRelPath para NULL.

Return Value

O método suporta o padrão retornam valores E_OUTOFMEMORY e E_UNEXPECTED. A seguinte tabela mostra os adicionais retornam valores para este método.

Valor Descrição

S_OK

Um significativo caminho relativo foi retornado.

MK_S_HIM

Nenhum comum prefixo é compartilhado pelos dois monikers e o moniker retornados em ppmkRelPath é pmkOther.

MK_E_NOTBINDABLE

Um relativo é este moniker moniker, such as moniker um item.

Este moniker deve ser composto com o moniker de seu contêiner antes uma caminho relativo pode ser determinada.

Remarks

Um relativo moniker é análogo a uma caminho relativo (como.. \Backup).

De exemplo, suponha que você tenha um moniker que representa o caminho C:\Projects\Secret\Art\Pict1.bmp e outro moniker que representa o caminho C:\Projects\Secret\Docs\Chap1.txt.

Chamando IMoniker::RelativePathTo Sobre o moniker primeiro, passando o segundo uma como a pmkOther parâmetro, criaria um relativo moniker que representa o caminho \docs\chap1.txt.

Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.

Notas para chamadores

Moniker geralmente os clientes não precisará chamar IMoniker::RelativePathTo.

Este método é basicamente chamado pelo manipulador de usar como padrão para objetos vinculados.

Objetos vinculados contêm um absoluto e um relativo moniker para identificar a origem link (isso permite rastreamento link se o usuário move uma árvore de diretório que contém arquivos tanto o contêiner e origem).

O manipulador usar como padrão chama esse método para criar um relativo moniker do documento contêiner para a origem link (ou seja, ele chama IMoniker::RelativePathTo Sobre o moniker identificando o documento contêiner, passando o moniker Identificando a origem link como o pmkOther parâmetro).

Se você fazer chamar IMoniker::RelativePathTo, chamá-lo somente em absolutos monikers; Por exemplo, um moniker arquivo ou uma composição moniker cujo componente mais à esquerda é moniker um arquivo, onde o moniker arquivo representa um caminho absoluto. Fazer não chamar esse método em relativo monikers.

Notas para Implementers

A implementação de IMoniker::RelativePathTo deve primeiro determinar se pmkOther é um moniker de uma classe que você reconhece e para o qual você pode fornecer manipulação especial (por exemplo, se ele estiver a mesma classe como este moniker).

Em caso afirmativo, sua implementação deve determinar o caminho relativo. Caso contrário, ele deve transmitir os dois monikers em um chamar para o MonikerRelativePathTo função, qual corretamente manipula o genérico maiúsculas e minúsculas.

A primeira etapa para determinar um caminho relativo é determinar o comum prefixo deste moniker e pmkOther.

O próximo etapa é para interromper este moniker e pmkOther em duas partes cada, palavra (P, myTail) e (P, otherTail), respectivamente, onde P é a comum prefixo.

O caminho relativo correto, em seguida, é o inverso da myTail composta com otherTail.

Comp (INV (myTail), otherTail)

Onde Comp() Representa a operação composição e INV() Representa a operação inversa.

Observe que para determinados tipos de identificadores de origem, você não pode usar o IMoniker::Inverse método para construção o inverso da myTail.

De exemplo, um arquivo moniker retorna um anti-moniker como um inverso, enquanto suas IMoniker::RelativePathTo método deve usar um ou mais monikers arquivo que cada representa o caminho ".." a construção o inverso da myTail.

Requirements

Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

MonikerRelativePathTo
IMoniker::Inverse
IUnknown::AddRef
IUnknown::Release