亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chtmleditor.h

?? 用visual c++寫的一個超文本編輯器
?? H
?? 第 1 頁 / 共 2 頁
字號:
		BOOL InsertColumn(UINT Index);
		BOOL GetSpanMap(UINT *pu32_Rows, UINT *pu32_Cols, UINT **ppu32_Map);
		void CleanUp();
		UINT GetColumnCount();
		UINT GetRowCount();
		cHtmlTableCell GetCell(UINT u32_Row, UINT u32_Column, BOOL b_ReturnPrevious=FALSE);
		CString GetCellPadding();
		BOOL SetCellPadding(CString s_Padding);
		CString GetCellSpacing();
		BOOL SetCellSpacing(CString s_Spacing);
		CString GetBorderWidth();
		BOOL SetBorderWidth(CString s_Width);
		CString GetBorderColor();
		BOOL SetBorderColor(CString s_Color);
		eRules GetBorderRules();
		BOOL SetBorderRules(eRules e_Rules);

	protected:
		CComQIPtr<IHTMLTable, &IID_IHTMLTable> mi_Table;
	};

	// ####################################################

	class cHtmlImg : public cHtmlElement
	{
	public:
		cHtmlImg(CComPtr<IHTMLElement> i_Elem);

		virtual BOOL Valid();
		CString GetUrl();
		BOOL    SetSrc(CString s_Src);

	protected:
		CComQIPtr<IHTMLImgElement, &IID_IHTMLImgElement> mi_Img;
	};

	// ####################################################

	class cHtmlHR : public cHtmlElement
	{
	public:
		cHtmlHR(CComPtr<IHTMLElement> i_Elem);

		enum eAction
		{
			E_Color,
			E_Size,   // the height of the line in pixel
			E_Width,  // the length of the line in pixel or percent
			E_Align
		};
		virtual BOOL Valid();
		void SetProperty(eAction e_Action, CString s_Value);
		CString GetProperty(eAction e_Action);
		BOOL GetShade();
		void SetShade(BOOL b_Shade);

	protected:
		CComQIPtr<IHTMLHRElement, &IID_IHTMLHRElement> mi_HR;
	};

	// ####################################################

	class cHtmlDocument : public cHtmlDomNode
	{
	public:
		cHtmlDocument();
		void Assign(CComPtr<IDispatch> D_Doc, CHtmlEditor *pi_Editor);

		virtual BOOL Valid();
		cHtmlStyleSheet GetStyleSheet();
		BOOL SetDocumentDefault(CString s_Selector, cHtmlStyle::eProp e_Prop, CString s_Value);
		BOOL IsModified();
		cHtmlElement GetElementByID(CString s_ID);
		UINT QueryStatus(UINT u32_Command);
		CString GetTitle();
		CString GetUrl();
		BOOL ExecSetCommand(UINT u32_Command, CComVariant v_In=0, BOOL b_PromtUser=TRUE);
		BOOL ExecGetCommand(UINT u32_Command, CComVariant *pv_Out);
		CString GetHtml();
		cHtmlElement GetHtmlTag();
		cHtmlElement GetHead();
		cHtmlElement GetBody(BOOL b_Create);
		void CleanUpTags();
		cHtmlElement GetSelection(BOOL b_AllowEmptySel=TRUE);
		UINT GetElementCollection(CString s_TagName, CComQIPtr<IHTMLElementCollection> &i_Collect);
		BOOL PasteIntoSelection(CString s_Html);
		BOOL AddToSelection(CString s_BeginHtml, CString s_EndHtml);
		BOOL SetHtml(CString s_HTML);
		BOOL InsertTable(UINT u32_Rows, UINT u32_Cols);
		BOOL SetDesignMode(BOOL b_Design);
		BOOL GetDesignMode();
		cHtmlTableCell GetSelectedCell();
		void InsertNewTableColumn(BOOL b_Right);
		void InsertNewTableRow(BOOL b_Below);
		BOOL InsertNewImage(CString s_Path);
		BOOL SetSelectionFontSize(UINT u32_Size);
		UINT GetSelectionFontSize();
		UINT GetDefaultFontSize();
		UINT ConvertFontSize(CString s_Size);
		void MakeImagesAbsolute();

	protected:
		void RecursiveSetFontSize(cHtmlElement &i_Parent, CString *ps_Size);
		void RecursiveCleanUpChilds(cHtmlElement &i_Elem, CString *ps_Removed);
		BOOL ReplaceHeading(CString s_Tag, cHtmlElement &i_Elem);
		BOOL ReplaceParagraph(cHtmlElement &i_Elem);

		CHtmlEditor                  *mp_Editor;
		CComQIPtr<IHTMLDocument2>     mi_Doc2;
		CComQIPtr<IHTMLDocument3>     mi_Doc3;
		CComQIPtr<IPersistStreamInit> mi_PStream;
		CComQIPtr<IOleCommandTarget>  mi_CmdTarg;

		int                         ms32_DefaultFontSize;
	};

	// #####################################################

	class CMsieWnd : public CWnd
	{
	public:
		void SetEditor(CHtmlEditor *p_Editor);

	protected:
		virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
		virtual BOOL PreTranslateMessage(MSG* pMsg);

	private:
		CHtmlEditor *mp_Editor;
	};
		
	// #####################################################

	class CUniRichEdit : public CWnd, public cMisc
	{
	public:
		CUniRichEdit();
		virtual ~CUniRichEdit();

		void SetEditor(CHtmlEditor *p_Editor);
		BOOL CreateEx(DWORD u32_ExStyle, DWORD u32_Style, const RECT& k_Rect, CWnd* p_Parent, UINT u32_ID);
		void SetWindowText(CString s_Text);

	private:
		virtual BOOL PreTranslateMessage(MSG* pMsg);

		HINSTANCE mh_Dll32;
		HINSTANCE mh_Dll20;
		CHtmlEditor *mp_Editor;
	};
		
	// #####################################################

	class cStreamReader : public IStream, public cMisc
	{
	public:
		cStreamReader();
		virtual ~cStreamReader();
		void SetData(LPCTSTR szData);
		ULONG STDMETHODCALLTYPE AddRef();
		ULONG STDMETHODCALLTYPE Release(); 
		STDMETHOD(QueryInterface)(REFIID iid, void **ppUnk);
		STDMETHOD(Read)(void *pv_Buffer, ULONG u32_BufSize, ULONG *pu32_ReadBytes);
		STDMETHOD(Write)(const void *pv_Buffer, ULONG u32_BufSize, ULONG *pcbWritten);
		STDMETHOD(Seek)(LARGE_INTEGER, DWORD, ULARGE_INTEGER*);
		STDMETHOD(SetSize)(ULARGE_INTEGER);
		STDMETHOD(CopyTo)(IStream *, ULARGE_INTEGER, ULARGE_INTEGER*, ULARGE_INTEGER*);
		STDMETHOD(Commit)(DWORD);
		STDMETHOD(Revert)();
		STDMETHOD(LockRegion)(ULARGE_INTEGER, ULARGE_INTEGER, DWORD);
		STDMETHOD(UnlockRegion)(ULARGE_INTEGER, ULARGE_INTEGER, DWORD);
		STDMETHOD(Stat)(STATSTG*, DWORD);
		STDMETHOD(Clone)(IStream**);

	protected:
		char *mps8_Data;
		UINT  mu32_DataLen;
		UINT  mu32_Index;
	};

// END embedded classes

// ####################################################

// class CHtmlEditor :

	DECLARE_DYNCREATE(CHtmlEditor)
public:
	CHtmlEditor();
	virtual ~CHtmlEditor();

	virtual BOOL Valid();
	void Clear();
	void Save();
	BOOL ExecSetCommand(UINT u32_Command, CComVariant v_In=0, BOOL b_PromtUser=TRUE);
	BOOL ExecGetCommand(UINT u32_Command, CComVariant *pv_Out);
	BOOL ExecGetCommandStr(UINT u32_Command, CString *ps_Out);
	UINT QueryStatus(UINT u32_Command);
	BOOL CreateEditor(CWnd *p_Static, CWnd *p_NotificationWnd, BOOL b_EditOnlyBody, BOOL b_EnableThemes);
	void ResetMsieSettings();
	void SetDisplayMode(BOOL b_SourceMode, BOOL b_DesignMode);
	void EnableEditor(BOOL b_Enable);
	void MoveWindow(int Left, int Top, int Width, int Height, UINT u32_Flags=0);
	void MoveWindow(CRect k_Rect, UINT u32_Flags=0);
	void ReplaceParagraphs(UINT u32_VirtKeyCode);
	cHtmlDocument* GetDocument();
	BOOL NavigateToEmbeddedResource(CString s_RsrcName);
	BOOL Navigate(LPCTSTR t_URL, DWORD dwFlags=0, LPCTSTR lpszTargetFrameName=0, LPCTSTR lpszHeaders=0, LPVOID lpvPostData=0, DWORD dwPostDataLen=0);
	UINT GetDisplayMode();
	void NotifyParent(UINT u32_CommandID, BOOL b_Post);
	UINT GetMsieVersion();
	BOOL IsPlatformNT();
	void DelayCeanUp();

protected:
	virtual void OnBeforeNavigate2(LPCTSTR t_URL, DWORD u32_Flags, LPCTSTR t_TargetFrame, CByteArray& i_PostedData, LPCTSTR t_Headers, BOOL *pb_Cancel);
	virtual void OnNavigateComplete2(LPCTSTR t_URL);
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);

private:
	BOOL           mb_SourceMode;
	BOOL           mb_Enabled;
	cHtmlDocument  mi_HtmDoc;
	CMsieWnd       mi_MSIE;
	CUniRichEdit   mi_RichEdit;
	CWnd          *mp_NotificationWnd;
	CWnd          *mp_Static;
	BOOL           mb_EditOnlyBody;
	BOOL           mb_InitDone;
	BOOL           mb_CleanUp;
	BOOL           mb_SubClassed;
	BOOL           mb_EnableThemes;
	BOOL           mb_PlatformNT;
	BOOL           mb_ParaReplaced;
};


// these typedefs avoid that you have to tpye "CHtmlEditor::cHtmlTable" each time 
// instead of simply typing "cHtmlTable"

typedef CHtmlEditor::cMisc            cMisc;
typedef CHtmlEditor::cHtmlStyle       cHtmlStyle;
typedef CHtmlEditor::cHtmlStyleSheet  cHtmlStyleSheet;
typedef CHtmlEditor::cHtmlDomNode     cHtmlDomNode;
typedef CHtmlEditor::cHtmlElement     cHtmlElement;
typedef CHtmlEditor::cHtmlTableCell   cHtmlTableCell;
typedef CHtmlEditor::cHtmlTableRow    cHtmlTableRow;
typedef CHtmlEditor::cHtmlTable       cHtmlTable;
typedef CHtmlEditor::cHtmlHR          cHtmlHR;
typedef CHtmlEditor::cHtmlImg         cHtmlImg;
typedef CHtmlEditor::cHtmlDocument    cHtmlDocument;
typedef CHtmlEditor::CUniRichEdit     CUniRichEdit;
typedef CHtmlEditor::CMsieWnd         CMsieWnd;
typedef CHtmlEditor::cStreamReader    cStreamReader;


#endif // !defined(HTML_EDITOR_H__AF3E29B6_2B28_46D0_9D37_74D6C9E41B4A__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人小视频免费观看| 国产91丝袜在线18| 一区二区三区在线视频观看58 | 91麻豆国产香蕉久久精品| 国产成人免费视频网站| 懂色av一区二区三区免费看| 欧美日韩免费不卡视频一区二区三区| 不卡视频一二三四| 99国产精品国产精品毛片| 成人av在线电影| 色婷婷一区二区三区四区| 欧美吻胸吃奶大尺度电影 | 色偷偷久久一区二区三区| 91蝌蚪porny九色| 欧美日韩午夜影院| 日韩久久精品一区| 欧美国产日韩精品免费观看| 亚洲人吸女人奶水| 婷婷一区二区三区| 韩国三级中文字幕hd久久精品| 国产精品99久久久久久久女警| 成人黄色小视频| 欧美主播一区二区三区| 精品国产免费一区二区三区四区| 国产日韩欧美a| 亚洲狠狠爱一区二区三区| 日本在线不卡一区| 国产一区二区剧情av在线| 成人av中文字幕| 欧美三级资源在线| 久久午夜老司机| 夜夜夜精品看看| 国产乱色国产精品免费视频| 色婷婷久久久久swag精品 | 国产精品毛片高清在线完整版| 国产老肥熟一区二区三区| 99久久久免费精品国产一区二区| 欧美日韩精品一区二区三区蜜桃| 欧美精品一区二区久久久| 亚洲欧洲综合另类| 久久99精品久久久久婷婷| 91在线免费播放| 日韩精品一区二区三区在线 | 日韩一卡二卡三卡四卡| 1024成人网色www| 精品无码三级在线观看视频| 色综合一区二区三区| 欧美不卡视频一区| 欧美日韩国产成人在线免费| 精品一区二区三区在线播放视频 | 欧美日韩在线精品一区二区三区激情| 日韩欧美成人激情| 亚洲国产综合色| av午夜一区麻豆| 久久亚洲精华国产精华液 | 26uuuu精品一区二区| 一区二区三区四区国产精品| 国产成人啪免费观看软件| 日韩欧美激情一区| 婷婷激情综合网| 在线中文字幕不卡| 亚洲视频在线观看一区| 国产成人精品免费网站| 亚洲精品一区二区三区精华液| 五月婷婷综合在线| 欧美老女人第四色| 亚洲综合一区二区三区| 99精品视频一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 全国精品久久少妇| 欧美一三区三区四区免费在线看 | 2023国产一二三区日本精品2022| 婷婷六月综合亚洲| 91精品午夜视频| 久久99精品网久久| 一区二区三区国产精品| 成人黄色一级视频| 日韩一区中文字幕| 91麻豆国产自产在线观看| 亚洲乱码国产乱码精品精98午夜| 91在线视频观看| 一区二区三区加勒比av| 精品视频免费在线| 日本视频在线一区| 欧美精品一区男女天堂| 国产乱子轮精品视频| 欧美高清在线一区二区| jizz一区二区| 亚洲精品视频在线| 欧美丰满一区二区免费视频| 日韩激情一区二区| 欧美精品一区在线观看| 国产二区国产一区在线观看| 国产精品国产三级国产有无不卡 | 激情综合色综合久久| wwwwww.欧美系列| 成年人国产精品| 亚洲一区免费在线观看| 欧美人妇做爰xxxⅹ性高电影| 欧美a一区二区| 国产日韩欧美不卡在线| 日本高清不卡视频| 欧洲日韩一区二区三区| 日本sm残虐另类| 国产日韩亚洲欧美综合| 色婷婷av久久久久久久| 老司机午夜精品| 中文字幕一区二区三区在线播放 | 一区二区三区毛片| 日韩欧美色电影| 色av综合在线| 国产精品 欧美精品| 午夜精品久久一牛影视| 国产日韩欧美综合在线| 欧美精品v国产精品v日韩精品| 国产一区二区成人久久免费影院 | 综合自拍亚洲综合图不卡区| 精品1区2区3区| 成人午夜免费电影| 天天av天天翘天天综合网| 欧美国产成人在线| 欧美大片在线观看一区| 国产亚洲精品超碰| 欧美剧情片在线观看| 成人一道本在线| 激情五月播播久久久精品| 亚洲午夜免费视频| 一区在线播放视频| 久久九九久精品国产免费直播| 欧美亚州韩日在线看免费版国语版| 精品一区二区三区视频在线观看| 亚洲一区二区三区影院| 国产精品久久久久久久久快鸭| 91精品国产黑色紧身裤美女| 色哟哟在线观看一区二区三区| 国产在线看一区| 免费av网站大全久久| 亚洲第一综合色| 亚洲精品福利视频网站| 国产精品女主播av| 国产视频一区二区在线| 久久综合九色综合欧美就去吻| 欧美日韩精品欧美日韩精品| 色婷婷综合五月| 色噜噜狠狠色综合欧洲selulu| 成人动漫视频在线| 国产成人aaaa| 国产成人精品1024| 国产盗摄一区二区| 国产福利一区二区三区视频| 久久99精品国产.久久久久久| 亚洲国产成人av网| 日韩精品久久久久久| 亚洲成a人片综合在线| 亚洲午夜久久久久久久久电影网 | 久久精品国产亚洲a| 老司机精品视频在线| 奇米色一区二区三区四区| 青青青爽久久午夜综合久久午夜| 日韩经典一区二区| 久久爱www久久做| 国产一区二三区| 成人免费视频播放| 本田岬高潮一区二区三区| 成人动漫av在线| 色综合视频在线观看| 欧美伊人久久大香线蕉综合69| 欧美人xxxx| 欧美mv日韩mv| 中文字幕一区不卡| 亚洲综合色自拍一区| 亚洲444eee在线观看| 久久精工是国产品牌吗| 国产成人免费xxxxxxxx| 91香蕉国产在线观看软件| 欧美午夜片在线看| 日韩精品中午字幕| 国产精品久久久久久久久搜平片 | 日本在线不卡一区| 国产精品一二三四五| 91在线播放网址| 欧美一区二区三区日韩| 国产偷国产偷精品高清尤物| 亚洲欧洲一区二区在线播放| 午夜成人在线视频| 处破女av一区二区| 欧美视频一区二区三区| 亚洲精品一区二区三区在线观看 | 日本亚洲免费观看| 成人毛片视频在线观看| 欧美日本精品一区二区三区| 国产欧美精品一区二区三区四区| 一区二区激情视频| 国产福利电影一区二区三区| 欧美日韩日日夜夜| 中文字幕成人av| 蜜臀av一区二区| 欧美在线免费观看亚洲| 国产农村妇女毛片精品久久麻豆 | 国产精品亚洲成人|