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

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

?? pcdmpicture.cpp

?? 《Windows CE 權威指南》(作者:(美)CHRIS MUENCH
?? CPP
字號:
// PCDMPicture.cpp : Implementation of CPCDMPicture

#include "stdafx.h"
#include "PCDMUI.h"
#include "PCDMPicture.h"

/////////////////////////////////////////////////////////////////////////////
// CPCDMPicture


STDMETHODIMP CPCDMPicture::Load(BSTR Path, LONG ResourceID)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

// <BOOK_ADDON STEP6 Chapter 10.1.4> ***********************************
	if (!m_hBitmap)	DeleteObject(m_hBitmap);
	if (!m_lpSrcDIB) free(m_lpSrcDIB);
	if (lstrlen(Path)==0)
		m_hBitmap=LoadBitmap(_Module.m_hInst,MAKEINTRESOURCE(ResourceID));
	else
	{
		switch (ResourceID)
		{
			case 0:	
#ifdef UNDER_CE
				m_hBitmap=SHLoadDIBitmap(Path);
#else
				m_lpSrcDIB=ReadBMPFile(Path,0);
#endif
			  break;
			case -1:
				m_hBitmap=LoadBitmap(_Module.m_hInst,Path);
			  break;
			default:
				m_lpSrcDIB=ReadBMPFile(Path,ResourceID);
			  break;
		}
	}
// </BOOK_ADDON STEP6 Chapter 10.1.4> ***********************************
// <BOOK_ADDON STEP7 Chapter 10.2.1> ***********************************
	if (m_hBitmap!=NULL || m_lpSrcDIB!=NULL)
		FireViewChange();
// </BOOK_ADDON STEP7 Chapter 10.2.1> ***********************************
	return S_OK;
}

LPBYTE CPCDMPicture::ReadBMPFile(LPCTSTR szFileName, DWORD Offset)
{
HANDLE            hFile;
BITMAPFILEHEADER  bfh;
DWORD            	dwBytes;
LPBYTE            lpDIB = NULL, lpTemp = NULL;
WORD              wPaletteSize = 0;
DWORD            	dwBitsSize = 0;

    // Open the file
    if( (hFile=CreateFile( szFileName, GENERIC_READ, 0, NULL,
						  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL))
		== INVALID_HANDLE_VALUE )
        return NULL; 
    if( SetFilePointer( hFile, Offset, NULL, FILE_BEGIN ) == 0xffffffff )		
    {
        CloseHandle( hFile );
        return NULL;
    }
    // Read the header
    if((! ReadFile(hFile,&bfh,sizeof(BITMAPFILEHEADER),&dwBytes, NULL)) 
		|| ( dwBytes != sizeof( BITMAPFILEHEADER ) ) )
    {
        CloseHandle( hFile );
        return NULL;
    }
    // Does it look like a BMP file?
    if((bfh.bfType != 0x4d42) || (bfh.bfReserved1!=0) || (bfh.bfReserved2!=0) )
    {
        CloseHandle( hFile );
        return NULL;
    }
    // Allocate memory for DIB
    if( (lpDIB = (LPBYTE) malloc( sizeof( BITMAPINFO ))) == NULL )
    {
        CloseHandle( hFile );
        return NULL;
    }
    // Read in the BITMAPINFOHEADER
    if( (!ReadFile(hFile,lpDIB,sizeof(BITMAPINFOHEADER),&dwBytes,NULL))
		 || (dwBytes!=sizeof(BITMAPINFOHEADER)) )
    {
        CloseHandle( hFile );
        free( lpDIB );
        return NULL;
    }
    if( ((LPBITMAPINFOHEADER)lpDIB)->biSize != 
		sizeof( BITMAPINFOHEADER ) )
    {
        CloseHandle( hFile );
        free( lpDIB );
        return NULL;
    }
    wPaletteSize = PaletteSize((LPSTR)lpDIB);
    dwBitsSize = ((LPBITMAPINFOHEADER)lpDIB)->biHeight * 
				 BytesPerLine((LPBITMAPINFOHEADER)lpDIB);
    // realloc to account for the total size of the DIB
    if( (lpTemp = (LPBYTE)realloc(lpDIB, sizeof( BITMAPINFOHEADER ) + 
		wPaletteSize + dwBitsSize )) == NULL)
    {
        CloseHandle( hFile );
        free( lpDIB );
        return NULL;
    }
    lpDIB = lpTemp;
    // If there is a color table, read it
    if( wPaletteSize != 0 )
    {
        if( (!ReadFile( hFile, ((LPBITMAPINFO)lpDIB)->bmiColors,
			wPaletteSize, &dwBytes, NULL )) 
			|| (dwBytes!=wPaletteSize) )
        {
            CloseHandle( hFile );
            free( lpDIB );
            return NULL;
        }
    }
    if( bfh.bfOffBits != 0 )
    {
        if( SetFilePointer( hFile, bfh.bfOffBits+Offset, NULL, 
			FILE_BEGIN ) == 0xffffffff )
        {
            CloseHandle( hFile );
            free( lpDIB );
            return NULL;
        }
    }
    // Read the image bits
    if( (!ReadFile( hFile, FindDIBBits((LPSTR)lpDIB), dwBitsSize,
		 &dwBytes, NULL )) || (dwBytes!=dwBitsSize) )
    {
        CloseHandle( hFile );
        free( lpDIB );
        return NULL;
    }
    // clean up
    CloseHandle( hFile );
    return lpDIB;
}

