使用IWebBrowser2创建简单浏览器

本文介绍了如何利用IWebBrowser2接口和CAxWindow容器创建基于IE内核的简单浏览器。通过CreateWindow函数创建Windows窗口,详细步骤包括相关头文件和源文件的使用,如ncPatternFlyweight、ncAutoLock、ncMutex等,帮助开发者实现一个基本的浏览器功能。
摘要由CSDN通过智能技术生成

使用ie内核的浏览器怎么搞

IWebBrowser2 ie内核的浏览器控件

CAxWindow 容器

CreateWindow 创建windows窗口

直接上代码

// ncPatternFlyweight.h


#ifndef __NC_PATTERN_FLYWEIGHT_H__
#define __NC_PATTERN_FLYWEIGHT_H__

#pragma once

#include "ncAutoLock.h"
#include "ncMutex.h"

#include 
using namespace std;


template
      
      
       
       
class ncPatternFlyweight
{
public:
	static U* getMapFlyweightInstance (T t)
	{
		ncAutoLock
       
       
        
         autolock (&_lock);
		std::map
        
        
         
         ::iterator it = _mapFlyweightInstance.find (t);
		if (it != _mapFlyweightInstance.end ()) {
			return it->second;
		}
		else {
			return NULL;
		}
	}

	static void addMapFlyweightInstance (T t, U* u)
	{
		ncAutoLock
         
         
           autolock (&_lock); _mapFlyweightInstance[t] = u; } static void removeMapFlyweightInstance (T t) { ncAutoLock 
          
            autolock (&_lock); std::map 
           
             ::iterator it = _mapFlyweightInstance.find (t); if (it != _mapFlyweightInstance.end ()) { _mapFlyweightInstance.erase (it); } } static bool existenceMapFlyweightInstance (T t) { ncAutoLock 
            
              autolock (&_lock); return _mapFlyweightInstance.find (t) != _mapFlyweightInstance.end (); } protected: static std::map 
             
               _mapFlyweightInstance; static ncMutex _lock; }; template 
              
                ncMutex ncPatternFlyweight 
               
                 ::_lock; template 
                
                  std::map 
                 
                   ncPatternFlyweight 
                  
                    ::_mapFlyweightInstance; #endif 
                   
                  
                 
                
               
              
             
            
           
         
        
        
       
       
      
      

// ncAutoLock.h


#ifndef __NC_AUTO_LOCK_H__
#define __NC_AUTO_LOCK_H__

#pragma once


template
    
    
     
     
class ncAutoLock
{
public:
	ncAutoLock(T* lock) 
		: _lock(lock)
	{
		_lock->lock();
	}

	~ncAutoLock()
	{
		_lock->unlock();
	}

protected:
	T* _lock;
};

#endif

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值