关于MsgWaitForMultipleObjects的应用。
clever internet suite套件。
里面的HTTP控件,在下载文件呀上传文件的时候,这时点窗口关闭,根本不起作用。
所以想改一下。
找到如下函数:
function WaitForEvent(AEvent: THandle; ATimeOutTicks, ATimeOut: Integer): Boolean;
var
res: DWORD;
Msg: TMsg;
events: array[0..0] of THandle;
begin
events[0] := AEvent;
res := MsgWaitForMultipleObjects(1, events, FALSE, DWORD(ATimeOut), QS_ALLEVENTS);
case res of
WAIT_FAILED:
begin
RaiseSocketError(WSAGetLastError());
end;
WAIT_TIMEOUT:
begin
RaiseSocketError(cTimeoutOccured, -1);
end;
WAIT_OBJECT_0 + 1:
begin
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
//add start
if Msg.message in [WM_CLOSE] then
begin
Break;
end;
//add end
TranslateMessage(Msg);
DispatchMessage(Msg);
if Integer(GetTickCount()) - ATimeOutTicks > ATimeOut then
begin
RaiseSocketError(cTimeoutOccured, -1);
end;
end;
if Integer(GetTickCount()) - ATimeOutTicks > ATimeOut then
begin
RaiseSocketError(cTimeoutOccured, -1);
end;
end;
end;
Result := (res = WAIT_OBJECT_0);
end;
我加入如下代码:
//add start
if Msg.message in [WM_CLOSE] then
begin
Break;
end;
//add end
根本不起作用。
请问高手,能帮忙解决一下吗?