컨트롤 9

고급 액티브X 컨트롤에 도전하자

지난 연재에서는 컨트롤의 내부를 살펴봤다. 이번호에서는 보다 좋은 컨트롤을 만들기 위한 외부적인 기능들을 몇 가지 소개하고 3회에 걸친 연재를마치려고 한다. 컨트롤이 IE 안에서 다양한 기능을 수행하기 위해 기본적으로 제공해야 할 기능이 있다. 이번호에서는 메모리 DC를 사용한 부드러운 화면 처리, 툴팁의 제공, 쓰레드의 활용 등 대표적인 기능들을 하나씩 살펴보겠다. 웹을 기반으로 하는 프로젝트에서 중요 기능을 액티브X 컨트롤로 개발하기 위해서는 몇 가지 선행 지식이 있어야 한다. 우리는 지난 1회 연재를 통해 전체 개발 프로세스를 알아왔다. 컨트롤을 어떻게 만들고 어떻게 분배하는지를 볼 수 있었을 것이다. 2회 연재에서는 좀더 이론적인 부분으로 들어가 IE의 내부적인 구조와 이 구조에 따른 컨트롤의 특..

ActiveX 2008.09.14

COM 기본 개념 ~~ 정리해 보자

COM(Component Object Model) - 가상함수 테이블을 메모리게 구축하고 Virtual Table을 통해 함수를 호출하는 표준 정의 - 인터페이스(접근방법)와 구현(캡슐화)의 분리 - 모든 COM 인터페이스는 IUnknown의 AddRef(), Release(), QueryInterface() 함수로 시작 - 인터페이스 : 개체와 클라이언트간의 규약 - 사용자와 소프트웨어가 따로 사용하는 이름이 존재 - 일반적으로 인터페이스명은 I로 시작 - 모든 인터페이스는 GUID(Globally Unique Identification)를 가짐(=IID) - IID : 128 bit 구조체 형식, IP와 시간에 대한 알고리즘으로생성하므로 세계에서 유일한 ID - Implementation에서는 강제로..

COM, ATL 2008.08.08

Com, Atl 언어 독립성에 대한 소고

가끔 com에 대한 기본 개념 글들을 읽어보면 따라쟁이, 앵무새처럼 주절거리는 게 많다..... 위치독립성에 대해 적은 대다수 글들을 보면 "com은 바이너리형태로 이루어지면서 이를 통해 위치독립성을 가지게 된다..." 이글을 처음 보고 한참 혼란스러웠다... 당연히 그 글을 적은 사람도 더 이상의 설명은 없다. 기본원리, 개념에 대해 조금이라도 불만족스러우면 짜증나지 않는가? 나 역시 그런 사람이다. ㅡㅡ 컴파일 언어에서 모든 소스 파일은 컴파일 과정을 거치면 모두 바이너리로 변한다. 그런데 바이너리로 언어독립성을 가진다니....거 참 혼란스럽지 않을 수 없다. 한참을 생각한 결과 다음과 같은 결론을 내릴 수 있었다. 소스 제공의 측면에서 표현한 것이다. 컴포넌트에서는 로딩 모듈인 dll, exe, o..

COM, ATL 2008.07.26

MSDN, ATL 매뉴얼

Visual C++ 개념: 기능 추가 ATL ATL(액티브 템플릿 라이브러리)은 템플릿 기반 C++ 클래스 집합이며, 작고 빠른 COM 개체를 만들 수 있게 합니다. 스톡 구현, 이중 인터페이스, 표준 COM 열거자 인터페이스, 연결 지점, 분리 된 인터페이스 및 ActiveX 컨트롤 등 주요 COM 기능을 지원합니다. ATL 프로그래밍을 많이 해본 경우 간단하게 COM 프로그램을 작성하기 위해 설계된 Visual C++ .NET의 새 기능인 특성에 대해 자세히 알고 싶을 것입니다. 자세한 내용은 특성을 사용하는 프로그래밍을 참조하십시오. 단원 내용 시작 ATL 자습서 컨트롤을 만드는 과정으로 안내하여 그 속에서 ATL의 기본 내용을 보여 줍니다. 특성 자습서 특성 및 이벤트를 사용하여 클라이언트 및 서..

COM, ATL 2008.07.26

ATL 컨트롤 포함 FAQ(질문과 대답)

Visual C++ 개념: 기능 추가 ATL 컨트롤 포함 FAQ(질문과 대답) 이 단원에서는 ATL 컨트롤 호스팅과 관련된 질문에 대해 설명합니다. 참고 Visual C++ .NET에서 "AtlAxWin" 창 클래스의 이름은 "AtlAxWin7"로 변경되었습니다. Visual C++ 6.0과 함께 제공되며 현재 system.dll인 atl.dll에서 호스팅 코드를 사용하는 경우에는 "AtlAxWin"을 사용할 수 있습니다. 클래스와 API ActiveX 컨트롤 포함을 용이하게 해주는 ATL 클래스는 무엇입니까? ATL 컨트롤 호스팅 API는 무엇입니까? AtlAxWin7은 무엇입니까? 컨트롤 만들기와 로드 컨트롤 인스턴스를 만드는 방법은 무엇입니까? 런타임에 지정된 컨트롤을 로드하는 방법은 무엇입니까? ..

COM, ATL 2008.07.25