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

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

?? mainwnd.cpp

?? 實現Wince.Net平臺下IE瀏覽器的功能
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    {
    case DISPID_AMBIENT_DLCONTROL:
	if(pvarResult)
	{
		V_VT(pvarResult) = VT_I4;
		// always set these three unless they should be disabled
		pvarResult->lVal = DLCTL_DLIMAGES|DLCTL_VIDEOS|DLCTL_BGSOUNDS;
		
		// put the browser in download only mode
		// pvarResult->lVal |= DLCTL_DOWNLOADONLY;
	}
	break;

    case DISPID_STATUSTEXTCHANGE:
        {
        }
        break;
        
    case DISPID_SETSECURELOCKICON:
        {
        }
        break;

    case DISPID_PROGRESSCHANGE:
        {
            LONG lProgMax = pdparams->rgvarg[0].lVal;
            LONG lProg = pdparams->rgvarg[1].lVal;
            UINT nPos = (lProg == -1) ? 999 : ((lProg-1)%1000);
  
            SendMessage(_hwndProgress, PBM_SETPOS, nPos, 0);
        }
        break;

    // notification for file download
    case DISPID_FILEDOWNLOAD:
	break;


    case DISPID_NAVIGATECOMPLETE2:
        break;

    case DISPID_COMMANDSTATECHANGE:
        break;

    case DISPID_TITLECHANGE:
            if (pdparams && pdparams->rgvarg[0].vt == VT_BSTR)
            {
                TCHAR szTitle[85];
                int len = wcslen(pdparams->rgvarg[0].bstrVal);
                    
                _tcsncpy(_szTitle, pdparams->rgvarg[0].bstrVal, MAX_URL-1);
                _tcsncpy(szTitle, pdparams->rgvarg[0].bstrVal, 80);
                if(len > 80)
                    _tcscat(szTitle, L"...");

                SetWindowText(_hWnd, szTitle);
            }
            break;

    case DISPID_ONQUIT:
        PostMessage(_hWnd, WM_CLOSE, 0, 0L);
        break;

    case DISPID_DOWNLOADBEGIN:
	_wDLCCounter++;
        SetWindowPos(_hwndProgress, HWND_TOP, 0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_SHOWWINDOW);
        break;
    case DISPID_DOWNLOADCOMPLETE:
    case DISPID_DOCUMENTCOMPLETE:
	_wDLCCounter--;
	if(_wDLCCounter <= 0)
	{
        	SetWindowPos(_hwndProgress,NULL, 0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_HIDEWINDOW);
        	ChangeFontSize(TRUE);
		_wDLCCounter = 0;
	}
        break;

    case DISPID_NEWWINDOW2:
        //pdparams->rgvarg[1].boolVal = VARIANT_TRUE;
        //break;        
        return HandleNewWindow2(NULL, pdparams);
            break;


    case DISPID_PROPERTYCHANGE:
    case DISPID_BEFORENAVIGATE2:
        break;
    default:
        return DISP_E_MEMBERNOTFOUND;
    }
    return S_OK;
}


STDMETHODIMP CMainWnd::moveTo( LONG x, LONG y)
{
    SetWindowPos(_hWnd, NULL, x, y, 0, 0, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE);
    return S_OK;
}

STDMETHODIMP CMainWnd::moveBy( LONG x, LONG y) 
{
    RECT rcWindow;

    GetWindowRect(_hWnd, &rcWindow);

    SetWindowPos(_hWnd, NULL, rcWindow.left + x, rcWindow.top + y, 0, 0,
                               SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE);
    return S_OK;
}


STDMETHODIMP CMainWnd::resizeTo( LONG x, LONG y) 
{
                // We do not want the size to be less then 100 for top level windows in browser
    if (x < 100)
        x = 100;

    if (y < 100)
        y = 100;

    SetWindowPos(_hWnd, NULL, 0, 0, x, y, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);

    return S_OK;             
}

