lib/device/library/windows.rb in narou-1.1.0.rc2 vs lib/device/library/windows.rb in narou-1.1.0
- old
+ new
@@ -1,20 +1,21 @@
# -*- coding: UTF-8 -*-
#
# Copyright 2013 whiteleaf. All rights reserved.
#
-require "dl/import"
+require "fiddle"
require "win32ole"
module WinAPI
+ include Fiddle
class InvalidOS < StandardError; end
- extend DL::Importer
- begin
- dlload "kernel32"
- extern "long GetLogicalDriveStrings(long, void*)"
- rescue DL::DLError
- raise InvalidOS, "not Windows"
+ Handle = RUBY_VERSION >= "2.0.0" ? Fiddle::Handle : DL::Handle
+
+ def self.GetLogicalDriveStrings(buf_size, buffer)
+ @@get_logical_drive_strings ||= Function.new(Handle.new("kernel32")["GetLogicalDriveStrings"],
+ [TYPE_LONG, TYPE_VOIDP], TYPE_LONG)
+ @@get_logical_drive_strings.call(buf_size, buffer)
end
end
module Device::Library
module Windows