안녕하세요.
델파이5를 이용하여 ActiveForm형식으로 ActiveX 컨트롤을 만들고 있습니다.
그런데 이 컨트롤을 다른곳에서 사용하려고 합니다.
코드상에서 타입라이브러리 사용을 자제하기 위해,
AtlGetObjectSourceInterface() 를 사용하여 ActiveX의 정보를
얻어오는데요,
이 API (?) 를 사용하기 위해서는 ActiveX 컨트롤이
IProvidelassInfo나 IPersist 를 구현해야 한다고 합니다.
델파이에서는 ActiveForm에 이 인터페이스의 구현코드를
어떻게 작성해야 할지 잘 모르겠습니다.
***델파이의 ActiveXForm에 특정 인터페이스를 상속,구현할 수 있는 방법이
궁금합니다.***
아시는 분 계시면 많은 도움 부탁드립니다. ^^
즐거운 하루 되세요
흠... AtlGetObjectSourceInterface 이 함수가 어떤것인지는 잘 모르겠지만
인터페이스를 추가해서 구현하려면 클래스선언에 상속할 인터페이스를 써주고
인터페이스의 메소드를 구현하시면 됩니다.
TActiveFormX = class(TActiveForm, IActiveFormX, IPersist)
// IPersist 인터페이스 추가
...
...
// IPersist 인터페이스 메소드
function GetClassID(out classID: TCLSID): HResult; stdcall;
...
end;
implementation
function TActiveFormX.GetClassID(out classID: TCLSID): HResult;
begin
... // 인터페이스 메소드 구현.
end;
...
end.
이동현 wrote:
> 안녕하세요.
>
> 델파이5를 이용하여 ActiveForm형식으로 ActiveX 컨트롤을 만들고 있습니다.
> 그런데 이 컨트롤을 다른곳에서 사용하려고 합니다.
> 코드상에서 타입라이브러리 사용을 자제하기 위해,
> AtlGetObjectSourceInterface() 를 사용하여 ActiveX의 정보를
> 얻어오는데요,
> 이 API (?) 를 사용하기 위해서는 ActiveX 컨트롤이
> IProvidelassInfo나 IPersist 를 구현해야 한다고 합니다.
> 델파이에서는 ActiveForm에 이 인터페이스의 구현코드를
> 어떻게 작성해야 할지 잘 모르겠습니다.
>
> ***델파이의 ActiveXForm에 특정 인터페이스를 상속,구현할 수 있는 방법이
> 궁금합니다.***
>
> 아시는 분 계시면 많은 도움 부탁드립니다. ^^
>
> 즐거운 하루 되세요