Everything_IsQueryReply

所述Everything_IsQueryReply功能检查指定的窗口消息是一个查询的答复。

 

句法

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

 

参数

信息
指定消息标识符。
wParam中
指定有关消息的其他信息。
lParam的
指定有关消息的其他信息。
那里
使用Everything_SetReplyID指定的唯一标识符,或默认ID为0。

如果消息是WM_COPYDATA,则此值用于与COPYDATASTRUCT的dwData成员进行比较。

 

回报价值

如果消息是查询回复,则返回TRUE。

如果函数失败,则返回值为FALSE。

 

备注

此函数检查消息是否为WM_COPYDATA消息。如果消息是WM_COPYDATA消息,则该函数检查ReplyID是否与COPYDATASTRUCT的dwData成员匹配。如果它们匹配,则函数会生成查询结果的副本。

如果在bWait设置为FALSE的情况下调用Everything_Query,则必须在Windows消息处理程序中调用Everything_IsQueryReply以检查IPC查询回复。

如果函数返回TRUE,则应返回TRUE。

LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{ 
	if(Everything_IsQueryReply(uMsg,wParam,lParam,0))
	{ 
		// ... 
		//对结果做一些事情... 
		// ... 
		
		返回TRUE; 
	} 

	//返回默认窗口proc .. 
	返回DefWindowProc(hwnd,uMsg,wParam,lParam); 
}

 

履行

BOOL EVERYTHINGAPI Everything_IsQueryReply(UINT消息,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; 
				} 
			} 
		} 
	} 
	
	返回FALSE; 
}