Implementation of VER.DLL. Thunks up to VERSION.DLL.
This commit is contained in:
parent
7607815b74
commit
667fc3af66
|
@ -0,0 +1 @@
|
|||
Makefile
|
|
@ -0,0 +1,15 @@
|
|||
DEFS = @DLLFLAGS@ -D__WINE__
|
||||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = ver
|
||||
|
||||
C_SRCS = \
|
||||
ver16.c
|
||||
|
||||
all: $(MODULE).o
|
||||
|
||||
@MAKE_RULES@
|
||||
|
||||
### Dependencies:
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
* Implementation of VER.DLL
|
||||
*
|
||||
* Copyright 1999 Ulrich Weigand
|
||||
*/
|
||||
|
||||
#include "windows.h"
|
||||
#include "debug.h"
|
||||
#include "ver.h"
|
||||
#include "ldt.h"
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* GetFileResourceSize16 [VER.2]
|
||||
*/
|
||||
DWORD WINAPI GetFileResourceSize16( LPCSTR lpszFileName,
|
||||
SEGPTR spszResType, SEGPTR spszResId,
|
||||
LPDWORD lpdwFileOffset )
|
||||
{
|
||||
LPCSTR lpszResType = HIWORD( spszResType )? PTR_SEG_TO_LIN( spszResType )
|
||||
: (LPCSTR)spszResType;
|
||||
LPCSTR lpszResId = HIWORD( spszResId )? PTR_SEG_TO_LIN( spszResId )
|
||||
: (LPCSTR)spszResId;
|
||||
|
||||
return GetFileResourceSize32( lpszFileName,
|
||||
lpszResType, lpszResId, lpdwFileOffset );
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* GetFileResource16 [VER.3]
|
||||
*/
|
||||
DWORD WINAPI GetFileResource16( LPCSTR lpszFileName,
|
||||
SEGPTR spszResType, SEGPTR spszResId,
|
||||
DWORD dwFileOffset,
|
||||
DWORD dwResLen, LPVOID lpvData )
|
||||
{
|
||||
LPCSTR lpszResType = HIWORD( spszResType )? PTR_SEG_TO_LIN( spszResType )
|
||||
: (LPCSTR)spszResType;
|
||||
LPCSTR lpszResId = HIWORD( spszResId )? PTR_SEG_TO_LIN( spszResId )
|
||||
: (LPCSTR)spszResId;
|
||||
|
||||
return GetFileResource32( lpszFileName, lpszResType, lpszResId,
|
||||
dwFileOffset, dwResLen, lpvData );
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* GetFileVersionInfoSize16 [VER.6]
|
||||
*/
|
||||
DWORD WINAPI GetFileVersionInfoSize16( LPCSTR lpszFileName, LPDWORD lpdwHandle )
|
||||
{
|
||||
TRACE( ver, "(%s, %p)\n", debugstr_a(lpszFileName), lpdwHandle );
|
||||
return GetFileVersionInfoSize32A( lpszFileName, lpdwHandle );
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* GetFileVersionInfo16 [VER.7]
|
||||
*/
|
||||
DWORD WINAPI GetFileVersionInfo16( LPCSTR lpszFileName, DWORD handle,
|
||||
DWORD cbBuf, LPVOID lpvData )
|
||||
{
|
||||
TRACE( ver, "(%s, %08lx, %ld, %p)\n",
|
||||
debugstr_a(lpszFileName), handle, cbBuf, lpvData );
|
||||
|
||||
return GetFileVersionInfo32A( lpszFileName, handle, cbBuf, lpvData );
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* VerFindFile16 [VER.8]
|
||||
*/
|
||||
DWORD WINAPI VerFindFile16( UINT16 flags, LPCSTR lpszFilename,
|
||||
LPCSTR lpszWinDir, LPCSTR lpszAppDir,
|
||||
LPSTR lpszCurDir, UINT16 *lpuCurDirLen,
|
||||
LPSTR lpszDestDir, UINT16 *lpuDestDirLen )
|
||||
{
|
||||
UINT32 curDirLen, destDirLen;
|
||||
DWORD retv = VerFindFile32A( flags, lpszFilename, lpszWinDir, lpszAppDir,
|
||||
lpszCurDir, &curDirLen, lpszDestDir, &destDirLen );
|
||||
|
||||
*lpuCurDirLen = (UINT16)curDirLen;
|
||||
*lpuDestDirLen = (UINT16)destDirLen;
|
||||
return retv;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* VerInstallFile16 [VER.9]
|
||||
*/
|
||||
DWORD WINAPI VerInstallFile16( UINT16 flags,
|
||||
LPCSTR lpszSrcFilename, LPCSTR lpszDestFilename,
|
||||
LPCSTR lpszSrcDir, LPCSTR lpszDestDir, LPCSTR lpszCurDir,
|
||||
LPSTR lpszTmpFile, UINT16 *lpwTmpFileLen )
|
||||
{
|
||||
UINT32 filelen;
|
||||
DWORD retv = VerInstallFile32A( flags, lpszSrcFilename, lpszDestFilename,
|
||||
lpszSrcDir, lpszDestDir, lpszCurDir,
|
||||
lpszTmpFile, &filelen);
|
||||
|
||||
*lpwTmpFileLen = (UINT16)filelen;
|
||||
return retv;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* VerLanguageName16 [VER.10]
|
||||
*/
|
||||
DWORD WINAPI VerLanguageName16( UINT16 uLang, LPSTR lpszLang, UINT16 cbLang )
|
||||
{
|
||||
return VerLanguageName32A( uLang, lpszLang, cbLang );
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* VerQueryValue16 [VER.11]
|
||||
*/
|
||||
DWORD WINAPI VerQueryValue16( SEGPTR spvBlock, LPCSTR lpszSubBlock,
|
||||
SEGPTR *lpspBuffer, UINT16 *lpcb )
|
||||
{
|
||||
LPVOID lpvBlock = PTR_SEG_TO_LIN( spvBlock );
|
||||
LPVOID buffer = lpvBlock;
|
||||
UINT32 buflen;
|
||||
DWORD retv;
|
||||
|
||||
TRACE( ver, "(%p, %s, %p, %p)\n",
|
||||
lpvBlock, debugstr_a(lpszSubBlock), lpspBuffer, lpcb );
|
||||
|
||||
retv = VerQueryValue32A( lpvBlock, lpszSubBlock, &buffer, &buflen );
|
||||
if ( !retv ) return FALSE;
|
||||
|
||||
if ( OFFSETOF( spvBlock ) + (buffer - lpvBlock) >= 0x10000 )
|
||||
{
|
||||
FIXME( ver, "offset %08X too large relative to %04X:%04X\n",
|
||||
buffer - lpvBlock, SELECTOROF( spvBlock ), OFFSETOF( spvBlock ) );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
*lpcb = buflen;
|
||||
*lpspBuffer = spvBlock + (buffer - lpvBlock);
|
||||
|
||||
return retv;
|
||||
}
|
||||
|
|
@ -3,8 +3,8 @@ type win16
|
|||
|
||||
#1 DLLENTRYPOINT
|
||||
|
||||
2 pascal GetFileResourceSize(str segptr segptr ptr) GetFileResourceSize
|
||||
3 pascal GetFileResource(str segptr segptr long long ptr) GetFileResource
|
||||
2 pascal GetFileResourceSize(str segptr segptr ptr) GetFileResourceSize16
|
||||
3 pascal GetFileResource(str segptr segptr long long ptr) GetFileResource16
|
||||
6 pascal GetFileVersionInfoSize(str ptr) GetFileVersionInfoSize16
|
||||
7 pascal GetFileVersionInfo(str long long ptr) GetFileVersionInfo16
|
||||
8 pascal VerFindFile(word str str str ptr ptr ptr ptr) VerFindFile16
|
||||
|
|
|
@ -130,4 +130,16 @@ typedef struct tagVS_FIXEDFILEINFO {
|
|||
|
||||
/* 20 GETFILEVERSIONINFORAW */
|
||||
|
||||
#ifdef __WINE__
|
||||
|
||||
DWORD WINAPI GetFileResourceSize32( LPCSTR lpszFileName,
|
||||
LPCSTR lpszResType, LPCSTR lpszResId,
|
||||
LPDWORD lpdwFileOffset );
|
||||
DWORD WINAPI GetFileResource32( LPCSTR lpszFileName,
|
||||
LPCSTR lpszResType, LPCSTR lpszResId,
|
||||
DWORD dwFileOffset,
|
||||
DWORD dwResLen, LPVOID lpvData );
|
||||
|
||||
#endif /* __WINE__ */
|
||||
|
||||
#endif /* __WINE_VER_H */
|
||||
|
|
Loading…
Reference in New Issue