What is ActiveX?
In the simplest of terms, "ActiveX is a blanket term used to describe a progression of object technologies credited to Microsoft Corporation." Further explanation follows...
With the advent of the Microsoft Component Object Model (COM) a new way to identify classes and interfaces, instantiate and maintain lifetime of objects, and invoke methods on objects was defined. Then with COM Automation (later to be termed object linking and embedding [OLE] and then “packaged” with other technologies based on COM – and the whole blob called ActiveX), the invocation method was extended via the core automation interface IDispatch.
ActiveX clients typically only need the IDs of classes and interfaces (CLSIDs and IIDs respectively) for compilation reference resolution. Most of the time, these IDs are supplied via a type library (TLB or DLL file) - for some ActiveX clients, mainly written in C or C++, headers files are used. Traditional compile-time address resolution linkage is not used with ActiveX servers. The process of resolving the function pointers is done at runtime.
Essentially, an ActiveX server is “registered” with the host operating system and any client needing the functionality of that particular server must “query” the OS for a connection to that server. This concept is known as location transparency in the ActiveX vocabulary. Therefore, one fundamental assumption in ActiveX is that NO CLIENT WILL KNOW WHERE THE SERVER IT IS USING IS LOCATED.
- ActiveX In-Process Servers
An ActiveX in-process (or in-proc) server is implemented in a DLL and is loaded into the process space of the calling ActiveX client.
- ActiveX Out-of-Process Servers
All the same information that applies to in-proc servers apply to out-of-process servers except that an out-of-proc server runs in it’s own process space at runtime and the method invocations use a cross process calling convention based on DCE/RPC that Microsoft called “RPC Lite”.
-- Carey Cilyok - 14 Jun 2006 to top