atribut ganda

Atribut ganda mengidentifikasi antarmuka yang mengekspos properti dan metode melalui IDispatch dan langsung melalui VTBL.

[
    uuid(uuid-number), 
    oleautomation,
    dual 
  [ , optional-attribute-list]
]
interface interface-name
{
    . . .
};

Parameter

uuid-number

Menentukan nomor identifikasi unik universal untuk antarmuka

optional-attribute-list

Menentukan daftar atribut MIDL tambahan atau nol atau lebih.

nama antarmuka

Nama antarmuka tempat atribut ganda akan diterapkan.

Keterangan

Antarmuka yang diidentifikasi oleh atribut ganda harus kompatibel dengan Automation dan berasal dari IDispatch. Atribut ini tidak diizinkan pada dispinterfaces.

Atribut ganda membuat antarmuka yang merupakan antarmuka IDispatch dan antarmuka Component Object Model (COM). Tujuh entri pertama VTBL untuk antarmuka ganda adalah tujuh anggota IDispatch, dan entri yang tersisa adalah untuk akses langsung ke anggota antarmuka ganda. Semua parameter dan jenis pengembalian yang ditentukan untuk anggota antarmuka ganda harus jenis yang kompatibel dengan Automation.

Semua anggota antarmuka ganda harus melewati HRESULT sebagai nilai pengembalian fungsi. Anggota, seperti fungsi pengaktif properti, yang perlu mengembalikan nilai lain, harus menentukan parameter terakhir sebagai out, retval, yang menunjukkan parameter output yang mengembalikan nilai fungsi. Selain itu, anggota yang perlu mendukung beberapa lokal harus melewati parameter lcid .

Antarmuka ganda menyediakan kecepatan pengikatan VTBL langsung dan fleksibilitas pengikatan IDispatch . Untuk alasan ini, antarmuka ganda disarankan jika memungkinkan.

Catatan

Jika aplikasi Anda mengakses data objek dengan mentransmisikan pointer ini dalam panggilan antarmuka, Anda harus memeriksa pointer VTBL dalam objek terhadap pointer VTBL Anda sendiri untuk memastikan bahwa Anda terhubung ke proksi yang sesuai.

 

Menentukan ganda pada antarmuka menyiratkan bahwa antarmuka kompatibel dengan Automation, dan karenanya menyebabkan bendera TYPEFLAG_FDUAL dan TYPEFLAG_FOLEAUTOMATION diatur.

Bendera

TYPEFLAG_FDUAL, TYPEFLAG_FOLEAUTOMATION

Contoh

[
    uuid(1e196b20-1f3c-1069-996b-00dd010fe676), 
    oleautomation, dual
]
interface IHello : IDispatch
{
    //Diverse properties and methods defined here.
};

Lihat juga

Membuat Pustaka Jenis Dengan MIDL

Antarmuka

Icid

oleautomation

Sintaks File ODL

Contoh File ODL

Out ekspres

retval