C# – How to convert from MFC’s COleDateTime to C# DateTime


I have an older library that uses COleDateTime as a return type in a C++ MFC Dll. When I do a PInvoke, can I marshal that with confidence to a DateTime object? Or should I do something wacky, like convert the COleDateTime into the number of ticks since 1970, and then convert those ticks back to a DateTime object in the C# calling project?


Best Solution

You can return a double, by accessing the m_dt member on the COleDateTime class.

Then, you would pass that double to the static FromOADate method on the DateTime structure to convert the double to a DateTime instance.