2010년 1월 4일 월요일

Programming ArcObjects in Visual C++ : ATL/COM

▣ 개요
ArcCatalog와 ArcMap 프로그램에서 사용하는 모든 UI Command(버튼, 메뉴 등)는 COM 기반에서 만들어집니다. COM을 지원하는 개발 환경(Visual Basic, .NET(C#, VB.Net), C++)에서 Custom Command를 만들 수 있으며, ActiveX DLL 형태로 배포됩니다.

일반적인 SystemUI Command는 다음과 같습니다.
 - Button과 Menu 아이템은 Command의 가장 단순한 형태입니다. 일반적으로 Button은 툴바에 아이콘 형식으로, Menu 아이템은 메뉴에 표시됩니다. 이들은 버튼이나 메뉴를 클릭했을 때 기능을 수행합니다.
 - Tool은 Button과 유사하나 Application의 Display와 상호작용을 통해 기능이 수행됩니다. 버튼을 누르고 지도에서 드래그하여 영역을 지정하면 확대되는 Zoom In 버튼이 그 예입니다.
 - Tool Control은 ComboBox, CheckBox, EditBox(TextBox) 등을 통하여 기능이 수행됩니다. ArcMap의 축척을 설정하는 콤보박스나 편집도구의 편집레이어 선택 콤보박스가 그 예입니다.

아래 첨부 매뉴얼 및 샘플 소스코드는 Visual C++ ATL/COM을 이용하여 ArcGIS Desktop 또는 ArcGIS Engine에서 사용 가능한 ICommand, ITool, IToolControl, IMenuDef, IToolBarDef 확장 방법을 제공합니다.

▣ 개발환경
 - ArcGIS Engine 또는 ArcGIS Desktop Development Kit 9.3
 - Microsoft Visual Studio 2008 Visual C++

대상
 - ArcObjects를 이용해Visual Basic, .Net C# 환경에서 COM 프로그래밍 경험이 있는 개발자로서 VC++ 환경에서 ATL/COM 커스터마이징을 필요로하는 개발자.
 - VC++을 이용하여 ArcMap/ArcGIS Engine을 이용하는 프로그램에서 ATL/COM 기능 확장 방법을 알고자 하는 개발자.

▣ 목차

펼쳐두기..


▣ 매뉴얼

▣ 소스코드
▣ 결과 예시