Реферат: Обратные вызовы в MIDAS через TSocketConnection

destructor TCallBackStub.Destroy;

var

Msg: TMSG;

begin

//Могут остаться сообщения - удаляем

while PeekMessage(Msg, FCallbackWnd, CM_CallbackMessage,

CM_CallbackMessage, PM_REMOVE) do

if Msg.wParam <> 0 then

TMsgClass(Msg.wParam).Free;

DestroyWindow(FCallbackWnd);

inherited;

end;

Разумеется, перед созданием окна нужно объявить и зарегистрировать его класс, что и сделано в секции implementation модуля. Процедура обработки сообщений окна вызывает метод OnCall интерфейса при получении сообщения CM_CallbackMessage:

var

CM_CallbackMessage: Cardinal;

function CallbackWndProc(Window: HWND; Message: Cardinal;

wParam, lParam: Longint): Longint; stdcall;

begin

if Message = CM_CallbackMessage then

with TCallbackStub(lParam) do

begin

Result := 0;

try

if wParam <> 0 then

with TMsgClass(wParam) do

begin

Owner.lock;

try

//Непосредственный вызов интерфейса клиента

К-во Просмотров: 514
Бесплатно скачать Реферат: Обратные вызовы в MIDAS через TSocketConnection