Ok, so now I remember.  A few reasons.

Go to the [wide_string.rb](https://github.com/djberg96/windows-api/blob/master/lib/windows/wide_string.rb#L8) code for reference.

* AFAIK, it's an unnecessary roundtrip to the Windows API to convert the string via [MultiByteToWideChar](http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072\(v=vs.85\).aspx) since we can just do this in Ruby.  But I guess if you don't trust Ruby... ;0
* [FFI Unicode examples](https://github.com/ffi/ffi/wiki/Windows-Examples#unicode-popup-dialog-mri-19) show basically the same `.encode("UTF-16LE")` that I'm doing here.  It does indeed work fine with embedded nulls, etc.
* The `wide_string.rb` code specifically states use at your own risk.  I'm a little wary that if they make some breaking change we pay the price.  That said, the file hasn't changed once in 4 years...   so my fear is likely unfounded.

I swear there was some other issue I encountered, but I'd have to play around to recreate.  

I can swap the calls out to reduce the amount of code we maintain, but also note that we only have a total of 4 existing calls to `WideString.new` in `file.rb`.  It wouldn't be the worst thing in the world to reduce our dependence on the `windows-api` gem, especially if we drop it in favor of FFI.