diff options
Diffstat (limited to 'Master/tlpkg/installer/perllib/Win32/Registry.pm')
-rw-r--r-- | Master/tlpkg/installer/perllib/Win32/Registry.pm | 547 |
1 files changed, 0 insertions, 547 deletions
diff --git a/Master/tlpkg/installer/perllib/Win32/Registry.pm b/Master/tlpkg/installer/perllib/Win32/Registry.pm deleted file mode 100644 index c83fca5a3b1..00000000000 --- a/Master/tlpkg/installer/perllib/Win32/Registry.pm +++ /dev/null @@ -1,547 +0,0 @@ -package Win32::Registry; - -=head1 NAME - -Win32::Registry - accessing the Windows registry [obsolete, use Win32::TieRegistry] - -=head1 SYNOPSIS - - use Win32::Registry; - my $tips; - $::HKEY_LOCAL_MACHINE->Open("SOFTWARE\\Microsoft\\Windows" - ."\\CurrentVersion\\Explorer\\Tips", $tips) - or die "Can't open tips: $^E"; - my ($type, $value); - $tips->QueryValueEx("18", $type, $value) or die "No tip #18: $^E"; - print "Here's a tip: $value\n"; - -=head1 DESCRIPTION - - NOTE: This module provides a very klunky interface to access the - Windows registry, and is not currently being developed actively. It - only exists for backward compatibility with old code that uses it. - For more powerful and flexible ways to access the registry, use - Win32::TieRegistry. - -Win32::Registry provides an object oriented interface to the Windows -Registry. - -The following "root" registry objects are exported to the main:: name -space. Additional keys must be opened by calling the provided methods -on one of these. - - $HKEY_CLASSES_ROOT - $HKEY_CURRENT_USER - $HKEY_LOCAL_MACHINE - $HKEY_USERS - $HKEY_PERFORMANCE_DATA - $HKEY_CURRENT_CONFIG - $HKEY_DYN_DATA - -=cut - -use strict; -require Exporter; -require DynaLoader; -use Win32::WinError; - -require Win32 unless defined &Win32::GetLastError; - -use vars qw($VERSION $AUTOLOAD @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); - -$VERSION = '0.07'; - -@ISA = qw( Exporter DynaLoader ); -@EXPORT = qw( - HKEY_CLASSES_ROOT - HKEY_CURRENT_USER - HKEY_LOCAL_MACHINE - HKEY_PERFORMANCE_DATA - HKEY_CURRENT_CONFIG - HKEY_DYN_DATA - HKEY_USERS - KEY_ALL_ACCESS - KEY_CREATE_LINK - KEY_CREATE_SUB_KEY - KEY_ENUMERATE_SUB_KEYS - KEY_EXECUTE - KEY_NOTIFY - KEY_QUERY_VALUE - KEY_READ - KEY_SET_VALUE - KEY_WRITE - REG_BINARY - REG_CREATED_NEW_KEY - REG_DWORD - REG_DWORD_BIG_ENDIAN - REG_DWORD_LITTLE_ENDIAN - REG_EXPAND_SZ - REG_FULL_RESOURCE_DESCRIPTOR - REG_LEGAL_CHANGE_FILTER - REG_LEGAL_OPTION - REG_LINK - REG_MULTI_SZ - REG_NONE - REG_NOTIFY_CHANGE_ATTRIBUTES - REG_NOTIFY_CHANGE_LAST_SET - REG_NOTIFY_CHANGE_NAME - REG_NOTIFY_CHANGE_SECURITY - REG_OPENED_EXISTING_KEY - REG_OPTION_BACKUP_RESTORE - REG_OPTION_CREATE_LINK - REG_OPTION_NON_VOLATILE - REG_OPTION_RESERVED - REG_OPTION_VOLATILE - REG_REFRESH_HIVE - REG_RESOURCE_LIST - REG_RESOURCE_REQUIREMENTS_LIST - REG_SZ - REG_WHOLE_HIVE_VOLATILE -); - -@EXPORT_OK = qw( - RegCloseKey - RegConnectRegistry - RegCreateKey - RegCreateKeyEx - RegDeleteKey - RegDeleteValue - RegEnumKey - RegEnumValue - RegFlushKey - RegGetKeySecurity - RegLoadKey - RegNotifyChangeKeyValue - RegOpenKey - RegOpenKeyEx - RegQueryInfoKey - RegQueryValue - RegQueryValueEx - RegReplaceKey - RegRestoreKey - RegSaveKey - RegSetKeySecurity - RegSetValue - RegSetValueEx - RegUnLoadKey -); -$EXPORT_TAGS{ALL}= \@EXPORT_OK; - -bootstrap Win32::Registry; - -sub import { - my $pkg = shift; - if ($_[0] && "Win32" eq $_[0]) { - Exporter::export($pkg, "Win32", @EXPORT_OK); - shift; - } - Win32::Registry->export_to_level(1+$Exporter::ExportLevel, $pkg, @_); -} - -####################################################################### -# This AUTOLOAD is used to 'autoload' constants from the constant() -# XS function. If a constant is not found then control is passed -# to the AUTOLOAD in AutoLoader. - -sub AUTOLOAD { - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - #reset $! to zero to reset any current errors. - local $! = 0; - my $val = constant($constname, 0); - if ($! != 0) { - if ($! =~ /Invalid/) { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else { - my ($pack,$file,$line) = caller; - die "Unknown constant $constname in Win32::Registry " - . "at $file line $line.\n"; - } - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - -####################################################################### -# _new is a private constructor, not intended for public use. -# - -sub _new { - my $self; - if ($_[0]) { - $self->{'handle'} = $_[0]; - bless $self; - } - $self; -} - -#define the basic registry objects to be exported. -#these had to be hardwired unfortunately. -# XXX Yuck! - -{ - package main; - use vars qw( - $HKEY_CLASSES_ROOT - $HKEY_CURRENT_USER - $HKEY_LOCAL_MACHINE - $HKEY_USERS - $HKEY_PERFORMANCE_DATA - $HKEY_CURRENT_CONFIG - $HKEY_DYN_DATA - ); -} - -$::HKEY_CLASSES_ROOT = _new(&HKEY_CLASSES_ROOT); -$::HKEY_CURRENT_USER = _new(&HKEY_CURRENT_USER); -$::HKEY_LOCAL_MACHINE = _new(&HKEY_LOCAL_MACHINE); -$::HKEY_USERS = _new(&HKEY_USERS); -$::HKEY_PERFORMANCE_DATA = _new(&HKEY_PERFORMANCE_DATA); -$::HKEY_CURRENT_CONFIG = _new(&HKEY_CURRENT_CONFIG); -$::HKEY_DYN_DATA = _new(&HKEY_DYN_DATA); - -=head2 Methods - -The following methods are supported. Note that subkeys can be -specified as a path name, separated by backslashes (which may -need to be doubled if you put them in double quotes). - -=over 8 - -=item Open - - $reg_obj->Open($sub_key_name, $sub_reg_obj); - -Opens a subkey of a registry object, returning the new registry object -in $sub_reg_obj. - -=cut - -sub Open { - my $self = shift; - die 'usage: $obj->Open($sub_key_name, $sub_reg_obj)' if @_ != 2; - - my ($subkey) = @_; - my ($result,$subhandle); - - $result = RegOpenKey($self->{'handle'},$subkey,$subhandle); - $_[1] = _new($subhandle); - - return 0 unless $_[1]; - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item Close - - $reg_obj->Close(); - -Closes an open registry key. - -=cut - -sub Close { - my $self = shift; - die 'usage: $obj->Close()' if @_ != 0; - - return unless exists $self->{'handle'}; - my $result = RegCloseKey($self->{'handle'}); - if ($result) { - delete $self->{'handle'}; - } - else { - $! = Win32::GetLastError(); - } - return $result; -} - -sub DESTROY { - my $self = shift; - return unless exists $self->{'handle'}; - RegCloseKey($self->{'handle'}); - delete $self->{'handle'}; -} - - -=item Connect - - $reg_obj->Connect($node_name, $new_reg_obj); - -Connects to a remote Registry on the node specified by $node_name, -returning it in $new_reg_obj. Returns false if it fails. - -=cut - -sub Connect { - my $self = shift; - die 'usage: $obj->Connect($node_name, $new_reg_obj)' if @_ != 2; - - my ($node) = @_; - my ($result,$subhandle); - - $result = RegConnectRegistry ($node, $self->{'handle'}, $subhandle); - $_[1] = _new($subhandle); - - return 0 unless $_[1]; - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item Create - - $reg_obj->Create($sub_key_name, $new_reg_obj); - -Opens the subkey specified by $sub_key_name, returning the new registry -object in $new_reg_obj. If the specified subkey doesn't exist, it is -created. - -=cut - -sub Create { - my $self = shift; - die 'usage: $obj->Create($sub_key_name, $new_reg_obj)' if @_ != 2; - - my ($subkey) = @_; - my ($result,$subhandle); - - $result = RegCreateKey($self->{'handle'},$subkey,$subhandle); - $_[1] = _new ($subhandle); - - return 0 unless $_[1]; - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item SetValue - - $reg_obj->SetValue($sub_key_name, $type, $value); - -Sets the default value for a subkey specified by $sub_key_name. - -=cut - -sub SetValue { - my $self = shift; - die 'usage: $obj->SetValue($subkey, $type, $value)' if @_ != 3; - my $result = RegSetValue($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item SetValueEx - - $reg_obj->SetValueEx($value_name, $reserved, $type, $value); - -Sets the value for the value name identified by $value_name -in the key specified by $reg_obj. - -=cut - -sub SetValueEx { - my $self = shift; - die 'usage: $obj->SetValueEx($value_name, $reserved, $type, $value)' if @_ != 4; - my $result = RegSetValueEx($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item QueryValue - - $reg_obj->QueryValue($sub_key_name, $value); - -Gets the default value of the subkey specified by $sub_key_name. - -=cut - -sub QueryValue { - my $self = shift; - die 'usage: $obj->QueryValue($sub_key_name, $value)' if @_ != 2; - my $result = RegQueryValue($self->{'handle'}, $_[0], $_[1]); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item QueryKey - - $reg_obj->QueryKey($classref, $number_of_subkeys, $number_of_values); - -Gets information on a key specified by $reg_obj. - -=cut - -sub QueryKey { - my $garbage; - my $self = shift; - die 'usage: $obj->QueryKey($classref, $number_of_subkeys, $number_of_values)' - if @_ != 3; - - my $result = RegQueryInfoKey($self->{'handle'}, $_[0], - $garbage, $garbage, $_[1], - $garbage, $garbage, $_[2], - $garbage, $garbage, $garbage, $garbage); - - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item QueryValueEx - - $reg_obj->QueryValueEx($value_name, $type, $value); - -Gets the value for the value name identified by $value_name -in the key specified by $reg_obj. - -=cut - -sub QueryValueEx { - my $self = shift; - die 'usage: $obj->QueryValueEx($value_name, $type, $value)' if @_ != 3; - my $result = RegQueryValueEx($self->{'handle'}, $_[0], undef, $_[1], $_[2]); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item GetKeys - - my @keys; - $reg_obj->GetKeys(\@keys); - -Populates the supplied array reference with the names of all the keys -within the registry object $reg_obj. - -=cut - -sub GetKeys { - my $self = shift; - die 'usage: $obj->GetKeys($arrayref)' if @_ != 1 or ref($_[0]) ne 'ARRAY'; - - my ($result, $i, $keyname); - $keyname = "DummyVal"; - $i = 0; - $result = 1; - - while ( $result ) { - $result = RegEnumKey( $self->{'handle'},$i++, $keyname ); - if ($result) { - push( @{$_[0]}, $keyname ); - } - } - return(1); -} - -=item GetValues - - my %values; - $reg_obj->GetValues(\%values); - -Populates the supplied hash reference with entries of the form - - $value_name => [ $value_name, $type, $data ] - -for each value in the registry object $reg_obj. - -=cut - -sub GetValues { - my $self = shift; - die 'usage: $obj->GetValues($hashref)' if @_ != 1; - - my ($result,$name,$type,$data,$i); - $name = "DummyVal"; - $i = 0; - while ( $result=RegEnumValue( $self->{'handle'}, - $i++, - $name, - undef, - $type, - $data )) - { - $_[0]->{$name} = [ $name, $type, $data ]; - } - return(1); -} - -=item DeleteKey - - $reg_obj->DeleteKey($sub_key_name); - -Deletes a subkey specified by $sub_key_name from the registry. - -=cut - -sub DeleteKey { - my $self = shift; - die 'usage: $obj->DeleteKey($sub_key_name)' if @_ != 1; - my $result = RegDeleteKey($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item DeleteValue - - $reg_obj->DeleteValue($value_name); - -Deletes a value identified by $value_name from the registry. - -=cut - -sub DeleteValue { - my $self = shift; - die 'usage: $obj->DeleteValue($value_name)' if @_ != 1; - my $result = RegDeleteValue($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item Save - - $reg_obj->Save($filename); - -Saves the hive specified by $reg_obj to a file. - -=cut - -sub Save { - my $self = shift; - die 'usage: $obj->Save($filename)' if @_ != 1; - my $result = RegSaveKey($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item Load - - $reg_obj->Load($sub_key_name, $file_name); - -Loads a key specified by $sub_key_name from a file. - -=cut - -sub Load { - my $self = shift; - die 'usage: $obj->Load($sub_key_name, $file_name)' if @_ != 2; - my $result = RegLoadKey($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -=item UnLoad - - $reg_obj->Unload($sub_key_name); - -Unloads a registry hive. - -=cut - -sub UnLoad { - my $self = shift; - die 'usage: $obj->UnLoad($sub_key_name)' if @_ != 1; - my $result = RegUnLoadKey($self->{'handle'}, @_); - $! = Win32::GetLastError() unless $result; - return $result; -} - -1; -__END__ |