Metode IDataModelManager2::AcquireNamedModel (dbgmodel.h)

AcquireNamedModel mencari nama model terkenal dan mengembalikan model data yang terdaftar dengan nama tersebut. Perhatikan bahwa jika tidak ada model yang terdaftar dengan nama yang disediakan, stub akan dibuat dan dikembalikan ke pemanggil.

Apa pun yang ditambahkan ke stub akan ditambahkan ke objek nyata pada saat pendaftaran dibuat.

Sintaks

HRESULT AcquireNamedModel(
  PCWSTR       modelName,
  IModelObject **modelObject
);

Parameter

modelName

Nama untuk mencari model data terdaftar.

modelObject

Model data yang terdaftar dengan nama yang diberikan oleh argumen modelName akan dikembalikan di sini. Jika tidak ada model data tersebut yang terdaftar, objek stub akan dibuat, didaftarkan sementara dengan nama yang diberikan oleh argumen modelName dan dikembalikan di sini. Jika hal tersebut terjadi, ketika objek nyata didaftarkan melalui panggilan ke metode RegisterNamedModel, perubahan yang dilakukan pada objek stub, berlaku, dipindahkan ke model data nyata.

Nilai kembali

Metode ini mengembalikan HRESULT.

Keterangan

Penelepon yang ingin memperluas model data yang terdaftar dengan nama tertentu memanggil metode AcquireNamedModel untuk mengambil objek untuk model data yang ingin mereka perluas. Metode ini akan mengembalikan model data apa pun yang didaftarkan melalui panggilan sebelumnya ke metode RegisterNamedModel.

Sebagai tujuan utama metode AcquireNamedModel adalah untuk memperluas model, metode ini memiliki perilaku khusus jika belum ada model yang terdaftar dengan nama yang diberikan. Jika belum ada model yang terdaftar dengan nama yang diberikan, objek stub dibuat, didaftarkan sementara dengan nama yang diberikan, dan dikembalikan ke pemanggil. Ketika model data nyata didaftarkan melalui panggilan ke metode RegisterNamedModel, setiap perubahan yang dilakukan pada objek stub, berlaku, dibuat pada model nyata. Ini menghapus banyak masalah dependensi urutan beban dari komponen yang saling memperluas.

Kode Sampel

ComPtr<IDataModelManager2> spManager;    /* get the data model manager */
ComPtr<IModelObject> spExtensionModel;  /* create a data model object you want 
                                           to use as an extension (see
                                           CreateDataModelObject) */

// Get the process model so we can extend it
ComPtr<IModelObject> spProcessModel;
if (SUCCEEDED(spManager->AcquireNamedModel(L"Debugger.Models.Process", 
                                           &spProcessModel)))
{
    // We have the process model and can extend it.  Even if the name we queried 
    // for is *NOT* yet registered, we can extend what gets returned (a stub)
    // and the extensions on it will be moved to the real object 
    // once RegisterNamedModel() is called.
    if (SUCCEEDED(spProcessModel->AddParentModel(spExtensionModel.Get(), 
                                                 nullptr, 
                                                 false)))
    {
        // We have successfully extended the debugger's concept of a 
        // process with whatever we have in spExtensionModel!
    }
}

Persyaratan

Persyaratan Nilai
Header dbgmodel.h

Lihat juga

Antarmuka IDataModelManager2