Win32.GUI.DropFiles man page on Cygwin

Man page or keyword search:  
man Server   22533 pages
apropos Keyword Search (all sections)
Output format
Cygwin logo
[printable version]

DropFiles(3)	      User Contributed Perl Documentation	  DropFiles(3)

NAME
       Win32::GUI::DropFiles - Extension to Win32::GUI for shell Drag&Drop
       integration

SYNOPSIS
	 use Win32::GUI;
	 use Win32::GUI::DropFiles;

	 # Create droppable window:
	 my $win = Win32::GUI::Window->new(
	   -name => 'win',
	   ...
	   -acceptfiles => 1,
	   -onDropFiles => \&dropfiles_callback,
	   ...
	 );

	 # Change the drop state of a window
	 $win->AcceptFiles(1);
	 $win->AcceptFiles(0);

	 # In the DropFiles callback
	 sub win_DropFiles {
	   my ($self, $dropObj) = @_;

	   # Get the number of dropped files
	   my $count = $dropObj->GetDroppedFiles();

	   # Get a list of the dropped file names
	   my @files = $dropObj->GetDroppedFiles();

	   # Get a particular file name (0 based index)
	   my $file  = $dropObj->GetDroppedFile($index);

	   # determine if the drop happened in the client or
	   # non-client area of the window
	   my $clientarea = $dropObj->GetDropPos();

	   # get the mouse co-ordinates of the drop point,
	   # in client co-ordinates
	   my ($x, $y) = $dropObj->GetDropPos();

	   # get the drop point and (non-)client area information
	   my ($x, $y, $client) = $dropObj->GetDropPos();

	   return 0;
	 }

DESCRIPTION
       Win32::GUI::DropFiles provides integration with the windows shell,
       allowing files to be dragged from the shell (e.g. explorer.exe),
       dropped onto a Win32::GUI window/control, and the path and filename of
       the dropped files to be retrieved.

       In order for a window to become a 'drop target' it must be created with
       the -acceptfiles option set, or have called its AcceptFiles() method.

       Once the window has been correctly initialised, then dropping a dragged
       file on the window results in a DropFiles event being triggered.	 The
       parameter to the event callback function is a Win32::GUI::DropFiles
       object that can be used to retrieve the names and paths of the dropped
       files.

Drop Object Methods
       This section documents the public API for Win32::GUI::DropFiles
       objects.

   Constructor
       The constructor is not public: Win32::GUI creates Win32::GUI::DropFiles
       object when necessary, to pass to the DropFiles event handler
       subroutine.

   GetDroppedFiles
	 my $count = $dropObj->GetDroppedFiles();
	 my @files = $dropObj->GetDroppedFiles();

       In scalar context returns the number of files dropped.  In list context
       returns a list of fully qualified path/filename for each dropped file.

   GetDroppedFile
	 my $file = $dropObj->GetDroppedFile($index);

       returns the fully qualified path/filename for the file referenced by
       the zero-based "index".

       If "index" is out of range, returns undef and sets $!  and $^E.

   GetDropPos
	 my $client = $dropObj->GetDropPos();
	 my ($x, $y, $client) = $dropObj->GetDropPos();

       In scalar context returns a flag indicating whether the mouse was in
       the client or non-client area of the window when the files were
       dropped.	 In list context returns the x and y co-ordinates of the mouse
       when the files were dropped (in client co-ordinates), as well as a flag
       indicating whether the mouse was in the client or non-client area of
       the window.

   Destructor
       The destructor is called automatically when the object goes out of
       scope, and releases resources used by the system to store the filnames.
       Typically the object goes out of scope at the end of the DropFiles
       callback.  Care should be taken to ensure that if a reference is taken
       to the object that does not go out of scope at that time, that it is
       eventually released, otherwise a memory leak will occur.

Win32 API functions
       This section documents the Win32 API wrappers implemented by
       Win32::GUI::DropFiles.  Although these APIs are available, their use is
       not recommended - the public Object Methods should provide better
       access to these APIs.

       See MSDN (<http://msdn.microsoft.com/>) for further details of the
       Win32 API functions.

   DragQueryFile
	 Win32::GUI::DropFiles::DragQueryFile($dropHandle, [$item]);

       "dropHandle" is a win32 "HDROP" handle.	"item" is a zero-based index
       to the filename to be retrieved.

       Returns the number of files dropped if "item" is omitted.  Returns the
       filenmame if "item" is provided.

       Returns undef and sets $! and $^E on error.

   DragQueryPoint
	 Win32::GUI::DropFiles::DragQueryPoint($dropHandle);

       "dropHandle" is a win32 "HDROP" handle.

       Returns a 3 element list of the x-position and y-position (in client
       co-ordinates) and a flag that indicates whether the drop happened in
       the client or non-client area of the window.

   DragFinish
	 Win32::GUI::DropFiles::DragFinish($dropHandle);

       "dropHandle" is a win32 "HDROP" handle.

       Releases the resources and invalidates "dropHandle".

       Does not return any value.

Unicode filenmame support
       Supports unicode filenames under WinNT, Win2k, WinXP and higher.

Backwards compatibility with Win32::GUI::DragDrop
       The GUI Loft includes a Win32::GUI::DragDrop module that exposes
       similar functionality.  If you want to continue to use that module,
       then ensure that Win32::GUI::DropFiles is not used anywhere in your
       program (even by other modules that you use).  Loading
       Win32::GUI::DropFiles changes the DropFiles event callback signature,
       and will result in Win32::GUI::DragDrop failing.

       It is recommended to upgrade to Win32::GUI::DropFiles.

SEE ALSO
       MSDN <http://msdn.microsoft.com> for more information on
       DragAcceptFiles, DragQueryFiles, DragQueryPos, DragFinish,
       WS_EX_ACCEPTFILES, WM_DROPFILES

       Win32::GUI

SUPPORT
       Homepage: http://perl-win32-gui.sourceforge.net/ <http://perl-
       win32-gui.sourceforge.net/>.

       For further support join the users mailing list
       ("perl-win32-gui-users@lists.sourceforge.net") from the website at
       http://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
       <http://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users>.
       There is a searchable list archive at
       <http://sourceforge.net/mail/?group_id=16572>

AUTHORS
       Robert May ("robertemay@users.sourceforge.net") Reini Urban
       ("rurban@xray.net")

COPYRIGHT AND LICENSE
       Copyright (C) 2006 by Robert May

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.14.2			  2006-10-15			  DropFiles(3)
[top]

List of man pages available for Cygwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net