Metode IObjectContext::CreateInstance (comsvcs.h)
Membuat objek menggunakan konteks objek saat ini.
Sintaks
HRESULT CreateInstance(
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID *ppv
);
Parameter
[in] rclsid
CLSID dari jenis objek yang akan diinstansiasi.
[in] riid
Antarmuka apa pun yang diimplementasikan oleh objek yang ingin Anda buat instansnya.
[out] ppv
Referensi ke antarmuka yang diminta pada objek baru. Jika instansiasi gagal, parameter ini diatur ke NULL.
Nilai kembali
Metode ini dapat mengembalikan nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil diselesaikan. |
|
Komponen yang ditentukan oleh clsid tidak terdaftar sebagai komponen COM. |
|
Tidak tersedia cukup memori untuk membuat instans objek. |
|
Argumen yang diteruskan dalam parameter ppvObj tidak valid. |
|
Terjadi kesalahan tak terduga. Ini dapat terjadi jika satu objek meneruskan penunjuk IObjectContext ke objek lain dan objek lainnya memanggil CreateInstance menggunakan pointer ini. Penunjuk IObjectContext tidak valid di luar konteks objek yang awalnya mendapatkannya. |
Keterangan
CreateInstance membuat objek COM. Namun, objek akan memiliki konteks hanya jika komponennya terdaftar dengan COM+.
Saat Anda membuat objek dengan menggunakan CreateInstance, konteks objek baru berasal dari IObjectContext objek saat ini dan properti deklaratif komponen objek baru. Objek baru selalu dijalankan dalam aktivitas yang sama dengan objek yang membuatnya. Jika objek saat ini memiliki transaksi, atribut transaksi komponen objek baru menentukan apakah objek baru dijalankan dalam cakupan transaksi tersebut.
Jika pengaturan atribut transaksi komponen memerlukan transaksi atau mendukung transaksi, objek baru mewarisi transaksi pembuatnya. Jika atribut transaksi komponen memerlukan transaksi baru, COM+ memulai transaksi baru untuk objek baru. Jika atribut transaksi komponen tidak mendukung transaksi, objek baru tidak dijalankan di bawah transaksi apa pun.
CreateInstance selalu mengembalikan antarmuka IUnknown pada objek yang baru dibuat. Anda harus segera mentransmisikan nilai yang dikembalikan ke antarmuka tempat Anda ingin berkomunikasi dengan objek baru. ID antarmuka yang Anda berikan dalam parameter riid tidak perlu menjadi antarmuka yang sama dengan yang Anda berikan nilai yang dikembalikan, tetapi harus menjadi antarmuka yang diimplementasikan oleh objek yang Anda buat.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | comsvcs.h |