> +������ ������ if (!device || !camera)
> +������ ������ ������ ������ return D3DRMERR_BADOBJECT;
> +������ ������ if (!viewport)
> +������ ������ ������ ������ return D3DRMERR_BADVALUE;
These checks are redundant, Init() does that as well.
> +������ ������ ok(ref4 == frame_ref, "Expected ref4 == frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
> +
> +������ ������ device_ref = get_refcount((IUnknown *)device1);
> +������ ������ frame_ref = get_refcount((IUnknown *)frame);
The get_refcount here seems redundant because you've just shown that it is back to where it used to be.