IMoniker::ParseDisplayName
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