STDMETHODIMP CMainWnd::resizeBy( LONG x, LONG y) 
{
    RECT rcWindow;
    long w, h;

    GetWindowRect(_hWnd, &rcWindow);

    w = rcWindow.right - rcWindow.left + x;
    h = rcWindow.bottom - rcWindow.top + y;

    if (w < 100)
        w = 100;

    if (h < 100)
        h = 100;

    SetWindowPos(_hWnd, NULL, 0, 0, w, h, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE);
    return S_OK;
}


EXTERN_C const GUID CGID_MSHTML;
extern "C" BOOL APIENTRY OpenURLDlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam);

LRESULT CMainWnd::HandleCommand(WPARAM wParam, LPARAM lParam)
{
    UINT nID = LOWORD(wParam);
    switch (nID)
    {
	case ID_INTERNET_OPTIONS:
	{
	   SHELLEXECUTEINFO sei;
           sei.cbSize = sizeof(sei);
           sei.fMask = SEE_MASK_FLAG_NO_UI;
           sei.hwnd = _hWnd;
           sei.lpVerb = NULL;
           sei.lpFile = L"ctlpnl";
           sei.lpParameters = L"inetcpl.cpl";
           sei.lpDirectory = NULL;
           sei.nShow = SW_SHOWNORMAL;

       	   ShellExecuteEx(&sei); 
	 }
	   break;
	case ID_FIND:
		FindString();
	    break;
        case ID_GO_BACK:
            _pBrowser->GoBack();
            return 0;
        case ID_GO_FORWARD:
            _pBrowser->GoForward();
            return 0;
        case ID_GO_HOME:
            _pBrowser->GoHome();
            return 0;
        case ID_GO_SEARCH:
            _pBrowser->GoSearch();
            return 0;
        case ID_VIEW_REFRESH:
            _pBrowser->Refresh();
            return 0;
        case ID_VIEW_STOP:
            _pBrowser->Stop();
            return 0;

        case ID_ZOOMUP:
            _wZoom++;
            if(_wZoom > 4)
                _wZoom = 4;
            ChangeFontSize(FALSE);
            return 0;
            
        case ID_ZOOMDOWN:
            _wZoom--;
            if(_wZoom < 0)
                _wZoom = 0;
            ChangeFontSize(FALSE);
            return 0;
        case ID_CLOSE:
            _pBrowser->ExecWB(OLECMDID_CLOSE, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
            return 0;
        case ID_FOCUS_URL:
        case ID_OPEN:
                {
                    WCHAR *szURL = new TCHAR[MAX_URL];
                    if(szURL)
                    {
                                int nRet = 0;                
                                BSTR bstrURL = NULL;
                                _pBrowser->get_LocationURL(&bstrURL);
                                nRet = StringCchCopy(szURL, MAX_URL, (LPCTSTR)bstrURL);
                                SysFreeString(bstrURL);
                    
                                nRet =  DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_OPEN_DIALOG), _hWnd, OpenURLDlgProc, (long)szURL);
                                bstrURL = SysAllocString(szURL);
                                if(nRet == 1)
                                {
                                        _pBrowser->Navigate(bstrURL, NULL, NULL, NULL, NULL);
                                }
                                else if(nRet == 2)
                                {
                                        HandleNewWindow2(bstrURL,NULL);
                                }
                              SysFreeString(bstrURL);
                        delete[] szURL;
                    }
                }
                return 0;
        case ID_FULLSCREEN:
        {
            DWORD dwStyle = GetWindowLong(_hWnd, GWL_STYLE);
            if(_fFullScreen)
            {
                dwStyle |= (WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME);
                SetWindowLong(_hWnd, GWL_STYLE, dwStyle);
                SetWindowPos(_hWnd,NULL,  _rcWnd.left, _rcWnd.top, _rcWnd.right-_rcWnd.left, _rcWnd.bottom-_rcWnd.top, SWP_NOZORDER);
                _fFullScreen = FALSE;
            }
            else
            {
                RECT rcWorkArea;
                
                SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
                _fFullScreen = TRUE;
                dwStyle &= ~(WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME);
                
                SetWindowLong(_hWnd, GWL_STYLE, dwStyle);
                SetWindowPos(_hWnd,NULL,  rcWorkArea.left, rcWorkArea.top, rcWorkArea.right-rcWorkArea.left, rcWorkArea.bottom-rcWorkArea.top, SWP_NOZORDER);

            }
         }
            return 0;
    }
    return 0;
}





