Module: Win32::Registry::API

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

Win32 APIs

### Methods

CloseKey CreateKey DeleteKey DeleteValue EnumKey EnumValue FlushKey OpenKey QueryInfoKey QueryValue SetValue check packdw packqw unpackdw unpackqw

### Public Instance methods

CloseKey(hkey)

[Source]

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

CreateKey(hkey, name, opt, desired)

[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

DeleteKey(hkey, name)

[Source]

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

DeleteValue(hkey, name)

[Source]

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

EnumKey(hkey, index)

[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

EnumValue(hkey, index)

[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

FlushKey(hkey)

[Source]

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

OpenKey(hkey, name, opt, desired)

[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

QueryInfoKey(hkey)

[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

QueryValue(hkey, name)

[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

SetValue(hkey, name, type, data, size)

[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

check(result)

[Source]

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

packdw(dw)

[Source]

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

packqw(qw)

[Source]

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

unpackdw(dw)

[Source]

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

unpackqw(qw)

[Source]

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

[Validate]