public unsafe void DateTimeVariantTest() { var prettyDate = new DateTime(635875488000000000); Variant testValue = prettyDate; Assert.AreEqual(typeof(DateTime), testValue.ToObject().GetType()); Assert.AreEqual(prettyDate.ToString(), testValue.ToObject().ToString()); // Interpret bits as a long for comparison. Explicit casting is a type conversion under c# // so instead typecast to ptr. var serializedValue = testValue.ConvertToGuid(); Assert.AreEqual(prettyDate.ToFileTimeUtc(), *(long *)&serializedValue, "Binary form of Variant is not correct."); }