voidtools

Everything_IsQueryReply

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



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))
	{
		// ...
		// hacer algo con los resultados..
		// ...
		
		return TRUE;
	}

	// retornar el procedimiento de ventana por defecto..
	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


Acerca de
© 2026 - Privacidad