mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 16:26:02 +00:00
Implement GetVersionInfoFromImage.
Add missing prototypes to w32api. svn path=/trunk/; revision=16382
This commit is contained in:
parent
5f53398bd1
commit
396b274742
4 changed files with 93 additions and 1 deletions
|
@ -683,6 +683,7 @@ PWSTR WINAPI DuplicateString(PCWSTR lpSrc);
|
||||||
BOOL WINAPI EnablePrivilege(PCWSTR lpPrivilegeName, BOOL bEnable);
|
BOOL WINAPI EnablePrivilege(PCWSTR lpPrivilegeName, BOOL bEnable);
|
||||||
BOOL WINAPI FileExists(PCWSTR lpFileName, PWIN32_FIND_DATAW lpFileFindData);
|
BOOL WINAPI FileExists(PCWSTR lpFileName, PWIN32_FIND_DATAW lpFileFindData);
|
||||||
DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
|
DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
|
||||||
|
BOOL WINAPI GetVersionInfoFromImage(LPWSTR, PULARGE_INTEGER, LPWORD);
|
||||||
void WINAPI InstallHinfSectionA( HWND hwnd, HINSTANCE handle, PCSTR cmdline, INT show );
|
void WINAPI InstallHinfSectionA( HWND hwnd, HINSTANCE handle, PCSTR cmdline, INT show );
|
||||||
void WINAPI InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show );
|
void WINAPI InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show );
|
||||||
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
|
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
|
#include "winver.h"
|
||||||
#include "setupapi.h"
|
#include "setupapi.h"
|
||||||
|
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
|
@ -1090,3 +1091,73 @@ CenterWindowRelativeToParent(HWND hwnd)
|
||||||
|
|
||||||
MoveWindow(hwnd, posX, posY, nWindowHeight, nWindowWidth, 0);
|
MoveWindow(hwnd, posX, posY, nWindowHeight, nWindowWidth, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* GetVersionInfoFromImage [SETUPAPI.@]
|
||||||
|
*
|
||||||
|
* Retrieves version information for a given file.
|
||||||
|
*
|
||||||
|
* PARAMS
|
||||||
|
* lpFileName [I] File name
|
||||||
|
* lpFileVersion [O] Pointer to the full file version
|
||||||
|
* lpVersionVarSize [O] Pointer to the size of the variable version
|
||||||
|
* information
|
||||||
|
*
|
||||||
|
* RETURNS
|
||||||
|
* Success: TRUE
|
||||||
|
* Failure: FALSE
|
||||||
|
*/
|
||||||
|
BOOL WINAPI
|
||||||
|
GetVersionInfoFromImage(LPWSTR lpFileName,
|
||||||
|
PULARGE_INTEGER lpFileVersion,
|
||||||
|
LPWORD lpVersionVarSize)
|
||||||
|
{
|
||||||
|
DWORD dwHandle;
|
||||||
|
DWORD dwSize;
|
||||||
|
LPVOID lpInfo;
|
||||||
|
UINT uSize;
|
||||||
|
VS_FIXEDFILEINFO *lpFixedInfo;
|
||||||
|
LPWORD lpVarSize;
|
||||||
|
|
||||||
|
dwSize = GetFileVersionInfoSizeW(lpFileName, &dwHandle);
|
||||||
|
if (dwSize == 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
lpInfo = MyMalloc(dwSize);
|
||||||
|
if (lpInfo == NULL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (!GetFileVersionInfoW(lpFileName, 0, dwSize, lpInfo))
|
||||||
|
{
|
||||||
|
MyFree(lpInfo);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!VerQueryValueW(lpInfo, L"\\",
|
||||||
|
(LPVOID*)&lpFixedInfo, &uSize))
|
||||||
|
{
|
||||||
|
MyFree(lpInfo);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
lpFileVersion->LowPart = lpFixedInfo->dwFileVersionLS;
|
||||||
|
lpFileVersion->HighPart = lpFixedInfo->dwFileVersionMS;
|
||||||
|
|
||||||
|
*lpVersionVarSize = 0;
|
||||||
|
if (!VerQueryValueW(lpInfo, L"\\VerFileInfo\\Translation",
|
||||||
|
(LPVOID*)&lpVarSize, &uSize))
|
||||||
|
{
|
||||||
|
MyFree(lpInfo);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uSize >= 4)
|
||||||
|
{
|
||||||
|
*lpVersionVarSize = *lpVarSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
MyFree(lpInfo);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
|
@ -206,7 +206,7 @@
|
||||||
@ stub GetCurrentDriverSigningPolicy
|
@ stub GetCurrentDriverSigningPolicy
|
||||||
@ stub GetNewInfName
|
@ stub GetNewInfName
|
||||||
@ stdcall GetSetFileTimestamp(wstr ptr ptr ptr long)
|
@ stdcall GetSetFileTimestamp(wstr ptr ptr ptr long)
|
||||||
@ stub GetVersionInfoFromImage
|
@ stdcall GetVersionInfoFromImage(wstr ptr ptr)
|
||||||
@ stub InfIsFromOemLocation
|
@ stub InfIsFromOemLocation
|
||||||
@ stub InstallCatalog
|
@ stub InstallCatalog
|
||||||
@ stdcall InstallHinfSection(long long str long) InstallHinfSectionA
|
@ stdcall InstallHinfSection(long long str long) InstallHinfSectionA
|
||||||
|
|
|
@ -1038,13 +1038,27 @@ typedef SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS,
|
||||||
|
|
||||||
|
|
||||||
WINSETUPAPI LONG WINAPI AddTagToGroupOrderList(PCWSTR, DWORD, DWORD);
|
WINSETUPAPI LONG WINAPI AddTagToGroupOrderList(PCWSTR, DWORD, DWORD);
|
||||||
|
WINSETUPAPI VOID WINAPI AssertFail(LPSTR, UINT, LPSTR);
|
||||||
|
WINSETUPAPI DWORD WINAPI CaptureAndConvertAnsiArg(PCSTR, PWSTR*);
|
||||||
|
WINSETUPAPI DWORD WINAPI CaptureStringArg(PCWSTR, PWSTR*);
|
||||||
WINSETUPAPI VOID WINAPI CenterWindowRelativeToParent(HWND);
|
WINSETUPAPI VOID WINAPI CenterWindowRelativeToParent(HWND);
|
||||||
|
WINSETUPAPI BOOL WINAPI ConcatenatePaths(LPWSTR, LPCWSTR, DWORD, LPDWORD);
|
||||||
|
WINSETUPAPI BOOL WINAPI DelayedMove(PCWSTR, PCWSTR);
|
||||||
|
WINSETUPAPI BOOL WINAPI DoesUserHavePrivilege(PCWSTR);
|
||||||
WINSETUPAPI PWSTR WINAPI DuplicateString(PCWSTR);
|
WINSETUPAPI PWSTR WINAPI DuplicateString(PCWSTR);
|
||||||
|
WINSETUPAPI BOOL WINAPI EnablePrivilege(PCWSTR, BOOL);
|
||||||
|
WINSETUPAPI BOOL WINAPI FileExists(PCWSTR, PWIN32_FIND_DATAW);
|
||||||
|
WINSETUPAPI DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
|
||||||
|
WINSETUPAPI BOOL WINAPI GetVersionInfoFromImage(LPWSTR, PULARGE_INTEGER, LPWORD);
|
||||||
WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
|
WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
|
||||||
|
WINSETUPAPI PWSTR WINAPI MultiByteToUnicode(PCSTR, UINT);
|
||||||
WINSETUPAPI VOID WINAPI MyFree(PVOID);
|
WINSETUPAPI VOID WINAPI MyFree(PVOID);
|
||||||
|
WINSETUPAPI PWSTR WINAPI MyGetFileTitle(PCWSTR);
|
||||||
WINSETUPAPI PVOID WINAPI MyMalloc(DWORD);
|
WINSETUPAPI PVOID WINAPI MyMalloc(DWORD);
|
||||||
WINSETUPAPI PVOID WINAPI MyRealloc(PVOID, DWORD);
|
WINSETUPAPI PVOID WINAPI MyRealloc(PVOID, DWORD);
|
||||||
|
WINSETUPAPI DWORD WINAPI OpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID*);
|
||||||
WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE*, PDWORD, PDWORD);
|
WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE*, PDWORD, PDWORD);
|
||||||
|
WINSETUPAPI DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR*);
|
||||||
|
|
||||||
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT);
|
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT);
|
||||||
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT);
|
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT);
|
||||||
|
@ -1332,6 +1346,8 @@ WINSETUPAPI BOOL WINAPI SetupSetSourceListW(DWORD,PCWSTR*,UINT);
|
||||||
WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(PVOID);
|
WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(PVOID);
|
||||||
WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(HSPFILELOG);
|
WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(HSPFILELOG);
|
||||||
|
|
||||||
|
WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
|
||||||
|
|
||||||
WINSETUPAPI DWORD WINAPI StringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
|
WINSETUPAPI DWORD WINAPI StringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
|
||||||
WINSETUPAPI VOID WINAPI StringTableDestroy(HSTRING_TABLE);
|
WINSETUPAPI VOID WINAPI StringTableDestroy(HSTRING_TABLE);
|
||||||
WINSETUPAPI HSTRING_TABLE WINAPI StringTableInitialize(VOID);
|
WINSETUPAPI HSTRING_TABLE WINAPI StringTableInitialize(VOID);
|
||||||
|
@ -1340,6 +1356,10 @@ WINSETUPAPI LPWSTR WINAPI StringTableStringFromId(HSTRING_TABLE, DWORD);
|
||||||
WINSETUPAPI BOOL WINAPI StringTableStringFromIdEx(HSTRING_TABLE, DWORD, LPWSTR, LPDWORD);
|
WINSETUPAPI BOOL WINAPI StringTableStringFromIdEx(HSTRING_TABLE, DWORD, LPWSTR, LPDWORD);
|
||||||
WINSETUPAPI VOID WINAPI StringTableTrim(HSTRING_TABLE);
|
WINSETUPAPI VOID WINAPI StringTableTrim(HSTRING_TABLE);
|
||||||
|
|
||||||
|
WINSETUPAPI DWORD WINAPI TakeOwnershipOfFile(PCWSTR);
|
||||||
|
WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
|
||||||
|
WINSETUPAPI BOOL WINAPI UnmapAndCloseFile(HANDLE, HANDLE, PVOID);
|
||||||
|
|
||||||
|
|
||||||
/* for backward compatability */
|
/* for backward compatability */
|
||||||
#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
|
#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue