FoxPro stores internal DATE values in 32-bit floating point format. The value is number of days passed since December 30th, 1899. So, for example, {^2004/07/12} is stored like 38180.
DATETIME values are stored in 32-bit floating point format as well. The DATE part of a DATETIME value is stored in the integer portion of the number. The time is stored as a fraction of one day. For example, 38180.25 corresponds to 6:00 AM of July 12th, 2004.
So whenever you pass DATE or DATETIME value to a COM object it is received as 32-bit floating point number. On COM object's side the only difference between DATE and DATETIME is empty fraction part for the DATE.