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 ---


Reply via email to