COM Class/coclass

A COM class ("coclass") is a concrete implementation of one or more interfaces. Interfaces are closely resembles to abstruct classes in C++. Coclass in a COM server can implement one or more interfaces. Multiple inheritance is used to implement multiple interfaces in same C++ class. Client has to select the desired interface for using an object of the co-class. Each interface will have different GUID or IID and human readable progid. Client should provide CLSID for the Co_Class and interface ID or IID for getting an instance of the co-class from the server. A server can again have one or more co-classes implemented within itself.

COM Class/coclass example

IE com srver implements multiple co-classes. InternetExplorer is one well known co-class inside internet explorer COM server. This coclass implements interfaces like IWebBrowser, IWebBrowser2, IWebBrowserApp. It also handles event interfaces like DWebBrowserEvents and DWebBrowserEvents2.

[
uuid(0002DF01-0000-0000-C000-000000000046), // CLSID_InternetExplorer
helpstring("Internet Explorer Application."),
]

coclass InternetExplorer
{
  interface   IWebBrowser;
  [default]     interface   IWebBrowser2;
  interface   IWebBrowserApp;
  interface   IWebBrowserApp2;
  [default, source] dispinterface DWebBrowserEvents2;
  [source]      dispinterface DWebBrowserEvents;
}

About our authors: Team EQA

You have viewed 1 page out of 67. Your COM/DCOM learning is 0.00% complete. Login to check your learning progress.

#