C# 尝试处理ActiveX事件时出错

C# 尝试处理ActiveX事件时出错,c#,com,activex,C#,Com,Activex,我有两个ActiveX服务器,我需要处理它的事件。 第一个我可以毫无问题地工作,但第二个我在尝试分配新事件时出错。适用于代码的代码如下所示: public delegate void ICwGetXEvents_OnCommandExEventHandler(uint CommandW, uint CommandL, string CommandText); public CwGet.CwGetXClass ax_CwGet; //event public

我有两个ActiveX服务器,我需要处理它的事件。 第一个我可以毫无问题地工作,但第二个我在尝试分配新事件时出错。适用于代码的代码如下所示:

   public delegate void ICwGetXEvents_OnCommandExEventHandler(uint CommandW, uint CommandL, string CommandText);

     public CwGet.CwGetXClass ax_CwGet;

    //event
      public void CwGetXEvents_OnCommandExEventHandler(uint CommandW, uint CommandL, string CommandText)
        {

          if (CommandL == 4)
            {
               //some code
            }


        }

//ok here is how I assign the controls and event:

 ax_CwGet = new CwGetXClass();
 ax_CwGet.OnCommandEx += CwGetXEvents_OnCommandExEventHandler;
好的,对于第二个控件(由同一家公司创建),我尝试了同样的方法:

public delegate void ITrueTtyXEvents_OnCallsignEventHandler(string Call);
public truetty.TrueTtyXClass ax_truetty;

//event
    public void TrueTtyXEvents_OnCallsignEventHandler(string Call)
        {
           //somecode
        } 

ax_truetty = new TrueTtyXClass();
ax_truetty.OnCallsign+= TrueTtyXEvents_OnCallsignEventHandler;
但是,当我创建新的ActiveX对象时,该对象可以正常工作,但当我分配事件时,会出现以下错误:

“由于应用程序正在调度输入同步呼叫,无法进行传出呼叫。(HRESULT的异常:0x8001010D(RPC_E_CANTCALLOUT_ININPUTSYNCCALL))”

我想知道是否有人能给我指出正确的方向


Mike这是一个线程问题。您应该向组件供应商寻求帮助,听起来他们没有正确设置ThreadingModel注册表项。但是,您可能会得到的回答是“不要从工作线程使用它们,只能从STA线程使用它们”。这在ActiveX控件中非常常见