| 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
| |