mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 22:05:49 +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 FileExists(PCWSTR lpFileName, PWIN32_FIND_DATAW lpFileFindData);
|
||||
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 InstallHinfSectionW( HWND hwnd, HINSTANCE handle, PCWSTR cmdline, INT show );
|
||||
#define InstallHinfSection WINELIB_NAME_AW(InstallHinfSection)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winreg.h"
|
||||
#include "winver.h"
|
||||
#include "setupapi.h"
|
||||
|
||||
#include "wine/unicode.h"
|
||||
|
@ -1090,3 +1091,73 @@ CenterWindowRelativeToParent(HWND hwnd)
|
|||
|
||||
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 GetNewInfName
|
||||
@ stdcall GetSetFileTimestamp(wstr ptr ptr ptr long)
|
||||
@ stub GetVersionInfoFromImage
|
||||
@ stdcall GetVersionInfoFromImage(wstr ptr ptr)
|
||||
@ stub InfIsFromOemLocation
|
||||
@ stub InstallCatalog
|
||||
@ 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 VOID WINAPI AssertFail(LPSTR, UINT, LPSTR);
|
||||
WINSETUPAPI DWORD WINAPI CaptureAndConvertAnsiArg(PCSTR, PWSTR*);
|
||||
WINSETUPAPI DWORD WINAPI CaptureStringArg(PCWSTR, PWSTR*);
|
||||
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 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 PWSTR WINAPI MultiByteToUnicode(PCSTR, UINT);
|
||||
WINSETUPAPI VOID WINAPI MyFree(PVOID);
|
||||
WINSETUPAPI PWSTR WINAPI MyGetFileTitle(PCWSTR);
|
||||
WINSETUPAPI PVOID WINAPI MyMalloc(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 DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR*);
|
||||
|
||||
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,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 BOOL WINAPI SetupTerminateFileLog(HSPFILELOG);
|
||||
|
||||
WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
|
||||
|
||||
WINSETUPAPI DWORD WINAPI StringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
|
||||
WINSETUPAPI VOID WINAPI StringTableDestroy(HSTRING_TABLE);
|
||||
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 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 */
|
||||
#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue