"regsvr32.exe d3drm.dll" returns an error saying DllRegisterServer was not found.
I compiled the test below and ran it on an XP VM (which had the dx7 SDK installed) just to be sure that my native win8.1 box wasn't the issue:
CoInitialize(NULL);
hr = CoCreateInstance(&CLSID_CDirect3DRM, NULL, CLSCTX_INPROC_HANDLER, &IID_IDirect3DRM, &d3drm); ok(hr == D3DRM_OK, "Got %#x for IID_IDirect3DRM\n", hr); hr = CoCreateInstance(&CLSID_CDirect3DRMTexture, NULL, CLSCTX_INPROC_HANDLER, &IID_IDirect3DRMTexture3, &texture3); ok(hr == D3DRM_OK, "Got %#x for IID_IDirect3DRMTexture3\n", hr);
Got the following results:
d3drm.c:4309: Test failed: Got 0x80040154 for IID_IDirect3DRM
d3drm.c:4311: Test failed: Got 0x80040154 for IID_IDirect3DRMTexture3
On Sat, Mar 26, 2016 at 7:55 PM, Stefan Dösinger stefandoesinger@gmail.com wrote:
CoCreateInstance(&CLSID_CDirect3DRMTexture, NULL, CLSCTX_INPROC_SERVER, &IID_IDirect3DRMTexture3, &texture3) returns REGDB_E_CLASSNOTREG. Am I missing something?
Does it work for IDirect3DRM? It may not be supposed to work, although it's also possible d3drm.dll is just not properly registered.
If you copied d3drm.dll from XP you'll most likely have to register it with regsvr32.