대단히 난해한 질문을 올리게 되었습니다.
OleControl을 import하면 wrapper를 포함하는 유닛이 생기지요.
그 wrapper들은 해당 OleControl의 이벤트마다 대응하는 이벤트 프로퍼티와
이벤트 핸들러의 참조를 보존하는 private 멤버들을 가지고 있습니다.
하지만, 정작 OleControl에서 이벤트가 발생했을때 어떻게 그 이벤트 핸들러를
찾아서 호출하는지 하는 메카니즘은 wrapper에는 나타나 있지 않습니다.
헌데 그 과정을 가로채서 무언가를 해야만 할 필요가 생겼기에 이렇게 질문드립니다.
그러니까, OleControl 자체에서 이벤트가 발생했을때, 그것이 어떻게 델파이 코드상의
이벤트 핸들러를 호출하게 되는지 그 과정을 알고 싶습니다.
TOleControl의 소스 중 어디엔가 TOleControl을 상속받아 만들어진 컴포넌트상의
이벤트 프로퍼티들을 '수집'해가지고 동적으로 이벤트용 dispinterface를 만들어서
컨트롤의 IConnectionPoint.Advise 메소드에 그 dispinterface의 포인터를
전달해주는 코드가 있을 것으로 생각하는데, 어셈블리가 섞이다 보니 잘 분별하지 못하고
있습니다.
제가 생각을 잘못하고 있는것인지, 그것만이라도 알려주시면 감사하겠습니다.
읽어주셔서 고맙습니다. 다들 감기 조심하시고 건강하십시오.