Compartilhar via


IMoniker::ParseDisplayName

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Thismethod converte um nome exibir em uma moniker.

Syntax

HRESULT ParseDisplayName( 
  IBindCtx* pbc, 
  IMoniker* pmkToLeft, 
  LPOLESTR* pszDisplayName, 
  ULONG* pchEaten, 
  IMoniker** ppmkOut
);

Parameters

  • pbc
    [no] Ponteiro para o IBindCtx interface no contexto de BIND a ser usado nessa operação ligação.

    O contexto BIND caches objetos ligado durante o processo ligação, contém os parâmetros que aplicar a todas as operações usando o contexto BIND e fornece os meios pelos quais a implementação moniker deve recuperar informações sobre seu ambiente.

    Para obter mais informações, consulte IBindCtx.

  • pmkToLeft
    [no] Ponteiro para o IMoniker interface no moniker que foi compilado out of o nome exibir up to esta apontar.
  • pszDisplayName
    [no] Ponteiro para uma seqüência de caracteres NULL-Terminated que contém o nome exibir demais para ser analisada. Aplicativos For Microsoft® Win32®, o LPOLESTR type indicates a wide character string (two bytes per character); otherwise, the string has one byte per character.
  • pchEaten
    [out] Ponteiro para o número de caracteres pszDisplayName Que foram consumida nesta etapa.
  • ppmkOut
    [out] Endereço do IMonikervariável * pointer que recebe o ponteiro interface para o moniker que foi compilado do pszDisplayName.

    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á *ppmkOut 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

A análise operação foi concluída com êxito.

MK_E_SYNTAX

Um erro de sintaxe da entrada (componentespmkToLeft, este moniker, e pszDisplayName).

De exemplo, um arquivo moniker Retorna este erro se pmkToLeft não-NULL, e um moniker item retorna-se pmkToLeft é NULL.

IMoniker::BindToObject Erros

Analisar exibir nomes podem causar ligação. Portanto, qualquer erro associado com essa função pode ser retornado.

Remarks

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

Notas para chamadores

Os clientes Moniker não chamar geralmente IMoniker::ParseDisplayName diretamente.

Em vez disso, eles chamar o MkParseDisplayName função quando eles desejar para converter um exibir nomes em um moniker (por exemplo, na implementação a caixa diálogo Links para um aplicativo contêiner, ou para implementar uma linguagem macro que ofereça suporte a referências a objetos fora de documento).

Que função primeiro analisa a parte inicial do nome exibir próprio.

Em seguida, chama IMoniker::ParseDisplayName Sobre o moniker ele tem acabou de criar, passando o restante do nome de exibir e obtendo um novo moniker no retorno; Essa etapa é repetida até que o nome inteiro exibir tem sido analisado.

Notas para Implementers

Sua implementação talvez consiga executar essa análise por si só se sua classe moniker é projetado para designar somente determinados tipos de objetos.

Caso contrário, você deve get um IParseDisplayName ponteiro interface para o objeto identificado pela moniker-So-Far (that is, a composição de pmkToLeft e este moniker) e, em seguida, retornar os resultados de chamado de IParseDisplayName::ParseDisplayName método.

Há diferentes estratégias para obter um IParseDisplayName ponteiro:

  • Você pode tentar get o objeto é CLSID (pela chamado de IPersist::GetClassID método sobre o objeto) e em seguida, chamar o CoGetClassObject função, solicitando o IParseDisplayName interface sobre a classe factory associado com esse CLSID.
  • Você pode tentar BIND para o objeto próprio para get um IParseDisplayName ponteiro.
  • Você pode tentar ligação para o objeto identificado por pmkToLeft Para get um IOleItemContainer ponteiro e em seguida, chamar o IOleItemContainer::GetObject método para get um IParseDisplayName ponteiro para o item.

Quaisquer objetos que são ligado deve ser registrado com o contexto BIND (consulte IBindCtx::RegisterObjectBound) para garantir que eles permaneçam execução para a duração da análise operação.

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

CoGetClassObject
MkParseDisplayName
IMoniker::BindToObject
IParseDisplayName
IPersist::GetClassID
IUnknown::AddRef
IUnknown::Release