|
잘못된 곳이 있을 수도 있지만 아래와 같이 하면 되는군요.
ActiveX Floating Form 만들기
1. ActiveX Library Project를 시작( [File]->[New]->[ActiveX]->ActiveX Library )
1-1. Project 옵션의 Application 탭의 Target File Extension을 ocx로 지정.
Version Info 탭의 Include Version Information In Project를 채크 표시
그 안의 DLL을 채크 표시
1-2. 해당 프로젝트를 원하는 이름으로 저장(이름을 MyActiveX라 하자)
2. Type Library Editor를 띄움([View]->[Type Library])
3. 해당 타입라이브러리의 이름(MyActiveX)이 있는 노드를 클릭한 후 오른쪽 창의 Flags 탭을 선택하고 'Control'을 채크 표시
4. 새 인터페이스를 추가(이름을 MyInterface라 하자)
4-1. 이 인터페이스의 parent interface는 IDispatch여야 함
4-2. 이 인터페이스의 Flags탭에서 Dual과 Ole Automation만 채크되어 있어야 함
4-3. 이 인터페이스에 각종 함수 등을 추가(이 중 한 함수를 매개변수가 없는 MyMethod로 하자)
5. [Register Type Library] 아이콘을 클릭
6. 프로젝트 다시 저장
7. 새 COM Object를 추가( [File]->[New]->[ActiveX]->COM Object)
이 때 마법사 창이 뜨는데 여기서
'CoClass Name'에 원하는 이름을 넣고(MyCoClass라 하자)
'Implemented Interface' 항목 옆의 [List]단추를 클릭한 후
창이 뜨면 [Add Library] 단추를 선택하여 지금 하고 있는 프로젝트의 타입라이브러리 파일이름을 선택하고 [OK]를 선택
그러면 Interface Select Wizard 창의 interface 란에 4의 인터페이스가 있으니 그 걸 선택하고 [OK]를 선택
8. 타입라이브러리 편집기를 띄워서
방금 추가한 CoClass(MyCoClass)의 디폴트 인퍼페이스가 4의 인터페이스인지 확인.
이 CoClass의 Flags 탭을 선택한 후 'Can Create'가 채크되어 있는지 확인하고 Control을 채크 표시
한편 이 CoClass의 Attributes 탭의 Help String 항목이 클라이언트 컴퓨터에 저장될 때 파일이름으로 사용됨(보통 저장위치는 C:\WINDOWS\Downloaded Program Files).
9. 프로젝트에 새 폼을 추가(이름을 MainForm이라 하자)
10. ...Impl.cpp 파일을 열어보면 4의 인터페이스에 추가한 함수 등이 있으니 여기에 하고 싶은 작업에 해당하는 코딩을 함
특히 Floating 폼을 만든다고 했으니 9항의 폼의 인스턴스를 생성하고 보여주고 등을 여기에 코딩하면 됨
11. 프로젝트 빌드
12. 웹에 배포
먼저 위 프로젝트의 결과 OCX 파일을 서버의 웹에서 액세스 가능한 장소에 복사한 후.
HTML 파일에 다음과 같이 코딩.
<OBJECT
classid="clsid:위 타입라이브러리의 MyCoClass의 GUID"
codebase="위 OCX 파일의 URL#version=1,0,0,0"
id="myAX"
>
</OBJECT>
<script language=javascript>
<!--
function Test ()
{
myAX. MyMethod ();
}
//-->
</script>
<input type=button value="Test" onClick="Test();">
|