在c#中通过COM处理通信的过程,包括回调

时间:2016-11-18 19:44:12

标签: c# process interface callback com

民间

好的 - 我很清楚提供简单的例子(只是爱律师)......

我需要提供第三方应用程序可用于与我的应用程序通信的接口(双向),第三方组要求接口是COM接口 - 它们为所述接口提供基本规范

以下是此通信的简单界面之一:

[Guid("B751EA69-5E72-4DF0-8D3B-9DFA7A7ACCEF"),
 ClassInterface(ClassInterfaceType.None)]
public class ARPOSCom : IARPOSCom
{
    public ARPOSCom() {}

    public string SendMsg(ref string Msg)
    { return "SendMsg Interface was triggered with Msg: [" + Msg + "]"; }
}

接口文件如下所示:

[Guid("5DBFD8FD-2D00-4107-BDAE-F046CDC4F19A"),
 InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IARPOSCom
{
    string SendMsg(ref string Msg);
}

现在可能,他们会做这样的事情来锁定界面:

// Instantiate the interface
ARPOSInterfaces.IARPOSCom IsbARPOSCom = (ARPOSInterfaces.IARPOSCom)new ARPOSInterfaces.ARPOSCom();

然后他们可能会这样做:

private void btnDoSendMsg_Click(object sender, EventArgs e)
{
    tboxMsgRec.Text = string.Empty;
    string inMsg = tboxMsgSend.Text;
    string rtrnVal = IsbARPOSCom.SendMsg(ref inMsg);
    tboxMsgRec.Text = rtrnVal;

    LogMsg("IsbARPOSCom.SendMsg triggered with return value = {" + tboxMsgRec.Text + "}");
}

这似乎工作正常;但是,等式的另一半是客户端捕获SendMsg以及我的代码中要采取的相应操作。

我似乎能做的就是在实际的接口例程中进行更改,我不允许这样做 - 我需要将入站数据传递给该应用程序的另一个应用程序来处理并返回相应的响应,即in turn返回服务器/源。

我希望样本有所帮助 - 我正在寻找船只和踢球者 - 我确信这是直截了当的,我不是在问正确的问题。

亲切的问候, 罗伯特S.

0 个答案:

没有答案