Função CreateGenericComposite (objbase.h)
Executa uma composição genérica de dois monikers e fornece um ponteiro para o moniker composto resultante.
Sintaxe
HRESULT CreateGenericComposite(
[in, optional] LPMONIKER pmkFirst,
[in, optional] LPMONIKER pmkRest,
[out] LPMONIKER *ppmkComposite
);
Parâmetros
[in, optional] pmkFirst
Um ponteiro para o moniker a ser composto à esquerda do moniker para o qual pmkRest aponta. Pode apontar para qualquer tipo de moniker, incluindo uma composição genérica.
[in, optional] pmkRest
Um ponteiro para o moniker a ser composto à direita do moniker ao qual pmkFirst aponta. Pode apontar para qualquer tipo de moniker compatível com o tipo do moniker pmkRest , incluindo uma composição genérica.
[out] ppmkComposite
O endereço de uma variável de ponteiro IMoniker* que recebe o ponteiro de interface para o objeto moniker composto que é o resultado da composição de pmkFirst e pmkRest. Esse objeto dá suporte à implementação do moniker composto OLE do IMoniker. Quando bem-sucedida, a função chamou AddRef no moniker e o chamador é responsável por chamar Release. Se pmkFirst ou pmkRest forem NULL, o ponteiro fornecido será aquele que não é NULL. Se pmkFirst e pmkRest forem NULL ou se ocorrer um erro, o ponteiro retornado será NULL.
Retornar valor
Essa função pode retornar o valor retornado padrão E_OUTOFMEMORY, bem como os valores a seguir.
Código de retorno | Descrição |
---|---|
|
Os monikers de entrada foram compostos com êxito. |
|
Os dois monikers não puderam ser compostos devido a um erro na sintaxe de um caminho (por exemplo, se pmkFirst e pmkRest forem monikers de arquivo com base em caminhos absolutos). |
Comentários
CreateGenericComposite une dois monikers em um. As classes de moniker que estão sendo unidas podem ser diferentes, sujeitas apenas às regras de composição. Chame essa função somente se você estiver escrevendo uma nova classe moniker implementando a interface IMoniker , dentro de uma implementação de IMoniker::ComposeWith que inclui a funcionalidade de composição genérica.
Os provedores moniker devem chamar ComposeWith para compor dois monikers juntos. As implementações de ComposeWith devem (assim como as implementações OLE) tentar, quando razoável para a classe, executar composições não genéricas primeiro, nas quais dois monikers da mesma classe são combinados. Se isso não for possível, a implementação poderá chamar CreateGenericComposite para fazer uma composição genérica, que combina dois monikers de classes diferentes, dentro das regras de composição. Você poderá definir novos tipos de composições não genéricas se escrever uma nova classe de moniker.
Durante o processo de composição dos dois monikers, CreateGenericComposite torna todas as simplificações possíveis. Considere o exemplo em que pmkFirst é o moniker composto genérico, A + B + C e pmkRest é o moniker composto genérico, C -1 + B -1 + Z (em que C -1 é o inverso de C). A função primeiro compõe C a C -1, que não compõe nada. Em seguida, ele compõe B e B -1 para nada. Por fim, ele compõe A a Z e fornece um ponteiro para o moniker composto genérico, A + Z.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | objbase.h |
Biblioteca | Ole32.lib |
DLL | Ole32.dll |
Conjunto de APIs | ext-ms-win-com-ole32-l1-1-5 (introduzido no Windows 10, versão 10.0.15063) |