填写接口属性,见图四。
图四、接口属性
Threading Model 选择组件支持的线程模型。COM 中的线程,我认为是最讨厌,最复杂的部分。COM 线程和公寓的概念,留待后续介绍。现在吗......大家都选 Apartment,它代表什么那?简单地说:当在线程中调用组件函数的时候,这些调用会排队进行。因此,这种模式下,我们可以暂时不用考虑同步的问题。(注1)
Interface 接口基本类型。Dual 表示支持双接口(注2),这个非常 非常重要,非常非常常用,但我们今天不讲。Custom 表示自定义借口。 切记!切记!我们的这第一个 COM 程序中,一定要选择它!!!! (如果你选错了,请删除全部内容,重新来过。)
Aggregation 我们写的组件,将来是否允许被别人聚合(注3)使用。Only 表示必须被聚合才能使用,有点类似 C++ 中的纯虚类,你要是总工程师,只负责设计但不亲自写代码的话,才选择它。
Support ISupportErrorInfo 是否支持丰富信息的错误处理接口。以后就讲。
Support Connection Points 是否支持连接点接口(事件、回调)。以后就讲。
Free Threaded Marshaler 以后也不讲,就算打死你,我也不说!(注4)
图四、接口属性
Threading Model 选择组件支持的线程模型。COM 中的线程,我认为是最讨厌,最复杂的部分。COM 线程和公寓的概念,留待后续介绍。现在吗......大家都选 Apartment,它代表什么那?简单地说:当在线程中调用组件函数的时候,这些调用会排队进行。因此,这种模式下,我们可以暂时不用考虑同步的问题。(注1)
Interface 接口基本类型。Dual 表示支持双接口(注2),这个非常 非常重要,非常非常常用,但我们今天不讲。Custom 表示自定义借口。 切记!切记!我们的这第一个 COM 程序中,一定要选择它!!!! (如果你选错了,请删除全部内容,重新来过。)
Aggregation 我们写的组件,将来是否允许被别人聚合(注3)使用。Only 表示必须被聚合才能使用,有点类似 C++ 中的纯虚类,你要是总工程师,只负责设计但不亲自写代码的话,才选择它。
Support ISupportErrorInfo 是否支持丰富信息的错误处理接口。以后就讲。
Support Connection Points 是否支持连接点接口(事件、回调)。以后就讲。
Free Threaded Marshaler 以后也不讲,就算打死你,我也不说!(注4)