Bagikan melalui


IMoniker::Metode terbalik (objidl.h)

Membuat moniker yang merupakan inversi dari moniker ini. Ketika disusun di sebelah kanan moniker ini atau salah satu struktur yang sama, moniker akan menyusun apa-apa.

Sintaks

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

Parameter

[out] ppmk

Alamat variabel pointer IMoniker yang menerima penunjuk antarmuka ke moniker yang merupakan inversi dari moniker ini. Jika berhasil, implementasi harus memanggil AddRef pada moniker terbalik baru. Ini adalah tanggung jawab penelepon untuk memanggil Rilis. Jika terjadi kesalahan, implementasi harus mengatur *ppmk ke NULL.

Nilai kembali

Metode ini dapat mengembalikan nilai pengembalian standar E_OUTOFMEMORY, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
Moniker terbalik telah berhasil dikembalikan.
MK_E_NOINVERSE
Kelas moniker tidak memiliki inversi.

Keterangan

Inversi moniker dianalogikan dengan direktori ".." dalam sistem file MS-DOS; direktori ".." bertindak sebagai terbalik dengan nama direktori lain, karena menambahkan ".." ke nama direktori menghasilkan jalur kosong. Dengan cara yang sama, inversi moniker biasanya juga merupakan inversi dari semua moniker di kelas yang sama. Namun, itu belum tentu merupakan inversi dari moniker dari kelas yang berbeda.

Inversi moniker komposit adalah komposit yang terdiri dari inversi komponen moniker asli, diatur dalam urutan terbalik. Misalnya, jika inversi A adalah Inv( A ) dan komposit A, B, dan C adalah Comp( A, B, C ), maka

Inv( Comp( A, B, C ) ) sama dengan Comp( Inv( C ), Inv( B ), Inv( A ) ).

Tidak semua moniker memiliki inversi. Sebagian besar moniker yang terbalik, seperti anti-moniker, tidak memiliki inversi. Moniker yang tidak memiliki inversi tidak dapat memiliki moniker relatif yang terbentuk dari dalam objek yang mereka identifikasi ke objek lain di luar.

Catatan untuk Penelepon

Objek yang menggunakan moniker untuk menemukan objek lain biasanya tidak tahu kelas moniker yang digunakannya. Untuk mendapatkan inversi moniker, Anda harus selalu memanggil IMoniker::Inverse daripada fungsi CreateAntiMoniker , karena Anda tidak dapat yakin bahwa moniker yang Anda gunakan menganggap anti-moniker sebagai inversinya.

Metode Inverse juga dipanggil oleh implementasi metode IMoniker::RelativePathTo , untuk membantu membangun moniker relatif.

Catatan untuk Pelaksana

Jika moniker Anda tidak memiliki struktur internal, Anda dapat memanggil fungsi CreateAntiMoniker untuk mendapatkan anti-moniker dalam implementasi IMoniker::Inverse Anda. Dalam implementasi IMoniker::ComposeWith, Anda perlu memeriksa inversi yang Anda berikan dalam implementasi Inverse.

Catatan khusus implementasi

Implementasi Catatan
Anti-moniker Metode ini mengembalikan MK_E_NOINVERSE dan mengatur *ppmk ke NULL.
Moniker kelas Metode ini mengembalikan anti-moniker (yaitu, hasil pemanggilan CreateAntiMoniker).
Moniker file Metode ini mengembalikan anti-moniker (yaitu, hasil pemanggilan CreateAntiMoniker).
Moniker komposit generik Metode ini mengembalikan moniker komposit yang terdiri dari inversi masing-masing komponen komposit asli, disimpan dalam urutan terbalik. Misalnya, jika inversi A adalah Inv( A ), inversi dari komposit A, B, dan C adalah Comp(Inv( C ), Inv( B ), Inv( A ) .
Moniker item Metode ini mengembalikan anti-moniker (yaitu, hasil pemanggilan CreateAntiMoniker).
Moniker OBJREF Metode ini mengembalikan anti-moniker (yaitu, hasil pemanggilan CreateAntiMoniker).
Penunjuk moniker Metode ini mengembalikan anti-moniker (yaitu, hasil pemanggilan CreateAntiMoniker).
Moniker URL Metode ini mengembalikan MK_E_NOINVERSE dan mengatur *ppmk ke NULL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header objidl.h

Lihat juga

CreateAntiMoniker

IMoniker