Fungsi CoCreateInstanceFromApp (combaseapi.h)

Membuat instans kelas tertentu di komputer tertentu dari dalam kontainer aplikasi.

Sintaks

HRESULT CoCreateInstanceFromApp(
  [in]           REFCLSID Clsid,
  [in, optional] IUnknown *punkOuter,
  [in]           DWORD    dwClsCtx,
  [in, optional] PVOID    reserved,
  [in]           DWORD    dwCount,
  [in, out]      MULTI_QI *pResults
);

Parameter

[in] Clsid

CLSID objek yang akan dibuat.

[in, optional] punkOuter

Jika parameter ini non-NULL, menunjukkan instans sedang dibuat sebagai bagian dari agregat, dan punkOuter akan digunakan sebagai IUnknown pengendali instans baru. Agregasi saat ini tidak didukung lintas proses atau lintas komputer. Saat membuat instans objek di luar proses, CLASS_E_NOAGGREGATION akan dikembalikan jika punkOuter bukan NULL.

[in] dwClsCtx

Nilai dari enumerasi CLSCTX .

[in, optional] reserved

Disiapkan untuk penggunaan masa mendatang.

[in] dwCount

Jumlah struktur dalam pResults. Nilai ini harus lebih besar dari 0.

[in, out] pResults

Array struktur MULTI_QI . Setiap struktur memiliki tiga anggota: pengidentifikasi untuk antarmuka yang diminta (pIID), lokasi untuk mengembalikan penunjuk antarmuka (pItf) dan nilai pengembalian panggilan ke QueryInterface (jam).

Nilai kembali

Fungsi ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
Menunjukkan keberhasilan.
REGDB_E_CLASSNOTREG
Kelas tertentu tidak terdaftar dalam database pendaftaran, atau kelas tidak didukung dalam kontainer aplikasi. Juga dapat menunjukkan bahwa jenis server yang Anda minta dalam enumerasi CLSCTX tidak terdaftar atau nilai untuk jenis server di registri rusak.
CLASS_E_NOAGGREGATION
Kelas ini tidak dapat dibuat sebagai bagian dari agregat.
CO_S_NOTALLINTERFACES
Setidaknya satu, tetapi tidak semua antarmuka yang diminta dalam array pResults berhasil diambil. Anggota jam dari masing-masing struktur MULTI_QI dalam pResults menunjukkan dengan S_OK atau E_NOINTERFACE apakah antarmuka tertentu dikembalikan.
E_NOINTERFACE
Tidak ada antarmuka yang diminta dalam array pResults yang berhasil diambil.

Keterangan

Fungsi CoCreateInstanceFromApp sama dengan fungsi CoCreateInstanceEx , dengan perbedaan berikut.

  • Fungsi CoCreateInstanceFromApp membaca pendaftaran kelas hanya dari konteks aplikasi, dan dari hive registri HKLM\SOFTWARE\Classes\CLSID.
  • Hanya kelas bawaan yang didukung dalam kontainer aplikasi yang disediakan. Upaya untuk mengaktifkan kelas yang tidak didukung, termasuk semua kelas yang diinstal oleh kode pihak ketiga serta banyak kelas Windows, menghasilkan kode kesalahan REGDB_E_CLASSNOTREG.
  • Fungsi CoCreateInstanceFromApp tersedia untuk aplikasi Windows Store. Aplikasi desktop dapat memanggil fungsi ini, tetapi memiliki batasan yang sama dengan aplikasi Bursa Windows.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header combaseapi.h
Pustaka Combase.lib
DLL Combase.dll

Lihat juga

CoCreateInstanceEx

Fusi (Referensi API Tidak Terkelola)