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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mindeskt.cpp

?? 該代碼壓縮包只為需要研究CE下的任務(wù)管理器的實(shí)現(xiàn)而提供的。某些通用的頭文件沒有包含在其中
?? CPP
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*---------------------------------------------------------------------------*\
 *
 * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
 * 
 *
 *  file:  MinDeskT.cpp
 *  purpose: Implement Sample shell desktop window
 *
\*---------------------------------------------------------------------------*/
#include "windows.h"
#include "minshell.h"


// Desktop bitmap globals
DWORD   g_fTileWallp;
TCHAR   g_szBMPName[MAX_PATH+1];
HBRUSH  g_hbrWallp;
RECT    g_rcWp;

LRESULT CALLBACK Desktop_WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);

// Register the desktop window class
BOOL Desktop_Register(HINSTANCE hInst)
{
	WNDCLASS wc;

	wc.style         = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc   = (WNDPROC)Desktop_WndProc;
    wc.cbClsExtra    = 0;                       // No per-class extra data.
    wc.cbWndExtra    = 4;                       // No per-window extra data.
    wc.hInstance     = hInst;                   // Owner of this class
    wc.hIcon         = NULL;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+1);
    wc.lpszMenuName  = NULL;                   // Menu name from .RC
    // IMPORTANT NOTE: The desktop window class name MUST be 
    // "DesktopExplorerWindow". See block comment on use of 
    // the RegisterTaskBar API in MINTASK.CPP
    wc.lpszClassName = c_szDesktopWndClass;

	RegisterClass(&wc);
	return TRUE;
}

// Create & show the desktop window
HRESULT Desktop_InitInstance(int nCmdShow)
{
	RECT rc;
	RECT rcWorkArea;
	
	SystemParametersInfo(SPI_GETWORKAREA, 0, (void*)&rcWorkArea, 0);
	
	
	g_hwndDesktop = CreateWindow(c_szDesktopWndClass, TEXT(""), WS_VISIBLE, 0, 0,
						  rcWorkArea.right, rcWorkArea.bottom, NULL, NULL,
						  g_hInst, (LPVOID)NULL);
	if (!g_hwndDesktop) {
        return E_FAIL;
	}
	DEBUGMSG(ZONE_TRACE, (TEXT("Created Minshell desktop window.\r\n")));

	GetClientRect(g_hwndDesktop, &rc);
		
	ShowWindow(g_hwndDesktop, nCmdShow);
	UpdateWindow(g_hwndDesktop);	

	return NOERROR;
}

HBRUSH WINAPI
SHLoadDIBitmapBrush( LPCTSTR szFileName, int *pnWidth, int *pnHeight )
{
    HBRUSH hbrush = NULL;
    BITMAPFILEHEADER bmfh;
    HANDLE hFile;
    DWORD dwFileSize, dwRead;
    BITMAPINFOHEADER *pbmih;
    
        
    hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ,
                       NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile == INVALID_HANDLE_VALUE) {
        return NULL;
    }

    dwFileSize = GetFileSize(hFile, NULL);
    ReadFile(hFile, (LPVOID)&bmfh, sizeof(BITMAPFILEHEADER), &dwRead, NULL);

    if( bmfh.bfType == MAKEWORD('B','M') &&
        (pbmih = (BITMAPINFOHEADER *)VirtualAlloc(
                                        NULL,
                                        (dwFileSize - dwRead),
                                        MEM_COMMIT | MEM_RESERVE,
                                        PAGE_READWRITE )) ) {

        ReadFile(hFile, (LPVOID)pbmih, (dwFileSize - dwRead), &dwRead, NULL);
    
        if( hbrush = CreateDIBPatternBrushPt(pbmih, DIB_RGB_COLORS) ) {
            *pnWidth = pbmih->biWidth;
            *pnHeight = pbmih->biHeight; 
        }

        VirtualFree(pbmih, 0, MEM_RELEASE);
    }

    CloseHandle(hFile);
    return hbrush;

}

