Приветствую!!! Хочу получить адреса интерфейсов IDirect3D, IDirect3DDevice7 при помощи QueryInterface первый получаю успешно, а со вторым проблемы HRESULT не равен 0. код таков: lea eax, pID3D push eax ;[out]ppvObj push offset IID_Direct3D ;[in] IID_IDIRECT push pI mov eax, pI mov eax, [eax] call dword ptr [eax + 0] ;QueryInterface , где pI - указатель который вернула Direct3DCreate Если вызвать этот же код с IID_DIRECT3DDEVICE ,то возвращается ошибка... PS Может есть другой способ получения интерфейсов
Другой способ как раз описан в доке: After retrieving a pointer to the IDirect3D7 interface, you can create a rendering device by calling the IDirect3D7::CreateDevice method. The CreateDevice method accepts the globally unique identifier (GUID) of the desired device, the address of the IDirectDrawSurface7 interface for the surface that the device will render to, and the address of a variable that the method will set to an IDirect3DDevice7 interface pointer if the device object is created successfully.