WinCPICSetBlockingHook

La función WinCPICSetBlockingHook permite que una implementación de la Interfaz de programación común para comunicaciones (CPI-C) de Microsoft® Windows ® bloquee las llamadas de función CPI-C mediante una nueva función. Microsoft usó esta llamada heredada Windows® ® versión 3. x aplicaciones para realizar llamadas de bloqueo sin bloquear el resto del sistema. De forma predeterminada en microsoft Windows operativo, las llamadas de bloqueo suspenden el subproceso de aplicaciones que realiza la llamada hasta que finaliza la solicitud.

Parámetros

lpBlockFunc
Especifica la dirección de instancia del procedimiento de la función de bloqueo que se va a instalar.

Valores devueltos

El valor devuelto apunta a la instancia de procedimiento de la función de bloqueo instalada previamente. La aplicación o biblioteca que llama a WinCPICSetBlockingHook debe guardar este valor devuelto para que se pueda restaurar si es necesario. (Si el anidamiento no es importante, la aplicación puede descartar simplemente el valor devuelto por WinCPICSetBlockingHook y, finalmente, usar WinCPICUnhookBlockingHook para restaurar el mecanismo predeterminado).

Observaciones

Una Windows implementación de CPI-C tiene un mecanismo predeterminado mediante el cual se implementan las funciones de bloqueo de CPI-C. Esta función ofrece a la aplicación la capacidad de ejecutar su propia función en tiempo de bloqueo en lugar de la función predeterminada.

La función de bloqueo predeterminada es equivalente a:

BOOL DefaultBlockingHook (void)  {  
    MSG msg;  
    /* get the next message if any */  
    if ( PeekMessage (&msg,0,0,PM_NOREMOVE)  )  {  
        if ( msg.message = = WM_QUIT  )  
            return FALSE;   // let app process WM_QUIT  
        PeekMessage (&msg,0,0,PM_REMOVE) ;  
        TranslateMessage (&msg) ;  
        DispatchMessage (&msg) ;  
    }  
    /* TRUE if no WM_QUIT received */  
    return TRUE;  
}  

La función WinCPICSetBlockingHook se proporciona para admitir aplicaciones que requieren un procesamiento de mensajes más complejo, por ejemplo, aquellos que emplean el modelo de interfaz de múltiples documentos (MDI) o aplicaciones con aceleradores de menús (TranslateAccelerator).

Las funciones de bloqueo deben devolver FALSE en respuesta a un mensaje WM_QUIT para que Windows CPI-C pueda devolver el control a la aplicación para procesar el mensaje y finalizar correctamente. De lo contrario, la función debe devolver TRUE.

Consulte también

Set_Processing_Mode (CPI-C)
Specify_Windows_Handle (CPI-C)