private static Term IpcTermToTerm(IpcTerm ipcTerm) { Term term = new Term(); term.From = DateTime.FromFileTime(ipcTerm.ftStart); term.Duration = new TimeSpan((long)ipcTerm.dwDuration); return term; }
// License Properties - http://msdn.microsoft.com/en-us/library/windows/desktop/hh535287(v=vs.85).aspx // IpcSetLicenseProperty() - http://msdn.microsoft.com/en-us/library/windows/desktop/hh535271(v=vs.85).aspx // IPC_LI_VALIDITY_TIME - http://msdn.microsoft.com/en-us/library/windows/desktop/hh535287(v=vs.85).aspx public static void IpcSetLicenseValidityTime(SafeInformationProtectionLicenseHandle licenseHandle, Term validityTime) { int hr = 0; IpcTerm ipcValidityTime = TermToIpcTerm(validityTime); IntPtr licenseInfoPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IpcTerm))); try { Marshal.StructureToPtr(ipcValidityTime, licenseInfoPtr, false); hr = UnsafeNativeMethods.IpcSetLicenseProperty( licenseHandle, false, (uint)LicensePropertyType.ValidityTime, licenseInfoPtr); ThrowOnErrorCode(hr); } finally { Marshal.FreeHGlobal(licenseInfoPtr); } }
private static IpcTerm TermToIpcTerm(Term term) { IpcTerm ipcTerm = new IpcTerm(); ipcTerm.ftStart = new FileTime((long)term.From.ToFileTime()); ipcTerm.dwDuration = (ulong)term.Duration.Ticks; return ipcTerm; }