Bagikan melalui


default (C++)

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.

Lihat juga

Atribut IDL
Atribut Kelas
coclass