Antarmuka (COM)

Antarmuka berikut disediakan oleh COM.

Antarmuka Deskripsi
IAccessControl Memungkinkan manajemen akses ke objek dan properti pada objek.
IAgileObject Menandai antarmuka sebagai agile di seluruh apartemen.
IBindCtx Menyediakan akses ke konteks pengikatan, yang merupakan objek yang menyimpan informasi tentang operasi pengikatan moniker tertentu.
IBlockingLock Menyediakan semaphore yang dapat digunakan untuk menyediakan akses eksklusif sementara ke sumber daya bersama seperti file.
ICallFactory Membuat objek panggilan untuk memproses panggilan ke metode antarmuka asinkron.
ICallFrame Memungkinkan manipulasi bingkai panggilan seperti bingkai tumpukan. Bingkai panggilan adalah isi informasi yang harus disimpan prosedur untuk memungkinkannya kembali dengan benar ke pemanggilnya. Bingkai panggilan mungkin ada di tumpukan atau dalam register. Bingkai tumpukan mempertahankan informasi konteks pemanggilnya pada tumpukan.
ICallFrameEvents Memberikan pemberitahuan panggilan metode.
ICallFrameWalker Berjalan dengan bingkai tumpukan mencari nilai yang menarik.
ICallIndirect Memanggil objek dengan referensi tidak langsung ke argumen pemanggilan, bukan panggilan langsung tradisional.
ICallInterceptor Mendukung pendaftaran dan pembukaan pendaftaran sink peristiwa yang ingin diberi tahu tentang panggilan yang dilakukan langsung di antarmuka. Selain itu, antarmuka ini menyediakan sarana di mana pemanggilan dapat dilakukan dengan referensi tidak langsung ke argumen pemanggilan.
ICallUnmarshal Digunakan pada sisi server (penerimaan) dari pemanggilan jarak jauh. Instans ICallUnmarshal yang sesuai dapat digunakan untuk mengubah kembali menjadi bingkai panggilan pemanggilan metode yang sebelumnya dinamai oleh panggilan ke ICallFrame::Marshal di sisi klien (pengiriman).
ICancelMethodCalls Mengelola permintaan pembatalan pada panggilan metode keluar dan memantau status panggilan metode saat ini pada utas server.
ICatInformation Mendapatkan informasi tentang kategori yang diimplementasikan atau diperlukan oleh kelas tertentu, serta informasi tentang kategori yang terdaftar di komputer yang ditentukan.
ICatRegister Menyediakan metode untuk mendaftarkan dan membatalkan pendaftaran informasi kategori komponen dalam registri. Ini termasuk nama kategori yang dapat dibaca manusia dan kategori yang diimplementasikan/diperlukan oleh komponen atau kelas tertentu.
IClassActivator Menentukan metode yang mengambil objek kelas.
IClassFactory Memungkinkan kelas objek dibuat.
IClassFactory2 Mengaktifkan objek pabrik kelas, di server objek apa pun, untuk mengontrol pembuatan objek melalui lisensi.
IClientSecurity Memberikan kontrol klien atas pengaturan keamanan untuk setiap proksi antarmuka individual objek.
IComThreadingInfo Memungkinkan Anda untuk mendapatkan informasi berikut tentang apartemen dan utas yang dijalankan pemanggil: jenis apartemen, jenis utas, dan GUID utas. Ini juga memungkinkan Anda menentukan GUID utas.
I Koneksi ionPoint Mendukung titik koneksi untuk objek yang dapat dihubungkan.
I Koneksi ionPointContainer Mendukung titik koneksi untuk objek yang dapat dihubungkan.
IContext Mendukung pengaturan properti konteks COM+.
IContextCallback Menyediakan mekanisme untuk menjalankan fungsi di dalam konteks objek COM+ tertentu.
IContinueCallback Menyediakan mekanisme panggilan balik generik untuk proses yang dapat diinterupsi yang harus secara berkala menanyakan objek apakah akan dilanjutkan.
IEnumCATID Menghitung pengidentifikasi kategori.
IEnumCLSID Menghitung pengidentifikasi kelas.
IEnumCATEGORYINFO Menghitung kategori komponen yang terdaftar dalam sistem.
IEnum Koneksi ionPoints Menghitung titik koneksi.
IEnum Koneksi ions Menghitung koneksi saat ini untuk objek yang dapat dihubungkan.
IEnumContextProps Menyediakan mekanisme untuk menghitung properti konteks yang terkait dengan konteks objek COM+.
IEnumGUID Memungkinkan klien menghitung melalui kumpulan ID kelas untuk kelas COM.
IEnumString Menghitung string. LPWSTR adalah jenis yang menunjukkan penunjuk ke string lebar yang dihentikan nol, atau karakter Unicode.
IEnumUnknown Menghitung objek dengan antarmuka IUnknown. Ini dapat digunakan untuk menghitung melalui objek dalam komponen yang berisi beberapa objek.
IEventProperty Mengaitkan properti peristiwa bernama dengan nilainya.
IEventPublisher Mendaftarkan, memodifikasi, menghapus, dan menyediakan informasi tentang penerbit peristiwa.
IExternal Koneksi ion Mengelola jumlah objek server yang di-marshal, atau eksternal, koneksi. Server yang mempertahankan hitungan seperti itu dapat mendeteksi ketika tidak memiliki koneksi eksternal dan mematikan dirinya dengan teratur.
IFastRundown Menandai antarmuka sebagai memenuhi syarat untuk perilaku rundown yang cepat.
IFileBasedLogInit Menginisialisasi instans implementasi ILog berbasis file.
IForegroundTransfer Mentransfer jendela latar depan ke proses yang menghosting server COM.
IGlobalInterfaceTable Memungkinkan setiap apartemen dalam proses untuk mendapatkan akses ke antarmuka yang diimplementasikan pada objek di apartemen lain dalam proses.
IGlobalOptions Mengatur dan mengkueri properti global tertentu dari runtime COM.
IInitializeSpy Melakukan inisialisasi atau pembersihan saat memasuki atau keluar dari apartemen COM.
IInternalUnknown Digunakan secara eksklusif di handler sisi klien ringan yang memerlukan akses ke beberapa antarmuka internal pada proksi.
ILog Menyediakan fungsionalitas pengelogan tingkat rendah generik.
IMalloc Mengalokasikan, membebaskan, dan mengelola memori.
IMallocSpy Memungkinkan pengembang aplikasi untuk memantau (memata-matai) alokasi memori, mendeteksi kebocoran memori, dan mensimulasikan kegagalan memori dalam panggilan ke metode IMalloc.
IMarshal Memungkinkan objek COM untuk menentukan dan mengelola marshaling penunjuk antarmukanya.
IMarshalingStream Menyediakan informasi tambahan tentang konteks marshaling ke objek dan unmarshalers yang di-marshalasi kustom.
IMessageFilter Menyediakan server dan aplikasi COM dengan kemampuan untuk menangani pesan COM masuk dan keluar secara selektif sambil menunggu respons dari panggilan sinkron. Pemfilteran pesan membantu memastikan bahwa panggilan ditangani dengan cara yang meningkatkan performa dan menghindari kebuntuan. Pesan COM dapat sinkron, asinkron, atau disinkronkan input; sebagian besar panggilan antarmuka sinkron.
IMoniker Memungkinkan Anda menggunakan objek moniker, yang berisi informasi yang secara unik mengidentifikasi objek COM. Objek yang memiliki penunjuk ke antarmuka IMoniker objek moniker dapat menemukan, mengaktifkan, dan mendapatkan akses ke objek yang diidentifikasi tanpa memiliki informasi spesifik lainnya di mana objek sebenarnya terletak dalam sistem terdistribusi.
IMultiQI Memungkinkan klien untuk mengkueri proksi objek, atau handler, untuk beberapa antarmuka dengan menggunakan satu panggilan RPC. Dengan menggunakan antarmuka ini, alih-alih mengandalkan panggilan terpisah ke IUnknown::QueryInterface, klien dapat mengurangi jumlah panggilan RPC yang harus melewati batas alur, proses, atau mesin dan, oleh karena itu, jumlah waktu yang diperlukan untuk mendapatkan pointer antarmuka yang diminta.
IObjContext Melakukan berbagai operasi pada konteks.
IOleItemContainer Digunakan oleh moniker item saat terikat ke objek yang mereka identifikasi.
IOrpcDebugNotify Menyediakan fungsionalitas penelusuran kesalahan jarak jauh.
IParseDisplayName Mengurai string nama yang dapat ditampilkan untuk mengonversinya menjadi moniker untuk implementasi moniker kustom.
IPersist Menyediakan CLSID objek yang dapat disimpan secara persisten dalam sistem. Memungkinkan objek untuk menentukan handler objek mana yang akan digunakan dalam proses klien, karena digunakan dalam implementasi default marshaling.
IPersistFile Memungkinkan objek dimuat dari atau disimpan ke file disk, bukan objek penyimpanan atau aliran.
IPersistStorage Memungkinkan aplikasi kontainer untuk meneruskan objek penyimpanan ke salah satu objek yang terkandung dan memuat dan menyimpan objek penyimpanan.
IPersistStream Memungkinkan penyimpanan dan pemuatan objek yang menggunakan aliran serial sederhana untuk kebutuhan penyimpanan mereka.
IPersistStreamInit Penggantian untuk IPersistStream yang menambahkan metode inisialisasi.
IPipeByte Mentransfer data dari jenis byte (yaitu lebar 8 bit).
IPipeDouble Mentransfer data jenis ganda (yaitu lebar 64 bit).
IPipeLong Mentransfer data jenis bilangan bulat panjang (yaitu lebar 32 bit).
IProcessInitControl Menentukan interval waktu habis inisialisasi proses.
IProcessLock Digunakan oleh ISurrogateService untuk mencegah proses berakhir karena waktu habis.
IProgressNotify Memungkinkan aplikasi dan objek lain menerima pemberitahuan perubahan dalam kemajuan operasi pengunduhan.
IProvideClassInfo Menyediakan akses ke informasi jenis untuk entri kolas objek di pustaka jenisnya.
IProvideClassInfo2 Ekstensi untuk IProvideClassInfo yang membuat lebih cepat dan lebih mudah untuk mengambil IID antarmuka keluar objek untuk kumpulan peristiwa defaultnya.
IProvideMultipleClassInfo Ekstensi untuk IProvideClassInfo2 yang membuatnya lebih cepat dan lebih mudah untuk mengambil informasi jenis dari komponen yang mungkin memiliki beberapa kolase yang menentukan perilakunya.
IPSFactoryBuffer Menyediakan metode kustom untuk pembuatan proksi objek COM dan stub. Antarmuka ini tidak dapat di-marshal.
IROTData Diimplementasikan oleh monikers untuk mengaktifkan tabel objek yang sedang berjalan (ROT) untuk membandingkan moniker satu sama lain.
IRpcChannelBuffer Marshals data antara proksi klien COM dan stub server COM.
IRpcOptions Memungkinkan penelepon untuk mengatur atau mengkueri nilai berbagai properti yang mengontrol cara COM menangani panggilan prosedur jarak jauh (RPC).
IRpcProxyBuffer Mengontrol proksi RPC yang digunakan untuk marshal data antar komponen COM.
IRpcStubBuffer Mengontrol stub RPC yang digunakan untuk marshal data antar komponen COM.
IRunnableObject Memungkinkan kontainer untuk mengontrol berjalannya objek yang disematkan. Dalam kasus objek yang diimplementasikan dengan server lokal, memanggil metode Jalankan meluncurkan file .EXE server. Dalam kasus objek yang diimplementasikan dengan server dalam proses, memanggil Jalankan menyebabkan file .DLL objek beralih ke status berjalan.
IRunningObjectTable Mengelola akses ke tabel objek yang sedang berjalan (ROT), tabel pencarian yang dapat diakses secara global di setiap stasiun kerja. ROT stasiun kerja melacak objek yang dapat diidentifikasi oleh moniker dan yang saat ini berjalan di stasiun kerja. Ketika klien mencoba mengikat moniker ke objek, moniker memeriksa ROT untuk melihat apakah objek sudah berjalan; ini memungkinkan moniker untuk mengikat ke instans saat ini alih-alih memuat yang baru.
IServerSecurity Digunakan oleh server untuk membantu mengautentikasi klien dan mengelola peniruan identitas klien.
IStdMarshalInfo Mengambil CLSID yang mengidentifikasi handler yang akan digunakan dalam proses tujuan selama marshaling standar.
ISurrogate Digunakan untuk memuat server DLL baru secara dinamis ke pengganti yang ada dan membebaskan pengganti ketika tidak lagi diperlukan.
ISurrogateService Digunakan untuk menginisialisasi, meluncurkan, dan merilis aplikasi COM+. Anda juga dapat me-refresh katalog dan mematikan proses.
ISynchronize Menyediakan komunikasi asinkron antara objek tentang terjadinya suatu peristiwa. Objek yang mengimplementasikan ISynchronize dapat menerima indikasi bahwa suatu peristiwa telah terjadi, dan mereka dapat menanggapi kueri tentang peristiwa tersebut. Dengan cara ini, klien dapat memastikan bahwa satu permintaan telah diproses sebelum mereka mengirimkan permintaan berikutnya yang tergantung pada penyelesaian permintaan pertama.
ISynchronizeContainer Mengelola sekelompok objek sinkronisasi yang tidak ditandatangani.
ISynchronizeEvent Menetapkan handel peristiwa ke objek sinkronisasi.
ISynchronizeHandle Mengambil handel yang terkait dengan objek sinkronisasi.
IUnknown Memungkinkan klien untuk mendapatkan penunjuk ke antarmuka lain pada objek tertentu melalui metode QueryInterface, dan mengelola keberadaan objek melalui metode AddRef dan Rilis. Semua antarmuka COM lainnya diwariskan, secara langsung atau tidak langsung, dari IUnknown. Oleh karena itu, tiga metode di IUnknown adalah entri pertama dalam VTable untuk setiap antarmuka.