Forums | Admin

Discussion Forums: open-discussion

Start New Thread Start New Thread
Message: 95991
BY: Dan Rathbun (danzoid61)
DATE: 2011-02-18 07:16
SUBJECT: RE: windows-pr : registry.rb

 

Could the Windows::Registry module benifit from some Registry specific Ruby Exception subclasses ?

If so where to define them? Ruby defines all Exceptions in Object(main).

These are the ones I'm playing with:

RegistryKeyAccessError = Class.new(SecurityError)
RegistryKeyHandleError = Class.new(IndexError)
RegistryKeyNameError = Class.new(NameError)

RegistryValueTypeError = Class.new(TypeError)
RegistryValueSizeError = Class.new(RangeError)

RegistrySystemCallError = Class.new(SystemCallError)


An example:

RegError = 0
hHKCU = 0 # handle to HKCU hive IF it is open.

def reg_open_HKCU(hkcu = hHKCU)
RegError = RegOpenCurrentUser.call( KEY_ALL_ACCESS, hkcu )
return RegError==Error::ERROR_SUCCESS ? true : false
end

def reg_close_HKCU(hkcu = hHKCU)
raise( RegistryKeyHandleError,"Invalid Registry key handle '#{hkcu}' for HKEY_CURRENT_USER.",caller) if hkcu <= 0
RegError = RegCloseKey.call( hkcu )
if RegError==Error::ERROR_SUCCESS
hHKCU = 0 # Reset handle because it's now invalid.
return true
else
raise( RegistrySystemCallError, Error.get_last_error, caller )
end
rescue RegistryKeyHandleError => e
$stderr.write(e+"\n")
return false
rescue RegistrySystemCallError => e
$stderr.write(e+"\n")
return false
end


Thread View

Thread Author Date
windows-pr : registry.rbDan Rathbun2011-02-18 07:02
      RE: windows-pr : registry.rbDan Rathbun2011-02-18 07:05
      RE: windows-pr : registry.rbDan Rathbun2011-02-18 07:16
            RE: windows-pr : registry.rbDan Rathbun2011-02-18 07:24
            RE: windows-pr : registry.rbDan Rathbun2011-02-19 21:49
      RE: windows-pr : registry.rbDaniel Berger2011-02-20 08:00
            RE: windows-pr : registry.rbDan Rathbun2011-02-22 05:39
                  RE: windows-pr : registry.rbDan Rathbun2011-02-22 05:42
                  RE: windows-pr : registry.rbDan Rathbun2011-02-22 05:57

Post a followup to this message