COM, ATL 67

ATL_COM Event 사용 하기. COM

ATL_COM Event 사용 하기. COM 화면 캡처: 2007-10-11, 오후 9:29 ================ COM SERVER 만들기 =========================== 1. 프로젝트 생성 ALT COM . 2. 클래스를 만들때 클래스 오브젝트를 사용하여 만든다. - 속성에서 Connection Port 를 체크하여 이벤트를 지원하게 만든다. 3. 현재까지는 가상접근(VB,SCRIPT)을 위한 이벤트관련 코드가 생성되있다. 이것을 직접접근가능한( C++ ) 이벤트 관련 코드도 추가한다. // idl 파일에서 아래의 코드를 비슷한 코드 밑에 추가한다. 전부.. [ object, uuid(4A1B430E-FF18-4974-BC4B-30DFC1E33B08), // 각자 수정 du..

COM, ATL 2008.08.20

Property 와 Method 클라이언트 사용 구현부분 참조

Property Put HRESULT hr; // 0. IDispatch 인터페이스를 구현하는 객체 생성 IDispatch pIDisp; pIDisp.CreateInstance(_T("{XXX-XXX...X-XXX}")); // 1. Property의 Dispatch ID를 구함 OLECHAR * szMethodName = L"MyProperty"; DISPID dispidProperty; hr = dispidMethod->GetIDsOfNames(IID_NULL, &szMethodName, 1, LOCALE_USER_DEFAULT, &dispidProperty); // 2. 매개변수 준비 // MyProperty가 BSTR 타입인 경우 VARIANT varArg;// 입력 매개변수용 VARIANT va..

COM, ATL 2008.08.19

COM인터페이스 디자인 가이드

COM인터페이스 디자인 가이드 이재규 (영산정보통신) Microsoft는 표준 인터페이스를 제공함과 더불어 커스텀 인터페이스를 쉽게 정의할 수 있게 해 준다. 커스텀 인터페이스는 표준 인터페이스로는 표현할 수 없는 서비스를 구현하기 위해서 사용된다. 인터페이스는 재사용되는 경우가 많고, 원칙적으로 변경되어서는 안되기 때문에 인터페이스를 새로 만드는 일은 매우 신중해야 한다. 이 글에서는 커스텀 인터페이스를 만들때 고려해야할 디자인 요소에 대해서 살펴본다. MS의 컴포넌트 기술 Microsoft의 컴포넌트 기술은 COM / OLE / ActiveX 등으로 혼돈스런 명칭이 붙어 있다. 엄밀한 의미에서 구분을 해 본다면, COM(Component Object Model)은 인터페이스, COM 클래스, COM객..

COM, ATL 2008.08.18

lcid 로케일

스트링은 유니코드를 사용하라. COM은 내부적으로도 대외적으로도 유니코드를 사용한다. 유니코드는 MBCS(Multi-Byte Code System)와 달리 아시아계 문자 뿐 아니라, 영어권 문자도 2바이트를 사용한다. 이로 인해 아시아계 문자와 영어권 문자의 표현 크기가 틀려서 생기는 코딩의 어려움을 해결할 수 있다. 유니코드는 프로그래머의 편의보다도, 전세계 문자를 하나의 코드체계에 포함시킨 것에 더 큰 의미를 가지고 있다. COM 인터페이스는 잘 정의된다면 전세계적으로 통용되는 것이다. 따라서 스트링의 표현을 유니코드로 하는 것은 자연스러운 일이다. Visual C++에서 유니코드 문자 데이타는 WCHAR 혹은 OLECHAR 타입으로 정의되어 있다. 또한 리터럴(literal)을 유니코드로 지정할 경..

COM, ATL 2008.08.18

COM 개체 구현 실습

http://dislab.hufs.ac.kr/lecture/cp/2003/com_local_server.ppt 문서의 HTML 버전입니다. G o o g l e은 웹문서를 수집(crawl)하면서 자동으로 문서의 HTML 버전을 생성합니다. COM 개체 구현 실습 AddBack Local Server 예제 프로그램 작성 2 AddBack Local Server 구현 Visual C++ 개발 환경의 [File/New] 메뉴 항목을 선택 [New] 대화 상자의 [Properties] 탭에서 [Win32 Application] 항목 선택 [Location] 텍스트 상자에 앞에서 생성한 AddBack 폴더를 지정 [Project] 텍스트 상자에 ‘AddBack’이라고 입력 [Location] 텍스트 상자 끝에 추..

COM, ATL 2008.08.14

com을 위한 기초

1. COM을 위한 기초 COM : 이진표준(binary standard)을 따르며, 구현은 블랙박스로 숨겨져 있고, 외부에선 인터페이스를 통해서만 접근 가능 이진표준 : 서로 다른 언어와 플랫폼에서 개발된 COM 객체 사이의 접근을 가능하게 함 즉, 이진표준에 따른다는 것은, 메모리 맵 상의 데이터 정렬방식이 같다는 것을 의미하게 되고, 이 규칙을 따르는 모든 플랫폼, 언어들이 이 블랙박스(COM 객체)에 접근이 가능하다는 것을 의미 COM에서 interface는 외부에서 접근할 수 있도록 open되어 있는 whitebox 구조이므로, struct(public을 기본)로 구현 COM 객체 자체는 blackbox구조이므로, class(private를 기본)로 구현 가상 상속 struct Life { in..

COM, ATL 2008.08.14