Class UFSim
  
  
  
  
    Inheritance
    System.Object
    System.MarshalByRefObject
    
    UFSim
   
  
    Implements
    System.Runtime.Remoting.Messaging.IMessageSink
   
  
    Inherited Members
    
    
    
    
    
      System.MarshalByRefObject.CreateObjRef(System.Type)
    
    
      System.MarshalByRefObject.GetLifetimeService()
    
    
      System.MarshalByRefObject.InitializeLifetimeService()
    
    
      System.MarshalByRefObject.MemberwiseClone(System.Boolean)
    
    
      System.Object.Equals(System.Object)
    
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetHashCode()
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ToString()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  Assembly: NXOpen.UF.dll
  Syntax
  
    public class UFSim : NXRemotableObject, IMessageSink
   
  Methods
  
  
  
  
  
  
  
  Declaration
  
    public void ActivateTool(IntPtr engine, string tool_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | tool_name |  | 
    
  
  
  
  
  AskAxisDofJunction(IntPtr, String, out String, out SvKimDegofDirection)
  
  
  Declaration
  
    public void AskAxisDofJunction(IntPtr engine, string axis, out string jct_name, out SvKimDegofDirection direction)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | axis |  | 
      
        | System.String | jct_name |  | 
      
        | SvKimDegofDirection | direction |  | 
    
  
  
  
  
  AskAxisIsReversalAllowed(IntPtr, String, out Boolean)
  
  
  Declaration
  
    public void AskAxisIsReversalAllowed(IntPtr engine, string axis_name, out bool allow_reversal)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | axis_name |  | 
      
        | System.Boolean | allow_reversal |  | 
    
  
  
  
  
  AskAxisLimits(IntPtr, String, out Double, out Double)
  
  
  Declaration
  
    public void AskAxisLimits(IntPtr engine, string axis, out double min, out double max)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | axis |  | 
      
        | System.Double | min |  | 
      
        | System.Double | max |  | 
    
  
  
  
  
  AskAxisPosition(IntPtr, String, out Double)
  
  
  Declaration
  
    public void AskAxisPosition(IntPtr engine, string axis, out double position)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | axis |  | 
      
        | System.Double | position |  | 
    
  
  
  
  
  AskAxisRotaryDirMode(IntPtr, String, out UFSim.AxisRotDirType)
  
  
  Declaration
  
    public void AskAxisRotaryDirMode(IntPtr engine, string axis_name, out UFSim.AxisRotDirType rot_mode)
   
  Parameters
  
  
  
  
  AskCompFromDof(IntPtr, String, out String)
  
  
  Declaration
  
    public void AskCompFromDof(IntPtr engine, string degof_name, out string comp_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | degof_name |  | 
      
        | System.String | comp_name |  | 
    
  
  
  
  
  AskCordingTol(IntPtr, out Double)
  
  
  Declaration
  
    public void AskCordingTol(IntPtr engine, out double cording_tol)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Double | cording_tol |  | 
    
  
  
  
  
  AskDegofData(IntPtr, String, out SimKimDegofTypes, out Double, out Double)
  
  
  Declaration
  
    public void AskDegofData(IntPtr engine, string degof_name, out SimKimDegofTypes degof_type, out double lower_limit, out double upper_limit)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | degof_name |  | 
      
        | SimKimDegofTypes | degof_type |  | 
      
        | System.Double | lower_limit |  | 
      
        | System.Double | upper_limit |  | 
    
  
  
  
  
  AskIfDegofExists(IntPtr, String, out Boolean)
  
  
  Declaration
  
    public void AskIfDegofExists(IntPtr engine, string degof_name, out bool degof_exists)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | degof_name |  | 
      
        | System.Boolean | degof_exists |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void AskImmediateUpdate(IntPtr engine, out bool immediate_update)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Boolean | immediate_update |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void AskInitJunctionXform(IntPtr engine, string jct_name, out double xval, out double yval, out double zval, out double matrix)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
      
        | System.Double | xval |  | 
      
        | System.Double | yval |  | 
      
        | System.Double | zval |  | 
      
        | System.Double | matrix |  | 
    
  
  
  
  
  AskIsJunctionDependent(IntPtr, String, String, out String)
  
  
  Declaration
  
    public void AskIsJunctionDependent(IntPtr engine, string jct_name, string axis_name, out string dependent)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
      
        | System.String | axis_name |  | 
      
        | System.String | dependent |  | 
    
  
  
  
  
  AskIsJunctionExist(IntPtr, String, out Boolean)
  
  
  Declaration
  
    public void AskIsJunctionExist(IntPtr engine, string jct_name, out bool jct_exists)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
      
        | System.Boolean | jct_exists |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void AskJunctionXform(IntPtr engine, string jct_name, out double xval, out double yval, out double zval, out double matrix)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
      
        | System.Double | xval |  | 
      
        | System.Double | yval |  | 
      
        | System.Double | zval |  | 
      
        | System.Double | matrix |  | 
    
  
  
  
  
  AskKimCompNameById(IntPtr, Int32, String, out String)
  
  
  Declaration
  
    public void AskKimCompNameById(IntPtr engine, int system_class, string comp_id, out string comp_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Int32 | system_class |  | 
      
        | System.String | comp_id |  | 
      
        | System.String | comp_name |  | 
    
  
  
  
  
  AskMtcsJunction(IntPtr, out String)
  
  
  Declaration
  
    public void AskMtcsJunction(IntPtr engine, out string jct_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
    
  
  
  
  
  AskMtdUnits(IntPtr, out UFSim.UnitType)
  
  
  Declaration
  
    public void AskMtdUnits(IntPtr engine, out UFSim.UnitType units)
   
  Parameters
  
  
  
  
  
  
  
  Declaration
  
    public void AskNcAxesOfMtool(IntPtr engine, out int no_of_axes, out string axis_name_list)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Int32 | no_of_axes |  | 
      
        | System.String | axis_name_list |  | 
    
  
  
  
  
  AskSimEngine(IntPtr, out IntPtr)
  
  
  Declaration
  
    public void AskSimEngine(IntPtr mom_id, out IntPtr engine_id)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | mom_id |  | 
      
        | System.IntPtr | engine_id |  | 
    
  
  
  
  
  AskStatusSendNcCommandMsg(IntPtr, out Boolean)
  
  
  Declaration
  
    public void AskStatusSendNcCommandMsg(IntPtr engine, out bool status)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Boolean | status |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void AskToolOffsets(IntPtr engine, string tool_name, out double xval, out double yval, out double zval)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | tool_name |  | 
      
        | System.Double | xval |  | 
      
        | System.Double | yval |  | 
      
        | System.Double | zval |  | 
    
  
  
  
  
  ConvertNurbsToPositionData(IntPtr, Int32, Int32, Int32, ref Double, ref Double, out Int32, out Double[])
  
  
  Declaration
  
    public void ConvertNurbsToPositionData(IntPtr engine, int cntr_point_count, int order, int knot_count, ref double knots, ref double cntr_points, out int point_count, out double[] positions)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Int32 | cntr_point_count |  | 
      
        | System.Int32 | order |  | 
      
        | System.Int32 | knot_count |  | 
      
        | System.Double | knots |  | 
      
        | System.Double | cntr_points |  | 
      
        | System.Int32 | point_count |  | 
      
        | System.Double[] | positions |  | 
    
  
  
  
  
  CreateJunction(IntPtr, String, String, Double[], Double[])
  
  
  Declaration
  
    public void CreateJunction(IntPtr engine, string jct_name, string destination_comp, double[] origin, double[] matrix)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
      
        | System.String | destination_comp |  | 
      
        | System.Double[] | origin |  | 
      
        | System.Double[] | matrix |  | 
    
  
  
  
  
  DbgEnd(IntPtr)
  
  
  Declaration
  
    public void DbgEnd(IntPtr engine)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
    
  
  
  
  
  DbgSetOutput(IntPtr, Boolean, String)
  
  
  Declaration
  
    public void DbgSetOutput(IntPtr engine, bool on_off, string token)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Boolean | on_off |  | 
      
        | System.String | token |  | 
    
  
  
  
  
  DbgStart(IntPtr, String)
  
  
  Declaration
  
    public void DbgStart(IntPtr engine, string title)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | title |  | 
    
  
  
  
  
  DbgWriteMessage(IntPtr, String)
  
  
  Declaration
  
    public void DbgWriteMessage(IntPtr engine, string msg)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | msg |  | 
    
  
  
  
  
  Delay(IntPtr, String, Double)
  
  
  Declaration
  
    public void Delay(IntPtr engine, string label, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | label |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  DeleteJunction(IntPtr, String)
  
  
  Declaration
  
    public void DeleteJunction(IntPtr engine, string jct_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | jct_name |  | 
    
  
  
  
  
  DialogSetItem(IntPtr, String, String)
  
  
  Declaration
  
    public void DialogSetItem(IntPtr engine, string item_id, string attributes)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | item_id |  | 
      
        | System.String | attributes |  | 
    
  
  
  
  
  EndOfSimulation(IntPtr)
  
  
  Declaration
  
    public void EndOfSimulation(IntPtr engine)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
    
  
  
  
  
  FeedbackMessage(IntPtr, String, String)
  
  
  Declaration
  
    public void FeedbackMessage(IntPtr engine, string label, string message)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | label |  | 
      
        | System.String | message |  | 
    
  
  
  
  
  FindCompByName(IntPtr, String, String, out Boolean)
  
  
  Declaration
  
    public void FindCompByName(IntPtr engine, string start_comp, string search_comp, out bool is_found)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | start_comp |  | 
      
        | System.String | search_comp |  | 
      
        | System.Boolean | is_found |  | 
    
  
  
  
  
  MountKimComp(IntPtr, String, String, String, String, Double)
  
  
  Declaration
  
    public void MountKimComp(IntPtr engine, string source_comp, string source_jct, string destination_comp, string destination_jct, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | source_comp |  | 
      
        | System.String | source_jct |  | 
      
        | System.String | destination_comp |  | 
      
        | System.String | destination_jct |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void MountTool(IntPtr engine, UFSim.ToolClass tool_class, string tool_id, string destination_comp, string destination_jct, double duration, out string tool_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | UFSim.ToolClass | tool_class |  | 
      
        | System.String | tool_id |  | 
      
        | System.String | destination_comp |  | 
      
        | System.String | destination_jct |  | 
      
        | System.Double | duration |  | 
      
        | System.String | tool_name |  | 
    
  
  
  
  
  MoveLinearAxis(IntPtr, String, Double, Double)
  
  
  Declaration
  
    public void MoveLinearAxis(IntPtr engine_id, string axis, double value, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine_id |  | 
      
        | System.String | axis |  | 
      
        | System.Double | value |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  MoveRotaryAxis(IntPtr, String, Double, Double)
  
  
  Declaration
  
    public void MoveRotaryAxis(IntPtr engine_id, string axis, double value, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine_id |  | 
      
        | System.String | axis |  | 
      
        | System.Double | value |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  MsgNcCommand(IntPtr, String)
  
  
  Declaration
  
    public void MsgNcCommand(IntPtr engine, string action)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | action |  | 
    
  
  
  
  
  MsgProgramMark(IntPtr, String)
  
  
  Declaration
  
    public void MsgProgramMark(IntPtr engine, string program_mark)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | program_mark |  | 
    
  
  
  
  
  MsgUserFeedback(IntPtr, String)
  
  
  Declaration
  
    public void MsgUserFeedback(IntPtr engine, string proc)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | proc |  | 
    
  
  
  
  
  MtdInit(IntPtr)
  
  
  Declaration
  
    public void MtdInit(IntPtr engine)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
    
  
  
  
  
  MtdReset(IntPtr)
  
  
  Declaration
  
    public void MtdReset(IntPtr engine)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
    
  
  
  
  
  SetAxisAllowReversal(IntPtr, String, Boolean)
  
  
  Declaration
  
    public void SetAxisAllowReversal(IntPtr engine, string axis_name, bool allow_reversal)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | axis_name |  | 
      
        | System.Boolean | allow_reversal |  | 
    
  
  
  
  
  SetAxisRotaryDirMode(IntPtr, String, UFSim.AxisRotDirType)
  
  
  Declaration
  
    public void SetAxisRotaryDirMode(IntPtr engine, string axis_name, UFSim.AxisRotDirType rot_mode)
   
  Parameters
  
  
  
  
  SetChannel(IntPtr, Int32)
  
  
  Declaration
  
    public void SetChannel(IntPtr engine, int channel_number)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Int32 | channel_number |  | 
    
  
  
  
  
  SetCoolant(IntPtr, Int32, Double)
  
  
  Declaration
  
    public void SetCoolant(IntPtr engine, int value, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Int32 | value |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  SetCurrentZcsJunction(IntPtr, String)
  
  
  Declaration
  
    public void SetCurrentZcsJunction(IntPtr engine, string junction_name)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | junction_name |  | 
    
  
  
  
  
  SetCuttingMode(IntPtr, UFSim.CuttingMode)
  
  
  Declaration
  
    public void SetCuttingMode(IntPtr engine, UFSim.CuttingMode mode)
   
  Parameters
  
  
  
  
  SetFeed(IntPtr, Double, UFSim.UnitType, Double)
  
  
  Declaration
  
    public void SetFeed(IntPtr engine, double value, UFSim.UnitType unit, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Double | value |  | 
      
        | UFSim.UnitType | unit |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void SetImmediateUpdate(IntPtr engine, bool immediate_update)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Boolean | immediate_update |  | 
    
  
  
  
  
  SetMtdUnits(IntPtr, UFSim.UnitType)
  
  
  Declaration
  
    public void SetMtdUnits(IntPtr engine, UFSim.UnitType units)
   
  Parameters
  
  
  
  
  SetParameter(IntPtr, String, String, UFSim.UnitType, Double)
  
  
  Declaration
  
    public void SetParameter(IntPtr engine, string label, string text, UFSim.UnitType unit, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | label |  | 
      
        | System.String | text |  | 
      
        | UFSim.UnitType | unit |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  SetSpeed(IntPtr, Double, UFSim.UnitType, Double)
  
  
  Declaration
  
    public void SetSpeed(IntPtr engine, double value, UFSim.UnitType unit, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Double | value |  | 
      
        | UFSim.UnitType | unit |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  SetStatusSendNcCommandMsg(IntPtr, Boolean)
  
  
  Declaration
  
    public void SetStatusSendNcCommandMsg(IntPtr engine, bool status)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Boolean | status |  | 
    
  
  
  
  
  StartOfSimulation(IntPtr)
  
  
  Declaration
  
    public void StartOfSimulation(IntPtr engine)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
    
  
  
  
  
  Step(IntPtr, String)
  
  
  Declaration
  
    public void Step(IntPtr engine, string label)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | label |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void TransformMatrixAcsToMtcs(IntPtr engine, double[] acs_matrix, out double matrix)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Double[] | acs_matrix |  | 
      
        | System.Double | matrix |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void TransformOffsetAcsToMtcs(IntPtr engine, double[] acs_vector, out double xval, out double yval, out double zval)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.Double[] | acs_vector |  | 
      
        | System.Double | xval |  | 
      
        | System.Double | yval |  | 
      
        | System.Double | zval |  | 
    
  
  
  
  
  UnmountKimComp(IntPtr, String, Double)
  
  
  Declaration
  
    public void UnmountKimComp(IntPtr engine, string component, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | component |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  
  
  
  Declaration
  
    public void UnmountTool(IntPtr engine, string tool_name, double duration)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | tool_name |  | 
      
        | System.Double | duration |  | 
    
  
  
  
  
  Update(IntPtr, String)
  
  
  Declaration
  
    public void Update(IntPtr engine, string label)
   
  Parameters
  
    
      
        | Type | Name | Description | 
    
    
      
        | System.IntPtr | engine |  | 
      
        | System.String | label |  | 
    
  
  Implements
  
      System.Runtime.Remoting.Messaging.IMessageSink