EXTERN_C const GUID CGID_ShellDocView;

LRESULT CALLBACK CMainWnd::MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    CMainWnd *pMainWnd = (CMainWnd*)GetWindowLong(hwnd, GWL_USERDATA);

    if (pMainWnd)
    {
        switch (message)
        {
        
        case WM_CLOSE:
        case WM_DESTROY:
            if(pMainWnd)
                pMainWnd->Close();
            SetWindowLong(hwnd, GWL_USERDATA, (DWORD)0);
            ::PostQuitMessage(0);
            break;

		case WM_SETFOCUS:
			if (pMainWnd->_pIPActiveObj)
			{
				pMainWnd->_pIPActiveObj->OnFrameWindowActivate(LOWORD(wParam) != WA_INACTIVE);
			}
			return 0;

        case WM_SIZE:
            {
                RECT rcWnd;
                GetClientRect(hwnd, &rcWnd);
                SetWindowPos(pMainWnd->_hWndBrowser,  
					                            NULL,
					                            0,
					                            0,
					                            rcWnd.right-rcWnd.left, 
					                            rcWnd.bottom - rcWnd.top, 
					                            SWP_NOZORDER);		
            }
            // FALL THROUGH
        case  WM_MOVE:
                  if(!pMainWnd->_fFullScreen)  
		        GetWindowRect(hwnd, &pMainWnd->_rcWnd);			                                       
            break;

        case WM_COMMAND:
            return pMainWnd->HandleCommand(wParam, lParam);
            break;

        case WM_NOTIFY:
	    break;

        case WM_INITMENUPOPUP:
            break;

        case WM_SETTINGCHANGE:
            if(wParam == SPI_SETWORKAREA)
            {
                if(pMainWnd->_fFullScreen)
                {
                    RECT rcWorkArea;
                    // no need to change the window style here, just adjust for the new work-area.
                    SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
                    SetWindowPos(pMainWnd->_hWnd,NULL,  rcWorkArea.left, rcWorkArea.top, rcWorkArea.right-rcWorkArea.left, rcWorkArea.bottom-rcWorkArea.top, SWP_NOZORDER);
                }
            }
            break;
        default:
            break;
        }
    }
    return DefWindowProc(hwnd, message, wParam, lParam);
}

BOOL CMainWnd::PreTranslateMessage(LPMSG pMsg)
{
//    if (::TranslateAccelerator(_hWnd, _hAccelTbl, pMsg))  //first shot to the main frame
//        return TRUE;

    //then to mshtml
    if (_pIPActiveObj && pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)
    {
        HRESULT hr = _pIPActiveObj->TranslateAccelerator(pMsg);
        return (hr != S_FALSE);
    }
    return FALSE;
}

VOID CMainWnd::ChangeFontSize(BOOL fInit)
{
        VARIANT vaSize;
        vaSize.vt = VT_I4;

	if (fInit) {
		// Setting initial value
		vaSize.vt = 0;
		HRESULT hr = _pBrowser->ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER,
									   NULL, &vaSize);
		_wZoom = vaSize.lVal;
	} else {
		vaSize.lVal = _wZoom;
		HRESULT hr = _pBrowser->ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER,
									   &vaSize, NULL);
	}
}

