title: VerQueryValueW issue python 3
body: <p>I'm trying to get version of files through GetFileVersionInfoSizeW and VerQueryValueW. I got partial of the version printed out but not the entire thing. It also has some weird spaces between each character of the file version. Anyone has an idea what is wrong with it? </p>
  
  <p>My guess is it is related to the Unicode interpretation of python3 since I had to change the GetFileVersionInfoSizeW and VerQueryValueW from the original GetFileVersionInfoSizeA and VerQueryValueA that ran normally in python2 (<a href="https://stackoverflow.com/a/38924793/7144869">https://stackoverflow.com/a/38924793/7144869</a>).</p>
  
  <pre><code>import array
  from ctypes import *
  
  def get_file_info(filename):
  """
  Extract information from a file.
  """
  # Get size needed for buffer (0 if no info)
  size = windll.version.GetFileVersionInfoSizeW(filename, None)
  # If no info in file -&gt; empty string
  if not size:
      return 'Failed'
  # Create buffer
  res = create_string_buffer(size)
  # Load file informations into buffer res
  windll.version.GetFileVersionInfoW(filename, None, size, res)
  r = c_uint()
  l = c_uint()
  # Look for codepages
  windll.version.VerQueryValueW(res, '\\VarFileInfo\\Translation',
                                byref(r), byref(l))
  # If no codepage -&gt; empty string
  if not l.value:
      return ''
  # Take the first codepage (what else ?)
  codepages = array.array('H', string_at(r.value, l.value))
  codepage = tuple(codepages[:2].tolist())
  # Extract information
  windll.version.VerQueryValueW(res, ('\\StringFileInfo\\%04x%04x\\'
  + 'FileVersion') % codepage, byref(r), byref(l))
  return string_at(r.value, l.value)
  
  print (get_file_info(r'C:\WINDOWS\system32\calc.exe').decode())
  </code></pre>