Definování rozhraní COM

Microsoft definuje mnoho rozhraní MODELU COM. Ve většině případů můžete tato obecná rozhraní znovu použít. Některé aplikace ale mají specifické požadavky, které z nich činí žádoucí nebo nezbytné definovat vlastní rozhraní objektů.

Všechna rozhraní modelu COM musí být odvozena přímo nebo nepřímo z rozhraní IUnknown. V rámci daného omezení může vaše vlastní rozhraní podporovat téměř jakoukoli metodu nebo parametr, včetně asynchronních metod. Můžete také vygenerovat knihovnu typů pro vlastní rozhraní, aby klienti měli přístup k informacím o metodách objektu za běhu. Jakmile definujete rozhraní, popište ho v jazyce MIDL (Microsoft Interface Definition Language), zkompilujte ho a zaregistrujte ho stejně jako jakékoli obecné rozhraní. S distribuovaným objektem COM jsou metody rozhraní k dispozici pro vzdálené procesy i pro jiné procesy na stejném počítači.

Sestavení rozhraní COM vyžaduje vývojové prostředí, které zahrnuje kompilátor C/C++ a kompilátor Midl.exe.

Postup pro vytvoření rozhraní COM je následující:

  • Rozhodněte se, jak chcete poskytovat podporu maršálování pro vaše rozhraní; buď pomocí maršálování založeného na knihovně typů, nebo pomocí proxy/stub DLL. I rozhraní v procesu musí být zařazována, pokud se mají používat přes hranice bytu. Je vhodné vytvořit podporu marshalování do každého rozhraní COM, i když si nemyslíte, že ji budete potřebovat. Další informace najdete v tématu maršálování rozhraní.
  • Popište rozhraní nebo rozhraní v souboru definice rozhraní (IDL). Kromě toho můžete určit určité místní aspekty rozhraní v konfiguračním souboru aplikace (ACF). Pokud používáte zařazování řízené knihovnou typů, přidejte knihovnu příkaz, který odkazuje na rozhraní, pro která chcete vygenerovat informace o typu.
  • Pomocí kompilátoru MIDL vygenerujte soubor knihovny typů a soubor hlaviček nebo soubory proxy/zástupných procedur jazyka C, soubor identifikátoru rozhraní, datový soubor knihovny DLL a soubor hlaviček. Další informace najdete v tématu MIDL Compilation.
  • V závislosti na metodě zařazování, kterou jste zvolili, napište soubor definice modulu (DEF), zkompilujte a propojte všechny soubory generované pomocí MIDL do jediné proxy knihovny DLL a zaregistrujte rozhraní v systémovém registru nebo zaregistrujte knihovnu typů. Další informace najdete v tématu Načítání a registrace knihovny typů a Sestavení a registrace DLL Proxy.

anatomie souboru IDL

Klienti a servery modelu COM

pravidla návrhu rozhraní

Komponentový objektový model