深入理解COM与DirectShow应用开发
1. COM基础概述
在20世纪90年代,随着操作系统和应用程序日益复杂,软件架构师面临着创建可复用代码对象的挑战。这些对象通过明确定义的接口,可在操作系统或应用程序中重复使用,能显著简化程序设计。例如,文字处理器和电子邮件客户端都需要拼写检查功能,使用可复用代码对象就能避免重复编写拼写检查器。
理想的可复用代码对象,程序员只需知道其名称,程序就能查询其属性。它和普通对象一样,有数据和方法,调用程序可访问其公共部分。
到了90年代中期,微软推出了COM(Component Object Model),即其版本的可复用代码对象。尽管早期COM设计粗糙,但经过近十年的改进,其功能已接近理想的可复用代码对象。COM对象和C++对象类似,有可检查的属性、可调用的方法以及从基类继承特性的接口,创建者可选择隐藏或显示这些特性,使其易于管理和使用。
2. COM对象的命名与GUID
COM对象的名称是全局唯一标识符(GUID),由十六进制数字组成,格式为32位 - 16位 - 16位 - 16位 - 44位,确保每个COM对象名称唯一。不过,遵循微软创建新GUID的规则,自己创建的COM对象才满足此唯一性。
幸运的是,DirectShow使用的COM对象都有C++定义的名称,即类ID,易于阅读和理解。例如,代表过滤器图形的COM对象类ID为CLSID_FilterGraph,对应的GUID是e436ebb8 - 542f - 11ce - 9f53 - 0020af0ba770。类ID用于实例化COM对象。
3. COM的初始化与释放
在Di
超级会员免费看
订阅专栏 解锁全文
939

被折叠的 条评论
为什么被折叠?



