CVW32api関数

導入

この拡張モジュールは、DLLへの一般的な拡張APIです。この拡張モジュー ルはもともとPHPからWin32 APIにアクセスできるようにするために作 成されましたが、他のDLLによりエクスポートされている他の関数にもア クセスすることができます。

現在、サポートされている型は一般のPHP型(文字列, boolean, float, 整数, NULL)とw32api_deftype()で定義した型です。

警告

このモジュールは、実験的なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。

要件

この拡張もじゅーるはWindowsシステムでのみ動作します。

インストール手順

これらの関数はPHPコアに含まれるため、使用す る際にインストールは不要です。

実行用の設定

この拡張モジュールは設定ディレクティブを全く 定義しません。

リソース型

この拡張モジュールは、1種類のリソース型を定義し、ユーザ定義型で使 用されます。このリソースの名前は、"dynaparm"で す。

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

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)

以下の例は、システムの実行時間を取得し、メッセージボックスに表示 するものです。

例 1uptimeを取得し、メッセージボックスに表示する

<?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);
?>
目次
w32api_deftype -- 他のw32api_functionsで使用するために型を定義する
w32api_init_dtype --  データ型typenameのインスタンスを作成し、val1, val2, 関数の値で埋 める
w32api_invoke_function --  関数名の後ろで指定された引数を指定して関数funcnameを実行する
w32api_register_function --  PHPを保持するライブラリから関数function_nameを登録する
w32api_set_call_method -- カレントメソッドの使用値を設定する