programming/COM(Component Object Model)
컴포넌트 생성 및 접근 (전체 흐름도)
설은
2010. 3. 15. 14:18
[클라이언트]
- CoCreatInstance(): 함수 호출하여 COM객체 생성을 시도한다.
- 함수 내부에서는 CoGetClassObject()라는 COM 라이브러리 함수를 호출한다
[COM라이브러리]
- CoGetClassObject(): 레지스트리 검색.
- 첫 번째 매개변수를 통해 DLL의 레지스트리 등록 여부를 확인.
- DllGetClassObject 함수 호출.
[DLL서버]
- EXPORT 함수 호출.
- 클래스 FACTORY 객체를 생성.
- 이 객체에 연결되어 있는 IclassFactory 인터페이스의 주소를 반환.
- 반환된 주소는 CoGetClassObject() 함수를 거쳐 CoCreateInstance() 함수로
다시 반환
[클라이언트]
- IclassFactory를 사용하여 CLASS FACTORY의 CreateInstance() 함수 호출.
[Class Factory]
- CreateInstance()
- 자신이 관리하고 있는 COM클래스로부터 COM 객체를 생성!
- 인터페이스 주소를 반환.
[클라이언트]
- return된 인터페이스로 컴포넌트 접근가능