webkit based on win
来源:互联网 发布:网站域名如何注册 编辑:程序博客网 时间:2024/05/01 01:35
1。main(...): 调用CoCreateInstance生成WebView对象gWebView
HRESULT hr = CoCreateInstance(CLSID_WebView, 0, CLSCTX_ALL, IID_IWebView, (void**)&gWebView);
2。main(...): 调用gWebView::initWithFrame 生成绘图窗口。
hr = gWebView->initWithFrame(clientRect, 0, 0);
3。WebView对象:包含指向WebFrame 和Page对象的指针。WebView的初始化大部分在initWithFrame函数中,WebView构造函数负责静态成员的构造及少量简单成员变量的初值。
4。WebView::initWithFrame(...):
4.1 首先生成绘图窗口:
m_viewWindow = CreateWindowEx(0, kWebViewWindowClassName, 0, WS_CHILD | WS_CLIPCHILDREN,
frame.left, frame.top, frame.right - frame.left, frame.bottom - frame.top, m_hostWindow, 0, gInstance, 0);
4.2 生成 WebCore::Page对象
m_page = new Page(new WebChromeClient(this), new WebContextMenuClient(this), new WebEditorClient(this), new WebDragClient(this), new WebInspectorClient(this));
4.3 生成WebFrame 对象
WebFrame* webFrame = WebFrame::createInstance();
4.4 生成WebFrame::Frame (d->frame)对象
RefPtr<Frame> coreFrame = webFrame->init(this, m_page, 0);
同时 WebView的WebFrame指针赋值: m_mainFrame = webFrame;
4.5 WebFrame::Frame 对象初始化
coreFrame->init();
5。(4.2) Page() :
6。(4.3) WebFrame::createInstance() :
7。(4.4) WebFrame::init() :
8。(4.5)Frame::init():
FrameLoader::begin() :create document;
frameLoader::write, Document::write : call tokenizer->write(...) 调用tokenizer进行分析
tokenizer::write() : 分析出token后, 调用 n = parser->parseToken(&currToken); 生成node,并插入到以document为根的树中。
http://www.cppblog.com/djxzh/archive/2008/11/17/67142.html?opt=admin
- webkit based on win
- Styling for WebKit-based browsers
- Based Off Versus Based On
- TypeSelect based on TypeTraits
- Spider based on scrapy
- iperf based on linux
- Dash Based On Plotly
- Build WebKit On Windows
- WebKit on the iPhone
- Based on or Basing on, 为何写作多用 Based on?
- content based routing based on header value
- memcached on win
- bash on win 10
- win 7 64位 vs2005 编译webkit
- Harris algorithm based on openCV
- OB52 based on Company Code
- CAMShift Algorithm Based on OpenCV
- Slicing filenames based on extension
- 为什么使用MMS协议无法连接MMS服务器
- NSMutableArray
- MySQL decimal 类型
- POJ-2773 2分夹逼+DFS解容斥..
- INI文件
- webkit based on win
- TCP Seq and Ack Numbers
- 关于partial,ref和尖冒号
- 点点的采集293.net代码
- JDK 1.6 写Webservice时,runtime modeler error: Wrapper class com.ws.jaxws.DoSomething is not found问题的解决
- 她走了抑郁症女孩自杀绝望微博引关注
- 镜头焦距、视角和景深的关系
- iOS: bundle name, bundle display name, bundle identifier...
- dos命令新建文件