|
안녕하세요...
IE 에서 파일을 다운로드 때는 DISPID_FILEDOWNLOAD 라는 이벤트를
웹브라우저에서 발생 시킵니다.
이때 우리가 IE 에서 Fire 되는 이벤트를 받아야 합니다.
간단한 원리는..
우선 IDispatch 를 상속 받아 Invoke 메소드를 오버라이드 해야 합니다.
그런후 TCppWebBrowser 에서 IWebBrowser2 인스턴스 포인터를 가져와 IConnectionPointContainer 를
쿼리 한후 FindConnectionPoint 를 사용해 IConnectionPoint 포인터를 가져옵니다.
여기서 IConnectionPoint 라는 놈의 Advise 가 어떤 이벤트가 발생할때 어디로
보내준다 이런일도 하는 넘입니다.
즉, IConnectionPoint::Advise 를 사용해 IE 이벤트를 발생시킬 타겟을 우리가 IDispatch 상속 받은넘
으로 설정 하게 되는거죠 그럼 그놈은 Invoke 를 통해서 받구.. 뭐 이런.. 원리죠 -_-;..
넘 복잡해 보이네요 =_= 제 글 솜씨가 없어서.. -_-;
간략하게 적어보면 (과연 간략할까 -_-;)
IWebBrowser2->IConnectionPointContainer->IConnectionPoint;
이해가 안되시거나 그럼 말해 주세요..
예제라도 간단히 하나 만들어서 올려 드릴께요..
그럼 좋은 하루 되세요 ^^;.
|