AaryamanCheers,Some notes:I played around with different CLSCTX values as well - no luck so far.
I played around with IDirect3DRM::CreateObject a bit, and it also returns REGDB_E_CLASSNOTREG if the proper CLSID is not set. Another interesting note is that passing the same CLSID that worked for CreateObject to CoCreateInstance makes it fail. The SDK setup does in fact add the CLSID's to the registry - it seems that the setup reads d3drm.inf, creates a couple .reg files and runs that to create the registry entries. The only registry entry related to d3drm which the setup adds is "Direct3DRMObject" whose value is {4516EC41-8F20-11d0-9B6D-0000C0781BC3}, which matches that of CLSID_CDirect3DRM.
I installed this SDK on my XP VM, yet the tests fail, hmm.On Sat, Mar 26, 2016 at 8:09 PM, Aaryaman Vasishta <jem456.vasishta@gmail.com> wrote:Got the following results:"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);d3drm.c:4309: Test failed: Got 0x80040154 for IID_IDirect3DRM
d3drm.c:4311: Test failed: Got 0x80040154 for IID_IDirect3DRMTexture3On 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.