C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[5448] Re:Re:Re:엑셀화일내의 매크로 이용... 이게 가능한가요?
제라툴 [] 2928 읽음    2001-02-14 15:31
제라툴입니다.

우선 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같은 책을 한번 참고 해보세요..^^

그냥 쓴글입니다 .결코 답변이 아니죠 그냥 참고하시라고 쓴 글입니다^^ 해해 ~~
이상 제라툴이었습니다.
---- 아름다운 청년 제라툴 ----

+ -

관련 글 리스트
5418 엑셀화일내의 매크로 이용... 이게 가능한가요? bluewing 2848 2001/02/13
5424     Re:엑셀화일내의 매크로 이용... 이게 가능한가요? 한꼬맹이 2847 2001/02/13
5440         Re:Re:엑셀화일내의 매크로 이용... 이게 가능한가요? bluewing 2866 2001/02/14
5448             Re:Re:Re:엑셀화일내의 매크로 이용... 이게 가능한가요? 제라툴 2928 2001/02/14
5421     Re:엑셀화일내의 매크로 이용... 이게 가능한가요? 제라툴 2803 2001/02/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.