Subject:
Re: [ruby-ffi] Re: Using Windows Unicode functions
From:
Vladimir Sizikov
Date:
1/28/10 2:20 PM
To:
ruby-ffi@googlegroups.com

Hi folks,

While we're at this subject of Windows examples...

Here's one more:

http://gist.github.com/279004

Pretty handy module for me, it allows to lock the computer and to turn
the monitor off. :)

Thanks,
  --Vladimir

On Thu, Jan 28, 2010 at 8:58 PM, Jon <jon.forums@gmail.com> wrote:
> Nice!
>
> I minor tweaked the code and have added it to the wiki http://wiki.github.com/ffi/ffi/windows-examples#intermediate  Review and revise as needed.
>
> I removed the file encoding comment so as not to imply it's required, and I tweaked the function signature and invocation to be a bit closer to the MessageBox API documentation.
>
> Probably makes sense to try 'jcode' with MRI 1.8 and see if it can be made to work.  The code doesn't work with JRuby 1.4.0 using --1.9 due to undefined "String#encode" and I haven't yet tried JRuby 1.5.
>
> From the FFI API perspective, can the Ruby string code be de-uglied with a combination of some clever #ifdef compile-time and runtime check magic?
>
> A new type binary blob type similar to :buffer_in but skips over the null-byte checking and encodes to UTF-16LE behind the scenes?  Something like :unicode_string or :win_wide_string?  Could the new type also be made applicable to both Windows UTF-16 and *nix UTF-8/locale environments?
>
> Haven't thought about windows SBCS, DBCS, and MBCS C runtime code page issues, but having an explicit type to help with Unicode WinAPI's could be helpful and less error prone.
>
> ??
>
> Jon
>