基于C#的接口基础教程之六(2)

来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-01 10:59 点击:

  执行 COM 映射需要理解的主要属性包括:

  1、ComImport:它将类标记为在外部实现的 COM 类。

  2、Guid:它用于为类或接口指定通用唯一标识符 (UUID)。

  3、InterfaceType,它指定接口是从 IUnknown 还是从 IDispatch 派生。

  4、PreserveSig,它指定是否应将本机返回值从 HRESULT 转换为 .NET 框架异常。
  声明 COM coclass

  COM coclass 在 C# 中表示为类。这些类必须具有与其关联的 ComImport 属性。下列限制适用于这些类:

  1、类不能从任何其他类继承。

  2、类不能实现任何接口。

  4、类还必须具有为其设置全局唯一标识符 (GUID) 的 Guid 属性。

  以下示例在 C# 中声明一个 coclass:

// 声明一个COM类 FilgraphManager
[ComImport, Guid("E436EBB3-524F-11CE-9F53-0020AF0BA770")]
class FilgraphManager
{ } 

  C# 编译器将添加一个无参数构造函数,可以调用此构造函数来创建 COM coclass 的实例。

  创建 COM 对象

  COM coclass 在 C# 中表示为具有无参数构造函数的类。使用 new 运算符创建该类的实例等效于在 C# 中调用 CoCreateInstance。使用以上定义的类,就可以很容易地实例化此类:

class MainClass
{
public static void Main()
{
FilgraphManager filg = new FilgraphManager();
}

  声明 COM 接口

  COM 接口在 C# 中表示为具有 ComImport 和 Guid 属性的接口。它不能在其基接口列表中包含任何接口,而且必须按照方法在 COM 接口中出现的顺序声明接口成员函数。

  在 C# 中声明的 COM 接口必须包含其基接口的所有成员的声明,IUnknown 和 IDispatch 的成员除外(.NET 框架将自动添加这些成员)。从 IDispatch 派生的 COM 接口必须用 InterfaceType 属性予以标记。
从 C# 代码调用 COM 接口方法时,公共语言运行库必须封送与 COM 对象之间传递的参数和返回值。对于每个 .NET 框架类型均有一个默认类型,公共语言运行库将使用此默认类型在 COM 调用间进行封送处理时封送。例如,C# 字符串值的默认封送处理是封送到本机类型 LPTSTR(指向 TCHAR 字符缓冲区的指针)

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 用C#制作屏幕捕获程序
  • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
  • 遍历ArrayList易犯错误
  • C#对XML操作:一个处理XML文件的类(1)
  • .NET简谈反射(动态调用)
  • 使用C#编写LED样式时钟控件
  • DataList嵌套问题 如何删除内层子DataList的记录
  • 怎样用C#实现完整文档打印功能
  • .NET简谈自定义事务资源管理器
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1