VOID CMainWnd::Close()
{
    RETAILMSG(1,(L"IESIMPLE CMainWnd::Close"));

    // Tell the shell to die off
    SendMessage(_hWndBrowser, WM_CLOSE, 0,0);


	if(_pIPActiveObj)
	{
		_pIPActiveObj->Release();
	}
    _pIPActiveObj = NULL;
	if(_pCP)
	{
		_pCP->Unadvise(_dwEventCookie);
		_pCP->Release();
	}
    _pCP = NULL;
	if(_pObject)
	{
		_pObject->Close(FALSE);
		_pObject->Release();
	}
    _pObject = NULL;
	if(_pBrowser)
	    _pBrowser->Release();
    _pBrowser = NULL;

}




HRESULT CMainWnd::FindString()
{
    LPDISPATCH pDisp = NULL;
    LPOLECOMMANDTARGET pCmdTarg = NULL;
    HRESULT sts = S_OK;
    VARIANTARG var;

#define GOERROR_S(bNotCond)  {if (!(bNotCond)) goto errorS; }

    if (!_pBrowser)
        return S_OK;
    sts = _pBrowser->get_Document(&pDisp);
    GOERROR_S(pDisp);
    sts = pDisp->QueryInterface(IID_IOleCommandTarget, (LPVOID*)&pCmdTarg);
    GOERROR_S(pCmdTarg);

    var.vt   = VT_I4;
    var.lVal = 0;
    sts = pCmdTarg->Exec(
                        NULL,
                        OLECMDID_FIND,
                        MSOCMDEXECOPT_PROMPTUSER,
                        NULL,
                        &var);

    errorS:
    if (pCmdTarg)
        pCmdTarg->Release(); // release document's command target
    if (pDisp)
        pDisp->Release();    // release document's dispatch interface
    return sts;
}




BOOL HandleBrowse(HWND hwndOwner, WCHAR *szURL);
       
extern "C" BOOL APIENTRY OpenURLDlgProc (HWND hDlg, UINT message, UINT wParam, LONG lParam)
{

    WCHAR *szURL = (WCHAR *)GetWindowLong(hDlg,DWL_USER); 
    int         nRet = 4;
    
    switch(message)
    {

        case WM_INITDIALOG:
            {
                    if(!lParam)
                    {
                         EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);  
                         EnableWindow(GetDlgItem(hDlg, IDC_BROWSE), FALSE);
                    }
                    else
                    {
                            szURL = (WCHAR *)lParam;
                            SetWindowLong(hDlg, DWL_USER, (LONG)szURL);
                            SendMessage(GetDlgItem(hDlg, IDC_URL_EDIT), EM_LIMITTEXT, MAX_URL-1, 0);
                            if(szURL[0])
                            {
                            
                                   SetDlgItemText(hDlg, IDC_URL_EDIT, szURL);
                            }
                    }

            }
            return TRUE;

        case WM_COMMAND:
            switch (LOWORD(wParam))
            {	

                case IDOK:
                {
                    GetDlgItemText(hDlg, IDC_URL_EDIT, szURL, MAX_URL-1);    
                    BOOL bNewWnd = SendMessage(GetDlgItem(hDlg, IDC_NEWWINDOW), BM_GETCHECK, 0L, 0L);
                    nRet = (bNewWnd) ? 2 : 1; 
                }
               case IDCANCEL:
                    EndDialog(hDlg, nRet);
                    return TRUE;
                    
                    
	        case IDC_BROWSE:
                    if(HandleBrowse(hDlg, szURL))
                    {
                        SetDlgItemText(hDlg, IDC_URL_EDIT, szURL);
                    }       
                    
                default:
                    return (TRUE);
            }
            break;

        case WM_DESTROY:
            SetWindowLong(hDlg, DWL_USER, 0);
            break;

    }
    return (FALSE);


}


