为啥ATL的工程要生成一个以工程名为名称的.c文件而不是.cpp文件

为什么ATL的工程要生成一个以工程名为名称的.c文件而不是.cpp文件?
既然ATL是活动模板库,那么我新建一个ATL工程,VC默认取名字叫做ATLProject,里面就会有一个ATLProject.c的文件(IDE自动生成的)

问题: 既然是一个c++的工程,为什么扩展名不用cpp而是要用.c呢? 这样做有什么意义和作用吗?
谢谢。

------解决方案--------------------
这个是midl根据idl文件自动生成的

虽然用C调用COM的比较少,但也得兼容C。有这几个文件之后C也就很容易调用COM。