198 lines
7.5 KiB
C++
198 lines
7.5 KiB
C++
//
|
|
// DnHtmlView.h : 런처에서 사용되는 가이드 페이지를 표시하기 위한 레퍼 클래스
|
|
//
|
|
|
|
#pragma once
|
|
|
|
|
|
// CDnView Class
|
|
class CDnView : public CView
|
|
{
|
|
DECLARE_DYNCREATE(CDnView)
|
|
|
|
protected:
|
|
CDnView(); // protected constructor used by dynamic creation
|
|
virtual ~CDnView();
|
|
|
|
public:
|
|
virtual void OnDraw( CDC* pDC ); // overridden to draw this view
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
#ifndef _WIN32_WCE
|
|
virtual void Dump( CDumpContext& dc ) const;
|
|
#endif
|
|
#endif
|
|
|
|
protected:
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
// CDnHtmlView Class
|
|
class CDnHtmlView : public CHtmlView
|
|
{
|
|
DECLARE_DYNCREATE(CDnHtmlView)
|
|
|
|
protected:
|
|
CDnHtmlView(); // protected constructor used by dynamic creation
|
|
virtual ~CDnHtmlView();
|
|
|
|
public:
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump( CDumpContext& dc ) const;
|
|
#endif
|
|
|
|
virtual void OnNavigateError( LPCTSTR lpszURL, LPCTSTR lpszFrame, DWORD dwError, BOOL *pbCancel );
|
|
protected:
|
|
virtual void DoDataExchange( CDataExchange* pDX ); // DDX/DDV support
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
// 데이타 받기 가능한 HtmlView
|
|
/********************************************************************
|
|
/* 2005-2006 (C)Webmote & luo31, All Rights Reserved.
|
|
/* created: 2005-5-12 10:51
|
|
/* filename: d:\luo31_prj\DHtmlViewSpec.h
|
|
/*********************************************************************/
|
|
#include <afxdhtml.h>
|
|
|
|
// CDHtmlSpecEventSink
|
|
class CDHtmlSpecEventSink: public CDHtmlEventSink
|
|
{
|
|
public:
|
|
virtual const DHtmlEventMapEntry* GetDHtmlEventMap();
|
|
virtual BOOL DHtmlEventHook(HRESULT *phr, DISPID dispIdMember, DISPPARAMS *pDispParams,
|
|
VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
|
|
virtual HRESULT GetDHtmlDocument(IHTMLDocument2 **pphtmlDoc);
|
|
|
|
//create
|
|
CDHtmlSpecEventSink();
|
|
void InitEventSink(IHTMLDocument2* pDoc);
|
|
|
|
protected:
|
|
IHTMLDocument2* m_pDocHtml;
|
|
};
|
|
|
|
|
|
// CDHtmlViewSpec Html view
|
|
class CDHtmlViewSpec : public CHtmlView, public CDHtmlSpecEventSink
|
|
{
|
|
DECLARE_DYNCREATE(CDHtmlViewSpec)
|
|
|
|
protected:
|
|
CDHtmlViewSpec();
|
|
virtual ~CDHtmlViewSpec();
|
|
|
|
public:
|
|
#ifdef _DEBUG
|
|
virtual void AssertValid() const;
|
|
virtual void Dump(CDumpContext& dc) const;
|
|
#endif
|
|
virtual void OnDocumentComplete(LPCTSTR lpszURL);
|
|
void GotoUrl(LPCTSTR pszUrl);
|
|
//Implementation
|
|
public:
|
|
// DDX functions
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, CString& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, short& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, int& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, long& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, DWORD& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, float& value);
|
|
void DDX_DHtml_ElementText(CDataExchange* pDX, LPCTSTR szId, DISPID dispid, double& value);
|
|
void DDX_DHtml_CheckBox(CDataExchange* pDX, LPCTSTR szId, int& value);
|
|
void DDX_DHtml_Radio(CDataExchange* pDX, LPCTSTR szId, long& value);
|
|
void DDX_DHtml_SelectValue(CDataExchange* pDX, LPCTSTR szId, CString& value);
|
|
void DDX_DHtml_SelectString(CDataExchange* pDX, LPCTSTR szId, CString& value);
|
|
void DDX_DHtml_SelectIndex(CDataExchange* pDX, LPCTSTR szId, long& value);
|
|
void DDX_DHtml_AxControl(CDataExchange *pDX, LPCTSTR szId, DISPID dispid, VARIANT& var);
|
|
void DDX_DHtml_AxControl(CDataExchange *pDX, LPCTSTR szId, LPCTSTR szPropName, VARIANT& var);
|
|
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
DECLARE_MESSAGE_MAP()
|
|
// DDX Functions
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, CString& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, short& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, int& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, long& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, DWORD& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, float& value, BOOL bSave);
|
|
void DDX_DHtml_ElementText(LPCTSTR szId, DISPID dispid, double& value, BOOL bSave);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Data exchange for special controls
|
|
void DDX_DHtml_CheckBox(LPCTSTR szId, int& value, BOOL bSave);
|
|
void DDX_DHtml_Radio(LPCTSTR szId, long& value, BOOL bSave);
|
|
void DDX_DHtml_SelectValue(LPCTSTR szId, CString& value, BOOL bSave);
|
|
void DDX_DHtml_SelectString(LPCTSTR szId, CString& value, BOOL bSave);
|
|
void DDX_DHtml_SelectIndex(LPCTSTR szId, long& value, BOOL bSave);
|
|
void DDX_DHtml_AxControl(LPCTSTR szId, DISPID dispid, VARIANT& var, BOOL bSave);
|
|
void DDX_DHtml_AxControl(LPCTSTR szId, LPCTSTR szPropName, VARIANT& var, BOOL bSave);
|
|
void OnDDXError(LPCTSTR szId, UINT nIDPrompt, BOOL bSave);
|
|
|
|
void __cdecl DDX_DHtml_ElementTextWithFormat(LPCTSTR szId,
|
|
DISPID dispid, LPCTSTR lpszFormat, UINT nIDPrompt, BOOL bSave, ...);
|
|
void DDX_DHtml_ElementTextFloatFormat(LPCTSTR szId,
|
|
DISPID dispid, void* pData, double value, int nSizeGcvt, BOOL bSave);
|
|
BOOL _AfxSimpleScanf(LPCTSTR lpszText,
|
|
LPCTSTR lpszFormat, va_list pData);
|
|
BOOL _AfxSimpleFloatParse(LPCTSTR lpszText, double& d);
|
|
long Select_FindString(IHTMLSelectElement *pSelect, BSTR bstr, BOOL fExact);
|
|
void SetFocusToElement(LPCTSTR szId);
|
|
|
|
public:
|
|
void Initialize(void);
|
|
|
|
protected:
|
|
// event sink
|
|
DWORD m_dwDHtmlEventSinkCookie;
|
|
CSimpleArray<CDHtmlControlSink *> m_ControlSinks;
|
|
CSimpleArray<CDHtmlElementEventSink *> m_SinkedElements;
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//deal event helper functions
|
|
HRESULT GetElement(LPCTSTR szElementId, IDispatch **ppdisp, BOOL *pbCollection = NULL);
|
|
HRESULT GetElement(LPCTSTR szElementId, IHTMLElement **pphtmlElement);
|
|
template <class Q>
|
|
HRESULT GetElementInterface(LPCTSTR szElementId, Q** ppvObj)
|
|
{
|
|
return GetElementInterface(szElementId, __uuidof(Q), (void **) ppvObj);
|
|
}
|
|
HRESULT GetElementInterface(LPCTSTR szElementId, REFIID riid, void **ppvObj);
|
|
|
|
virtual void OnNavigateComplete2(LPCTSTR strURL);
|
|
virtual void OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel);
|
|
HRESULT ConnectDHtmlEvents(IUnknown *punkDoc);
|
|
void DisconnectDHtmlEvents();
|
|
HRESULT ConnectDHtmlElementEvents(DWORD_PTR dwThunkOffset = 0);
|
|
BOOL FindSinkForObject(LPCTSTR szName);
|
|
BOOL IsSinkedElement(IDispatch *pdispElem);
|
|
void DisconnectDHtmlElementEvents();
|
|
afx_msg void OnDestroy();
|
|
|
|
public:
|
|
//access HTML element
|
|
BSTR GetElementText(LPCTSTR szElementId);
|
|
void SetElementText(LPCTSTR szElementId, BSTR bstrText);
|
|
void SetElementText(IUnknown *punkElem, BSTR bstrText);
|
|
BSTR GetElementHtml(LPCTSTR szElementId);
|
|
void SetElementHtml(LPCTSTR szElementId, BSTR bstrText);
|
|
void SetElementHtml(IUnknown *punkElem, BSTR bstrText);
|
|
VARIANT GetElementProperty(LPCTSTR szElementId, DISPID dispid);
|
|
void SetElementProperty(LPCTSTR szElementId, DISPID dispid, VARIANT *pVar);
|
|
HRESULT GetControlDispatch(LPCTSTR szId, IDispatch **ppdisp);
|
|
VARIANT GetControlProperty(IDispatch *pdispControl, DISPID dispid);
|
|
VARIANT GetControlProperty(LPCTSTR szId, DISPID dispid);
|
|
VARIANT GetControlProperty(LPCTSTR szId, LPCTSTR szPropName);
|
|
void SetControlProperty(IDispatch *pdispControl, DISPID dispid, VARIANT *pVar);
|
|
void SetControlProperty(LPCTSTR szElementId, DISPID dispid, VARIANT *pVar);
|
|
void SetControlProperty(LPCTSTR szElementId, LPCTSTR szPropName, VARIANT *pVar);
|
|
HRESULT GetEvent(IHTMLEventObj **ppEventObj);
|
|
|
|
public:
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
};
|
|
|