Функції зворотного виклику

Функція зворотного виклику - це програмний код в керованому додатку, який допомагає некерованою функції DLL виконати завдання. A callback function is code within a managed application that helps an unmanaged DLL function complete a task. Виклики функції зворотного виклику побічно, через функцію DLL, передаються з керованого застосування і повертаються в керовану реалізацію. Calls to a callback function pass indirectly from a managed application, through a DLL function, and back to the managed implementation. Лише деякі з багатьох функцій DLL, що викликаються у виклику некерованого коду, вимагають для свого виконання наявності в керованому коді функції зворотного виклику. Some of the many DLL functions called with platform invoke require a callback function in managed code to run properly.

Для виклику більшості функцій DLL з керованого коду потрібно створити кероване визначення функції і потім виконати сам виклик. To call most DLL functions from managed code, you create a managed definition of the function and then call it. Цей процес досить простий. The process is straightforward.

Застосування функції DLL, що вимагає наявності функції зворотного виклику, передбачає виконання деяких додаткових кроків. Using a DLL function that requires a callback function has some additional steps. По-перше, необхідно визначити, чи потрібно для функції зворотний виклик. Це можна з'ясувати в документації по функції. First, you must determine whether the function requires a callback by looking at the documentation for the function. Далі потрібно створити функцію зворотного виклику в керованому додатку. Next, you have to create the callback function in your managed application. І, нарешті, ви викликаєте функцію DLL, передаючи покажчик на функцію зворотного виклику в якості аргументу. Finally, you call the DLL function, passing a pointer to the callback function as an argument.

На малюнку нижче показана функція зворотного виклику і етапи її реалізації: The following illustration summarizes the callback function and implementation steps:

Функції зворотного виклику - ідеальний засіб для багаторазового виконання деякої задачі. Callback functions are ideal for use in situations in which a task is performed repeatedly. Інша область їх застосування - з функціями перерахування API Windows, такими як EnumFontFamilies, EnumPrinters і EnumWindows. Another common usage is with enumeration functions, such as EnumFontFamilies, EnumPrinters, and EnumWindows in the Windows API. Функція EnumWindows виконує перерахування всіх існуючих на комп'ютері вікон, використовуючи функцію зворотного виклику, щоб виконати завдання для кожного вікна. The EnumWindows function enumerates through all existing windows on your computer , calling the callback function to perform a task on each window . Інструкції та приклади див. Розділ Практичний посібник. Реалізація функцій зворотного виклику . For instructions and an example, see How to: Implement Callback Functions .