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; }