Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FileVersionInfo()

unsafe System.Diagnostics.FileVersionInfo.FileVersionInfo ( string fileName)
inlineprivate

Definition at line 152 of file FileVersionInfo.cs.

153 {
154 _fileName = fileName;
155 uint lpdwHandle;
156 uint fileVersionInfoSizeEx = global::Interop.Version.GetFileVersionInfoSizeEx(1u, _fileName, out lpdwHandle);
157 if (fileVersionInfoSizeEx == 0)
158 {
159 return;
160 }
161 byte[] array = new byte[fileVersionInfoSizeEx];
162 fixed (byte* value = &array[0])
163 {
164 IntPtr intPtr = new IntPtr(value);
165 if (!global::Interop.Version.GetFileVersionInfoEx(3u, _fileName, 0u, fileVersionInfoSizeEx, intPtr))
166 {
167 return;
168 }
169 uint varEntry = GetVarEntry(intPtr);
170 if (GetVersionInfoForCodePage(intPtr, ConvertTo8DigitHex(varEntry)))
171 {
172 return;
173 }
174 uint[] array2 = s_fallbackLanguageCodePages;
175 foreach (uint num in array2)
176 {
177 if (num != varEntry && GetVersionInfoForCodePage(intPtr, ConvertTo8DigitHex(num)))
178 {
179 break;
180 }
181 }
182 }
183 }
static uint GetVarEntry(IntPtr memPtr)
static string ConvertTo8DigitHex(uint value)
static readonly uint[] s_fallbackLanguageCodePages
bool GetVersionInfoForCodePage(IntPtr memIntPtr, string codepage)

References System.Diagnostics.FileVersionInfo._fileName, System.array, System.Diagnostics.FileVersionInfo.ConvertTo8DigitHex(), System.Diagnostics.FileVersionInfo.GetVarEntry(), System.Diagnostics.FileVersionInfo.GetVersionInfoForCodePage(), System.Diagnostics.FileVersionInfo.s_fallbackLanguageCodePages, and System.value.

Referenced by System.Diagnostics.FileVersionInfo.GetVersionInfo().