Тыкс ... пыкс ... мыкс ...
Спасибо за советы! (и линки) ...
Я посмеялся вот с чего:
> ... но ЕСЛИ я например сделаю MsgBox "URA, rabotaet !!", то мой клиент
> вылетает именно на MsgBox`е ...
>> Дело в том, что любой СОМ-объект подключенный в ВБ исполняется в своем
>> апартаменте, который не находится в адресном пространстве виртуальной
>> машины. Из-за этого могут возникать проблемы связанные с остановкой ф-ии
>> обработки сообщений. В общем, такие потоконебезопасные ф-ии в подобном
>> проекте использовать просто нельзя.
> тоесть, если я делаю поток в своем контроле, то нельзя клиента на VB
> делать?, правильно я понял?
>> Почти, просто в потоке нельзя использовать ф-ии ВБ и, только АПИ. Вот
>> попробуй, скажем, вызвать АПИ ф-ю MessageBox, должна заработать.
> да, MessageBox заработала, но теперь вылетает после нее.

))))))))))))!!!)))))Cool!))))))))
Я тут пополу покатался - от смеха ...

))) Не в лоб так по лбу

))!
(не знаю почему но меня погребло ... (до сих пор гребёт

))
Теперь серёзно.
Я так понял внутри треда - начинаеться ручной секс

.
АПИ и ничего более (где-то я уже шелл-код писал

)), никода б не подумал
что в ВБ прийдёться восстанавливать такие навыки

)) - почти старинное искусство

)).
Разнича в двойных нулях *), точнее в их отсутствии

)
(кстати - НЕ пашет - успел проверить - после выполнения всех АПИ всё падает в риале,
в ИДЕ - стабильненько 8((( )
Со вторым линком сложнее ...
'If we made it this far, then we can start using normal VB calls
'because we have an initialized object on this thread
Я так понял что инициализируеться какой-то объехт и уже в нём ВБ функции пахай (?).
Вопрос: а можна туда класс запихнуть (?) Вообщем пока для меня решения\е -
не очевидны ...
Чистое АПИ + перец был прав - конструкция:
label.caption = "Done" - пашет ...
(подозреваю она отсылает сообщение, а оно проходит по др. механизму ...
в итоге (уже проверил - работает и нормально!)
Для парсировки ивента в основной код заюзаю невидимое поле + таймер +
поменять его название => label.caption = "Done" ///
В принципе мне надо было отмониторить ивент завершения внешнего процесса -
запустить калькулятор и получить ивент прекращения его работы. НЕ блокируя при этом
свою прогу ...
'==============================
'Start the shelled application:
Call CreateProcessA(vbNullString, "calc.exe", 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, vbNullString, start, proc)
'Wait for the shelled application to finish:
'Call WaitForSingleObject(proc.dwThreadID, INFINITE)
'==============================
Пока никак 8(. Или тут есть кусок васиковых инструкций, или одно из двух

))
Чистые АПИ в треде работают. А вот CreateProcessA здыхает.
Спасибо всем кто принимал участие!
Авось кому ещё пригодиться.
З.Ы. Если у кого есть материалы по малтитредингу - ПОСТте здесь!
Удачи!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...