1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms
6 //! Version management functions, types, and definitions
7 use ctypes::c_void;
8 use shared::minwindef::{BOOL, DWORD, LPCVOID, LPVOID, PUINT};
9 use um::winnt::{LPCSTR, LPCWSTR, LPSTR, LPWSTR};
10 extern "system" {
GetFileVersionInfoSizeA( lptstrFilename: LPCSTR, lpdwHandle: *mut DWORD, ) -> DWORD11     pub fn GetFileVersionInfoSizeA(
12         lptstrFilename: LPCSTR,
13         lpdwHandle: *mut DWORD,
14     ) -> DWORD;
GetFileVersionInfoSizeW( lptstrFilename: LPCWSTR, lpdwHandle: *mut DWORD, ) -> DWORD15     pub fn GetFileVersionInfoSizeW(
16         lptstrFilename: LPCWSTR,
17         lpdwHandle: *mut DWORD,
18     ) -> DWORD;
GetFileVersionInfoA( lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: *mut c_void, ) -> BOOL19     pub fn GetFileVersionInfoA(
20         lptstrFilename: LPCSTR,
21         dwHandle: DWORD,
22         dwLen: DWORD,
23         lpData: *mut c_void,
24     ) -> BOOL;
GetFileVersionInfoW( lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: *mut c_void, ) -> BOOL25     pub fn GetFileVersionInfoW(
26         lptstrFilename: LPCWSTR,
27         dwHandle: DWORD,
28         dwLen: DWORD,
29         lpData: *mut c_void,
30     ) -> BOOL;
VerQueryValueA( pBlock: LPCVOID, lpSubBlock: LPCSTR, lplpBuffer: &mut LPVOID, puLen: PUINT, ) -> BOOL31     pub fn VerQueryValueA(
32         pBlock: LPCVOID,
33         lpSubBlock: LPCSTR,
34         lplpBuffer: &mut LPVOID,
35         puLen: PUINT,
36     ) -> BOOL;
VerQueryValueW( pBlock: LPCVOID, lpSubBlock: LPCWSTR, lplpBuffer: &mut LPVOID, puLen: PUINT, ) -> BOOL37     pub fn VerQueryValueW(
38         pBlock: LPCVOID,
39         lpSubBlock: LPCWSTR,
40         lplpBuffer: &mut LPVOID,
41         puLen: PUINT,
42     ) -> BOOL;
VerLanguageNameA( wLang: DWORD, szLang: LPSTR, cchLang: DWORD, ) -> DWORD43     pub fn VerLanguageNameA(
44         wLang: DWORD,
45         szLang: LPSTR,
46         cchLang: DWORD,
47     ) -> DWORD;
VerLanguageNameW( wLang: DWORD, szLang: LPWSTR, cchLang: DWORD, ) -> DWORD48     pub fn VerLanguageNameW(
49         wLang: DWORD,
50         szLang: LPWSTR,
51         cchLang: DWORD,
52     ) -> DWORD;
53 }
54