Update of /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22088
Modified Files:
AxWindow.pm AxWindow.xs Changes Makefile.PL TYPEMAP
Added Files:
AxWindowRC.PL TODO
Removed Files:
AxWindow.html MANIFEST README
Log Message:
Merge AxWindow into core distribution
--- NEW FILE: AxWindowRC.PL ---
#!perl -w
use strict;
use warnings;
use ExtUtils::MakeMaker;
# $Id: AxWindowRC.PL,v 1.1 2006/06/11 15:46:49 robertemay Exp $
# perl script to produce the RC file for
# Win32::GUI::AxWindow create Resource
# file with a VERSIONINFO section
# The variables:
my %info = (
Version => MM->parse_version('AxWindow.pm'),
Dllname => 'AxWindow.dll',
Years => '2003..2006',
Win32GUIVersion => MM->parse_version('../GUI.pm'),
);
# Open the target file
if ( @ARGV > 0 ) {
my $file = $ARGV[0];
open(my $fh, '>', $file) or die qq(Failed to open '$file': $!);
select $fh;
}
{
my $fileVersion = $info{Version};
$fileVersion .= "_00" unless $fileVersion =~ m/_/;
$info{FileVersion} =
sprintf("%02d,%02d,%02d,00", $fileVersion =~ m/^(.*)\.([^_]*)_?(.*)$/);
my $prodVersion = $info{Win32GUIVersion};
$prodVersion .= "_00" unless $prodVersion =~ m/_/;
$info{ProductVersion} =
sprintf("%02d,%02d,%02d,00", $prodVersion =~ m/^(.*)\.([^_]*)_?(.*)$/);
}
print <<"__RC";
#include "Winver.h"
1 VERSIONINFO
FILEVERSION $info{FileVersion}
PRODUCTVERSION $info{ProductVersion}
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "Comments" , "Win32::GUI::AxWindow, part of the perl
Win32::GUI module."
VALUE "CompanyName" , "perl-win32-gui.sourceforge.net"
VALUE "FileDescription" , "Win32::GUI::AxWindow perl extension"
VALUE "FileVersion" , "$info{Version}"
VALUE "InternalName" , "$info{Dllname}"
VALUE "LegalCopyright" , "Copyright © Laurent Rocher $info{Years}"
VALUE "LegalTrademarks" , "GNU and Artistic licences"
VALUE "OriginalFilename" , "$info{Dllname}"
VALUE "ProductName" , "Win32::GUI perl extension"
VALUE "ProductVersion" , "$info{Win32GUIVersion}"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409, 0x04E4
}
}
__RC
exit(0);
__END__
Index: Makefile.PL
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow/Makefile.PL,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Makefile.PL 1 Nov 2005 12:32:28 -0000 1.1
--- Makefile.PL 11 Jun 2006 15:46:51 -0000 1.2
***************
*** 1,34 ****
use ExtUtils::MakeMaker;
! # See lib/ExtUtils/MakeMaker.pm for details of how to influence
! # the contents of the Makefile that is written.
! WriteMakefile(
! 'NAME' => 'Win32::GUI::AxWindow',
! 'VERSION_FROM' => 'AxWindow.pm', # finds $VERSION
! 'XS' => { 'AxWindow.xs' => 'AxWindow.cpp' },
! 'LIBS' => ['atl.lib'], # e.g., '-lm'
! 'INC' => '', # e.g., '-I/usr/include/other'
! ($] eq '5.00503')
! ? (
! 'DEFINE' => '-DPERL_5005', # e.g., '-DHAVE_SOMETHING'
! ) : (
! 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
! ),
! ($] ge '5.005')
! ? (
! 'AUTHOR' => 'ROCHER Laurent ([EMAIL PROTECTED])',
! 'ABSTRACT' => 'Add ActiveX Control Hosting in Win32::GUI',
! )
! : (),
);
! sub MY::xs_c {
! '
! .xs.c:
! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG)
$(XSUBPPARGS) $*.xs > $*.c
! .xs.cpp:
! $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG)
$(XSUBPPARGS) $*.xs > $*.cpp
! ';
}
--- 1,88 ----
+ #!perl -w
+ use strict;
+ use warnings;
+
+ # Makefile.PL for Win32::GUI::AxWindow
+ # $Id$
+
+ use 5.006;
+ use Config;
use ExtUtils::MakeMaker;
! use File::Find();
!
! my @demos;
! File::Find::find(sub { push @demos, $File::Find::name if $File::Find::name =~
/\.(pl|pm|avi)$/ }, 'demos');
!
! my %config = (
! NAME => 'Win32::GUI::AxWindow',
! VERSION_FROM => 'AxWindow.pm',
! ABSTRACT_FROM => 'AxWindow.pm',
! AUTHOR => 'ROCHER Laurent ([EMAIL PROTECTED])',
! PL_FILES => {'AxWindowRC.PL' => '$(BASEEXT).rc', },
! XS => {'AxWindow.xs' => 'AxWindow.cpp' },
! OBJECT => '$(BASEEXT)$(OBJ_EXT) $(BASEEXT).res',
! LIBS => ['-latl'],
! macro => {RC => 'rc.exe',
! RCFLAGS => '',
! INST_DEMODIR =>
'$(INST_LIB)/Win32/GUI/demos/$(BASEEXT)',
! DEMOS => "@demos", },
! clean => {FILES => '*.rc *.res', },
);
! # if building using gcc (MinGW or cygwin) use windres
! # as the resource compiler
! # and the MinGW C++ standard library
! if($Config{cc} =~ /gcc/i) {
! $config{macro}->{RC} = 'windres';
! $config{macro}->{RCFLAGS} = '-O coff -o $*.res';
! $config{LIBS} = [':nodefault -lcomctl32 -lmsvcp60'];
! }
! # Can only build with mscv.
! if($Config{cc} !~ /cl/i) {
! print <<__EXPLAIN;
! Win32::GUI::AxWindow can only be built using MSVC, not '$Config{cc}',
! as it depends on the Microsoft Active Template Library (ATL).
! Win32::GUI::AxWindow will be skipped during the current build process.
! __EXPLAIN
! ExtUtils::MakeMaker::WriteEmptyMakefile(NAME => 'Win32::GUI::AxWindow');
! }
! else {
! WriteMakefile(%config);
! }
!
! package MY;
!
! sub xs_c {
! my $inherited = shift->SUPER::xs_c(@_);
! $inherited =~ s/\.c/.cpp/g;
! return $inherited;
! }
!
! # Add rule for .rc to .res conversion
! # Add rules to install demo scripts
! sub postamble {
! return <<'__POSTAMBLE';
!
! # Win32::GUI::DIBitmap RC section
!
! .rc.res:
! $(RC) $(RCFLAGS) $<
!
! # Win32::GUI::DIBitmap demo script section
!
! pure_all :: demo_to_blib
! $(NOECHO) $(NOOP)
!
! demo_to_blib: $(DEMOS)
! $(NOECHO) $(MKPATH) $(INST_DEMODIR)
! $(CP) $? $(INST_DEMODIR)
! $(NOECHO) $(TOUCH) demo_to_blib
!
! clean ::
! -$(RM_F) demo_to_blib
!
! __POSTAMBLE
}
Index: AxWindow.pm
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow/AxWindow.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AxWindow.pm 1 Nov 2005 12:32:28 -0000 1.1
--- AxWindow.pm 11 Jun 2006 15:46:48 -0000 1.2
***************
*** 1,22 ****
package Win32::GUI::AxWindow;
! use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
! use Win32::GUI;
! require Exporter;
! require DynaLoader;
! require AutoLoader;
! @ISA = qw(Exporter DynaLoader Win32::GUI::Window);
! # Items to export into callers namespace by default. Note: do not export
! # names by default without a very good reason. Use EXPORT_OK instead.
! # Do not simply export all your public functions/methods/constants.
! @EXPORT = qw();
! $VERSION = '0.07';
! bootstrap Win32::GUI::AxWindow $VERSION;
! # Preloaded methods go here.
# Initialise
--- 1,22 ----
package Win32::GUI::AxWindow;
! # $Id$
! use strict;
! use warnings;
! use Carp;
! use Win32::GUI qw(WS_CHILD WS_CLIPCHILDREN WS_VISIBLE WS_TABSTOP
! WS_HSCROLL WS_VSCROLL WS_DISABLED);
! require DynaLoader;
! our @ISA = qw(DynaLoader Win32::GUI::Window);
! our $VERSION = 0.08;
! my $XS_VERSION = $VERSION;
! $VERSION = eval $VERSION;
!
! bootstrap Win32::GUI::AxWindow $XS_VERSION;
# Initialise
***************
*** 30,35 ****
}
- # Autoload methods go after =cut, and are processed by the autosplit program.
-
#
# new : Create a new ActiveX Window
--- 30,33 ----
***************
*** 144,148 ****
1;
__END__
- # Below is the stub of documentation for your module. You better edit it!
=head1 NAME
--- 142,145 ----
***************
*** 152,183 ****
=head1 SYNOPSIS
! use Win32::GUI;
use Win32::GUI::AxWindow;
# Main Window
! $Window = new Win32::GUI::Window (
! -name => "Window",
! -title => "Win32::GUI::AxWindow test",
! -post => [100, 100],
! -size => [400, 400],
);
# Add a WebBrowser AxtiveX
! $Control = new Win32::GUI::AxWindow (
! -parent => $Window,
! -name => "Control",
! -control => "Shell.Explorer.2",
! # -control => "{8856F961-340A-11D0-A96B-00C04FD705A2}",
! -pos => [0, 0],
! -size => [400, 400],
);
# Register some event
$Control->RegisterEvent("StatusTextChange",
! sub {
! $self = shift;
! $eventid = shift;
! print "Event : ", @_, "\n";
! } );
# Call Method
--- 149,179 ----
=head1 SYNOPSIS
! use Win32::GUI();
use Win32::GUI::AxWindow;
# Main Window
! $Window = new Win32::GUI::Window(
! -name => "Window",
! -title => "Win32::GUI::AxWindow test",
! -pos => [100, 100],
! -size => [400, 400],
);
# Add a WebBrowser AxtiveX
! $Control = new Win32::GUI::AxWindow (
! -parent => $Window,
! -name => "Control",
! -control => "Shell.Explorer",
! -pos => [0, 0],
! -size => [400, 400],
);
# Register some event
$Control->RegisterEvent("StatusTextChange",
! sub {
! $self = shift;
! $eventid = shift;
! print "Event : ", @_, "\n";
! } );
# Call Method
***************
*** 190,217 ****
# Main window event handler
- sub Window_Terminate {
-
- return -1;
- }
-
sub Window_Resize {
!
! if (defined $Window) {
! ($width, $height) = ($Window->GetClientRect)[2..3];
! $Control->Move (0, 0);
! $Control->Resize ($width, $height);
! }
}
-
=head1 DESCRIPTION
=head2 AxWindow
=item C<new> (...)
! Create a new ActiveX window.
! options :
-parent => parent window (Required)
--- 186,208 ----
# Main window event handler
sub Window_Resize {
! if (defined $Window) {
! ($width, $height) = ($Window->GetClientRect)[2..3];
! $Control->Move (0, 0);
! $Control->Resize ($width, $height);
! }
}
=head1 DESCRIPTION
=head2 AxWindow
+ =over
+
=item C<new> (...)
! Create a new ActiveX window.
! options :
-parent => parent window (Required)
***************
*** 225,239 ****
-control => clisd (see below) (Required).
! clsid is a string identifier to create the control.
! Must be formatted in one of the following ways:
! - A ProgID such as "MSCAL.Calendar.7"
! - A CLSID such as "{8E27C92B-1264-101C-8A2F-040224009C02}"
! - A URL such as "http://www.microsoft.com"
! - A reference to an Active document such as 'file://Documents/MyDoc.doc'
! - A fragment of HTML such as "MSHTML:<HTML><BODY>This is a line of
text</BODY></HTML>"
! Note "MSHTML:" must precede the HTML fragment so that it is
designated as being an MSHTML stream.
! styles:
-visible => 0/1
--- 216,232 ----
-control => clisd (see below) (Required).
! C<clsid> is a string identifier to create the control.
! Must be formatted in one of the following ways:
! - A ProgID such as "MSCAL.Calendar.7"
! - A CLSID such as "{8E27C92B-1264-101C-8A2F-040224009C02}"
! - A URL such as "http://www.microsoft.com"
! - A reference to an Active document such as 'file://Documents/MyDoc.doc'
! - A fragment of HTML such as "MSHTML:<HTML><BODY>This is a line of
text</BODY></HTML>"
! Note that "MSHTML:" must precede the HTML fragment so that it is designated as
! being an MSHTML stream.
!
! styles:
-visible => 0/1
***************
*** 245,352 ****
-exstyle, -exaddstyle, -expushstyle, -exremstyle, -expopstyle
! Default style is : WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN
=item C<Release> ()
! If have crash when exiting, call this function before all the window are
destroy (before Win32::GUI::Dialog(); exit).
! Generaly, call this function in the Window_Terminate handle.
=head2 Property
=item C<EnumPropertyID> ()
! Return a list of all the Property ID of the control.
=item C<EnumPropertyName> ()
! Return a list of all the Property name of the control.
=item C<GetPropertyInfo> (ID_or_Name)
! Return a hash with information about the Property from ID or Name.
! Hash entry :
! -Name => Property Name.
! -ID => Property ID.
! -VarType => Property Type (Variant type).
! -EnumValue => A formated string of enum value (
enum1=value1,enum2=value2,... ).
! -ReadOnly => Indicate if a property can only be read.
! -Description => Property Description.
! -Prototype => Prototype
=item C<GetProperty> (ID_or_Name, [index, ...])
! Get property value.
! For indexed property, add index list.
=item C<SetProperty> (ID_or_Name, [index, ...], value)
! Set property value
! For indexed property, add index list before value.
=head2 Method
=item C<EnumMethodID> ()
! Return a list of all the Method ID of the control.
=item C<EnumMethodName> ()
! Return a list of all the Method name of the control.
=item C<GetMethodInfo> (ID_Name)
! Return a hash with information about the Method from ID or Name.
! Hash entry :
! -Name => Method Name.
! -ID => Method ID.
! -Description => Method Description.
! -Prototype => Method Prototype.
=item C<CallMethod> (ID_or_Name, ...)
! Invoke a method of an ActiveX control.
=head2 Event
=item C<EnumEventID> ()
! Return a list of all the Event ID of the control.
=item C<EnumEventName> ()
! Return a list of all the Event Name of the control.
=item C<GetEventInfo> (ID_or_Name)
! Return a hash with information about the Event from ID or Name.
! Hash entry :
! -Name => Method Name.
! -ID => Method ID.
! -Description => Method Description.
! -Prototype => Method Prototype.
=item C<RegisterEvent> (ID_or_Name, Callback)
! Associate a Callback for an ActiveX Event.
=head2 Win32::OLE
=item C<GetOLE> ()
! Return a Win32::OLE object of Hosted ActiveX Control.
! You MUST add use Win32::OLE in your script.
=head1 AUTHOR
! Laurent Rocher ([EMAIL PROTECTED])
! HomePage :http://perso.club-internet.fr/rocherl/Win32GUI.html
=head1 SEE ALSO
! Win32::GUI
=cut
--- 238,387 ----
-exstyle, -exaddstyle, -expushstyle, -exremstyle, -expopstyle
! Default style is : C<WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN>
=item C<Release> ()
! If you have a crash when exiting, call this function before all the
! windows are destroyed (i.e. before C<Win32::GUI::Dialog();> exits).
! Generaly, call this function in the Window_Terminate event handler.
!
! =back
=head2 Property
+ =over
+
=item C<EnumPropertyID> ()
! Return a list of all the Property IDs of the control.
=item C<EnumPropertyName> ()
! Return a list of all the Property names of the control.
=item C<GetPropertyInfo> (ID_or_Name)
! Return a hash with information about the Property from C<ID_or_Name>.
! Hash entry :
!
! -Name => Property Name.
! -ID => Property ID.
! -VarType => Property Type (Variant type).
! -EnumValue => A formated string of enum value (
enum1=value1,enum2=value2,... ).
! -ReadOnly => Indicate if a property can only be read.
! -Description => Property Description.
! -Prototype => Prototype
=item C<GetProperty> (ID_or_Name, [index, ...])
! Get property value.
! For indexed property, add index list.
=item C<SetProperty> (ID_or_Name, [index, ...], value)
! Set property value
! For indexed property, add index list before value.
!
! =back
=head2 Method
+ =over
+
=item C<EnumMethodID> ()
! Return a list of all the Method IDs of the control.
=item C<EnumMethodName> ()
! Return a list of all the Method names of the control.
=item C<GetMethodInfo> (ID_Name)
! Return a hash with information about the Method from ID or Name.
! Hash entry :
!
! -Name => Method Name.
! -ID => Method ID.
! -Description => Method Description.
! -Prototype => Method Prototype.
=item C<CallMethod> (ID_or_Name, ...)
! Invoke a method of an ActiveX control.
!
! =back
=head2 Event
+ =over
+
=item C<EnumEventID> ()
! Return a list of all the Event IDs of the control.
=item C<EnumEventName> ()
! Return a list of all the Event Names of the control.
=item C<GetEventInfo> (ID_or_Name)
! Return a hash with information about the Event from C<ID_or_Name>.
! Hash entry :
!
! -Name => Method Name.
! -ID => Method ID.
! -Description => Method Description.
! -Prototype => Method Prototype.
=item C<RegisterEvent> (ID_or_Name, Callback)
! Associate a Callback for an ActiveX Event.
!
! =back
=head2 Win32::OLE
+ =over
+
=item C<GetOLE> ()
! Return a Win32::OLE object of Hosted ActiveX Control.
! You MUST add C<use Win32::OLE;> in your script.
!
! =back
=head1 AUTHOR
! Laurent Rocher ([EMAIL PROTECTED])
=head1 SEE ALSO
! L<Win32::GUI|Win32::GUI> L<http://perl-win32-gui.sourceforge.net/>
!
! =head1 DEPENDENCIES
!
! This module requires these other modules and libraries:
!
! =over
!
! =item Win32::GUI
!
! =item Active Template Library (ATL)
!
! =back
!
! =head1 COPYRIGHT AND LICENCE
!
! Copyright 2003 by Laurent Rocher ([EMAIL PROTECTED]).
!
! This program is free software; you can redistribute it and/or modify it
! under the same terms as Perl itself.
!
! See L<http://www.perl.com/perl/misc/Artistic.html>
=cut
--- NEW FILE: TODO ---
- It would be nice if you were trying to create a control using an AxtiveX
object that does not exist on the running PC that you got a control
failure rather than a Shell.Explorer control showing an error. For eaxmple
running the MSFlexGrid demo on a PC that does not have a registered version
of msflxgrd.ocx, results in a window showing an IE Error, at it the
underlying framework has fallen back to using 'MSFlexGridLib.MSFlexGrid'
as a URL ('http://MSFlexGridLib.MSFlexGrid/', which, of course, does
not exist). See InfoControl.pl example for a fairly heavy-handed
way to do it.
- Investigate why SetProperty('uiMode' ...) doesn't work in WMPlayer.pl
demo. Is this a bug with AxWindow?
- Complete the 'Uncomplete' demos. Make DHtmlEdit.pm and MsFlexGrid.pm
installed modules?
--- MANIFEST DELETED ---
Index: AxWindow.xs
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow/AxWindow.xs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AxWindow.xs 1 Nov 2005 12:32:28 -0000 1.1
--- AxWindow.xs 11 Jun 2006 15:46:49 -0000 1.2
***************
*** 3,6 ****
--- 3,8 ----
/**********************************************************************/
+ /* $Id$ */
+
#include <atlbase.h>
***************
*** 17,48 ****
/*====================================================================*/
- #ifdef PERL_5005
- #define __TEMP_WORD WORD
- #endif
-
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
- // Activate for ActiveState PERL_5005
-
- #ifdef PERL_5005
-
- #ifndef SvPV_nolen
- #define SvPV_nolen(sv) SvPV(sv, PL_na)
- #endif
-
- #ifndef call_sv
- #define call_sv perl_call_sv
- #endif
-
- #undef XST_mPV
- #define XST_mPV(i,v) (ST(i) = sv_2mortal(newSVpv((char *)v,0)))
-
- #undef WORD
- #define WORD __TEMP_WORD
-
- #endif
-
/*====================================================================*/
/* Internal function */
--- 19,26 ----
***************
*** 182,186 ****
m_vtReturn = VT_BYREF | pfd->elemdescFunc.tdesc.lptdesc->vt;
! // Init parametre structure call
if (m_iParams != 0)
{
--- 160,164 ----
m_vtReturn = VT_BYREF | pfd->elemdescFunc.tdesc.lptdesc->vt;
! // Init parameter structure call
if (m_iParams != 0)
{
***************
*** 1020,1024 ****
call_sv(m_Events[n]->GetCallback(), G_EVAL | G_DISCARD);
! // Output parametre
for (i = pdispparams->cArgs - 1; i >= 0; --i)
--- 998,1002 ----
call_sv(m_Events[n]->GetCallback(), G_EVAL | G_DISCARD);
! // Output parameter
for (i = pdispparams->cArgs - 1; i >= 0; --i)
***************
*** 1037,1041 ****
case VT_UI1:
! pArg->bVal = SvIV(svref[i]);
break;
--- 1015,1019 ----
case VT_UI1:
! pArg->bVal = (BYTE)SvIV(svref[i]);
break;
***************
*** 1043,1047 ****
case VT_UI2:
! pArg->iVal = SvIV(svref[i]);
break;
--- 1021,1025 ----
case VT_UI2:
! pArg->iVal = (SHORT)SvIV(svref[i]);
break;
***************
*** 1051,1070 ****
case VT_UINT:
! pArg->lVal = SvIV(svref[i]);
break;
case VT_R4 :
! pArg->fltVal = SvNV(svref[i]);
break;
case VT_R8 :
! pArg->dblVal = SvNV(svref[i]);
break;
case VT_BOOL:
! pArg->boolVal = SvIV(svref[i]);
break;
--- 1029,1048 ----
case VT_UINT:
! pArg->lVal = (LONG)SvIV(svref[i]);
break;
case VT_R4 :
! pArg->fltVal = (FLOAT)SvNV(svref[i]);
break;
case VT_R8 :
! pArg->dblVal = (DOUBLE)SvNV(svref[i]);
break;
case VT_BOOL:
! pArg->boolVal = (VARIANT_BOOL)SvIV(svref[i]);
break;
***************
*** 1072,1076 ****
case VT_BYREF | VT_UI1:
! *pArg->pbVal = SvIV(svref[i]);
break;
--- 1050,1054 ----
case VT_BYREF | VT_UI1:
! *pArg->pbVal = (BOOL)SvIV(svref[i]);
break;
***************
*** 1078,1082 ****
case VT_BYREF | VT_UI2:
! *pArg->piVal = SvIV(svref[i]);
break;
--- 1056,1060 ----
case VT_BYREF | VT_UI2:
! *pArg->piVal = (SHORT)SvIV(svref[i]);
break;
***************
*** 1086,1105 ****
case VT_BYREF | VT_UINT:
! *pArg->piVal = SvIV(svref[i]);
break;
case VT_BYREF | VT_R4 :
! *pArg->pfltVal = SvNV(svref[i]);
break;
case VT_BYREF | VT_R8 :
! *pArg->pdblVal = SvNV(svref[i]);
break;
case VT_BYREF | VT_BOOL :
! *pArg->pboolVal = SvIV(svref[i]);
break;
--- 1064,1083 ----
case VT_BYREF | VT_UINT:
! *pArg->plVal = (LONG)SvIV(svref[i]);
break;
case VT_BYREF | VT_R4 :
! *pArg->pfltVal = (FLOAT)SvNV(svref[i]);
break;
case VT_BYREF | VT_R8 :
! *pArg->pdblVal = (DOUBLE)SvNV(svref[i]);
break;
case VT_BYREF | VT_BOOL :
! *pArg->pboolVal = (VARIANT_BOOL)SvIV(svref[i]);
break;
***************
*** 1650,1653 ****
--- 1628,1633 ----
MODULE = Win32::GUI::AxWindow PACKAGE = Win32::GUI::AxWindow
+ PROTOTYPES: ENABLE
+
##################################################################
# #
***************
*** 1790,1794 ****
}
else
! XSRETURN_UNDEF;
#
--- 1770,1774 ----
}
else
! XSRETURN_EMPTY;
#
***************
*** 1810,1814 ****
}
else
! XSRETURN_UNDEF;
#
--- 1790,1794 ----
}
else
! XSRETURN_EMPTY;
#
***************
*** 1852,1856 ****
else
{
! XSRETURN_UNDEF;
}
--- 1832,1836 ----
else
{
! XSRETURN_EMPTY;
}
***************
*** 1883,1887 ****
}
else
! XSRETURN_UNDEF;
#
--- 1863,1867 ----
}
else
! XSRETURN_EMPTY;
#
***************
*** 1903,1907 ****
}
else
! XSRETURN_UNDEF;
#
--- 1883,1887 ----
}
else
! XSRETURN_EMPTY;
#
***************
*** 1957,1961 ****
else
{
! XSRETURN_UNDEF;
}
--- 1937,1941 ----
else
{
! XSRETURN_EMPTY;
}
***************
*** 1992,1996 ****
PPCODE:
! // A methode
if (type == DISPATCH_METHOD)
{
--- 1972,1976 ----
PPCODE:
! // A method
if (type == DISPATCH_METHOD)
{
***************
*** 2527,2531 ****
}
else
! XSRETURN_UNDEF;
#
--- 2507,2511 ----
}
else
! XSRETURN_EMPTY;
#
***************
*** 2549,2553 ****
}
else
! XSRETURN_UNDEF;
--- 2529,2533 ----
}
else
! XSRETURN_EMPTY;
***************
*** 2583,2587 ****
else
{
! XSRETURN_UNDEF;
}
--- 2563,2567 ----
else
{
! XSRETURN_EMPTY;
}
***************
*** 2598,2601 ****
--- 2578,2582 ----
CMethod * method = NULL;
CODE:
+ RETVAL = 0;
if(SvIOK(ID_Name))
RETVAL = container->EventMap()->RegisterEvent(ST(0), (DISPID)
SvIV(ID_Name), callback);
--- README DELETED ---
Index: Changes
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow/Changes,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Changes 1 Nov 2005 12:32:28 -0000 1.1
--- Changes 11 Jun 2006 15:46:50 -0000 1.2
***************
*** 1,45 ****
! Revision history for Perl extension AxWindow.
0.07 03/02/2004
! - Correct GetOLE() method when using PAR and PerlApp.
0.06 28/09/2003
! - Rewrite creation method (Remove AttachControl method).
! - No more need to call Release Method before exit.
! - Correct bug in GetPropertyInfo with VARTYPE property.
! - Correct -heigth option.
! - Update and add samples.
0.05 15/10/2002
! - Add GetOLE method (return a Win32::OLE object of Hosted ActiveX
Control).
! - Add TestOle.pl Sample.
0.04 14/09/2002
! - Add indexed property support.
! - Change code organisation (Invoke method, CProperty child of
CMethod).
! - Add MSFlexGrid Sample.
0.03 30/05/2002
! - Add VARTYPE property support.
! - Add output parameter for event support.
! - Accept control without event.
! - Correct DHTMLEdit.pm wrapper class.
0.02 25/03/2002
! - Correct ReadOnly value for Properties.
! - Add =value for Enum string list for Properties.
! - Test ReadOnly attribut in SetProperty.
! - SetProperty handle Enum property by value or string constant.
! - Add a Release method for clean ActiveX reference before window
destroy.
! - Manage VT_USERDEFINED as enum in CallMethod.
! - Add some documentation (sorry for my english ;-).
! - Add DHTML Edit sample (basic and a wrapper class).
0.01 22/03/2002
! - original version; created by h2xs 1.19
! - ActiveX control information (Properties, Metods, Events).
! - Set/Get property.
! - Call a Method.
! - Event Support.
! - Support of basic variant type.
--- 1,53 ----
+ Revision history for Perl extension Win32::GUI::AxWindow.
! 0.08 27/05/2006
! - Merge into Win32::GUI core build
! - new build process (re-write Makefile.PL)
! - tidy documentation
! - tidy and correct demos
! - Introduce sub-classes:
! - Methods that return lists now use XSRETURN_EMPTY rather than
! XSRETURN_UNDEF when there is nothing to return
0.07 03/02/2004
! - Correct GetOLE() method when using PAR and PerlApp.
0.06 28/09/2003
! - Rewrite creation method (Remove AttachControl method).
! - No more need to call Release Method before exit.
! - Correct bug in GetPropertyInfo with VARTYPE property.
! - Correct -heigth option.
! - Update and add samples.
0.05 15/10/2002
! - Add GetOLE method (return a Win32::OLE object of Hosted ActiveX
Control).
! - Add TestOle.pl Sample.
0.04 14/09/2002
! - Add indexed property support.
! - Change code organisation (Invoke method, CProperty child of CMethod).
! - Add MSFlexGrid Sample.
0.03 30/05/2002
! - Add VARTYPE property support.
! - Add output parameter for event support.
! - Accept control without event.
! - Correct DHTMLEdit.pm wrapper class.
0.02 25/03/2002
! - Correct ReadOnly value for Properties.
! - Add =value for Enum string list for Properties.
! - Test ReadOnly attribut in SetProperty.
! - SetProperty handle Enum property by value or string constant.
! - Add a Release method for clean ActiveX reference before window destroy.
! - Manage VT_USERDEFINED as enum in CallMethod.
! - Add some documentation (sorry for my english ;-).
! - Add DHTML Edit sample (basic and a wrapper class).
0.01 22/03/2002
! - original version; created by h2xs 1.19
! - ActiveX control information (Properties, Metods, Events).
! - Set/Get property.
! - Call a Method.
! - Event Support.
! - Support of basic variant type.
Index: TYPEMAP
===================================================================
RCS file: /cvsroot/perl-win32-gui/Win32-GUI/Win32-GUI-AxWindow/TYPEMAP,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TYPEMAP 1 Nov 2005 12:32:28 -0000 1.1
--- TYPEMAP 11 Jun 2006 15:46:52 -0000 1.2
***************
*** 1,32 ****
TYPEMAP
CContainer* T_CONTAINER
HWND T_HANDLE
- HMENU T_HANDLE
- HICON T_HANDLE
- HCURSOR T_HANDLE
- HBITMAP T_HANDLE
- HFONT T_HANDLE
- HGDIOBJ T_HANDLE
- HIMAGELIST T_HANDLE
- HDC T_HANDLE
- HBRUSH T_HANDLE
- HPEN T_HANDLE
- HTREEITEM T_IV
- LONG T_IV
LPCTSTR T_PV
- LPTSTR T_PV
DWORD T_IV
- UINT T_IV
BOOL T_IV
- WPARAM T_IV
- LPARAM T_IV
- LRESULT T_IV
- HINSTANCE T_IV
- COLORREF T_COLOR
- LPCSTR T_PV
- HENHMETAFILE T_IV
- FLOAT T_FLOAT
- LPVOID T_PV
- HACCEL T_IV
################################################################################
--- 1,9 ----
+ #$Id$
TYPEMAP
CContainer* T_CONTAINER
HWND T_HANDLE
LPCTSTR T_PV
DWORD T_IV
BOOL T_IV
################################################################################
***************
*** 34,45 ****
T_HANDLE
if(SvROK($arg)) {
! if(hv_fetch((HV*)SvRV($arg), \"-handle\", 7, 0) != NULL)
! $var = ($type) SvIV(*(hv_fetch((HV*)SvRV($arg), \"-handle\", 7,
0)));
else
$var = NULL;
} else
! $var = ($type) SvIV($arg);
! T_COLOR
! $var = SvCOLORREF($arg);
T_CONTAINER
$var = ($type) SvIV(*(hv_fetch((HV*)SvRV($arg), \"-CContainer\", 11, 0)));
--- 11,22 ----
T_HANDLE
if(SvROK($arg)) {
! SV** out=hv_fetch((HV*)SvRV($arg), \"-handle\", 7, 0);
! if(out != NULL)
! $var = INT2PTR($type,SvIV(*out));
else
$var = NULL;
} else
! $var = INT2PTR($type,SvIV($arg));
!
T_CONTAINER
$var = ($type) SvIV(*(hv_fetch((HV*)SvRV($arg), \"-CContainer\", 11, 0)));
***************
*** 47,53 ****
################################################################################
OUTPUT
- T_HANDLE
- sv_setiv($arg, (IV) $var);
- T_COLOR
- sv_setiv($arg, (IV) $var);
-
--- 24,25 ----
--- AxWindow.html DELETED ---