Fungsi CoRegisterClassObject (combaseapi.h)
Mendaftarkan objek kelas EXE dengan OLE sehingga aplikasi lain dapat terhubung ke objek tersebut.
Sintaks
HRESULT CoRegisterClassObject(
[in] REFCLSID rclsid,
[in] LPUNKNOWN pUnk,
[in] DWORD dwClsContext,
[in] DWORD flags,
[out] LPDWORD lpdwRegister
);
Parameter
[in] rclsid
CLSID yang akan didaftarkan.
[in] pUnk
Pointer ke antarmuka IUnknown pada objek kelas yang ketersediaannya sedang diterbitkan.
[in] dwClsContext
Konteks di mana kode yang dapat dieksekusi akan dijalankan. Untuk informasi tentang nilai konteks ini, lihat enumerasi CLSCTX .
[in] flags
Menunjukkan bagaimana koneksi dibuat ke objek kelas. Untuk informasi tentang bendera ini, lihat enumerasi REGCLS .
[out] lpdwRegister
Penunjuk ke nilai yang mengidentifikasi objek kelas yang terdaftar; kemudian digunakan oleh fungsi CoRevokeClassObject untuk mencabut pendaftaran.
Nilai kembali
Fungsi ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, E_OUTOFMEMORY, dan E_UNEXPECTED, serta nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Objek kelas berhasil didaftarkan. |
Keterangan
Aplikasi objek EXE harus memanggil CoRegisterClassObject saat startup. Ini juga dapat digunakan untuk mendaftarkan objek internal untuk digunakan oleh EXE yang sama atau kode lain (seperti DLL) yang digunakan EXE. Hanya aplikasi objek EXE yang memanggil CoRegisterClassObject. Penangan objek atau aplikasi objek DLL tidak memanggil fungsi ini — sebagai gantinya, mereka harus mengimplementasikan dan mengekspor fungsi DllGetClassObject .
Saat startup, aplikasi objek EXE multi-penggunaan harus membuat objek kelas (dengan antarmuka IClassFactory di dalamnya), dan memanggil CoRegisterClassObject untuk mendaftarkan objek kelas. Aplikasi objek yang mendukung beberapa kelas yang berbeda (seperti beberapa jenis objek yang dapat disematkan) harus mengalokasikan dan mendaftarkan objek kelas yang berbeda untuk masing-masing kelas.
Beberapa pendaftaran objek kelas yang sama bersifat independen dan tidak menghasilkan kesalahan. Setiap pendaftaran berikutnya menghasilkan kunci unik di lpdwRegister.
Beberapa aplikasi antarmuka dokumen (MDI) harus mendaftarkan objek kelas mereka. Aplikasi antarmuka dokumen tunggal (SDI) harus mendaftarkan objek kelas mereka hanya jika dapat dimulai dengan sakelar /Embedding .
Server untuk objek kelas harus memanggil CoRevokeClassObject untuk mencabut objek kelas (menghapus pendaftarannya) ketika semua hal berikut ini benar:
- Tidak ada instans definisi objek yang ada.
- Tidak ada kunci pada objek kelas.
- Aplikasi yang menyediakan layanan ke objek kelas tidak berada di bawah kontrol pengguna (tidak terlihat oleh pengguna pada tampilan).
Pada Windows Server 2003, jika aplikasi objek COM terdaftar sebagai layanan, COM memverifikasi pendaftaran. COM memastikan ID proses layanan, di manajer kontrol layanan (SCM), cocok dengan ID proses proses pendaftaran. Jika tidak, COM gagal dalam pendaftaran. Jika aplikasi objek COM berjalan di akun sistem tanpa kunci registri, COM memperlakukan identitas aplikasi objek sebagai Pengguna Peluncuran.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | combaseapi.h (termasuk Objbase.h) |
Pustaka | Ole32.lib |
DLL | Ole32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk