A pipeline component is a Component Object Model (COM) server object that implements the IPipelineComponent interface. The following is the definition of this interface that appears in pipecomp.idl:
interface IPipelineComponent : IUnknown
{
import "oaidl.idl";
HRESULT Execute(
[in] IDispatch* pdispOrder,
[in] IDispatch* pdispContext,
[in] LONG lFlags,
[out,retval] LONG* plErrorLevel
);
//
// By default, a pipeline is in "execution mode", this call is // used to prepare the pipeline for "design mode" (fEnable == // TRUE) or to go to design mode (fEnable = FALSE).
//
HRESULT EnableDesign( [in] BOOL fEnable );
};
When the pipeline creates an instance of a component, it requests an interface pointer on the component's IPipelineComponent implementation, then uses this pointer to invoke IPipelineComponent::Execute.
The IPipelineComponent is the only interface that a component must implement to function within the pipeline. However, to enhance a component's usability, or to take advantage of the transaction capabilities of Microsoft Transaction Server, you may also design your component to implement one or more of the following interfaces:
If you are designing an object to be used by the Mapping components included in the Commerce Interchange Pipeline (CIP), the component must implement either IPersistStreamInit or IPersistXML.