Large-scale renaming of all Win32 functions and types to use the
[wine/multimedia.git] / dlls / ver / ver16.c
blob25d7689ea5b8012d6289ae2146eb3492feeb5ea0
1 /*
2 * Implementation of VER.DLL
4 * Copyright 1999 Ulrich Weigand
5 */
7 #include "winbase.h"
8 #include "winver.h"
9 #include "ldt.h"
10 #include "ver.h"
11 #include "debug.h"
14 /*************************************************************************
15 * GetFileResourceSize16 [VER.2]
17 DWORD WINAPI GetFileResourceSize16( LPCSTR lpszFileName,
18 SEGPTR spszResType, SEGPTR spszResId,
19 LPDWORD lpdwFileOffset )
21 LPCSTR lpszResType = HIWORD( spszResType )? PTR_SEG_TO_LIN( spszResType )
22 : (LPCSTR)spszResType;
23 LPCSTR lpszResId = HIWORD( spszResId )? PTR_SEG_TO_LIN( spszResId )
24 : (LPCSTR)spszResId;
26 return GetFileResourceSize( lpszFileName,
27 lpszResType, lpszResId, lpdwFileOffset );
30 /*************************************************************************
31 * GetFileResource16 [VER.3]
33 DWORD WINAPI GetFileResource16( LPCSTR lpszFileName,
34 SEGPTR spszResType, SEGPTR spszResId,
35 DWORD dwFileOffset,
36 DWORD dwResLen, LPVOID lpvData )
38 LPCSTR lpszResType = HIWORD( spszResType )? PTR_SEG_TO_LIN( spszResType )
39 : (LPCSTR)spszResType;
40 LPCSTR lpszResId = HIWORD( spszResId )? PTR_SEG_TO_LIN( spszResId )
41 : (LPCSTR)spszResId;
43 return GetFileResource( lpszFileName, lpszResType, lpszResId,
44 dwFileOffset, dwResLen, lpvData );
47 /*************************************************************************
48 * GetFileVersionInfoSize16 [VER.6]
50 DWORD WINAPI GetFileVersionInfoSize16( LPCSTR lpszFileName, LPDWORD lpdwHandle )
52 TRACE( ver, "(%s, %p)\n", debugstr_a(lpszFileName), lpdwHandle );
53 return GetFileVersionInfoSizeA( lpszFileName, lpdwHandle );
56 /*************************************************************************
57 * GetFileVersionInfo16 [VER.7]
59 DWORD WINAPI GetFileVersionInfo16( LPCSTR lpszFileName, DWORD handle,
60 DWORD cbBuf, LPVOID lpvData )
62 TRACE( ver, "(%s, %08lx, %ld, %p)\n",
63 debugstr_a(lpszFileName), handle, cbBuf, lpvData );
65 return GetFileVersionInfoA( lpszFileName, handle, cbBuf, lpvData );
68 /*************************************************************************
69 * VerFindFile16 [VER.8]
71 DWORD WINAPI VerFindFile16( UINT16 flags, LPCSTR lpszFilename,
72 LPCSTR lpszWinDir, LPCSTR lpszAppDir,
73 LPSTR lpszCurDir, UINT16 *lpuCurDirLen,
74 LPSTR lpszDestDir, UINT16 *lpuDestDirLen )
76 UINT curDirLen, destDirLen;
77 DWORD retv = VerFindFileA( flags, lpszFilename, lpszWinDir, lpszAppDir,
78 lpszCurDir, &curDirLen, lpszDestDir, &destDirLen );
80 *lpuCurDirLen = (UINT16)curDirLen;
81 *lpuDestDirLen = (UINT16)destDirLen;
82 return retv;
85 /*************************************************************************
86 * VerInstallFile16 [VER.9]
88 DWORD WINAPI VerInstallFile16( UINT16 flags,
89 LPCSTR lpszSrcFilename, LPCSTR lpszDestFilename,
90 LPCSTR lpszSrcDir, LPCSTR lpszDestDir, LPCSTR lpszCurDir,
91 LPSTR lpszTmpFile, UINT16 *lpwTmpFileLen )
93 UINT filelen;
94 DWORD retv = VerInstallFileA( flags, lpszSrcFilename, lpszDestFilename,
95 lpszSrcDir, lpszDestDir, lpszCurDir,
96 lpszTmpFile, &filelen);
98 *lpwTmpFileLen = (UINT16)filelen;
99 return retv;
102 /*************************************************************************
103 * VerLanguageName16 [VER.10]
105 DWORD WINAPI VerLanguageName16( UINT16 uLang, LPSTR lpszLang, UINT16 cbLang )
107 return VerLanguageNameA( uLang, lpszLang, cbLang );
110 /*************************************************************************
111 * VerQueryValue16 [VER.11]
113 DWORD WINAPI VerQueryValue16( SEGPTR spvBlock, LPCSTR lpszSubBlock,
114 SEGPTR *lpspBuffer, UINT16 *lpcb )
116 LPVOID lpvBlock = PTR_SEG_TO_LIN( spvBlock );
117 LPVOID buffer = lpvBlock;
118 UINT buflen;
119 DWORD retv;
121 TRACE( ver, "(%p, %s, %p, %p)\n",
122 lpvBlock, debugstr_a(lpszSubBlock), lpspBuffer, lpcb );
124 retv = VerQueryValueA( lpvBlock, lpszSubBlock, &buffer, &buflen );
125 if ( !retv ) return FALSE;
127 if ( OFFSETOF( spvBlock ) + (buffer - lpvBlock) >= 0x10000 )
129 FIXME( ver, "offset %08X too large relative to %04X:%04X\n",
130 buffer - lpvBlock, SELECTOROF( spvBlock ), OFFSETOF( spvBlock ) );
131 return FALSE;
134 *lpcb = buflen;
135 *lpspBuffer = spvBlock + (buffer - lpvBlock);
137 return retv;