use Double instead of Float for timeout value, use CTime and CSUSeconds types instead of CLong