/// If no usage metrics are recorded, the value is 0.
///
/// Win32 MSI API:
/// MsiGetFeatureUsage
///
public FeatureInstallation.UsageData Usage
{
get
{
uint useCount;
ushort useDate;
uint ret = NativeMethods.MsiGetFeatureUsage(
this.ProductCode, this.FeatureName, out useCount, out useDate);
if (ret != 0)
{
throw InstallerException.ExceptionFromReturnCode(ret);
}
DateTime lastUsedDate;
if (useCount == 0)
{
lastUsedDate = DateTime.MinValue;
}
else
{
lastUsedDate = new DateTime(
1980 + (useDate >> 9),
(useDate & 0x01FF) >> 5,
(useDate & 0x001F));
}
return new UsageData((int) useCount, lastUsedDate);
}
}
///