LPSTR CPCDMPicture::FindDIBBits( LPSTR lpbi )
{
   return ( lpbi + *(LPDWORD)lpbi + PaletteSize( lpbi ) );
}

WORD CPCDMPicture::DIBNumColors( LPSTR lpbi )
{
    WORD wBitCount;
    DWORD dwClrUsed;

    dwClrUsed = ((LPBITMAPINFOHEADER) lpbi)->biClrUsed;

    if (dwClrUsed)
        return (WORD) dwClrUsed;

    wBitCount = ((LPBITMAPINFOHEADER) lpbi)->biBitCount;

    switch (wBitCount)
    {
        case 1: return 2;
        case 2: return 4;
		case 4: return 16;
        case 8:	return 256;
        default:return 0;
    }
    return 0;
}

WORD CPCDMPicture::PaletteSize( LPSTR lpbi )
{
    return ( DIBNumColors( lpbi ) * sizeof( RGBQUAD ) );
}

DWORD CPCDMPicture::BytesPerLine( LPBITMAPINFOHEADER lpBMIH )
{
    return WIDTHBYTES(lpBMIH->biWidth * lpBMIH->biPlanes 
    * lpBMIH->biBitCount);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久99| 成人一区二区视频| 国产精品一区二区不卡| 91视频一区二区三区| 日韩一区二区精品| 亚洲久本草在线中文字幕| 国产在线日韩欧美| 欧美久久高跟鞋激| 亚洲三级在线观看| 国产高清成人在线| 欧美电影免费观看高清完整版在线 | 一本到三区不卡视频| 精品日韩欧美在线| 日韩精品欧美精品| 欧美影视一区二区三区| 国产精品免费视频网站| 韩国毛片一区二区三区| 日韩欧美国产麻豆| 五月天激情小说综合| 欧美亚洲国产bt| 亚洲在线视频网站| 日本丶国产丶欧美色综合| 欧美激情资源网| 国产精品亚洲一区二区三区在线 | 99精品在线观看视频| 精品国产伦一区二区三区免费| 午夜影院久久久| 欧美性生活一区| 一区二区在线免费| 91色婷婷久久久久合中文| 中文字幕成人网| 成熟亚洲日本毛茸茸凸凹| 久久精品日产第一区二区三区高清版| 精品在线视频一区| 久久精品亚洲麻豆av一区二区| 免费成人在线网站| 久久综合丝袜日本网| 国产精品91xxx| 国产日韩欧美a| 成人免费毛片嘿嘿连载视频| 国产精品丝袜久久久久久app| 国产大片一区二区| 亚洲欧洲韩国日本视频| 91视频.com| 午夜视频在线观看一区二区| 678五月天丁香亚洲综合网| 免播放器亚洲一区| 久久精品欧美日韩| 不卡的电影网站| 亚洲大片一区二区三区| 欧美一区二区在线免费播放 | 日韩精品专区在线影院观看| 精品无码三级在线观看视频| 国产日韩精品一区二区浪潮av| 成人激情免费视频| 一区二区三区在线影院| 欧美一区二区三区成人| 国内精品伊人久久久久av影院| 日本一区二区三区dvd视频在线| 成人av电影在线观看| 亚洲一区在线看| 欧美tk—视频vk| 成人av电影在线| 天堂av在线一区| 国产亚洲1区2区3区| 欧美中文字幕一二三区视频| 蜜臂av日日欢夜夜爽一区| 欧美激情一区二区三区不卡| 色婷婷激情久久| 极品尤物av久久免费看| 亚洲天天做日日做天天谢日日欢 | 久久久国产精品不卡| av电影在线不卡| 卡一卡二国产精品| 亚洲欧美激情小说另类| 精品久久99ma| 一本大道av伊人久久综合| 看片网站欧美日韩| 亚洲另类春色国产| 久久欧美一区二区| 欧美午夜在线观看| 成人黄色片在线观看| 男人的天堂亚洲一区| 亚洲欧美日韩国产成人精品影院 | 欧美猛男gaygay网站| 国产黑丝在线一区二区三区| 亚洲成人av资源| 中文字幕一区二区三| 欧美tk—视频vk| 欧美精品一卡二卡| 色综合久久综合网97色综合| 国产精品一区二区视频| 日韩二区在线观看| 亚洲自拍偷拍av| 国产精品久久毛片av大全日韩| 欧美一区二区精品久久911| 在线观看视频一区二区欧美日韩| 国产成人福利片| 国产主播一区二区三区| 另类欧美日韩国产在线| 亚洲国产中文字幕在线视频综合| 亚洲人成小说网站色在线| 国产日韩欧美不卡在线| 久久婷婷久久一区二区三区| 精品噜噜噜噜久久久久久久久试看| 欧美日韩中文字幕精品| 欧美专区在线观看一区| 欧洲人成人精品| 欧美在线一区二区三区| 91女厕偷拍女厕偷拍高清| 处破女av一区二区| 国产99精品在线观看| 懂色中文一区二区在线播放| 国产精品系列在线播放| 国产乱码精品一品二品| 国产综合色视频| 国产主播一区二区三区| 国产高清精品久久久久| 成人激情校园春色| 91在线高清观看| 欧美亚洲综合在线| 欧美三级日韩在线| 欧美精品一二三| 欧美va亚洲va| 国产精品午夜春色av| 综合电影一区二区三区 | 狠狠v欧美v日韩v亚洲ⅴ| 免费不卡在线视频| 国产一区二区在线电影| 黄色日韩网站视频| 高清视频一区二区| 一本到不卡免费一区二区| 欧美无砖砖区免费| 欧美一区二区三区免费观看视频| 久久综合久久久久88| 中文字幕乱码日本亚洲一区二区| 亚洲欧洲精品成人久久奇米网 | 国产精品欧美经典| 综合电影一区二区三区 | 亚洲一区在线观看视频| 日韩中文字幕区一区有砖一区| 日韩精品每日更新| 国产精品综合一区二区三区| 99久久免费精品高清特色大片| 欧美性淫爽ww久久久久无| 91麻豆精品国产91久久久久久 | 亚洲超丰满肉感bbw| 久久国产夜色精品鲁鲁99| 懂色av一区二区夜夜嗨| 欧美性猛交xxxxxxxx| 久久无码av三级| 亚洲一级电影视频| 国产精品一区二区不卡| 欧美日韩视频专区在线播放| 国产欧美一区二区精品久导航 | 欧美高清激情brazzers| 久久先锋资源网| 亚洲午夜激情网站| 国产九色sp调教91| 欧美老肥妇做.爰bbww视频| 国产欧美日本一区视频| 偷拍日韩校园综合在线| 成人av综合一区| 欧美一区二区三区播放老司机| 亚洲色图都市小说| 国产精品18久久久久| 欧美三级电影精品| 国产精品国产精品国产专区不蜜| 日本成人超碰在线观看| 色8久久精品久久久久久蜜| 欧美精品一区二区三区四区| 亚洲国产一区视频| 成人18视频日本| 欧美精品一区二| 日韩国产欧美在线观看| 色噜噜狠狠成人中文综合| 久久先锋影音av| 久久精品免费观看| 欧美亚洲尤物久久| 亚洲欧洲制服丝袜| 国产凹凸在线观看一区二区| 91精品一区二区三区久久久久久| 亚洲狠狠丁香婷婷综合久久久| 国产成人免费视频网站高清观看视频 | 精品国产免费久久 | 成人av在线一区二区| 日韩精品综合一本久道在线视频| 无吗不卡中文字幕| 一本一道久久a久久精品| 日韩理论片网站| av不卡一区二区三区| 国产精品国产成人国产三级| 国产精品一区二区久久不卡 | 国产麻豆成人传媒免费观看| 日韩一级视频免费观看在线| 污片在线观看一区二区| 精品视频色一区| 性感美女久久精品| 欧美日韩国产高清一区| 日本不卡视频一二三区|