private static extern HRESULT _DwmGetCompositionTimingInfo(IntPtr hwnd, ref DWM_TIMING_INFO pTimingInfo);
internal static DWM_TIMING_INFO? DwmGetCompositionTimingInfo(IntPtr hwnd) { if (!Utility.IsOSVistaOrNewer) { // API was new to Vista. return null; } var dti = new DWM_TIMING_INFO {cbSize = Marshal.SizeOf(typeof (DWM_TIMING_INFO))}; var hr = _DwmGetCompositionTimingInfo(hwnd, ref dti); if (hr == HRESULT.E_PENDING) { // The system isn't yet ready to respond. Return null rather than throw. return null; } hr.ThrowIfFailed(); return dti; }