Partilhar via


Ponteiro Monikers

Um moniker de ponteiro identifica um objeto que só pode existir no estado ativo ou em execução. Isso difere de outras classes de monikers, que identificam objetos que podem existir no estado passivo ou ativo.

Suponha, por exemplo, que um aplicativo tenha um objeto que não tenha representação persistente. Normalmente, se um cliente do seu aplicativo precisar de acesso a esse objeto, você pode simplesmente passar o cliente um ponteiro para o objeto. No entanto, suponha que seu cliente esteja esperando um apelido. O objeto não pode ser identificado com um moniker de arquivo, porque não está armazenado em um arquivo, nem com um moniker de item, porque não está contido em outro objeto.

Em vez disso, seu aplicativo pode criar um moniker de ponteiro, que é um moniker que simplesmente contém um ponteiro internamente, e passá-lo para o cliente. O cliente pode tratar este apelido como qualquer outro. No entanto, quando o cliente chama IMoniker::BindToObject no moniker de ponteiro, o código de moniker não verifica a tabela de objetos em execução (ROT) ou carrega nada do armazenamento. Em vez disso, o código de moniker simplesmente chama QueryInterface no ponteiro armazenado dentro do moniker.

Os monikers de ponteiro permitem que objetos que existem apenas no estado ativo ou em execução participem de operações de moniker e sejam usados por clientes de moniker. Uma diferença importante entre monikers de ponteiro e outras classes de monikers é que os monikers de ponteiro não podem ser salvos no armazenamento persistente. Se você fizer isso, chamar o IMoniker::Save método retorna um erro. Isso significa que os apelidos de ponteiro são úteis apenas em situações especializadas. Você pode usar a funçãoCreatePointerMoniker se precisar usar um moniker de ponteiro.

Anti-Monikers

Classe Monikers

Composite Monikers

Arquivo Monikers

Item Monikers