CXXXI. W32api Functions

Úvod

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Poznámka: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Varovanie

Toto roz��renie je EXPERIMENT�LNE. Spr�vanie tohto roz��renia -- vr�tane n�zvov jeho funkci� a hoci�oho in�ho zdokumentovan�ho o tomto roz��ren� -- sa mo�e zmeni� bez pov�imnutia v bud�com vydan� PHP. Pou��vajte toto roz��renie na svoje vlastn� riziko.

Požiadavky

This extension will only work on Windows systems.

Inštalácia

Nie je potrebn� �iadna in�tal�cia na pou�itie t�chto funkci�; s� �as�ou jadra PHP.

Runtime Konfigurácia

Toto roz��renie nem� �iadne konfigura�n� direkt�vy definovan� v php.ini.

Typy zdrojov

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Preddefinované Konštanty

Kon�tanty uveden� ni�ie s� definovan� t�mto roz��ren�m a bud� dostupn� iba ke� roz��renie bolo bu� kompilovan� do PHP alebo dynamicky na��tan� za behu (runtime).

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Príklady

This example gets the amount of time the system has been running and displays it in a message box.

Príklad 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         
"GetTickCount",
                         
"long");
                         
// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         
"MessageBoxA",
                         
"long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                
"\r\n %d Milliseconds, or \r\n %d Seconds" .
                
"or \r\n %d mins or\r\n %d hours %d mins.",
                
$ticks,
                
$secs,
                
$mins,
                
$hours,
                
$mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            
$str,
            
"Uptime Information",
            
MB_OK);
?>
Obsah
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype --  Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used