diff options
-rw-r--r-- | ext/win32/lib/win32/registry.rb | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -254,30 +254,34 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr /^(?:x64|x86_64)/ =~ RUBY_PLATFORM end def packhandle(h) - win64? ? packqw(h) : packdw(h) end def unpackhandle(h) - win64? ? unpackqw(h) : unpackdw(h) end def packdw(dw) - [dw].pack('V') end def unpackdw(dw) - dw += [0].pack('V') - dw.unpack('V')[0] end def packqw(qw) - [ qw & 0xFFFFFFFF, qw >> 32 ].pack('VV') end def unpackqw(qw) - qw = qw.unpack('VV') - (qw[1] << 32) | qw[0] end def make_wstr(str) @@ -657,7 +661,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr when REG_DWORD [ type, API.unpackdw(data) ] when REG_DWORD_BIG_ENDIAN - [ type, data.unpack('N')[0] ] when REG_QWORD [ type, API.unpackqw(data) ] else |