ALT로 만든 ActiveX Control   첫 번째---
원본: http://www7.inforyoma.or.jp/~bono/junks/atlactxctrlsample.html

ATL을 사용해 , 프로퍼티 페이지 , 접속 포인트 ,thread를 포함한 Active X 컨트롤을 VC++ 6을 사용해 만들었다.

프로젝트 파일 만들기.

VC의 메뉴로부터 [file] - [New...]를 선택해 ,[New] 대화 상자르를 표시한다.  [Projects] 탭으로 ,[ATL COM AppWizard]를 선택해 , 프로젝트명을 (여기에서는 atltest 으로 했던) 입력한후 [OK]를 클릭한다.

 

 

[ATL COM AppWizard 스텝 1/1]에서 , Server Type을 Dynamic Link Library[(DLL]만 체크한후 [Finish]버튼을 누른다.

 

 

 다음에 작성하는 컨트롤로부터 , 접속 포인트를 사용해 이벤트 통지할 때 사용하는 ATL 오브젝트를 만든다.
메뉴로부터 [삽입] - [New ATL Objects] 을 선택해 [ATL Object  Wizard] 대화 상자를 띄운다.
[Category]에 Objects ,[Objects]에 Simple Object를 선택하고 [Next]를 클릭한다.

 

 

 표시되는 [ATL Object Wizard 등록 정보]의 [Names]탭으로 이름을 적당하게 (여기에서는 Sample로 한다)입력, [Attributes]탭으로 [Threading Model] Apartment, [Interface] Dual , [Aggregation] Yes를 선택한후 ,[확인]을 클릭한다.

 

 

 

다음에 컨트롤을 만들기 위해 [ATL Object  Wizard] 대화 상자를 띄운다.
[Category]에 Controls, [Objects]에 Full Control을 선택한후 [Next]를 클릭한다.

 

  

표시되는 [ATL Object Wizard 등록 정보]의 [Names]탭으로 이름을 적당하게 (여기에서는 SampleCtrl 로 한다) 입력, [Attributes]탭으로 [Threading Model] Apartment, [Interface] Dual , [Aggregation] Yes를 선택하고, [Support ISupport ErrorInfo] 와 [Support Connection poins]를 체크하고 확인을 클릭한다.


※[Miscellaneous], [Stock Properties]는 디폴트로 한다.

[Support ISupport ErrorInfo]: 선택하게 되면 자동화 객체가 오류정보(ErrorInfo) 객체를 지원할 수 있도록 ISupportErrorInfo 인터페이스를 장착하게 된다.

[Support Connection poins]: 선택하게 되면 IConnectionPointContainer 인터페이스가 장착되고 클래스 내부에는 Connection Point Map이 만들어진다

ClassView는 다음과 같다.
탐색기에서 SampleCtrl.htm파일을 클릭하면 실행화면 오른쪽 그림과 같이 보일것이다.
디폴트로 실행했기 때문에 이상하게 보일것이다.

클래스 뷰

실행 화면

1편 끝.  2편에 가서 "오징어 너구리 꼴뚜기"을 출력 할것이다.