voidtools

Everything_IsQueryReply

La función Everything_IsQueryReply comprueba si el mensaje de ventana especificado es una respuesta de consulta.


Nota: los comentarios se mantendrán en inglés para evitar errores de traducción.


Sintaxis

BOOL EVERYTHINGAPI Everything_IsQueryReply(
UINT message,
WPARAM wParam,
LPARAM lParam,
DWORD nId
);

Parámetros

message

Especifica el identificador del mensaje.

wParam

Especifica información adicional sobre el mensaje.

lParam

Especifica información adicional sobre el mensaje.

nId

El identificador único especificado con Everything_SetReplyID, o 0 para el ID por defecto.

Este es el valor utilizado para comparar con dwData miembro de COPYDATASTRUCT si el mensaje es WM_COPYDATA.


Valor de Retorno

Retorna TRUE si el mensaje es una respuesta de consulta.

Si la función falla el valor de retorno es FALSE. Para obtener información extendida, llame a: Everything_GetLastError.


Observaciones

Esta función comprueba si el mensaje es un mensaje WM_COPYDATA. Si el mensaje es un mensaje WM_COPYDATA la función comprueba si el ReplyID coincide con dwData miembro de COPYDATASTRUCT. Si coinciden la función hace una copia de los resultados de la consulta.

Debe llamar a Everything_IsQueryReply en el controlador de mensajes de Windows para comprobar una respuesta de consulta IPC si llama a Everything_Query con bWait establecido a FALSE.

Si la función retorna TRUE, debe retornar TRUE.

Si la función retorna TRUE puede llamar a las siguientes funciones para leer los resultados:



Ejemplo

LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
if (Everything_IsQueryReply(uMsg,wParam,lParam,0))
{
// ...
// do something with the results..
// ...

return TRUE;
}

// return the default window proc..
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}

Implementation

BOOL EVERYTHINGAPI Everything_IsQueryReply(UINT message,WPARAM wParam,LPARAM lParam,DWORD nId)
{
if (message == WM_COPYDATA)
{
COPYDATASTRUCT *cds = (COPYDATASTRUCT *)lParam;

if (cds)
{
if (cds->dwData == _Everything_ReplyID)
{
if (_Everything_IsUnicodeQuery)
{
if (_Everything_List) HeapFree(GetProcessHeap(),0,_Everything_List);

_Everything_List = (EVERYTHING_IPC_LISTW *)HeapAlloc(GetProcessHeap(),0,cds->cbData);

if (_Everything_List)
{
CopyMemory(_Everything_List,cds->lpData,cds->cbData);
}
else
{
_Everything_LastError = EVERYTHING_ERROR_MEMORY;
}

return TRUE;
}
else
{
if (_Everything_List) HeapFree(GetProcessHeap(),0,_Everything_List);

_Everything_List = (EVERYTHING_IPC_LISTW *)HeapAlloc(GetProcessHeap(),0,cds->cbData);

if (_Everything_List)
{
CopyMemory(_Everything_List,cds->lpData,cds->cbData);
}
else
{
_Everything_LastError = EVERYTHING_ERROR_MEMORY;
}

return TRUE;
}
}
}
}

return FALSE;
}

Vea también


© 2024 - Privacidad