如何使用Windows COM界面?

时间:2017-04-12 20:56:13

标签: c# com com-interop

我正在尝试通过COM界面向应用程序发送一些数据,但我不理解文档。

根据以下定义,如何在com接口上向此方法发送字符串?

A Windows COM interface that can be used with most single and multithreading Windows application development environments and languages. It does not have any initialization or finalization routines.

Interface: IXXXXXXTrans
Flags:     (4416) Dual OleAutomation Dispatchable
GUID:      {A1AED31D-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

IXXXXXXTrans = interface(IDispatch)
   ['{A1AED31D-XXXX-XXXX-XXXX-XXXXXXXXXXXX}']
   function FunctionName(const value:WideString):WideString; safecall;
end;

这是"文档"

的全部内容

我查看了MSDN中的一些文档,这些文档似乎不适用。

我在文档中没有任何对dll的引用,并且应用程序开发人员无法提供任何帮助。

我查看了许多提供的链接,他们似乎没有解决这种情况,因为他们中的许多人都认为你可以控制服务器和客户端。我只有客户端和有限的文档,服务器不是.NET DLL,所以我不能将它添加为参考。

我尝试过使用此代码:

            Guid testCLSID = new Guid("A1AED31D-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
            Type testType = Type.GetTypeFromCLSID(testCLSID, true);
            IXXXXXXTrans testTrans = (IXXXXXXTrans )Activator.CreateInstance(desktopType);
            testTrabs.FunctionName("Yes");

返回

Retrieving the COM class factory for component with CLSID {A1AED31D-876C-4AA3-AF60-3560062660DF} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

我还使用tlbImp来获取一个用ildasm查看的dll,但我不确定从那里去哪里

0 个答案:

没有答案