atribut oleautomation
Atribut oleautomation menunjukkan bahwa antarmuka kompatibel dengan Automation.
[
oleautomation,
uuid(string-uuid)
[ , interface-attribute-list]
]
interface interface-name : base-interface
{
...
}
Parameter
-
string-uuid
-
Menentukan string UUID yang dihasilkan oleh utilitas Uuidgen.
-
daftar atribut antarmuka
-
Menentukan atribut lain yang berlaku untuk antarmuka secara keseluruhan.
-
nama antarmuka
-
Menentukan nama antarmuka.
-
antarmuka dasar
-
Menentukan nama antarmuka Automation tempat antarmuka turunan ini mewarisi fungsi anggota, kode status, dan atribut antarmuka. Semua antarmuka Automation berasal dari IUnknown atau IDispatch.
Keterangan
Parameter dan jenis pengembalian yang ditentukan untuk anggota antarmuka [oleautomation] harus kompatibel dengan Automation, seperti yang tercantum dalam tabel berikut.
Jenis | Deskripsi |
---|---|
boolean | Item data yang dapat memiliki nilai VARIANT_TRUE atau VARIANT_FALSE. Ukurannya sesuai dengan VARIANT_BOOL. |
char yang tidak bertanda | Item data 8-bit yang tidak ditandatangani. |
double | Angka titik float IEEE 64-bit. |
Float | Angka titik mengambang IEEE 32-bit. |
int | Bilangan bulat bertanda tangan, yang ukurannya bergantung pada sistem. Pada platform 32-bit, MIDL memperlakukan int sebagai bilangan bulat bertanda tangan 32-bit. |
panjang | Bilangan bulat bertanda tangan 32-bit. |
pendek | Bilangan bulat bertanda tangan 16-bit. |
BSTR | String awalan panjang, seperti yang dijelaskan dalam topik Automation BSTR. |
PENUKARAN VALUTA ASING | Angka floating-point tetap 8-byte. |
DATE | Jumlah fraksional titik pecahan 64-bit sejak 30 Desember 1899. |
SCODE | Untuk jenis kesalahan bawaan sistem 16-bit yang sesuai dengan VT_ERROR. |
Enum typedef  myenum | Bilangan bulat bertanda tangan, yang ukurannya bergantung pada sistem. |
Antarmuka IDispatch * | Arahkan ke antarmuka IDispatch (VT_DISPATCH). |
Antarmuka IUnknown * | Penunjuk ke antarmuka yang tidak berasal dari IDispatch (VT_UNKNOWN). (Antarmuka OLE apa pun dapat diwakili oleh antarmuka IUnknown-nya .) |
dispinterface  Typename * | Penunjuk ke antarmuka yang berasal dari IDispatch (VT_DISPATCH). |
Coclass  Typename * | Penunjuk ke nama coclass (VT_UNKNOWN). |
Antarmuka [oleautomation] Â Typename * | Penunjuk ke antarmuka yang berasal dari IUnknown. |
SAFEARRAY(TypeName) | TypeName adalah salah satu jenis di atas. Array dari jenis-jenis ini. |
TypeName * | TypeName adalah salah satu jenis di atas. Penunjuk ke jenis. |
Desimal | Bilangan bulat biner tidak bertanda 96-bit diskalakan oleh kekuatan variabel 10. Jenis data desimal yang menyediakan ukuran dan skala untuk angka (seperti dalam koordinat). |
Parameter kompatibel dengan Automation jika jenisnya adalah jenis yang kompatibel dengan Automation, penunjuk ke jenis yang kompatibel dengan Automation, atau SAFEARRAY dari jenis yang kompatibel dengan Automation.
Jenis pengembalian kompatibel dengan Automation jika jenisnya adalah HRESULT, SCODE, atau batal. Namun, MIDL mengharuskan metode antarmuka mengembalikan HRESULT atau SCODE. Mengembalikan kekosongan menghasilkan kesalahan pengkompilasi.
Anggota kompatibel dengan Automation jika jenis pengembaliannya dan semua parameternya kompatibel dengan Automation.
Antarmuka kompatibel dengan Automation jika berasal dari IDispatch atau IUnknown, antarmuka memiliki atribut [oleautomation ], dan semua entri VTBL-nya kompatibel dengan Automation. Untuk platform 32-bit, konvensi panggilan untuk semua metode dalam antarmuka harus STDCALL. Untuk sistem 16-bit, semua metode harus memiliki konvensi panggilan CDECL.
Setiap dispinterface secara implisit kompatibel dengan Automation. Oleh karena itu Anda tidak boleh menggunakan atribut [oleautomation] pada dispinterface.
Atribut [oleautomation] tidak tersedia saat Anda mengkompilasi menggunakan sakelar midl compiler /osf .
Bendera
TYPEFLAG_FOLEAUTOMATION
Contoh
library Hello
{
importlib("stdole32.tlb");
[
uuid(12345678-1234-1234-1234-123456789ABC),
helpstring("Application object for the Hello application."),
oleautomation,
dual
]
interface IHello : IDispatch
{
// Interface definition statements.
}
// Other library definition statements.
}
Lihat juga