5、深入理解COM与DirectShow应用开发

深入理解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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值