2011. 8. 9. 15:23

InPlaceActivate on ATL control not called until mouse event

IE8 에서 ActiveX 가 mouse가 이동하지 전에는 화면에 안 보이는 현상이 있었다.

http://stackoverflow.com/questions/1891194/inplaceactivate-on-atl-control-not-called-until-mouse-event 

http://minolta.egloos.com/464903   => ActiveX 에 대한 전반적인 글 

IOleObject::GetMiscStatus 라는 함수를 통하여 Container 와 Control 이 세부 설정에 대한 교환작업을 한다.

ATL 에서는 DECLARE_OLEMISC_STATUS macro를 통하여 해당 설정을 setting 할 수 있다.

이런 경우 ATL control class의 OnCreate 가 호출이 안되는 경우이며 아래 링크 의 resolution 코드를 이용하면 Oncreate 가 강제적(?)으로 호출이 된다.

http://support.microsoft.com/kb/195188/en-us