[6월 10일 2교시] In-Process Server에서 COM object instance생성. In-Process Server DLL에서 필요한 Export함수들 DllGetClassObject COM이 어떤 Component에 대한 ClassFactory를 획득하고자 할 때 호출한다. DllCanUnloadNow COM 서브시스템에게 해당 In-Process 서버를 메모리에서 제거해도 좋을 지 여부를 알려준다. DllRegisterServer regsvr32에서 dll을 레지스트리에 등록할 때 호출하는 함수. DllRegist.. 컴퓨터 공부/COM&ActiveX 2009.06.10
[6월 10일 1교시] ClassFactory ClassFactory 모든 서버는 각 컴포넌트에 대한 ClassFactory를 제공해야 한다. 서버는 ClassFactory객체를 전달하는(통해) 부트스트랩 기능을 수행한다. CoCreateInstance(CLSID, ?, 컨텍스트, IID, 객체리턴); -(내부)-> CoGetClassObject(CLSID, 컨텍스트, remote 서버용, IID_IClassFactory, ClassFactory객체리턴); : 레지스트리를 확인하.. 컴퓨터 공부/COM&ActiveX 2009.06.10
[6월 9일 3교시] COM 서버 제작 IDL : COM 클래스와 인터페이스 선언문을 담고 있다. MIDL 인터페이스 정의를 포함하는 헤더파일 생성 proxy/stub을 만든다. 자동화에서 사용되는 형식 라이브러리 생성 ※ guid.h, guid.cpp에 컴포넌트에 대한 CLSID를 정의한다. 컴퓨터 공부/COM&ActiveX 2009.06.09
[6월 9일 2교시] COM 클라이언트 제작 IID GUID UUID ComponentID(CLSID) 조사할 것. idl이 뭔지? ※ midl 실행법 Visual Studio 도구 -> 명령 프롬프트 idl이 있는 폴더로 가서 midl ???.idl을 입력한다. 클라이언트 제작법 1. 서버 object의 tlb파일을 이용한다. 2. 서버에서 제작한 midl에서 ???.h 및 ???_i.h를 이용한다. 컴퓨터 공부/COM&ActiveX 2009.06.09
[6월 9일 1교시] IUnknown Interface(141쪽 그림 추가) IUnknown 포인터 얻기(Default Interface) IUnknown CreateInstance(); 클라이언트는 new 연산자 대신에 CreateInstance()를 사용. QueryInterface로 (다른) 인터페이스를 얻는다. HRESULT IUnknown::QueryInterface([in] REFIID riid, [out] void *ppvObject); 참고주소 : http://msdn.microsoft.com/en-us/library/ms682521(VS.85).aspx 리턴 : 성공시 S_OK, 실패시 E_N.. 컴퓨터 공부/COM&ActiveX 2009.06.09
[6월 8일 3교시] COM Component (함수설명) COM Object는 ClassFactory를 통해서 생성한다. ※ 디자인 패턴에서도 Factory패턴을 통해서 클래스를 만든다. - CreateInstance - LockServer Clean-up Inprocess Server - COM 요청에 의해 해제 Local Server - 로컬 서버 자신이 판단. GUID(유효 아이디) 128비트 Ethernet card 주소 + 단위 경과 시간 등의 긴 숫자로 구성. CLASS.. 컴퓨터 공부/COM&ActiveX 2009.06.08
[6월 8일 2교시] COM Component (60쪽에 C++ 클래스 추가할 것) 인터페이스 이론 전체 시스템에 영향을 주지 않고 바뀔 수 있다. 다형성 : 두 컴포넌트가 같은 인터페이스를 지원한다면 클라이언트는 똑같은 코드를 사용할 수 있다. ※ interface는 new할 수 없다. ※ 클라이언트가 함수를 사용하기 위해서는 가상함수 테이블 포인터를 통해서 함수를 사용한다. Inproces.. 컴퓨터 공부/COM&ActiveX 2009.06.08
[6월 8일 1교시] 소개 추천도서 : Inside COM... 메인 프레임 : 중앙 집중식, 터미널. 클라이언트 서버 시대 : 메인 응용 프로그램 실행 <-> 데이터, DB 3계층(3-tier) 클라이언트 서버 시대 : 클라이언트 <-> 응용 프로그램 서버 <-> DB 서버 분산 객체 기술 CORBA, COM/DCOM, EJB ※ COM 서버와 클라이언트 (COM 명세서 : 마이크로 소프트에.. 컴퓨터 공부/COM&ActiveX 2009.06.08