Funções da W32api
Introdução
Essa extensão é uma API genérica de extensão para DLLs. Ela era originalmente escrita para permitir acesso à API Win32 a partir do PHP, embora você pode também acessar outras funções exportadas via outras DLLs.
Os tipos atualmente suportados são tipos genéticos do PHP (strings, booleans, floats, inteiros e nulls) e tipos que você define com a função w32api_deftype().
Nota: Esta extensão foi movida para o repositório » PECL e não é mais distribuida em conjunto com o PHP a partir do PHP 5.1.0.
Este módulo é EXPERIMENTAL. Isso quer dizer que o comportamento neste módulo --- incluindo suas funções e seus nomes, e TUDO mais que está documentado sobre esse módulo --- poderá mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use este módulo por sua própria conta e risco.
Dependências
Essa extensão só funciona em sistemas Windows.
Instalação
Não há nenhuma instalação necessária para utilizar estas funções, elas fazem parte do núcleo do PHP.
Configurações em execução
Esta extensão não define nenhum parâmetro de configuração no php.ini.
Tipos Resource
Essa extensão define um tipo de recurso, usado por tipo definidos pelo usuário. O nome desse recurso é "dynaparm".
Constantes pré-definidas
As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.
- DC_MICROSOFT (inteiro)
- DC_BORLAND (inteiro)
- DC_CALL_CDECL (inteiro)
- DC_CALL_STD (inteiro)
- DC_RETVAL_MATH4 (inteiro)
- DC_RETVAL_MATH8 (inteiro)
- DC_CALL_STD_BO (inteiro)
- DC_CALL_STD_MS (inteiro)
- DC_CALL_STD_M8 (inteiro)
- DC_FLAG_ARGPTR (inteiro)
Exemplos
Esse exemplo pega a quantidade de tempo que o sistema está executando e mostra em uma caixa de mensagem.
Example#1 Pega o uptime e mostra em uma caixa de mensagem
<?php
// Define constantes necessárias, pegas do arquivo
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);
// Carrega a extensão
dl("php_w32api.dll");
// Registra a função GetTickCount de kernel32.dll
w32api_register_function("kernel32.dll",
"GetTickCount",
"long");
// Registra a função MessageBoxA de User32.dll
w32api_register_function("User32.dll",
"MessageBoxA",
"long");
// Pega a informação do uptime
$ticks = GetTickCount();
// Converte a informação para um formato de gente
$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));
// Mostra uma caixa de mensagem com só um botão de OK e o texto de uptime
MessageBoxA(NULL,
$str,
"Uptime Information",
MB_OK);
?>
Índice
- w32api_deftype — Define um tipo para ser usado com outras funções da w32api_functions
- w32api_init_dtype — Cria uma instância do tipo de dado typename e atribui ao mesmo os valores passados
- w32api_invoke_function — Invoca a função funcname com os argumentos passados após o nome da função
- w32api_register_function — Registra função function_name da biblioteca com o PHP
- w32api_set_call_method — Edita a chamada de método usada