Отследить закрытие потока

>> Самый красивый и универсальный способ, имхо, это — переопределить
>> OLE-хук RTL Клариона:
>> Wsl$OleTermHook
VY> Похоже, это то что надо. А как его переопределить, научи, плиз?

Глобальная секция программы

  MAP
    OleTermHookProc(),TYPE
    MyProcOfEndThread()
    CallOleTermHook(OleTermHookProc _OrigProc),NAME('CallOleTermHook')
    MODULE('')
      CallHookByAddr(LONG _HookAddr),NAME('CallOleTermHook')
    END
  END

GLO:SaveOleTermHook LONG
OleTermHook         LONG,EXTERNAL,DLL(dll_mode),NAME('Wsl$OleTermHook')

в начале программы

  GLO:SaveOleTermHook = OleTermHook
  OleTermHook = Address(MyProcOfEndThread)

в любом модуле

MyProcOfEndThread PROCEDURE

  CODE
  PutIni('THREADS',Thread(),'Завершил работу в '&Format(Clock(),@t4))
  if GLO:SaveOleTermHook then CallHookByAddr(GLO:SaveOleTermHook).
  RETURN

CallOleTermHook PROCEDURE(OleTermHookProc _OrigProc)

  CODE
  RETURN(_OrigProc())

VY> Мне нужно при любом типе сборки, и standalone и local.

Метка Wsl$OleTermHook доступна в обоих режимах сборки.
Правильным отображением адреса управляет аттрибут DLL(dll_mode).

Кстати, самому стало интересно — что я тебе советую:))
Написал простенький тест — работает прекрасно!
Естественно, отслеживает завершение потока, запущенного
через Start. Завершение главного потока программы не отслеживает.
Как и предполагал, правильно отрабатывает определение номера
завершаемого трейда.

VY> Один способ вклинить свою функцию в RTL я знаю: это подложить
VY> при линковке импортную CxxRUNX.LIB, предварительно
VY> подготовив ее в libmaker и убрав из нее нужную функцию. Ну а
VY> вызов оригинальной функции обеспечить вызовом по адресу из
VY> RTL DLL. Но такой способ можно реализовать только в standalone сборке.
VY> Кстати, интересно, есть ли возможность такой финт проделать в
VY> local? Но это уже второй вопрос 🙂

OP.EXE (кажеться от Кондурушкина (сорри, если невольно исковеркал
фамилию автора!)) — OBJ-модули — деассемблер нужного модуля —
вырезка из него меняемой процедуры и вставка туда своей —
компиляция нового OBJ-модуля — сборка всех OBJ-модулей в новую
библиотеку Кларионовским линкером.
Правда — не пробовал!

Струменский, кажеться, что-то подобное уже делал.
Или он делает небольшие правки только HEX-редакторе?