You can determine whether the hardware supports dynamic gamma ramp adjustment by calling the IDirectDraw4::GetCaps method. After the call, if the DDCAPS2_PRIMARYGAMMA flag is present in the dwFlags2 member of the associate DDCAPS structure, the hardware supports dynamic gamma ramps. DirectDraw does not attempt to emulate this feature, so if the hardware doesn't support it, you can't use it.