System.AddIn.Contract Namespace

 

The System.AddIn.Contract namespace contains interfaces and structures that provide the basis for communication between components that are updated independently.

StructureDescription
System_CAPS_pubstructureRemoteArgument

Represents an instance of a type that can be passed across process and application domain boundaries.

System_CAPS_pubstructureSerializableObjectData

Provides information about a serializable object.

InterfaceDescription
System_CAPS_pubinterfaceIContract

Represents the base interface for all contracts that are used for communication between components that are updated independently.

System_CAPS_pubinterfaceIEnumeratorContract<T>

Enumerates the elements in an IListContract<T> collection.

System_CAPS_pubinterfaceIExecutorExtensionContract

Defines an interface that host applications can implement to extend add-in executors.

System_CAPS_pubinterfaceIListContract<T>

Represents a generic list of types that are defined by a contract and are used to pass collections of that contract type between a host and an add-in.

System_CAPS_pubinterfaceINativeHandleContract

Provides access to a window's handle (Hwnd) from native code.

System_CAPS_pubinterfaceIProfferServiceContract

Enables clients to provide custom services to components on which the contract is implemented.

System_CAPS_pubinterfaceISerializableObjectContract

Defines a contract that provides information about a serializable object.

System_CAPS_pubinterfaceIServiceProviderContract

Defines a mechanism for retrieving a service contract from a component.

EnumerationDescription
System_CAPS_pubenumRemoteArgumentKind

Specifies the kind of argument that a RemoteArgument represents.

The System.AddIn.Contract namespace defines a set of interfaces and structures that can be used by independently updated components, such as an application and an add-in, to communicate. Components can use the interfaces and structures in the System.AddIn.Contract namespace to communicate across process or application domain boundaries, or to communicate with other components in the same process or application domain.

The interfaces in the System.AddIn.Contract namespace are also called contracts. All contracts derive from the IContract interface. The purpose that IContract serves for components created using the .NET Framework is similar to the purpose that the IUnknown interface serves for components created using COM. To determine whether an object implements a particular contract, components use the QueryContract method.

The System.AddIn.Contract.Automation and System.AddIn.Contract.Collections namespaces contain additional contracts that supplement the System.AddIn.Contract namespace. The System.AddIn.Contract.Automation namespace contains contracts that components use to access type information and invoke type members. The System.AddIn.Contract.Collections namespace contains contracts that define collections of IContract and RemoteArgument objects.

Return to top
Show: