MFC CHTMLView로 파생된 View의 함수를 Javascript에서 호출하기
Daummap.htm을 만든다. (여기에 자바스크립트로 다음지도를 만듬)
그 HTML파일 안에 다음지도 스크립트로 geocoder.coord2detailaddr(coords, callback);로 얻어진 결과 값인
var jibunjuso = result[0].jibunAddress.name에 얻어진 값을
MFC CHTMLView에서 CString m_strLocationName ; 전역변수로 등록하는 함수들을 등록
---------------------------------------------------------------------------------------------
[CxxxxView.cpp]
BEGIN_DISPATCH_MAP(CxxxxView, CHtmlView)
DISP_FUNCTION(CxxxxView, "UpdateLocationJS", UpdateLocationJS, VT_EMPTY, VTS_BSTR)
...
END_DISPATCH_MAP()
...
//생성자에 아래 함수를 추가
CxxxxView::CxxxxView()
{
// TODO: 여기에 생성 코드를 추가합니다.
EnableAutomation();
...
}
...
//자바스크립트에서 호출할 C++함수 작성
void CxxxxView::UpdateLocationJS(LPBSTR str)
{
CString tempString2;
tempString2.Format(_T("%s"), str);
m_strLocationName = tempString2.GetString();
// MessageBox(tempString2);
}
//아래 함수추가
HRESULT CxxxxView::OnGetExternal(LPDISPATCH *lppDispatch)
{
*lppDispatch = GetIDispatch(TRUE);
return S_OK;
}
[CxxxxView.h]
class CxxxxView : public CHtmlView
{
public:
CSinkholeFinderDoc* GetDocument() const;
// void UpdateLocationJS(LPCWSTR str); // sanghyun for JS external
void UpdateLocationJS(LPBSTR str); // sanghyun for JS external
...
protected:
virtual HRESULT OnGetExternal(LPDISPATCH *lppDispatch); // 추가
...
}
[Daummap.htm]
-->
그 HTML파일 안에 다음지도 스크립트로 geocoder.coord2detailaddr(coords, callback);로 얻어진 결과 값인
var jibunjuso = result[0].jibunAddress.name에 얻어진 값을
MFC CHTMLView에서 CString m_strLocationName ; 전역변수로 등록하는 함수들을 등록
---------------------------------------------------------------------------------------------
[CxxxxView.cpp]
BEGIN_DISPATCH_MAP(CxxxxView, CHtmlView)
DISP_FUNCTION(CxxxxView, "UpdateLocationJS", UpdateLocationJS, VT_EMPTY, VTS_BSTR)
...
END_DISPATCH_MAP()
...
//생성자에 아래 함수를 추가
CxxxxView::CxxxxView()
{
// TODO: 여기에 생성 코드를 추가합니다.
EnableAutomation();
...
}
...
//자바스크립트에서 호출할 C++함수 작성
void CxxxxView::UpdateLocationJS(LPBSTR str)
{
CString tempString2;
tempString2.Format(_T("%s"), str);
m_strLocationName = tempString2.GetString();
// MessageBox(tempString2);
}
//아래 함수추가
HRESULT CxxxxView::OnGetExternal(LPDISPATCH *lppDispatch)
{
*lppDispatch = GetIDispatch(TRUE);
return S_OK;
}
[CxxxxView.h]
class CxxxxView : public CHtmlView
{
public:
CSinkholeFinderDoc* GetDocument() const;
// void UpdateLocationJS(LPCWSTR str); // sanghyun for JS external
void UpdateLocationJS(LPBSTR str); // sanghyun for JS external
...
protected:
virtual HRESULT OnGetExternal(LPDISPATCH *lppDispatch); // 추가
...
}
[Daummap.htm]
-->
Comments