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 apelidos, 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 acessar esse objeto, você pode simplesmente passar ao 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 ele não é armazenado em um arquivo, nem com um moniker de item, porque ele não está contido em outro objeto.

Em vez disso, seu aplicativo pode criar um moniker de ponteiro, que é um apelido que simplesmente contém um ponteiro internamente, e passar isso para o cliente. O cliente pode tratar esse apelido como qualquer outro. No entanto, quando o cliente chama IMoniker::BindToObject no moniker de ponteiro, o código do moniker não verifica a tabela de objetos em execução (ROT) nem carrega nada do armazenamento. Em vez disso, o código do 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 método IMoniker::Save retornará um erro. Isso significa que os apelidos de ponteiro são úteis apenas em situações especializadas. Você pode usar a função CreatePointerMoniker se precisar usar um moniker de ponteiro.

Anti-Monikers

Classe Monikers

Monikers Compostos

Arquivo Monikers

Item Monikers