1.idl文件
xpcom是necko的基础模块。在阅读文档的过程中基本会看到哪个模块调用了什么xpcom接口比如nsIInputStream。我习惯于从低向上的阅读代码,这样不至于带着太多的疑问去学习。所以习惯性的去寻找nsIInputStream接口的实现代码。一般认为对应的头文件为nsIInputStream.h,代码为nsIInputStream.cpp.头文件是找到了,但是实现却没有找到。同时也会找到nsIInputStream.idl文件。
在不断的摸索中发现,一个接口对应于一个idl文件。该文件会被idl编译器转化为头文件。可以确定的是,这个接口没有直接的实现文件。通过阅读转化后的头文件可以明白,该接口实现了一个基类,接口内定义的方法都是虚函数。任何实现都是继承该接口,根据需要实现对应的方法即可。
阅读了xpcom组件开发,以为自己理解了xpcom,却没想到连最基本的设计策略都没领悟,还是要多实践啊