package
Win32::Clipboard;
#######################################################################
#
# Win32::Clipboard - Perl Module for Windows Clipboard Interaction
# ^^^^^^^^^^^^^^^^
# Version: 0.03 (23 Apr 1997)
#
#######################################################################
@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__