http://tocup.tistory.com/110


HWP ActiveX Contorl


**********************************************

■ html 에 object 태그 기술

<object id="TASTE" classid="clsid:7DBB2674-1EA3-4BB3-A868-48C312083D2"
codebase="./TestOcx.cab#version=1,0,0,1" ...>

 

<OBJECT id=HwpCtrl style="LEFT: 0px; TOP: 0px" height=600 width=700 align=center 
  classid=CLSID:BD9C32DE-3155-4691-8972-097D53B10052>

 

codebase 값은 해당 url 의 cab파일을 가리키고 있네.

한컴사이트의 예제 HTML을 보니 codebase가 없어서 헷갈렸는데 내 정리 겸 추측은 이렇다.

"한글컨트롤의 배포의 경우에는 cab파일이 필요없는거 같다. 
아래아한글 프로그램 설치시 해당 activeX 컨트롤이 이미 레지스트리에 등록이 되는 것 같다.
html 에서의 해당 object id 가 IE 단에 매핑이 되지 않았을 경우
activeX 허용하겠냐고 뜨고, 허용한다고 하면 IE에 매핑이 되게 된다.
즉 새로 배포하는 개념이 아니라 이미 있는 것을 IE에 매핑시키는 과정만 있는 것이 된다.

그러니까... 한글프로그램을 설치하지 않는다면 해당 컨트롤은 사용할 수 없는것이다.
CAB 파일을 따로 한컴에서 배포한다면 몰라도 한컴사이트에 올라와 있는것은 보이지 않았다.
ocx를 이용해 CAB파일을 만드는 방안도 있겠으나... 내용을 아는 한컴직원이라면 잘 만들수 있겠지만
모르는 사람이 제대로 만들기는 어렵지 않을까 생각이 된다."

한글컨트롤의 경우 C:HNCHwp70 와 같은 위치에 있음.
HwpCtrl 의 속성을 확인해보니 버젼이 7.5.2.8 이네

 

  

 

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<script language="javascript">
function keypressed() {
 var key=event.keyCode;
 if(key>=112 || key<=123) { alert('특수키는 사용불가합니다.'); return false; }
 if(key==18) { alert('특수키는 사용불가합니다.'); return false; }
 if(key==17) { alert('특수키는 사용불가합니다.'); return false; }

document.onmousedown=click;
document.onkeydown=keypressed;
//::::::::::  불필요한 key 사용 방지  종료 :::::::::::::::::::
</script>


<script language="JavaScript" type="text/JavaScript">
//hwpctrl를 이용하기 위해서는 한글 2002이상이 사용자 컴퓨터에 깔려 있어야 한다.
//active X처럼 특별히 웹상에서 설치해야 할 파일은 없다.
var MinVersion = 0x0505010C;
var data;
var pHwpCtrl;

//페이지 로드시 맨 처음 실행될 함수.
function OnStart()
{
    pHwpCtrl = document.HwpCtrl;
    _VerifyVersion();
    document.HwpCtrl.SetClientName("DEBUG");
    URLOpen();
}

function _VerifyVersion()
{
    // 설치확인
    if(pHwpCtrl.getAttribute("Version") == null)
    {
        alert(!"한글 2002 컨트롤이 설치되지 않았습니다.");
        return;
    }
    //버젼 확인
    CurVersion = pHwpCtrl.Version;
    if(CurVersion < MinVersion)
    {
        alert(!"HwpCtrl의 버젼이 낮아서 정상적으로 동작하지 않을 수 있습니다.n"+"최신 버젼으로 업데이트하기를 권장합니다.nn"
              + "현재 버젼: 0x"
              + CurVersion.toString(16)
              + "n"
              + "권장 버젼: 0x"
              + MinVersion.toString(16) + " 이상");
    }
}

//한글파일 문서 열기
function URLOpen()
{
    var bRes = document.HwpCtrl.RegisterModule("FilePathCheckDLL", "FilePathChecker");

    document.HwpCtrl.Clear(1);               //문서 내용 지움
    //document.HwpCtrl.Open("c:/주말교통상황(12.10).hwp", "", "code:acp;url:true")
    document.HwpCtrl.Open("한글파일경로", "", "code:acp;url:true")
    document.HwpCtrl.EditMode=1;
    document.HwpCtrl.MovePos(2);             //캐럿을 문서 처음으로 이동
}

//한글 컨트롤 오브젝트를 html에 심는 함수
function WriteEmbedHanPop(){
    document.write("<OBJECT id='HwpCtrl' style='overflow-x:hidden; LEFT: 0px; TOP: 0px;' height='650' width='840' align='center' classid='CLSID:BD9C32DE-3155-4691-8972-097D53B10052'>");
    document.write("<PARAM NAME='TOOLBAR_MENU' VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_STANDARD' VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_FORMAT'   VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_DRAW' VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_TABLE' VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_IMAGE' VALUE='FALSE'>");
    document.write("<PARAM NAME='TOOLBAR_HEADERFOOTER' VALUE='FALSE'>");
    document.write("<PARAM NAME='SHOW_TOOLBAR' VALUE='FALSE'>");
    document.write("</OBJECT>");
}
</script>
</head>

<body onLoad="OnStart()">
<table cellpadding="0" border=0 cellspacing="0" class="fr01" align="center">
    <tr>
        <td valign="top">
            <!-- 보고서 뷰어 -->
            <div style="width:100%;height:100%;">
            <!-- 한글 파일 미리 보기 보여줄 장소에 오브젝트 엠베디드 하는 스크립트 적용 -->
            <script language="javascript">WriteEmbedHanPop()</script>
   </div>
        </td>
    </tr>
</table>
</body>
</html>