home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _eff8da8cf410a411e5d707f08082fcfc < prev    next >
Text File  |  2000-03-15  |  3KB  |  95 lines

  1. package Win32::Clipboard;
  2. #######################################################################
  3. #
  4. # Win32::Clipboard - Perl Module for Windows Clipboard Interaction
  5. # ^^^^^^^^^^^^^^^^
  6. # Version: 0.03 (23 Apr 1997)
  7. #
  8. #######################################################################
  9.  
  10. require Exporter;       # to export the constants to the main:: space
  11. require DynaLoader;     # to dynuhlode the module.
  12.  
  13. @ISA = qw( Exporter DynaLoader );
  14.  
  15. #######################################################################
  16. # This AUTOLOAD is used to 'autoload' constants from the constant()
  17. # XS function.  If a constant is not found then control is passed
  18. # to the AUTOLOAD in AutoLoader.
  19. #
  20.  
  21. sub AUTOLOAD {
  22.     my($constname);
  23.     ($constname = $AUTOLOAD) =~ s/.*:://;
  24.     #reset $! to zero to reset any current errors.
  25.     $!=0;
  26.     my $val = constant($constname, @_ ? $_[0] : 0);
  27.     if ($! != 0) {
  28.     
  29.         # [dada] This results in an ugly Autoloader error
  30.  
  31.         #if ($! =~ /Invalid/) {
  32.         #    $AutoLoader::AUTOLOAD = $AUTOLOAD;
  33.         #    goto &AutoLoader::AUTOLOAD;
  34.         #} else {
  35.  
  36.         # [dada] ... I prefer this one :)
  37.  
  38.             ($pack, $file, $line) = caller;
  39.             undef $pack; # [dada] and get rid of "used only once" warning...
  40.             die "Win32::Clipboard::$constname is not defined, used at $file line $line.";
  41.  
  42.         #}    
  43.     }
  44.     eval "sub $AUTOLOAD { $val }";
  45.     goto &$AUTOLOAD;
  46. }
  47.  
  48.  
  49. #######################################################################
  50. # STATIC OBJECT PROPERTIES
  51. #
  52. $VERSION = "0.03";
  53.  
  54. #######################################################################
  55. # FUNCTIONS
  56. #
  57.  
  58. sub new {
  59.     my($class, $value) = @_;
  60.     my $self = "I'm the Clipboard!";
  61.     Win32::Clipboard::Set($value) if defined($value);
  62.     return bless(\$self);
  63. }
  64.  
  65. sub DESTROY {
  66.     my($self) = @_;
  67.     undef $self;
  68. }
  69.  
  70. sub Version {
  71.     return $VERSION;
  72. }
  73.  
  74. #######################################################################
  75. # dynamically load in the Clipboard.pll module.
  76. #
  77.  
  78. bootstrap Win32::Clipboard;
  79.  
  80. # Preloaded methods go here.
  81.  
  82. sub main::Win32::Clipboard {
  83.     my($value) = @_;
  84.     my $self={};
  85.     my $result = Win32::Clipboard::Set($value) if defined($value);
  86.     return bless($self, "Win32::Clipboard");
  87. }
  88.  
  89. #Currently Autoloading is not implemented in Perl for win32
  90. # Autoload methods go after __END__, and are processed by the autosplit program.
  91.  
  92. 1;
  93. __END__
  94.  
  95.