コールバック関数
コールバック関数は、アンマネージ DLL 関数が作業を完了できるようにするためのマネージ アプリケーション内のコードです。 コールバック関数への呼び出しは、マネージ アプリケーションから DLL 関数を通じて間接的に渡され、マネージ実装に返されます。 プラットフォーム呼び出しで呼び出される DLL 関数の中には、マネージ コードにコールバック関数が記述されていないと、正しく実行できない関数があります。
ほとんどの DLL 関数の場合、マネージ コードから呼び出すには関数のマネージ定義を作成して、それを呼び出します。 この処理は簡単です。
コールバック関数を必要とする DLL 関数を使用する場合は、追加の手順が必要になります。 最初に、関数のドキュメントを参照して、その関数がコールバックを必要とするかどうかを判断します。 次に、マネージ アプリケーション内にコールバック関数を作成します。 最後に、コールバック関数に引数としてポインターを渡し、DLL 関数を呼び出します。 これらのステップを要約した図を次に示します。
コールバック関数とその実装
コールバック関数は、繰り返し実行されるタスクがある状況での使用に適しています。 もう 1 つの一般的な使い方として、Win32 API の EnumFontFamilies、EnumPrinters、EnumWindows などの列挙関数と組み合わせる方法があります。 EnumWindows 関数は、コンピューター上の既存のウィンドウすべてで列挙し、コールバック関数を呼び出して各ウィンドウでタスクを実行します。 手順と例については、「方法 : コールバック関数を実装する」を参照してください。