由于公司限制不受我的控制,我有以下情况:
定义以下接口的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)