Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menunjukkan bahwa kustom atau dispinterface yang ditentukan dalam kolase mewakili antarmuka keterprograman default.
Sintaks
[ default(interface1, interface2) ]
Parameter
interface1
Antarmuka default yang akan tersedia untuk lingkungan pembuatan skrip yang membuat objek berdasarkan kelas yang ditentukan dengan default atribut .
Jika tidak ada antarmuka default yang ditentukan, kemunculan pertama antarmuka nonsource digunakan sebagai default.
interface2
(Opsional) Antarmuka sumber default. Anda juga harus menentukan antarmuka ini dengan atribut sumber .
Jika tidak ada antarmuka sumber default yang ditentukan, antarmuka sumber pertama digunakan sebagai default.
Keterangan
Atribut default C++ memiliki fungsionalitas yang sama dengan atribut MIDL default . Atribut default ini juga digunakan dengan atribut case .
Contoh
Kode berikut menunjukkan bagaimana default digunakan pada definisi kolase untuk menentukan ICustomDispatch sebagai antarmuka kemampuan pemrograman default:
// cpp_attr_ref_default.cpp
// compile with: /LD
#include "windows.h"
[module(name="MyLibrary")];
[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]
__interface ICustom {
HRESULT Custom([in] long l, [out, retval] long *pLong);
};
[dual, uuid("9E66A291-4365-11D2-A997-00C04FA37DDB")]
__interface IDual {
HRESULT Dual([in] long l, [out, retval] long *pLong);
};
[object, uuid("9E66A293-4365-11D2-A997-00C04FA37DDB")]
__interface ICustomDispatch : public IDispatch {
HRESULT Dispatch([in] long l, [out, retval] long *pLong);
};
[ coclass, default(ICustomDispatch), source(IDual), uuid("9E66A294-4365-11D2-A997-00C04FA37DDB")
]
class CClass : public ICustom, public IDual, public ICustomDispatch {
HRESULT Custom(long l, long *pLong) { return(S_OK); }
HRESULT Dual(long l, long *pLong) { return(S_OK); }
HRESULT Dispatch(long l, long *pLong) { return(S_OK); }
};
int main() {
#if 0 // Can't instantiate without implementations of IUnknown/IDispatch
CClass *pClass = new CClass;
long llong;
pClass->custom(1, &llong);
pClass->dual(1, &llong);
pClass->dispinterface(1, &llong);
pClass->dispatch(1, &llong);
delete pClass;
#endif
return(0);
}
Atribut sumber juga memiliki contoh cara menggunakan default.
Persyaratan
| Konteks atribut | Nilai |
|---|---|
| Berlaku untuk | class, struct, anggota data |
| Berulang | No |
| Atribut yang diperlukan | coclass (ketika diterapkan ke class atau struct) |
| Atribut tidak valid | Tidak |
Untuk informasi selengkapnya, lihat Konteks Atribut.