I know that I can consume COM components but is there a way to directly call into the Win32 API\'s (user32.dll, advapi32.dll etc) from PHP or do I need to wrap in a PHP exte
See the first comment here:
The only way I've been able to call Win32 API functions with PHP5 has been through COM and DynamicWrapper.
Here's an example to play a beep sound with your computer speaker:
<?php
$com = new COM("DynamicWrapper");
$com->Register("KERNEL32.DLL", "Beep", "i=ll", "f=s", "r=l");
$com->Beep(5000, 100);
?>
You can get an updated DynamicWrapper here. You have to register it with regsvr32.
The win32api support for php is very flaky. Have a look at this
http://php.net/manual/en/book.w32api.php