/// <summary> /// Takes the path to a file and returns a 128-bit hash of that file. /// </summary> /// <param name="filePath">Path to file that is to be hashed.</param> /// <param name="options">The value in this column must be 0. This parameter is reserved for future use.</param> /// <param name="hash">Int array that receives the returned file hash information.</param> public static void GetFileHash(string filePath, int options, out int[] hash) { var hashInterop = new MSIFILEHASHINFO(); hashInterop.FileHashInfoSize = 20; var error = MsiInterop.MsiGetFileHash(filePath, Convert.ToUInt32(options), hashInterop); if (0 != error) { throw new MsiException(error); } Debug.Assert(20 == hashInterop.FileHashInfoSize); hash = new int[4]; hash[0] = hashInterop.Data0; hash[1] = hashInterop.Data1; hash[2] = hashInterop.Data2; hash[3] = hashInterop.Data3; }
internal static extern int MsiGetFileHash(string filePath, uint options, MSIFILEHASHINFO hash);