[[... [COM]; comparison with [Tcl] [events]; ...]] Two [extension]s that traffic in COM events are [optcl] and [tcom]. A "[COM type library]" defines COM events--roughly. [Chin Huang] writes, "If the application provides a type library, the class declaration for the application object may list them. For example, let's examine the type library for Internet Explorer using the type library viewer in OLE View [["[OLE Object Viewer]"]]. Select menu item File -> View TypeLib... In the Open dialog, select the file SHDOCVW.DLL in the %WINDIR%\system32 directory. The class declaration for the Internet Explorer application is coclass InternetExplorer { [default] interface IWebBrowser2; interface IWebBrowserApp; [default, source] dispinterface DWebBrowserEvents2; [source] dispinterface DWebBrowserEvents; }; The [[source] attribute marks interfaces that an object must implement in order to receive events from the application. The interface marked [[default, source] indicates an interface that an event listener would choose by default. Each interface has an interface identifier (IID). This is the IID refered to in the tcom manual. Each source interface declares a set of methods. Each method corresponds to an event. To fire an event, the application invokes the corresponding method on the listener object. So getting the class declaration is key to finding the events an application can send. If you're lucky, the application may implement the IProvideClassInfo interface, which provides exactly this information." [[Give examples of [[bind]] use.]]