mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-02 11:12:31 +00:00
93 lines
2.6 KiB
Odin
93 lines
2.6 KiB
Odin
// +build windows
|
|
package sys_windows
|
|
|
|
foreign import version "system:version.lib"
|
|
|
|
@(default_calling_convention = "system")
|
|
foreign version {
|
|
GetFileVersionInfoSizeW :: proc(lpwstrFilename: LPCWSTR, lpdwHandle: LPDWORD) -> DWORD ---
|
|
GetFileVersionInfoW :: proc(lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID) -> BOOL ---
|
|
|
|
GetFileVersionInfoSizeExW :: proc(dwFlags: FILE_VER_GET_FLAGS, lpwstrFilename: LPCWSTR, lpdwHandle: LPDWORD) -> DWORD ---
|
|
GetFileVersionInfoExW :: proc(dwFlags: FILE_VER_GET_FLAGS, lpwstrFilename: LPCWSTR, dwHandle, dwLen: DWORD, lpData: LPVOID) -> DWORD ---
|
|
|
|
VerLanguageNameW :: proc(wLang: DWORD, szLang: LPWSTR, cchLang: DWORD) -> DWORD ---
|
|
VerQueryValueW :: proc(pBlock: LPCVOID, lpSubBlock: LPCWSTR, lplpBuffer: ^LPVOID, puLen: PUINT) -> BOOL ---
|
|
}
|
|
|
|
FILE_VER_GET :: enum DWORD {LOCALISED, NEUTRAL, PREFETCHED}
|
|
FILE_VER_GET_FLAGS :: bit_set[FILE_VER_GET; DWORD]
|
|
|
|
/* ----- Symbols ----- */
|
|
VS_FILE_INFO :: RT_VERSION
|
|
VS_VERSION_INFO :: 1
|
|
VS_USER_DEFINED :: 100
|
|
|
|
VS_FFI_SIGNATURE : DWORD : 0xFEEF04BD
|
|
|
|
VS_FFI_STRUCVERSION :: 0x00010000
|
|
VS_FFI_FILEFLAGSMASK :: 0x0000003F
|
|
|
|
/* ----- VS_VERSION.dwFileFlags ----- */
|
|
VS_FILEFLAG :: enum DWORD {
|
|
DEBUG,
|
|
PRERELEASE,
|
|
PATCHED,
|
|
PRIVATEBUILD,
|
|
INFOINFERRED,
|
|
SPECIALBUILD,
|
|
}
|
|
VS_FILEFLAGS :: bit_set[VS_FILEFLAG;DWORD]
|
|
|
|
/* ----- VS_VERSION.dwFileOS ----- */
|
|
VOS :: enum WORD {
|
|
UNKNOWN = 0x0000,
|
|
DOS = 0x0001,
|
|
OS216 = 0x0002,
|
|
OS232 = 0x0003,
|
|
NT = 0x0004,
|
|
WINCE = 0x0005,
|
|
}
|
|
VOS2 :: enum WORD {
|
|
BASE = 0x0000,
|
|
WINDOWS16 = 0x0001,
|
|
PM16 = 0x0002,
|
|
PM32 = 0x0003,
|
|
WINDOWS32 = 0x0004,
|
|
}
|
|
|
|
/* ----- VS_VERSION.dwFileType ----- */
|
|
VFT :: enum DWORD {
|
|
UNKNOWN = 0x00000000,
|
|
APP = 0x00000001,
|
|
DLL = 0x00000002,
|
|
DRV = 0x00000003,
|
|
FONT = 0x00000004,
|
|
VXD = 0x00000005,
|
|
STATIC_LIB = 0x00000007,
|
|
}
|
|
|
|
/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV ----- */
|
|
VFT2_WINDOWS_DRV :: enum DWORD {
|
|
UNKNOWN = 0x00000000,
|
|
DRV_PRINTER = 0x00000001,
|
|
DRV_KEYBOARD = 0x00000002,
|
|
DRV_LANGUAGE = 0x00000003,
|
|
DRV_DISPLAY = 0x00000004,
|
|
DRV_MOUSE = 0x00000005,
|
|
DRV_NETWORK = 0x00000006,
|
|
DRV_SYSTEM = 0x00000007,
|
|
DRV_INSTALLABLE = 0x00000008,
|
|
DRV_SOUND = 0x00000009,
|
|
DRV_COMM = 0x0000000A,
|
|
DRV_INPUTMETHOD = 0x0000000B,
|
|
DRV_VERSIONED_PRINTER = 0x0000000C,
|
|
}
|
|
|
|
/* ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT ----- */
|
|
VFT2_WINDOWS_FONT :: enum DWORD {
|
|
FONT_RASTER = 0x00000001,
|
|
FONT_VECTOR = 0x00000002,
|
|
FONT_TRUETYPE = 0x00000003,
|
|
}
|