Funções de retorno de chamadaCallback Functions

Uma função de retorno de chamada é o código em um aplicativo gerenciado que ajuda uma função de DLL não gerenciada a concluir uma tarefa.A callback function is code within a managed application that helps an unmanaged DLL function complete a task. As chamadas a uma função de retorno de chamada passam indiretamente de um aplicativo gerenciado, por meio de uma função de DLL e novamente para a implementação gerenciada.Calls to a callback function pass indirectly from a managed application, through a DLL function, and back to the managed implementation. Algumas das muitas funções de DLL chamadas com a invocação de plataforma exigem que uma função de retorno de chamada no código gerenciado seja executada corretamente.Some of the many DLL functions called with platform invoke require a callback function in managed code to run properly.

Para chamar a maioria das funções de DLL por meio do código gerenciado, crie uma definição gerenciada da função e, em seguida, chame-a.To call most DLL functions from managed code, you create a managed definition of the function and then call it. O processo é simples.The process is straightforward.

O uso de uma função de DLL que exige uma função de retorno de chamada apresenta algumas etapas adicionais.Using a DLL function that requires a callback function has some additional steps. Primeiro, você deve determinar se a função exige um retorno de chamada examinando a documentação da função.First, you must determine whether the function requires a callback by looking at the documentation for the function. Em seguida, você precisa criar a função de retorno de chamada no aplicativo gerenciado.Next, you have to create the callback function in your managed application. Por fim, chame a função de DLL, passando um ponteiro para a função de retorno de chamada como um argumento.Finally, you call the DLL function, passing a pointer to the callback function as an argument.

A ilustração a seguir resume as etapas de implementação e a função de retorno de chamada:The following illustration summarizes the callback function and implementation steps:

Diagrama mostrando o processo de retorno de chamada da invocação de plataforma.

As funções de retorno de chamada são ideais para uso em situações em que uma tarefa é executada repetidamente.Callback functions are ideal for use in situations in which a task is performed repeatedly. Outro uso comum é com funções de enumeração, como EnumFontFamilies, EnumPrinters e EnumWindows na API do Windows.Another common usage is with enumeration functions, such as EnumFontFamilies, EnumPrinters, and EnumWindows in the Windows API. A função EnumWindows enumera por meio de todas as janelas existentes no computador, chamando a função de retorno de chamada para executar uma tarefa em cada janela.The EnumWindows function enumerates through all existing windows on your computer, calling the callback function to perform a task on each window. Para obter instruções e um exemplo, consulte Como implementar funções de retorno de chamada.For instructions and an example, see How to: Implement Callback Functions.

Consulte tambémSee also