COM interfaces are usually called with increasing numbers, which allows version control. When a COM interface is published publicly, COM rules dictate that the interface can no longer be changed, or compatibility with existing code gaps. If you need to add new functionality, you must open a new interface. Take, for example, IDWriteFactory1 . Today is the first release interface. In the future, perhaps, IDWriteFactory2 will be added, which extends IDWriteFactory1 with new methods. Existing code is saved because they do not know anything about IDWriteFactory2 , but the new code can create an IDWriteFactory1 object and query it to see if it IDWriteFactory2 , and if so, use newer methods if necessary.
The naming of the D2D1 namespace is most likely similar. It is probably used for version control purposes (Direct2D v1?). Perhaps in the future, the D2D2 (Direct2D v2) namespace will be added for things that do not fit into the existing Direct2D architecture. Who knows for sure.
source share