Microsoft DirectX 8.0 (C++) |
コールバック関数は基本的にイベント ハンドラの 1 つで、アプリケーションによって実装されて、システムによって呼び出される。通常、Microsoft® Windows® アプリケーションには複数のコールバック関数が実装されており、それぞれ異なるグループのイベントの処理に使用される。イベントが発生すると、システムは適切なコールバック関数を呼び出してアプリケーションに通知する。また、通常、コールバック関数はパラメータ リストを保持しており、システムはこのリストを使ってイベントに関する詳細情報をアプリケーションに渡す。コールバック関数の最も一般的な例はウィンドウ プロシージャである。この関数は、システムがウィンドウを所有するアプリケーションに Windows メッセージを渡すときに使用される。
Microsoft DirectX® では、コールバック関数をさまざまな目的に使用している。たとえば、システムは複数のデバイスをサポートしている。Microsoft DirectInput® は各デバイスをデバイス オブジェクトで表す。デバイス オブジェクトには、そのデバイスの機能に関する詳細情報が含まれている。通常、アプリケーションがユーザーの入力を正しく処理するには、利用可能なデバイスを列挙して、デバイス オブジェクトを調べる必要がある。この列挙を実行するには、DIEnumDeviceObjectsCallback コールバック関数を実装しなければならない。
列挙を実行するための最初の処理は、IDirectInputDevice8::EnumObjects の呼び出しである。次に、DIEnumDeviceObjectsCallback コールバック関数へのポインタをメソッドに渡す。システムは、各デバイスに対して 1 回ずつこの関数を呼び出し、デバイスの機能に関する情報を含む DIDEVICEOBJECTINSTANCE 構造体を渡す。コールバック関数は、この情報を処理した後、次のデバイス オブジェクトを要求する場合は DIENUM_CONTINUE を返し、列挙を停止する場合は DIENUM_STOP を返す。
詳細については、「コールバック関数の実装」を参照すること。
DirectX では、ほかにもさまざまなコールバック関数がさまざまな目的のために使用される。詳細については、各 DirectX コンポーネントのドキュメントを参照すること。