Module Win32::Registry::API
In: Win32API/lib/win32/registry.rb

Win32 APIs

Methods

Public Instance methods

[Source]

# File Win32API/lib/win32/registry.rb, line 472
      def CloseKey(hkey)
        check RegCloseKey.call(hkey)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 424
      def CreateKey(hkey, name, opt, desired)
        result = packdw(0)
        disp = packdw(0)
        check RegCreateKeyExA.call(hkey, name, 0, 0, opt, desired,
                                   0, result, disp)
        [ unpackdw(result), unpackdw(disp) ]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 464
      def DeleteKey(hkey, name)
        check RegDeleteKey.call(hkey, name)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 460
      def DeleteValue(hkey, name)
        check RegDeleteValue.call(hkey, name)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 439
      def EnumKey(hkey, index)
        name = ' ' * Constants::MAX_KEY_LENGTH
        size = packdw(Constants::MAX_KEY_LENGTH)
        wtime = ' ' * 8
        check RegEnumKeyExA.call(hkey, index, name, size, 0, 0, 0, wtime)
        [ name[0, unpackdw(size)], unpackqw(wtime) ]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 432
      def EnumValue(hkey, index)
        name = ' ' * Constants::MAX_KEY_LENGTH
        size = packdw(Constants::MAX_KEY_LENGTH)
        check RegEnumValueA.call(hkey, index, name, size, 0, 0, 0, 0)
        name[0, unpackdw(size)]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 468
      def FlushKey(hkey)
        check RegFlushKey.call(hkey)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 418
      def OpenKey(hkey, name, opt, desired)
        result = packdw(0)
        check RegOpenKeyExA.call(hkey, name, opt, desired, result)
        unpackdw(result)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 476
      def QueryInfoKey(hkey)
        subkeys = packdw(0)
        maxsubkeylen = packdw(0)
        values = packdw(0)
        maxvaluenamelen = packdw(0)
        maxvaluelen = packdw(0)
        secdescs = packdw(0)
        wtime = ' ' * 8
        check RegQueryInfoKey.call(hkey, 0, 0, 0, subkeys, maxsubkeylen, 0,
          values, maxvaluenamelen, maxvaluelen, secdescs, wtime)
        [ unpackdw(subkeys), unpackdw(maxsubkeylen), unpackdw(values),
          unpackdw(maxvaluenamelen), unpackdw(maxvaluelen),
          unpackdw(secdescs), unpackqw(wtime) ]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 447
      def QueryValue(hkey, name)
        type = packdw(0)
        size = packdw(0)
        check RegQueryValueExA.call(hkey, name, 0, type, 0, size)
        data = ' ' * unpackdw(size)
        check RegQueryValueExA.call(hkey, name, 0, type, data, size)
        [ unpackdw(type), data[0, unpackdw(size)] ]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 456
      def SetValue(hkey, name, type, data, size)
        check RegSetValueExA.call(hkey, name, 0, type, data, size)
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 396
      def check(result)
        raise Error, result, caller(2) if result != 0
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 400
      def packdw(dw)
        [dw].pack('V')
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 409
      def packqw(qw)
        [ qw & 0xFFFFFFFF, qw >> 32 ].pack('VV')
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 404
      def unpackdw(dw)
        dw += [0].pack('V')
        dw.unpack('V')[0]
      end

[Source]

# File Win32API/lib/win32/registry.rb, line 413
      def unpackqw(qw)
        qw = qw.unpack('VV')
        (qw[1] << 32) | qw[0]
      end

[Validate]