什么" 1" in" D2D1"代表?

时间:2013-04-15 18:11:05

标签: winapi direct2d

D2D1是Win32中Direct2D技术的命名空间。但是我不明白这个名字的词源。 D2D部分最有可能是指 D 直立 2D ,但最后 1 让我感到困惑......

还有很多以“1”作为后缀的类:IDWriteFactory1IDWriteFont1IDWriteTextLayout1等等 - 它们的目的是什么,与类似对象的区别没有后缀?

1 个答案:

答案 0 :(得分:5)

COM接口通常以越来越多的数字命名以允许版本控制。一旦COM接口公开发布,COM规则就要求不再允许更改接口,或者与现有代码断开兼容。如果需要添加新功能,则必须公开新接口。我们以IDWriteFactory1为例。今天,这是第一个发布界面。将来,可能会添加使用新方法扩展IDWriteFactory2的{​​{1}}。保留现有代码,因为他们对IDWriteFactory1一无所知,但新代码可以创建IDWriteFactory2对象并查询它以查看它是否支持IDWriteFactory1,如果是,则使用更新的方法。

IDWriteFactory2命名空间的命名可能类似。它可能用于版本控制(Direct2D v1?)。也许将来会为不适合现有Direct2D架构的东西添加D2D1(Direct2D v2)命名空间。谁知道肯定。