서버와 클라이언트의 프로세스 영역이 다름.
클라이언트는 서버의 위치와 무관하게 서비스 받을 수 있어야 한다.
로컬서버
치명적인 오류로부터 클라이언트를 보호
marshalling architecture
LPC, RPC를 사용하여 프로세스 간 통신(IPC)구현
데이터 송수신 문제를 해결
※ marshalling DLL이 필요하다.
Proxy
클라이언트와 동일한 주소 공간에 위치
매개변수를 하나로 묶어 전송에 편리한 데이터 구조로 만들어 서버가 위치한 프로세스로 보낸다.
Stub
MIDL 컴파일러가 Proxy/Stub을 위한 파일 생성.
- 기본적으로 64bit OS 지원
- 32비트에서 제작시.
IDL Attribute
ref
unique
ptr
size_is
max_is
length_is
first_is
last-is
String
Range
GetInterface
Out-of Process Server는 export함수가 없기 때문에 ROT(Running Object Table)를 통해 COM 객체 저장소를 관리하고 처리한다.
Embedding 매개변수를 이용하여 구분.
CoRegisterClassObject(등록될 클래스 ID, 클래스 팩토리 IUnknown 포인터, ClsContext(서버형태), 플래그, 리턴);
플래그
REGCLS_SINGLEUSE : 하나의 component가 하나의 인스턴스만 서비스할 수 있다.
REGCLS_MULTI_SEPARATE
CoRevokeClassObject(리턴);
'컴퓨터 공부 > COM&ActiveX' 카테고리의 다른 글
[6월 11일 1교시] Out-Of-Process Server에서 COM object instance생성 2 (0) | 2009.06.11 |
---|---|
[스크랩] 부록 A.인터페이스 용어 (0) | 2009.06.10 |
[6월 10일 2교시] In-Process Server에서 COM object instance생성. (0) | 2009.06.10 |
[6월 10일 1교시] ClassFactory (0) | 2009.06.10 |
[6월 9일 3교시] COM 서버 제작 (0) | 2009.06.09 |