Compartilhar via


Método IParseDisplayName::P arseDisplayName (oleidl.h)

Analisa o nome de exibição especificado e cria um moniker correspondente.

Sintaxe

HRESULT ParseDisplayName(
  [in]  IBindCtx *pbc,
  [in]  LPOLESTR pszDisplayName,
  [out] ULONG    *pchEaten,
  [out] IMoniker **ppmkOut
);

Parâmetros

[in] pbc

Um ponteiro para o contexto de associação a ser usado nesta operação de associação. Consulte IBindCtx.

[in] pszDisplayName

O nome de exibição a ser analisado.

[out] pchEaten

Um ponteiro para uma variável que recebe o número de caracteres no nome de exibição que correspondem ao moniker ppmkOut .

[out] ppmkOut

Um ponteiro para uma variável de ponteiro IMoniker que recebe o ponteiro de interface para o moniker resultante. Se ocorrer um erro, a implementação definirá *ppmkOut como NULL. Se *ppmkOut não for NULL, a implementação deverá chamar AddRef; é responsabilidade do chamador chamar Release.

Retornar valor

Esse método pode retornar os valores retornados padrão E_OUTOFMEMORY e E_UNEXPECTED, bem como os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
MK_E_SYNTAX
Há um erro de sintaxe no nome de exibição. Falha na análise porque pszDisplayName só pôde ser parcialmente resolvido em um moniker. Nesse caso, *pchEaten tem o número de caracteres que foram analisados com êxito em um prefixo de moniker. O parâmetro ppmkOut deve ser NULL.
MK_E_NOOBJECT
O nome de exibição não identifica um componente nesse namespace.
E_INVALIDARG
Um ou mais dos parâmetros não são válidos.

Comentários

Em geral, o prefixo máximo de pszDisplayName que é sintaticamente válido e que representa um objeto deve ser consumido por esse método e convertido em um moniker.

Normalmente, esse método é chamado por MkParseDisplayName ou MkParseDisplayNameEx. Na etapa inicial da operação de análise, essas funções podem recuperar a interface IParseDisplayName diretamente de uma instância de uma classe identificada com a notação "@ProgID" ou "ProgID". As etapas de análise subsequentes podem consultar a interface em um objeto intermediário.

Os loops main de MkParseDisplayName e MkParseDisplayNameEx encontram a próxima parte do moniker chamando o método equivalente na interface IMoniker, ou seja, IMoniker::P arseDisplayName, no moniker que ele contém atualmente. Nesta chamada para IMoniker::P arseDisplayName, a função MkParseDisplayName ou MkParseDisplayNameEx passa NULL no parâmetro pmkToLeft . Se o moniker atualmente mantido for uma composição genérica, a chamada para IMoniker::P arseDisplayName será encaminhada por essa composição para sua última peça, passando o prefixo da composição para a esquerda da peça em pmkToLeft.

Algumas classes de moniker poderão lidar com essa análise internamente para si mesmas porque foram projetadas para designar apenas determinados tipos de objetos. Outras pessoas precisarão se associar ao objeto que designam para realizar o processo de análise. Como de costume, esses objetos não devem ser liberados por IMoniker::P arseDisplayName , mas devem ser transferidos para o contexto de associação por meio de IBindCtx::RegisterObjectBound ou IBindCtx::GetRunningObjectTable seguido por IRunningObjectTable::Register para lançamento posteriormente.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

IMoniker::P arseDisplayName

Iparsedisplayname

Mkparsedisplayname

MkParseDisplayNameEx