extern HINSTANCE   g_hInstance;
BOOL HandleBrowse(HWND hwndOwner, WCHAR *szURL)
{

    OPENFILENAME    ofn;
    WCHAR           wchFilter[MAX_PATH];
    WCHAR           wchFile[MAX_PATH+8]; 
    int             cbLen;

 
     // Initialize ofn struct
    memset(&ofn, 0, sizeof(ofn));
    ofn.lStructSize     = sizeof(ofn);
    ofn.hwndOwner       = hwndOwner;
    ofn.Flags           = OFN_FILEMUSTEXIST |
                            OFN_PATHMUSTEXIST   |
                            OFN_OVERWRITEPROMPT |
                            OFN_HIDEREADONLY;

   cbLen = LoadString(g_hInstance, IDS_BROWSEFILTER,
                       wchFilter, MAX_PATH-2);

    if (cbLen>0)
    {
        for (; cbLen >= 0; cbLen--)
        {
            if (wchFilter[cbLen]== L'@')
            {
                wchFilter[cbLen] = 0;
            }
        }
    }
    else
    {
        return FALSE;
    }
   
    
    ofn.lpstrFilter = wchFilter;
    ofn.nFilterIndex = 1;
    wcscpy(wchFile, L"file://");
    
    ofn.lpstrFile = wchFile+wcslen(wchFile);  // prefix the string with "file://"
    ofn.nMaxFile = MAX_PATH;
    if (GetOpenFileName(&ofn))
    {
        wcsncpy(szURL, wchFile, MAX_URL-1);
        return TRUE;
    }

    return FALSE;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影中文字幕在线观看| 国产一区不卡在线| 精品国产区一区| 欧美视频在线不卡| 成人午夜电影网站| 偷拍一区二区三区四区| 亚洲欧美日韩在线播放| 久久久精品tv| 欧美电影免费观看完整版| 91黄视频在线| www.一区二区| 国产成人自拍网| 国产在线精品国自产拍免费| 日韩综合在线视频| 亚洲成人av资源| 亚洲免费观看在线观看| 国产精品视频免费| 久久久久99精品一区| 日韩一区二区精品在线观看| 欧美中文字幕不卡| 91成人网在线| 色婷婷综合中文久久一本| www.欧美色图| 成人久久18免费网站麻豆| 久久精品国产一区二区| 麻豆专区一区二区三区四区五区| 一区二区三区在线视频播放| 亚洲人成网站色在线观看| 中文字幕在线免费不卡| 日本一区二区三区四区| 久久美女高清视频| 久久在线免费观看| xfplay精品久久| 久久九九全国免费| 国产三级精品在线| 国产欧美一二三区| 国产精品乱码妇女bbbb| 国产精品毛片a∨一区二区三区| 国产婷婷色一区二区三区在线| 精品91自产拍在线观看一区| 欧美电影免费观看高清完整版在| 日韩欧美一区电影| 精品精品欲导航| xnxx国产精品| 中文字幕av一区二区三区高| 欧美国产精品一区| 综合久久久久久| 亚洲香肠在线观看| 亚洲成av人片在线| 麻豆国产欧美一区二区三区| 狠狠色狠狠色综合系列| 国产成+人+日韩+欧美+亚洲| 成人app在线观看| 在线观看视频91| 91.成人天堂一区| 亚洲一二三区在线观看| 午夜久久久影院| 免费视频一区二区| 国产成人午夜片在线观看高清观看| 成人黄色综合网站| 欧美在线综合视频| 欧美变态口味重另类| 国产精品婷婷午夜在线观看| 亚洲乱码国产乱码精品精98午夜| 亚洲成av人**亚洲成av**| 精品一区二区三区久久| va亚洲va日韩不卡在线观看| 欧美日韩电影一区| 久久影院午夜论| 亚洲精品你懂的| 精品一区二区免费在线观看| 成人动漫精品一区二区| 欧美福利一区二区| 国产女主播视频一区二区| 一区二区理论电影在线观看| 久久精工是国产品牌吗| 99久久久精品| 日韩免费在线观看| 亚洲精品国产一区二区精华液| 麻豆精品一二三| 色婷婷综合五月| 久久网站热最新地址| 亚洲一区二三区| 国产黄色91视频| 欧美日韩国产另类一区| 国产欧美日本一区视频| 亚洲成av人在线观看| 风间由美一区二区三区在线观看 | 国产成a人无v码亚洲福利| 色国产精品一区在线观看| 精品国产乱码久久| 一片黄亚洲嫩模| 成人午夜视频免费看| 欧美一区二区三区在| 亚洲桃色在线一区| 国产成人免费av在线| 欧美一区二区三区小说| 自拍av一区二区三区| 国内精品写真在线观看| 欧美日韩专区在线| 中文字幕一区二区三区av| 久久99久久精品| 欧美日韩免费在线视频| 中文字幕亚洲在| 国产毛片精品一区| 欧美成人三级在线| 午夜精品在线看| 在线观看av不卡| 国产精品国产三级国产aⅴ无密码| 久久精品免费看| 5858s免费视频成人| 亚洲午夜久久久久久久久久久| 成人综合婷婷国产精品久久免费| 欧美成人在线直播| 日韩av电影免费观看高清完整版 | 91麻豆123| 国产精品污www在线观看| 久久99九九99精品| 日韩视频一区在线观看| 日本成人中文字幕在线视频| 欧美日韩欧美一区二区| 亚洲成在人线免费| 欧美日本一道本| 亚洲sss视频在线视频| 欧美色手机在线观看| 国产尤物一区二区在线| 26uuu亚洲综合色欧美| 久久国产精品区| 欧美精品一区二区三区在线播放| 日韩国产在线一| 91精品麻豆日日躁夜夜躁| 婷婷久久综合九色国产成人| 欧美日韩中文国产| 日日夜夜一区二区| 91精品国产欧美一区二区18| 爽爽淫人综合网网站| 欧美一区二区性放荡片| 日韩黄色免费电影| 日韩欧美不卡一区| 国产中文字幕精品| 国产日韩精品一区| 91在线视频播放| 亚洲国产一区在线观看| 9191成人精品久久| 精品一区二区三区久久久| 国产日韩欧美精品在线| caoporen国产精品视频| 亚洲欧美激情一区二区| 欧亚一区二区三区| 免费精品99久久国产综合精品| 欧美大度的电影原声| 国产福利一区二区| 综合av第一页| 欧美日韩在线观看一区二区| 日韩国产欧美一区二区三区| 精品国产亚洲在线| 粉嫩aⅴ一区二区三区四区| 自拍偷在线精品自拍偷无码专区| 欧美午夜精品一区| 男女男精品网站| 国产精品麻豆一区二区| 欧美午夜不卡在线观看免费| 麻豆精品精品国产自在97香蕉| 国产欧美精品一区二区色综合朱莉| 91免费在线看| 免费观看一级特黄欧美大片| 欧美国产一区在线| 欧美日韩一二三区| 国产精品一区一区三区| 亚洲乱码国产乱码精品精小说| 欧美一卡二卡在线观看| 波多野结衣中文字幕一区| 手机精品视频在线观看| 中文字幕巨乱亚洲| 欧美精品久久99久久在免费线| 国产自产2019最新不卡| 亚洲综合一区二区精品导航| 日韩精品资源二区在线| 91年精品国产| 国产在线播精品第三| 亚洲一二三四区不卡| 国产日韩欧美在线一区| 在线播放视频一区| 不卡的av电影在线观看| 免费在线看成人av| 1000部国产精品成人观看| 日韩欧美的一区二区| 色哟哟国产精品| 国产精品羞羞答答xxdd| 日日欢夜夜爽一区| 亚洲女女做受ⅹxx高潮| 久久久777精品电影网影网| 6080国产精品一区二区| 色一区在线观看| 丁香婷婷综合色啪| 国模套图日韩精品一区二区| 亚洲线精品一区二区三区| 中文字幕一区二区三中文字幕| 欧美精品一区二区三区在线| 91久久国产最好的精华液|