|
제라툴입니다.
우선 OLE Automation 에 대해 잠깐 설명하게요
OLE Automation은 OLE가 속성, 메소드, 타입등을 액세스 할 수 있도록 오브젝트에게 부여한 메커니즘입니다. 그리고 이 OLE의 기반이 되는 것이 COM기술이죠
OLE 클라이언트에서 서버를 호출할수 있는 방법은 4가지 정도 있는데요 Variant,COM interface, 듀얼 인터페이스, CoCreateInstance 입니다. 가장 쉽고 많이 사용 하는 방법은 1번째방법인데죠
우선 CreateOleObject를 통해 객체를 만들면 인터페이스에 대한 참조값을 전달하게 되는데 이는
IDisptch 인터페이스(Automation의 주역이죠) 의 값이 됩니다. 원래 매크로가 COM 컴퍼넌트에 있는 함수를 호출하기 위해서는 ProgID, 함수의 이름 , 함수의 파라미터가 필요한데 매크로 언어의 실시간 시스템이 함수 이름을 통해 함수를 수행할수 있도록 해주는것이 바로 IDispatch입니다.
이러한 IDispatch는 4가지 함수를 포함하고 있는데 GetTypeInfoCount, GetTypeInfo, GetIDsOfName, Invoke 라는함수들이지요. 이중 GetIDsOfName는 함수의 이름을 읽고 DISPID를 return하는데 DISPID를 Invoke가 다시 넘겨 받는데 Invoke는 함수 포인터 배열에서 DISPID를 Index로 사용하게 되어 함수를 얻어 올수있게 되는것입니다.
간단히 설명하기는 했는데요.. 결코 잘설명된건 아니고여 Unishided C++ Builder 4에 잠시 소개되기는 합니다만 ..내용이 부족하구요. 공부해보시고자 한다면 Inside COM이난 Inside OLE같은 책을 한번 참고 해보세요..^^
그냥 쓴글입니다 .결코 답변이 아니죠 그냥 참고하시라고 쓴 글입니다^^ 해해 ~~
이상 제라툴이었습니다.
---- 아름다운 청년 제라툴 ----
|