LRESULT Desktop_LoadWallpaper(HWND hwnd, BOOL fInitial)
{
	DWORD dwSize, dwType, lRet, fTile = 0;
	TCHAR szTemp[MAX_PATH+1];
  	HKEY  hkey;
  	int x, y;

	if(RegOpenKeyEx(HKEY_CURRENT_USER, L"ControlPanel\\Desktop", 0, 0, &hkey) == ERROR_SUCCESS) 
	{
		dwSize = sizeof(fTile);
		RegQueryValueEx(hkey, L"tile", NULL, &dwType, (LPBYTE)&fTile, &dwSize);

		dwSize = sizeof(szTemp);
		lRet = RegQueryValueEx(hkey, L"wallpaper", NULL, &dwType, (LPBYTE)szTemp, &dwSize);

		if(ERROR_SUCCESS==lRet && dwType==REG_SZ)
		{
			// if not fInitial check if the wallpaper (BMP path or tile flag) has changed
			if(!fInitial && (fTile==g_fTileWallp) && (0==lstrcmpi(szTemp, g_szBMPName)))
			{
				// no change. Skip reloading the BMP
				ASSERT(g_hbrWallp);
				return TRUE;
			}
			// else save the new values
			g_fTileWallp = fTile;
			lstrcpy(g_szBMPName, szTemp);
			
			// need to repaint whole thing, so invalidate entire desktop window
			InvalidateRect(g_hwndDesktop, NULL, TRUE);

			DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop wallpaper BMP CHANGED!!\r\n"));
			
    		if( g_hbrWallp )
        		DeleteObject(g_hbrWallp);

			g_hbrWallp = SHLoadDIBitmapBrush(g_szBMPName, &x, &y);

        	if(!g_fTileWallp) 
        	{
            	g_rcWp.left = max( 0, (GetSystemMetrics( SM_CXSCREEN ) - x) / 2 );
            	g_rcWp.top = max( 0, (GetSystemMetrics( SM_CYSCREEN ) - y) / 2 );
            	g_rcWp.right = g_rcWp.left + x;
            	g_rcWp.bottom = g_rcWp.top + y;
				DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop Loaded Wallpaper(%s), size=(%d, %d) loc=%d, %d)\r\n", g_szBMPName, x, y, g_rcWp.left, g_rcWp.right));
        	}
			else { DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop Loaded Wallpaper(%s) TILED\r\n", g_szBMPName)); }
		}
		else { DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop FAILED to get wallpaper reg entry\r\n")); }
		RegCloseKey(hkey);
	}
	else { DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop NO wallpaper reg entry\r\n")); }
	
	return TRUE;
} 

void Desktop_OnPaintBkgnd(HWND hwnd, HDC hdc)
{
	RECT rc;
    HBRUSH hBkBrush = CreateSolidBrush(GetSysColor(COLOR_BACKGROUND));

	DEBUGMSG(ZONE_TRACEDESKT, (L"Desktop PAINTING\r\n"));

    GetClipBox( hdc, &rc );
  	if( !g_hbrWallp ) {
    	FillRect( hdc, &rc, hBkBrush);
    } else {
		if( g_fTileWallp ) {
        	FillRect( hdc, &rc, g_hbrWallp );
        } else {
         	FillRect( hdc, &rc, hBkBrush);
            SetBrushOrgEx( hdc, g_rcWp.left, g_rcWp.top, NULL );
            FillRect( hdc, &g_rcWp, g_hbrWallp );
    	}
    }
    DeleteObject(hBkBrush);
}


LRESULT CALLBACK
Desktop_WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
	DEBUGMSG(ZONE_TRACEMSGHF, (TEXT("Desktop Window Msg=%x wp=%x lp=%x\r\n"), msg, wp, lp));
	switch(msg)
	{
    case WM_CREATE:
        Desktop_LoadWallpaper(hwnd, TRUE);
        break;

    case WM_SETTINGCHANGE:
        // This message is sent out when the desktop wallpaper setting is 
        // changed (and on much else). Read our regkeys again & see if our 
        // wallpaper really changed
		if(wp == SPI_SETDESKWALLPAPER)
			Desktop_LoadWallpaper(hwnd, FALSE);
		break;

    case WM_DESTROY:
        if( g_hbrWallp ) 
        {
            DeleteObject(g_hbrWallp);
            g_hbrWallp = NULL;
        }
        break;    

	case WM_ERASEBKGND: 
		Desktop_OnPaintBkgnd(hwnd, (HDC)wp);
		break;
		
	default: 
		return DefWindowProc(hwnd, msg, wp, lp);
	}
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费观看日本一区| 中文字幕免费在线观看视频一区| 亚洲人成网站色在线观看| 国产白丝精品91爽爽久久| 中文一区一区三区高中清不卡| 成人黄色大片在线观看| 欧美日韩五月天| 国产精品美女久久久久aⅴ| 成人一区在线看| 自拍偷自拍亚洲精品播放| 精品国产乱码久久久久久老虎 | 蓝色福利精品导航| 日韩精品中文字幕一区| 成人免费毛片aaaaa**| 亚洲精品乱码久久久久久黑人| 欧美三级三级三级| 精品一区二区三区欧美| 中文字幕第一区综合| 91久久精品日日躁夜夜躁欧美| 日韩专区一卡二卡| 国产亚洲一本大道中文在线| 色婷婷久久久亚洲一区二区三区 | 亚洲精品免费在线| 欧美女孩性生活视频| 精品一区二区三区免费| 中文字幕中文字幕一区二区| 欧美巨大另类极品videosbest | 一区二区三区在线观看国产| 欧美一级高清片| av一区二区三区黑人| 天天综合网 天天综合色| 国产午夜亚洲精品不卡| 91麻豆精东视频| 国内精品自线一区二区三区视频| 综合色天天鬼久久鬼色| 精品欧美乱码久久久久久| 色综合一个色综合| 精品一区二区三区在线播放 | 亚洲欧美另类久久久精品| 91精品国产一区二区三区蜜臀| av在线这里只有精品| 蜜臀久久99精品久久久久宅男| 色综合欧美在线| 精品99一区二区| 免费一级片91| 最近中文字幕一区二区三区| 日韩欧美成人一区二区| 日本韩国一区二区三区视频| 国产传媒欧美日韩成人| 美女在线视频一区| 午夜精品一区二区三区免费视频| 国产精品欧美一区喷水| 欧美岛国在线观看| 精品视频资源站| 色视频一区二区| 9久草视频在线视频精品| 国产一区二区在线视频| 奇米精品一区二区三区在线观看一| 国产欧美一区二区精品仙草咪| 欧美精品一二三区| 在线欧美小视频| 一本久道久久综合中文字幕| 国产成人久久精品77777最新版本| 美日韩一级片在线观看| 秋霞影院一区二区| 日韩电影在线观看网站| 亚洲精品乱码久久久久久久久| 国产精品拍天天在线| 欧美极品xxx| 欧美韩日一区二区三区| 国产欧美一区二区精品婷婷 | 欧美日韩在线播放三区四区| 91啪亚洲精品| 不卡的av网站| 成人免费看片app下载| 国产999精品久久| 国产成a人亚洲精品| 国产精品亚洲综合一区在线观看| 人人精品人人爱| 轻轻草成人在线| 老司机午夜精品| 久久99日本精品| 狠狠色狠狠色综合| 国产福利一区二区| 国产成人精品一区二| 成人小视频在线观看| 不卡视频免费播放| 色呦呦国产精品| 精品视频资源站| 欧美电视剧在线观看完整版| 久久综合视频网| 中文字幕一区在线观看| 亚洲精品日韩一| 性久久久久久久| 狠狠色狠狠色综合日日91app| 国产主播一区二区| 波多野结衣欧美| 91久久线看在观草草青青| 欧美午夜免费电影| 日韩欧美亚洲一区二区| 久久蜜桃香蕉精品一区二区三区| 国产精品亲子乱子伦xxxx裸| 亚洲人成精品久久久久久| 午夜欧美大尺度福利影院在线看| 裸体健美xxxx欧美裸体表演| 国产精品一品视频| 在线观看日韩国产| 欧美电影免费提供在线观看| 欧美激情一区二区三区不卡| 亚洲影院在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 成人精品亚洲人成在线| 欧美日韩一区二区三区高清| www成人在线观看| 一区二区三区在线观看动漫| 老司机精品视频线观看86| 成人免费看片app下载| 欧美群妇大交群中文字幕| 久久久国产一区二区三区四区小说| 亚洲视频一二三| 美女一区二区三区| 91丨九色丨尤物| 日韩欧美亚洲国产另类| 亚洲女人****多毛耸耸8| 麻豆成人91精品二区三区| av在线免费不卡| 欧美成人精精品一区二区频| 亚洲靠逼com| 激情六月婷婷久久| 欧美性生活久久| 欧美激情自拍偷拍| 麻豆一区二区99久久久久| 色狠狠av一区二区三区| 久久奇米777| 天堂久久一区二区三区| 99久久婷婷国产综合精品| 欧美tickling网站挠脚心| 亚洲一二三专区| 成人激情免费视频| 日韩精品一区二区三区在线观看 | 国产综合久久久久久鬼色| 欧美午夜精品久久久| 韩国成人在线视频| 欧美在线一区二区三区| 国产精品电影一区二区三区| 精彩视频一区二区三区 | 色欧美片视频在线观看| 久久蜜桃一区二区| 奇米888四色在线精品| 欧美日韩视频第一区| 亚洲精品欧美激情| 99久久免费精品| 亚洲国产精品激情在线观看| 国产综合成人久久大片91| 欧美tickling挠脚心丨vk| 丝袜美腿一区二区三区| 欧美三级日韩三级| 亚洲一区二区三区视频在线播放 | 国产一区不卡视频| 精品久久久三级丝袜| 美女视频一区在线观看| 欧美日本精品一区二区三区| 亚洲电影第三页| 欧美日韩国产中文| 亚洲成av人在线观看| 欧美三级电影网站| 亚洲成人免费观看| 69久久99精品久久久久婷婷| 亚洲大片免费看| 欧美视频精品在线| 亚洲午夜免费视频| 欧美精品国产精品| 日本中文字幕一区| 日韩欧美一区二区不卡| 久久精品国产精品青草| 日韩精品中文字幕在线一区| 国产在线精品一区二区| 久久久久久久综合狠狠综合| 国产高清不卡二三区| 国产精品麻豆99久久久久久| 99精品视频一区| 亚洲国产乱码最新视频| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲成va人在线观看| 337p亚洲精品色噜噜| 青青草97国产精品免费观看 | 亚洲色图视频网站| 欧美在线一区二区| 日本不卡视频一二三区| 久久久99久久| 一本一道综合狠狠老| 丝袜亚洲另类欧美综合| xvideos.蜜桃一区二区| 99视频在线精品| 在线观看亚洲a| 蜜臀精品久久久久久蜜臀| 国产欧美一区二区三区在线看蜜臀 | 欧美国产日韩亚洲一区| 色婷婷av久久久久久久| 久久国产生活片100|