home *** CD-ROM | disk | FTP | other *** search
- package Win32::Clipboard;
- #######################################################################
- #
- # Win32::Clipboard - Perl Module for Windows Clipboard Interaction
- # ^^^^^^^^^^^^^^^^
- # Version: 0.03 (23 Apr 1997)
- #
- #######################################################################
-
- require Exporter; # to export the constants to the main:: space
- require DynaLoader; # to dynuhlode the module.
-
- @ISA = qw( Exporter DynaLoader );
-
- #######################################################################
- # 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.
- $!=0;
- my $val = constant($constname, @_ ? $_[0] : 0);
- if ($! != 0) {
-
- # [dada] This results in an ugly Autoloader error
-
- #if ($! =~ /Invalid/) {
- # $AutoLoader::AUTOLOAD = $AUTOLOAD;
- # goto &AutoLoader::AUTOLOAD;
- #} else {
-
- # [dada] ... I prefer this one :)
-
- ($pack, $file, $line) = caller;
- undef $pack; # [dada] and get rid of "used only once" warning...
- die "Win32::Clipboard::$constname is not defined, used at $file line $line.";
-
- #}
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
- }
-
-
- #######################################################################
- # STATIC OBJECT PROPERTIES
- #
- $VERSION = "0.03";
-
- #######################################################################
- # FUNCTIONS
- #
-
- sub new {
- my($class, $value) = @_;
- my $self = "I'm the Clipboard!";
- Win32::Clipboard::Set($value) if defined($value);
- return bless(\$self);
- }
-
- sub DESTROY {
- my($self) = @_;
- undef $self;
- }
-
- sub Version {
- return $VERSION;
- }
-
- #######################################################################
- # dynamically load in the Clipboard.pll module.
- #
-
- bootstrap Win32::Clipboard;
-
- # Preloaded methods go here.
-
- sub main::Win32::Clipboard {
- my($value) = @_;
- my $self={};
- my $result = Win32::Clipboard::Set($value) if defined($value);
- return bless($self, "Win32::Clipboard");
- }
-
- #Currently Autoloading is not implemented in Perl for win32
- # Autoload methods go after __END__, and are processed by the autosplit program.
-
- 1;
- __END__
-
-