Patent ID: 8201185

Claim:
In a computing environment, the computing environment comprising host objects wherein the host objects may be one of a COM object or a managed code object, the computing environment further comprising add-in objects implemented in managed code, wherein add-in object can provide additional functionality to the host objects, a method of communicating between the add-in objects and the host objects, the method comprising: determining that a first host object to be communicated with is a COM object of a COM host; as a result of determining that a host object to be communicated with is a COM object, routing incoming and outgoing communications from a managed code add-in through an interop proxy, wherein the interop proxy is implemented in managed code with a managed code add-in, and wherein the interop proxy is configured to translate managed code invocations to COM code invocations, and to translate COM code invocations to managed code invocations; determining that a second host object to be communicated with is a managed object of a managed code host; and as a result of determining that the second host object to be communicated with is a managed object of a managed code host, routing incoming and outgoing communications from a managed code add-in through a dynamic proxy, wherein the dynamic proxy is configured to communicate through a contract protocol, the contract protocol configured to communicate with a managed object adapter of a managed host object.