DirectX and COM

Started by
1 comment, last by dcox 13 years, 2 months ago
Everything I have read says that DirectX is implemented as COM. Yet, I don't see it in the OLE/COM Object Viewer that comes with VS 2010. Also, if I create a .NET Win Forms application and try to add a reference to DirectX, I find nothing in the COM tab of the Add Reference dialog that refers to DirectX. I also don't find any type libraries for DirectX.

DirectX IS installed. I installed the June 2010 SDK on three machines. The same conditions exist on all three machines. I don't doubt that DirectX conforms to COM. However, I am surprised to at least not find a type library for it.

Any comments or thoughts?
Advertisement

Everything I have read says that DirectX is implemented as COM. Yet, I don't see it in the OLE/COM Object Viewer that comes with VS 2010. Also, if I create a .NET Win Forms application and try to add a reference to DirectX, I find nothing in the COM tab of the Add Reference dialog that refers to DirectX. I also don't find any type libraries for DirectX.

DirectX IS installed. I installed the June 2010 SDK on three machines. The same conditions exist on all three machines. I don't doubt that DirectX conforms to COM. However, I am surprised to at least not find a type library for it.

Any comments or thoughts?


Technically OLE and COM are two different things. COM is just a standard that specifies the low-level binary interface used to interact with objects, as well as a few other things. OLE is the full automation framework that's built on top of COM, and uses certain standards and COM mechanism to implement its features. It's kinda like C++ vs. MFC.

Since D3D isn't designed for OLE automation, it doesn't implement everything required for it to function in that environment (things like typelibs, events, properties, etc.). It's more of a "COM lite", where it only does the bare essentials. In practice this means that aside from the use of AddRef/Release and interfaces, it doesn't really resemble typical COM programming at all.
Thanks! That clarifies the situation!


[quote name='dcox' timestamp='1299791301' post='4784132']
Everything I have read says that DirectX is implemented as COM. Yet, I don't see it in the OLE/COM Object Viewer that comes with VS 2010. Also, if I create a .NET Win Forms application and try to add a reference to DirectX, I find nothing in the COM tab of the Add Reference dialog that refers to DirectX. I also don't find any type libraries for DirectX.

DirectX IS installed. I installed the June 2010 SDK on three machines. The same conditions exist on all three machines. I don't doubt that DirectX conforms to COM. However, I am surprised to at least not find a type library for it.

Any comments or thoughts?


Technically OLE and COM are two different things. COM is just a standard that specifies the low-level binary interface used to interact with objects, as well as a few other things. OLE is the full automation framework that's built on top of COM, and uses certain standards and COM mechanism to implement its features. It's kinda like C++ vs. MFC.

Since D3D isn't designed for OLE automation, it doesn't implement everything required for it to function in that environment (things like typelibs, events, properties, etc.). It's more of a "COM lite", where it only does the bare essentials. In practice this means that aside from the use of AddRef/Release and interfaces, it doesn't really resemble typical COM programming at all.
[/quote]

This topic is closed to new replies.

Advertisement