Metodo IMoniker::Inverse (objidl.h)

Crea un moniker che rappresenta l'inverso di questo moniker. Se composto a destra di questo moniker o di una struttura simile, il moniker componirà nulla.

Sintassi

HRESULT Inverse(
  [out] IMoniker **ppmk
);

Parametri

[out] ppmk

Indirizzo di una variabile puntatore IMoniker che riceve il puntatore dell'interfaccia a un moniker che rappresenta l'inverso di questo moniker. In caso di esito positivo, l'implementazione deve chiamare AddRef nel nuovo moniker inverso. È responsabilità del chiamante chiamare Release. Se si verifica un errore, l'implementazione deve impostare *ppmk su NULL.

Valore restituito

Questo metodo può restituire i valori restituiti standard E_OUTOFMEMORY, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Il moniker inverso è stato restituito correttamente.
MK_E_NOINVERSE
La classe moniker non ha un inverso.

Commenti

L'inverso di un moniker è analogo alla directory ".." nei file system MS-DOS; la directory ".." funge da inverso a qualsiasi altro nome di directory, perché l'aggiunta di ".." a un nome di directory restituisce un percorso vuoto. Allo stesso modo, l'inverso di un moniker è in genere anche l'inverso di tutti i moniker nella stessa classe. Tuttavia, non è necessariamente l'inverso di un moniker di una classe diversa.

L'inverso di un moniker composito è costituito dagli inverse dei componenti del moniker originale, disposti in ordine inverso. Ad esempio, se l'inverso di A è Inv( A ) e il composto di A, B e C è Comp( A, B, C ), allora

Inv( Comp( A, B, C ) è uguale a Comp( Inv( C ), Inv( B ), Inv( A ) ).

Non tutti i moniker hanno inverse. La maggior parte dei moniker che sono stessi inverse, ad esempio anti-moniker, non hanno inverse. I moniker che non dispongono di moniker inversa non possono avere moniker relativi formati dall'interno degli oggetti identificati ad altri oggetti all'esterno.

Note ai chiamanti

Un oggetto che usa un moniker per individuare un altro oggetto in genere non conosce la classe del moniker in uso. Per ottenere l'inverso di un moniker, è sempre necessario chiamare IMoniker::Inverse anziché la funzione CreateAntiMoniker , perché non è possibile essere certi che il moniker usato consideri un anti-moniker come inverso.

Il metodo Inverse viene chiamato anche dall'implementazione del metodo IMoniker::RelativePathTo , per facilitare la costruzione di un moniker relativo.

Note per gli implementatori

Se i moniker non hanno alcuna struttura interna, è possibile chiamare la funzione CreateAntiMoniker in per ottenere un anti-moniker nell'implementazione di IMoniker::Inverse. Nell'implementazione di IMoniker::ComposeWith, è necessario verificare la presenza dell'inverso fornito nell'implementazione di Inverse.

Note specifiche dell'implementazione

Implementazione Note
Anti-moniker Questo metodo restituisce MK_E_NOINVERSE e imposta *ppmk su NULL.
Moniker di classe Questo metodo restituisce un anti-moniker, ovvero i risultati della chiamata a CreateAntiMoniker.
Moniker file Questo metodo restituisce un anti-moniker, ovvero i risultati della chiamata a CreateAntiMoniker.
Moniker composito generico Questo metodo restituisce un moniker composito costituito dagli inverse di ognuno dei componenti del composito originale, archiviato in ordine inverso. Ad esempio, se l'inverso di A è Inv( A ), l'inverso della composizione di A, B e C è Comp(Inv( C ), Inv( B ), Inv( A ).
Moniker elemento Questo metodo restituisce un anti-moniker, ovvero i risultati della chiamata a CreateAntiMoniker.
Moniker OBJREF Questo metodo restituisce un anti-moniker, ovvero i risultati della chiamata a CreateAntiMoniker.
Moniker puntatore Questo metodo restituisce un anti-moniker, ovvero i risultati della chiamata a CreateAntiMoniker.
Moniker URL Questo metodo restituisce MK_E_NOINVERSE e imposta *ppmk su NULL.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objidl.h

Vedi anche

CreateAntiMoniker

Imoniker