Sdílet prostřednictvím


Pomocné funkce pro vytváření instancí

V předchozích verzích modelu COM byl primárním mechanismem použitým k vytvoření instance objektu CoCreateInstance funkce. Tato funkce zapouzdřuje proces vytvoření objektu třídy pomocí této funkce k vytvoření nové instance a uvolnění objektu třídy. Další funkcí tohoto typu je konkrétnější OleCreate, pomocník pro složený dokument OLE, který vytvoří objekt třídy a načte ukazatel na požadovaný objekt.

Aby se proces vytváření instancí v distribuovaných systémech vyhladit, zavedl com čtyři důležité nové mechanismy vytváření instancí:

Moniker třídy umožňuje identifikovat třídu objektu a obvykle se používá s jiným monikerem, jako je moniker souboru, k označení umístění objektu. To umožňuje vytvořit vazbu k objektu a určit server, který se má pro daný objekt spustit. Třídy monikers mohou být také složeny napravo od monikers podporující vazby na IClassActivator rozhraní. Další informace najdete v tématu třídy Monikers.

CoCreateInstanceEx rozšiřuje CoCreateInstance, aby bylo možné vytvořit jeden neinicializovaný objekt přidružený k danému CLSID na zadaném vzdáleném počítači. Kromě toho místo vyžádání jednoho rozhraní a získání jediného ukazatele na toto rozhraní CoCreateInstanceEx umožňuje dotazovat se na více rozhraní a (pokud je k dispozici) přijímat ukazatele na ně v rámci jedné odezvy, což umožňuje méně cest mezi počítači. Díky tomu může být interakce vzdálených objektů mnohem efektivnější. K tomu funkce používá pole MULTI_QI struktur.

Vytvoření objektu prostřednictvím CoCreateInstanceEx stále vyžaduje inicializaci objektu prostřednictvím volání jednoho z rozhraní inicializace (například IPersistStorage::Load). Pomocné funkce CoGetInstanceFromFile a CoGetInstanceFromIStorage zapouzdření výkonu vytváření instance CoCreateInstanceEx a inicializace, bývalé ze souboru a druhé ze souboru z úložiště.

vytvoření objektu prostřednictvím objektu třídy