The IDirect3D2::EnumDevices method enumerates all Direct3D device drivers installed on the system.
HRESULT EnumDevices(
LPD3DENUMDEVICESCALLBACK lpEnumDevicesCallback,
LPVOID lpUserArg
);
If the method succeeds, the return value is D3D_OK.
If the method fails, the return value may be one of the following values:
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
MMX devices are enumerated only by IDirect3D2::EnumDevices, not by its predecessor, IDirect3D::EnumDevices. If you use the QueryInterface method to create an IDirect3D interface from IDirect3D2 before you enumerate the Direct3D drivers, the enumeration will behave like IDirect3D::EnumDevices — no MMX devices will be enumerated.
To use execute buffers with an MMX device, you must call the IDirect3D2::CreateDevice method to create an MMX IDirect3DDevice2 interface and then use the QueryInterface method to create an IDirect3DDevice interface from IDirect3DDevice2.
Windows NT: Use version 4.0 or later.
Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
Windows CE: Unsupported.
Header: Declared in ddraw.h.
Import Library: Use ddraw.lib.