Bagikan melalui


IUnknown dan Pewarisan Antarmuka

Pewarisan dalam COM tidak berarti penggunaan kembali kode. Karena tidak ada implementasi yang terkait dengan antarmuka, pewarisan antarmuka tidak berarti pewarisan kode. Ini berarti hanya bahwa kontrak yang terkait dengan antarmuka diwarisi dengan mode kelas dasar Murni-virtual C++ dan dimodifikasi - baik dengan menambahkan metode baru atau dengan lebih memenuhi syarat penggunaan metode yang diizinkan. Tidak ada pewarisan selektif dalam COM. Jika satu antarmuka mewarisi dari antarmuka lain, antarmuka tersebut mencakup semua metode yang ditentukan antarmuka lain.

Warisan digunakan dengan hemat di antarmuka COM yang telah ditentukan sebelumnya. Semua antarmuka yang telah ditentukan sebelumnya (dan antarmuka kustom apa pun yang Anda tentukan) mewarisi definisinya dari antarmuka penting IUnknown, yang berisi tiga metode penting: QueryInterface, AddRef, dan Release. Semua objek COM harus mengimplementasikan antarmuka IUnknown karena menyediakan cara, menggunakan QueryInterface, untuk bergerak bebas di antara antarmuka yang berbeda yang didukung objek serta sarana untuk mengelola masa pakainya dengan menggunakan AddRef dan Release.

Dalam membuat objek yang mendukung agregasi, Anda harus mengimplementasikan satu set fungsi IUnknown untuk semua antarmuka serta antarmuka IUnknown yang berdiri sendiri. Bagaimanapun, setiap implementor objek akan menerapkan metode IUnknown . Lihat bagian Menggunakan dan Menerapkan IUnknown untuk informasi selengkapnya.

Meskipun ada beberapa antarmuka yang mewarisi definisi mereka dari antarmuka kedua selain IUnknown, mayoritas hanya mewarisi metode antarmuka IUnknown. Ini membuat sebagian besar antarmuka relatif ringkas dan mudah dienkapsulasi.

Objek dan Antarmuka COM