title: In Ruby's Win32API.new, isn't 'L' the same as 'I', and what about 'N' or 'P'?
body: <p>In some documentation, Ruby's Win32API has <code>'L'</code> and <code>'N'</code> to specify a "number"... and in some documentation, <code>'L'</code> is "long".  Is <code>'N'</code> deprecated, and isn't <code>'L'</code> the same as <code>'I'</code> actually?  A "number" is somewhat not so specific.</p>
  
  <p>In
  <a href="http://rubyforge.org/docman/view.php/85/3463/API.html#M000001" rel="nofollow noreferrer">http://rubyforge.org/docman/view.php/85/3463/API.html#M000001</a>  </p>
  
  <p>There is no specifying a boolean parameter as <code>'B'</code> or <code>'I'</code>, only the return value...</p>
  
  <p>In
  <a href="http://www.ruby-doc.org/stdlib/libdoc/Win32API/rdoc/classes/Win32/Registry/Error.html#M001622" rel="nofollow noreferrer">http://www.ruby-doc.org/stdlib/libdoc/Win32API/rdoc/classes/Win32/Registry/Error.html#M001622</a></p>
  
  <p>There is</p>
  
  <pre><code> Win32API.new('kernel32.dll', 'FormatMessageA', 'LPLLPLP', 'L')
  </code></pre>
  
  <p>instead of the more common <code>['L', 'P', 'L', ...]</code> format</p>
  
  <p><code>hWnd</code> is <code>'L'</code> and therefore <code>'I'</code> will work too?  (<code>hWnd</code> is handle to window)</p>
  
  <p>Boolean parameter is <code>'B'</code> and is the same as <code>'I'</code>?</p>
  
  <p>So basically, we can use most things as <code>'I'</code>?  Even the <code>'P'</code> should be a 4-byte, so <code>'I'</code> should work as well?  Is there a more formal specification?</p>
  
  <p><strong>Update:</strong> now that I think more about <code>'P'</code>, it actually will use a Ruby's String class object, and take the content buffer part and pass it into the C function.  So using <code>'I'</code> probably won't trigger this behavior.  (example: such as using <code>GetWindowText()</code>)</p>