小编Dev*_*olo的帖子

在.NET中派生COM接口

由于公司限制不受我的控制,我有以下情况:

定义以下接口的COM库(没有CoClass,只是接口):

[
    object,
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
    dual,
    nonextensible,
    helpstring("IService Interface"),
    pointer_default(unique)
]
IService : IDispatch
{
  HRESULT DoSomething();
}

[
    object,
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
    dual,
    nonextensible,
    helpstring("IProvider Interface"),
    pointer_default(unique)
]
IServiceProvider : IDispatch
{
  HRESULT Init( IDispatch *sink, VARIANT_BOOL * result );
  HRESULT GetService( LONG serviceIndicator, IService ** result );
};


[
    uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
    version(1.0),
]
library ServiceLibrary
{
    importlib("stdole2.tlb");

   interface IService;
   interface IServiceProvider;
};
Run Code Online (Sandbox Code Playgroud)

我有一个COM(用W ++编写)实现两个接口并为我们的应用程序提供所述服务.我想一切都很好.

我试图建立一个新的IProvider,并IService在.NET(C#).

我为COM库构建了一个Primary Interop程序集,并实现了以下C#:

[ComVisible( true )]
[Guid( "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" )]
public interface INewService : …
Run Code Online (Sandbox Code Playgroud)

.net c# c++ com interface

6
推荐指数
1
解决办法
3161
查看次数

标签 统计

.net ×1

c# ×1

c++ ×1

com ×1

interface ×1