Winapi 什么是;1“;在;D2D1“;代表什么?

Winapi 什么是;1“;在;D2D1“;代表什么?,winapi,direct2d,Winapi,Direct2d,D2D1是Win32中Direct2D技术的命名空间。但是我不明白这个名字的词源。D2D部分很可能是指D直接的2D,但是最后一个1让我困惑 还有许多以“1”作为后缀的类:IDWriteFactory1,IDWriteFont1,IDWriteTextLayout1,等等。它们的用途是什么,与没有后缀的类似对象有什么区别?COM接口通常以越来越多的数字命名,以便进行版本控制。一旦COM接口公开发布,COM规则规定不再允许更改该接口,否则与现有代码的兼容性将中断。如果需要添加新功能,则必须公开新

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


还有许多以“1”作为后缀的类:
IDWriteFactory1
IDWriteFont1
IDWriteTextLayout1
,等等。它们的用途是什么,与没有后缀的类似对象有什么区别?

COM接口通常以越来越多的数字命名,以便进行版本控制。一旦COM接口公开发布,COM规则规定不再允许更改该接口,否则与现有代码的兼容性将中断。如果需要添加新功能,则必须公开新接口。让我们以
IDWriteFactory1
为例。今天,这是第一个发布界面。将来,可能会添加
IDWriteFactory2
,使用新方法扩展
IDWriteFactory1
。现有代码被保留,因为它们不知道任何关于
IDWriteFactory2
,但是新代码可以创建一个
IDWriteFactory1
对象,并查询它是否支持
IDWriteFactory2
,如果支持,则根据需要使用更新的方法


D2D1
名称空间的命名可能类似。它可能用于版本控制目的(Direct2D v1?)。将来可能会添加一个
D2D2
(direct2dv2)命名空间,用于处理不适合现有Direct2D体系结构的内容。谁知道呢。

IDWriteFactory2实际上是在Windows 8.1中添加的:但是Direct2D 1.1没有增加接口号,尽管他们也添加了一些东西;不过,新内容并不在D2D接口本身中,而是在ID2D1DeviceContext中,它位于新的d2d1_1.h(添加到Windows 8中)中。