![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не удается выполнить исходящий вызов...
grigory © (2005-08-04 15:56:00)Привет всем. Есть длл..из нее посылаю сообщение главному приложению:
function SysMsgProc(Code: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
begin
....
SendMessage(appwnd,WM_USER,wParam,lParam);
....
end;
и обработал его вот так:
Procedure TForm1.WMUser(var Message: TMessage);
Begin
showmessage('сообщение!');
removehook;
reportdate;
End;
а в процедуре reportdate на строчке
....
App := CreateOleObject("excel.application");
...
выскакивает следующая ошибка "Не удается выполнить исходящий вызов, так как приложение обрабатывает входящий синхронный вызов"
в чем я неправ? что делать?
Digitman (2005-08-04 16:27:00) [1]removehook выгружает образ хук-модуля из АП процессов, куда хук-модуль был внедрен в рез-те установки хука
некий экз-р хук-модуля в некоем процессе (в дан.случае - excel-процессе) вызвал sendmessage() и ждет результата этого вызова ... результат же определяется обработчикомпринятого адресатом сообщения, который у тебя вместо возврата рез-та пытается выгрузить из АП процесса-передатчика сообщения сам код ф-ции SendMessage() (работающей в дан.момент)
как думаешь - нонсенс ?
clickmaker (2005-08-04 16:17:00) [2]SendMessage - синхронная процедура
используй PostMessage