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.
BOOL EVERYTHINGAPI Everything_IsQueryReply(
UINT message,
WPARAM wParam,
LPARAM lParam,
DWORD nId
);
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.
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.
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:
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);
}
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;
}