Metode IClassFactory2::CreateInstanceLic (ocidl.h)

Membuat instans objek berlisensi untuk kunci lisensi yang ditentukan. Metode ini adalah satu-satunya cara yang mungkin untuk membuat objek pada mesin yang tidak berlisensi.

Sintaks

HRESULT CreateInstanceLic(
  [in]  IUnknown *pUnkOuter,
  [in]  IUnknown *pUnkReserved,
  [in]  REFIID   riid,
  [in]  BSTR     bstrKey,
  [out] PVOID    *ppvObj
);

Parameter

[in] pUnkOuter

Penunjuk ke antarmuka IUnknown yang mengontrol di luar tidak diketahui jika objek ini sedang dibuat sebagai bagian dari agregat. Jika objek bukan bagian dari agregat, parameter ini harus NULL.

[in] pUnkReserved

Parameter ini tidak digunakan dan harus NULL.

[in] riid

Referensi ke pengidentifikasi antarmuka yang akan digunakan untuk berkomunikasi dengan objek yang baru dibuat.

[in] bstrKey

Kunci lisensi run-time yang sebelumnya diperoleh dari IClassFactory2::RequestLicKey yang diperlukan untuk membuat objek.

[out] ppvObj

Alamat variabel pointer yang menerima pointer antarmuka yang diminta dalam riid. Setelah berhasil kembali, *ppvObj berisi penunjuk antarmuka yang diminta. Jika terjadi kesalahan, implementasi harus mengatur *ppvObj ke NULL.

Nilai kembali

Metode ini dapat mengembalikan nilai pengembalian standar E_INVALIDARG, E_OUTOFMEMORY, dan E_UNEXPECTED, serta nilai berikut.

Menampilkan kode Deskripsi
S_OK
Lisensi berhasil dibuat.
E_NOTIMPL
Metode ini tidak diimplementasikan karena objek hanya dapat dibuat pada komputer berlisensi penuh melalui IClassFactory::CreateInstance.
E_POINTER
Pointer yang diteruskan dalam bstrKey atau ppvObj tidak valid. Misalnya, mungkin NULL.
E_NOINTERFACE
Objek dapat dibuat (dan kunci lisensi valid) kecuali objek tidak mendukung antarmuka yang ditentukan oleh riid.
CLASS_E_NOAGGREGATION
Parameter pUnkOuter bukan NULL, tetapi kelas objek ini tidak mendukung agregasi.
CLASS_E_NOTLICENSED
Kunci yang disediakan dalam bstrKey bukan kunci lisensi yang valid.

Keterangan

Catatan untuk Pelaksana

Jika pabrik kelas tidak menyediakan kunci lisensi (yaitu, IClassFactory2::RequestLicKey mengembalikan E_NOTIMPL dan anggota fRuntimeKeyAvail di LICINFO diatur ke FALSE di IClassFactory2::GetLicInfo), maka metode ini juga dapat mengembalikan E_NOTIMPL. Dalam kasus seperti itu, pabrik kelas menerapkan IClassFactory2 hanya untuk menentukan apakah mesin dilisensikan sama sekali melalui anggota LICINFOfLicVerified.

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 ocidl.h

Lihat juga

IClassFactory2

LICINFO