| version 1.47, 2005/01/04 20:35:46 |
version 1.48, 2005/07/20 10:29:29 |
| Line 564 DWORD WINAPI GetFileVersionInfoSizeW( LP |
|
| Line 564 DWORD WINAPI GetFileVersionInfoSizeW( LP |
|
| DWORD WINAPI GetFileVersionInfoSizeA( LPCSTR filename, LPDWORD handle ) |
DWORD WINAPI GetFileVersionInfoSizeA( LPCSTR filename, LPDWORD handle ) |
| { UNICODE_STRING filenameW; |
{ UNICODE_STRING filenameW; |
| DWORD retval; |
DWORD retval; |
| |
|
| |
TRACE("(%s,%p)\n", debugstr_a(filename), handle ); |
| |
|
| if(filename) RtlCreateUnicodeStringFromAsciiz(&filenameW, filename); |
if(filename) RtlCreateUnicodeStringFromAsciiz(&filenameW, filename); |
| else filenameW.Buffer = NULL; |
else filenameW.Buffer = NULL; |
| retval = GetFileVersionInfoSizeW(filenameW.Buffer, handle); |
retval = GetFileVersionInfoSizeW(filenameW.Buffer, handle); |
| Line 609 BOOL WINAPI GetFileVersionInfoA( LPCSTR |
|
| Line 612 BOOL WINAPI GetFileVersionInfoA( LPCSTR |
|
| } |
} |
| } |
} |
| |
|
| if ( datasize >= sizeof(VS_VERSION_INFO_STRUCT16) |
/* Don't convert a possible win32 to a win16 stucture, Windows always uses win32 |
| && datasize >= ((VS_VERSION_INFO_STRUCT16 *)data)->wLength |
* for storing the structure on a unicode enabled system |
| && !VersionInfoIs16( data ) ) |
*/ |
| { |
|
| /* convert resource from PE format to NE format */ |
|
| ConvertVersionInfo32To16( (VS_VERSION_INFO_STRUCT32 *)data, |
|
| (VS_VERSION_INFO_STRUCT16 *)data ); |
|
| } |
|
| |
|
| SetLastError(0); |
SetLastError(0); |
| return TRUE; |
return TRUE; |
| Line 769 DWORD WINAPI VerQueryValueA( LPVOID pBlo |
|
| Line 767 DWORD WINAPI VerQueryValueA( LPVOID pBlo |
|
| |
|
| if ( !VersionInfoIs16( info ) ) |
if ( !VersionInfoIs16( info ) ) |
| { |
{ |
| INT len; |
/* FIXME : The conversion is maybe a bit overkill, we only need 1 value */ |
| LPWSTR wide_str; |
|
| DWORD give; |
ConvertVersionInfo32To16( (VS_VERSION_INFO_STRUCT32 *)info, |
| |
(VS_VERSION_INFO_STRUCT16 *)info ); |
| /* <lawson_whitney@juno.com> Feb 2001 */ |
|
| /* AOL 5.0 does this, expecting to get this: */ |
|
| len = MultiByteToWideChar(CP_ACP, 0, lpSubBlock, -1, NULL, 0); |
|
| wide_str = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); |
|
| MultiByteToWideChar(CP_ACP, 0, lpSubBlock, -1, wide_str, len); |
|
| |
|
| give = VerQueryValueW(pBlock, wide_str, lplpBuffer, puLen); |
|
| HeapFree(GetProcessHeap(), 0, wide_str); |
|
| return give; |
|
| } |
} |
| |
|
| return VersionInfo16_QueryValue(info, lpSubBlock, lplpBuffer, puLen); |
return VersionInfo16_QueryValue(info, lpSubBlock, lplpBuffer, puLen); |