"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.