本文向大家介绍C# COM接口转换,可能好多人还不知道C# COM接口转换,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
在成都网站建设、网站制作中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。创新互联专业成都网站建设十年了,客户满意度97.8%,欢迎成都创新互联客户联系。
C#中不仅支持.Net 平台,而且支持COM平台。为了支持 COM和.Net,C# 包含一种称为属性的独特语言特性。一个属性实际上就是一个 C# 类,它通过修饰源代码来提供元信息。属性使 C# 能够支持特定的技术,如 COM 和 .Net,而不会干扰语言规范本身。C# 提供将COM接口转换为 C#接口的属性类。另一些属性类将C# COM接口转换为C# 类。执行这些转换不需要任何 IDL 或类工厂。
现在部署的任何COM 组件都可以在接口转换中使用。通常情况下,所需的调整是完全自动进行的。
特别是,可以使用运行时可调用包装 (RCW) 从 .NET 框架访问 COM 组件。此包装将 COM 组件提供的C# COM接口转换为与 .NET 框架兼容的接口。对于 OLE 自动化接口,RCW 可以从类型库中自动生成;对于非 OLE 自动化接口,开发人员可以编写自定义 RCW,手动将 COM 接口提供的类型映射为与 .NET 框架兼容的类型。
下面是接口转换的C#程序:
- using System.Runtime.InteropServices;
- // 声明一个COM接口 IMediaControl
- [Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsDual)]
- interface IMediaControl // 这里不能列出任何基接口
- {
- void Run();
- void Pause();
- void Stop();
- void GetState( [In] int msTimeout, [Out] out int pfs);
- void RenderFile(
- [In, MarshalAs(UnmanagedType.BStr)] string strFilename);
- void AddSourceFilter(
- [In, MarshalAs(UnmanagedType.BStr)] string strFilename,
- [Out, MarshalAs(UnmanagedType.Interface)] out object ppUnk);
- [return : MarshalAs(UnmanagedType.Interface)]
- object FilterCollection();
- [return : MarshalAs(UnmanagedType.Interface)]
- object RegFilterCollection();
- void StopWhenReady();
- }
【编辑推荐】
标题名称:C#COM接口转换经验总结
分享网址:http://www.shufengxianlan.com/qtweb/news30/95280.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联