Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The Perl Win32 API Import Facility
Perl C++ C XS Assembly Makefile

This branch is 15 commits ahead of cosimo:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Callback version 0.78_01
api-test regen API_test, Impt doesn't leak now, rtrns obj, M::I creates ::M, c…
patches Added patch to detect fork capabilities and DoTheRightThing
samples General perltidy applied to everything
t version 0.80_02
.gitignore pod fixes
API.h version 0.80_02
API.pm
API.xs version 0.80_02
API_test.dll regen API_test, Impt doesn't leak now, rtrns obj, M::I creates ::M, c…
API_test64.dll version v0.76_03
Call.c version 0.78, fix #94906, 0-ext instead of sign-ext for small int types
Callback.pm
Changes 32 bit GCC builds now use the assembler and real asm code
IATPatch.pod pod fixes
MANIFEST
MANIFEST.SKIP do not add MYMETA into dist
META.yml version 0.69, includes updated dlls (I hope)
Makefile.PL 32 bit GCC builds now use the assembler and real asm code
README Documented latest changes for 0.66
Struct.pm version 0.76_04
TODO version 0.76_01
TYPEMAP
Test.pm version 0.75
Type.pm version 0.76_04
call_asm_x64_gnu.s version 0.76_01
call_asm_x64_msvc.asm version 0.76_01
call_asm_x86_gnu.s 32 bit GCC builds now use the assembler and real asm code
call_asm_x86_msvc.asm further optimizations in incoming arg loop, TARG usage, no memcpy
call_i686.c
call_i686.h 32 bit GCC builds now use the assembler and real asm code
call_x86_64.h
ppport.h version 0.71
typemap56 version 0.75

README

Win32::API - Perl Win32 API Import Facility
===========================================

Current maintainer: Cosimo Streppone <cosimo@cpan.org>
Original author:    Aldo Calpini <dada@perl.it>

With this module you can import and call arbitrary functions
from Win32's Dynamic Link Libraries (DLL), without having
to write an XS extension.

Note, however, that this module can't really do everything:
parameters input and output is limited to simpler cases.
In particular, when you play hard with pointers and arrays
and memory locations, there are some things that you just
can't do.

The current version of Win32::API is available at:

  http://search.cpan.org/dist/Win32-API/

Here it is a short example of how you can use this module.
It just gets the PID of the current process, eg. same as Perl's
internal $$:

  use Win32::API;
  Win32::API->Import("kernel32", "int GetCurrentProcessId()");
  $PID = GetCurrentProcessId();

Full documentation is available in POD format inside API.pm.

The possibilities are nearly infinite (but not all are good :-).
Enjoy it.
Something went wrong with that request. Please try again.