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

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

?? fade.c

?? C:Documents and SettingsAdministrator桌面VC++多媒體特效制作百例CHAR05PALFADE
?? C
?? 第 1 頁 / 共 2 頁
字號:
// History:  Date       Author        Reason
//           5/24/95    GGB           Created
//****************************************************************************

BOOL GetFileName (LPSTR szFileName)
{
   OPENFILENAME   of;
   DWORD          flags;
   static char    szTitle[30];         // Dialog Box title
   static char    szTemplate[20];      // Dialog Box template
   static char    szFile[256];         // File name
   static char    szFileTitle[256];    // Title
   static char    szDrive[5];          // Drive
   static char    szDir[256];          // Directory
   static char    szFname[10];         // Filename
   static char    szExt[4];            // Extension
   char *szFilter[] =                  // Filter
      {
      "Bitmaps",
      "*.bmp;*.dib;*.rle",
      ""
      };


   // Initialize the OPENFILENAME members

   szFile[0] = '\0';

   flags = OFN_HIDEREADONLY;

   of.lStructSize       = sizeof (OPENFILENAME);
   of.hwndOwner         = GetFocus ();
   of.hInstance         = hInst;
   of.lpstrFilter       = szFilter[0];
   of.lpstrCustomFilter = NULL;
   of.nMaxCustFilter    = 0L;
   of.nFilterIndex      = 1L;
   of.lpstrFile         = szFile;
   of.nMaxFile          = sizeof (szFile);
   of.lpstrFileTitle    = szFileTitle;
   of.nMaxFileTitle     = sizeof (szFileTitle);
   of.lpstrInitialDir   = NULL;
   of.lpstrTitle        = NULL;
   of.Flags             = flags;
   of.nFileOffset       = 0;
   of.nFileExtension    = 0;
   of.lpstrDefExt       = NULL;
   of.lpfnHook		= NULL;
   of.lpTemplateName    = NULL;

   // Call the GetOpenFilename function

    if (GetOpenFileName (&of))
      {
      lstrcpy (szFileName, of.lpstrFile);
      return TRUE;
      }
    else
      return FALSE;
}




/****************************************************************************
 *                                                                          *
 *  FUNCTION   :OpenDIB(LPSTR szFile)                                       *
 *                                                                          *
 *  PURPOSE    :Open a DIB file and create a MEMORY DIB, a memory handle    *
 *              containing BITMAPINFO, palette data and the bits.           *
 *                                                                          *
 *  RETURNS    :A handle to the DIB.                                        *
 *																			*
 *  Taken from the ShowDIB 32 bit sample									*
 *                                                                          *
 ****************************************************************************/
HANDLE OpenDIB (LPSTR szFile)
{
    HFILE               fh;
    BITMAPINFOHEADER    bi;
    LPBITMAPINFOHEADER  lpbi;
    DWORD               dwLen = 0;
    DWORD               dwBits;
    HANDLE              hdib;
    HANDLE              h;
    OFSTRUCT            of;

    /* Open the file and read the DIB information */
    fh = OpenFile(szFile, &of, (UINT)OF_READ);
    if (fh == -1)
        return NULL;

    hdib = ReadDibBitmapInfo(fh);
    if (!hdib)
        return NULL;
    DibInfo(hdib,&bi);

    /* Calculate the memory needed to hold the DIB */
    dwBits = bi.biSizeImage;
    dwLen  = bi.biSize + (DWORD)PaletteSize ((LPSTR)&bi) + dwBits;

    /* Try to increase the size of the bitmap info. buffer to hold the DIB */
    h = GlobalReAlloc(hdib, dwLen, GHND);
    if (!h){
        GlobalFree(hdib);
        hdib = NULL;
    }
    else
        hdib = h;

    /* Read in the bits */
    if (hdib){

        lpbi = (VOID FAR *)GlobalLock(hdib);
        _lread(fh, (LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize((LPSTR)lpbi), dwBits);
        GlobalUnlock(hdib);
    }
    _lclose(fh);

    return hdib;
}



/****************************************************************************
 *                                                                          *
 *  FUNCTION   : DibInfo(HANDLE hbi,LPBITMAPINFOHEADER lpbi)                *
 *                                                                          *
 *  PURPOSE    : Retrieves the DIB info associated with a CF_DIB            *
 *               format memory block.                                       *
 *                                                                          *
 *  RETURNS    : TRUE  - if successful.                                     *
 *               FALSE - otherwise                                          *
 *																			*
 *  Taken from the ShowDIB 32 bit sample									*
 *                                                                          *
 ****************************************************************************/
BOOL DibInfo (
    HANDLE hbi,
    LPBITMAPINFOHEADER lpbi)
{
    if (hbi){
        *lpbi = *(LPBITMAPINFOHEADER)GlobalLock (hbi);

        /* fill in the default fields */
        if (lpbi->biSize != sizeof (BITMAPCOREHEADER)){
            if (lpbi->biSizeImage == 0L)
                                lpbi->biSizeImage = WIDTHBYTES(lpbi->biWidth*lpbi->biBitCount) * lpbi->biHeight;

            if (lpbi->biClrUsed == 0L)
                                lpbi->biClrUsed = DIBNumColors ((LPSTR)lpbi);
    }
        GlobalUnlock (hbi);
        return TRUE;
    }
    return FALSE;
}


/****************************************************************************
 *                                                                          *
 *  FUNCTION   : ReadDibBitmapInfo(int fh)                                  *
 *                                                                          *
 *  PURPOSE    : Will read a file in DIB format and return a global HANDLE  *
 *               to it's BITMAPINFO.  This function will work with both     *
 *               "old" (BITMAPCOREHEADER) and "new" (BITMAPINFOHEADER)      *
 *               bitmap formats, but will always return a "new" BITMAPINFO  *
 *                                                                          *
 *  RETURNS    : A handle to the BITMAPINFO of the DIB in the file.         *
 *																			*
 *  Taken from the ShowDIB 32 bit sample									*
 *                                                                          *
 ****************************************************************************/
HANDLE ReadDibBitmapInfo (INT fh)
{
    DWORD     off;
    HANDLE    hbi = NULL;
    INT       size;
    INT       i;
    WORD      nNumColors;

    RGBQUAD FAR       *pRgb;
    BITMAPINFOHEADER   bi;
    BITMAPCOREHEADER   bc;
    LPBITMAPINFOHEADER lpbi;
    BITMAPFILEHEADER   bf;
    DWORD              dwWidth = 0;
    DWORD              dwHeight = 0;
    WORD               wPlanes, wBitCount;

    if (fh == -1)
        return NULL;
#ifdef FIXDWORDALIGNMENT
    /* Reset file pointer and read file header */
    off = _llseek(fh, 0L, (UINT)SEEK_CUR);
    if ((SIZEOF_BITMAPFILEHEADER_PACKED)  != _lread(fh, (LPSTR)&bf, (UINT)sizeof (SIZEOF_BITMAPFILEHEADER_PACKED)))
        return FALSE;
#else
        ReadBitMapFileHeaderandConvertToDwordAlign(fh, &bf, &off);
        /* at this point we have read the file into bf*/
#endif

    /* Do we have a RC HEADER? */
    if (!ISDIB (bf.bfType)) {    
        bf.bfOffBits = 0L;               
                _llseek(fh, off, (UINT)SEEK_SET); /*seek back to beginning of file*/
    }
    if (sizeof (bi) != _lread(fh, (LPSTR)&bi, (UINT)sizeof(bi)))
        return FALSE;

    nNumColors = DIBNumColors ((LPSTR)&bi);

    /* Check the nature (BITMAPINFO or BITMAPCORE) of the info. block
     * and extract the field information accordingly. If a BITMAPCOREHEADER,
     * transfer it's field information to a BITMAPINFOHEADER-style block
     */
    switch (size = (INT)bi.biSize){
        case sizeof (BITMAPINFOHEADER):
            break;

        case sizeof (BITMAPCOREHEADER):

            bc = *(BITMAPCOREHEADER*)&bi;

            dwWidth   = (DWORD)bc.bcWidth;
            dwHeight  = (DWORD)bc.bcHeight;
            wPlanes   = bc.bcPlanes;
            wBitCount = bc.bcBitCount;

        bi.biSize           = sizeof(BITMAPINFOHEADER);
            bi.biWidth              = dwWidth;
            bi.biHeight             = dwHeight;
            bi.biPlanes             = wPlanes;
            bi.biBitCount           = wBitCount;

            bi.biCompression        = BI_RGB;
            bi.biSizeImage          = 0;
            bi.biXPelsPerMeter      = 0;
            bi.biYPelsPerMeter      = 0;
            bi.biClrUsed            = nNumColors;
            bi.biClrImportant       = nNumColors;

            _llseek(fh, (LONG)sizeof (BITMAPCOREHEADER) - sizeof (BITMAPINFOHEADER), (UINT)SEEK_CUR);
            break;

        default:
            /* Not a DIB! */
            return NULL;
    }

    /*  Fill in some default values if they are zero */
    if (bi.biSizeImage == 0){
        bi.biSizeImage = WIDTHBYTES ((DWORD)bi.biWidth * bi.biBitCount)
                         * bi.biHeight;
    }
    if (bi.biClrUsed == 0)
        bi.biClrUsed = DIBNumColors((LPSTR)&bi);

    /* Allocate for the BITMAPINFO structure and the color table. */
    hbi = GlobalAlloc (GHND, (LONG)bi.biSize + nNumColors * sizeof(RGBQUAD));
    if (!hbi)
        return NULL;
    lpbi = (VOID FAR *)GlobalLock (hbi);
    *lpbi = bi;

    /* Get a pointer to the color table */
    pRgb = (RGBQUAD FAR *)((LPSTR)lpbi + bi.biSize);
    if (nNumColors){
        if (size == sizeof(BITMAPCOREHEADER)){
            /* Convert a old color table (3 byte RGBTRIPLEs) to a new
             * color table (4 byte RGBQUADs)
             */
            _lread(fh, (LPSTR)pRgb, (UINT)nNumColors * sizeof(RGBTRIPLE));

            for (i = nNumColors - 1; i >= 0; i--){
                RGBQUAD rgb;

                rgb.rgbRed      = ((RGBTRIPLE FAR *)pRgb)[i].rgbtRed;
                rgb.rgbBlue     = ((RGBTRIPLE FAR *)pRgb)[i].rgbtBlue;
                rgb.rgbGreen    = ((RGBTRIPLE FAR *)pRgb)[i].rgbtGreen;
                rgb.rgbReserved = (BYTE)0;

                pRgb[i] = rgb;
            }
        }
        else
            _lread(fh, (LPSTR)pRgb, (UINT)nNumColors * sizeof(RGBQUAD));
    }

    if (bf.bfOffBits != 0L){
        _llseek(fh, off + bf.bfOffBits, (UINT)SEEK_SET);
        }
    GlobalUnlock(hbi);
    return hbi;
}




/****************************************************************************
 *                                                                          *
 *  FUNCTION   : ReadBitMapFileHeaderandConvertToDwordAlign(HFILE fh, LPBITMAPFILEHEADER pbf)
 *                                                                          *
 *  PURPOSE    : read file header (which is packed) and convert into unpacked BITMAPFILEHEADER strucutre
 *                                                                          *
 *  RETURNS    : VOID
 *																			*
 *  Taken from the ShowDIB 32 bit sample									*
 *                                                                          *
 ****************************************************************************/

VOID ReadBitMapFileHeaderandConvertToDwordAlign(HFILE fh, LPBITMAPFILEHEADER pbf, LPDWORD lpdwoff)
{
        DWORD off;

        off = _llseek(fh, 0L, (UINT) SEEK_CUR);
        *lpdwoff = off;

/*              BITMAPFILEHEADER STRUCUTURE is as follows 
 *              BITMAPFILEHEADER
 *              WORD    bfType 
 >          ....                  <     add WORD if packed here!
 *              DWORD   bfSize 
 *              WORD    bfReserved1
 *              WORD    bfReserved2
 *              DWORD   bfOffBits 
 *                      This is the packed format, unpacked adds a WORD after bfType
 */

        /* read in bfType*/
        _lread(fh, (LPSTR) &pbf->bfType, sizeof(WORD));
        /* read in last 3 dwords*/
        _lread(fh, (LPSTR) &pbf->bfSize, sizeof(DWORD) * 3);

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产电影一区二区| 亚洲444eee在线观看| 精品久久久久久综合日本欧美| 国产欧美一区二区在线观看| 亚洲欧美日韩国产综合在线| 蜜桃视频在线观看一区二区| 国产综合色产在线精品| 粉嫩久久99精品久久久久久夜| 欧美亚一区二区| 久久婷婷一区二区三区| 亚洲综合成人在线| 奇米精品一区二区三区在线观看 | 久久综合九色综合97婷婷| 精品不卡在线视频| 韩国视频一区二区| 日韩欧美国产一区在线观看| 欧美卡1卡2卡| 欧美精品丝袜久久久中文字幕| 亚洲精品在线观看网站| 亚洲国产美国国产综合一区二区| 日韩在线一区二区| 国产一区久久久| gogogo免费视频观看亚洲一| 欧美日韩在线观看一区二区 | 国产欧美久久久精品影院| 国产精品久久网站| 麻豆精品久久久| 欧美三区免费完整视频在线观看| 激情欧美一区二区| 日韩手机在线导航| 成人av小说网| 精品一区二区三区香蕉蜜桃| 一区二区三区产品免费精品久久75| 在线不卡免费av| 国产福利一区在线| 日韩精品91亚洲二区在线观看| 亚洲免费av观看| 日本一区二区三区电影| 欧美高清视频不卡网| 暴力调教一区二区三区| 日韩在线一区二区三区| 欧美电影免费提供在线观看| 国产精品一区在线| 国产精品网站在线播放| 91亚洲午夜精品久久久久久| 天堂在线亚洲视频| 日韩亚洲欧美一区| 国产成人午夜精品5599| 国产精品成人午夜| 91免费国产在线| 亚洲国产人成综合网站| 久久香蕉国产线看观看99| 韩国在线一区二区| 亚洲人精品一区| 色婷婷国产精品久久包臀| 国产盗摄一区二区三区| 国产999精品久久| 欧美一级生活片| 亚洲国产日产av| 91成人国产精品| 亚洲精品久久7777| 99久久99久久精品免费观看| 国产精品久久免费看| 高清在线观看日韩| 国产欧美一区二区三区在线老狼| 精品一区二区三区蜜桃| 日韩视频中午一区| 日韩和欧美一区二区| 精品视频在线免费| 亚洲自拍另类综合| 在线精品视频免费播放| 一区二区三区四区激情| 日本道色综合久久| 一区二区三区日韩| 色婷婷精品久久二区二区蜜臀av | 毛片基地黄久久久久久天堂| 91精品国产乱| 麻豆精品新av中文字幕| 日韩欧美在线观看一区二区三区| 日韩av在线播放中文字幕| 欧美一区二区日韩| 激情六月婷婷久久| 欧美激情中文不卡| 成人av免费在线播放| 亚洲免费在线观看视频| 欧洲色大大久久| 婷婷开心激情综合| 日韩午夜小视频| 国产一区二区三区日韩| 国产精品午夜免费| 色综合天天天天做夜夜夜夜做| 一区二区三区色| 欧美电影影音先锋| 狠狠色综合色综合网络| 国产精品视频一二三| 91视频com| 午夜电影一区二区三区| 亚洲精品一区二区三区精华液| 丁香五精品蜜臀久久久久99网站 | 色婷婷亚洲综合| 婷婷综合五月天| 精品国产一区二区三区四区四| 国产成人综合网站| 亚洲欧美区自拍先锋| 9191久久久久久久久久久| 韩国精品久久久| 国产精品美女久久久久久2018| 欧美性xxxxxxxx| 精品一区二区三区在线播放| 日韩美女久久久| 337p亚洲精品色噜噜狠狠| 国产91精品一区二区| 亚洲成av人片一区二区三区| 26uuu精品一区二区| 91在线视频免费观看| 日韩国产欧美在线观看| 久久精品无码一区二区三区| 欧美亚洲愉拍一区二区| 极品少妇xxxx偷拍精品少妇| 日韩毛片视频在线看| 91精品国产综合久久久久久久 | 国产欧美精品一区| 欧美一a一片一级一片| 国产一区二区三区免费| 亚洲专区一二三| 久久一区二区三区四区| 欧美曰成人黄网| 国产精品系列在线播放| 亚洲va中文字幕| 欧美国产日韩在线观看| 欧美一区二区高清| 91原创在线视频| 韩国女主播一区| 婷婷夜色潮精品综合在线| 国产精品色一区二区三区| 欧美一级片在线看| 91麻豆免费看片| 国产精选一区二区三区| 日日夜夜精品视频天天综合网| 国产精品久久看| 日韩精品一区二区三区视频在线观看| 欧美一级黄色大片| 99re6这里只有精品视频在线观看| 蜜桃视频一区二区三区在线观看| 亚洲人成电影网站色mp4| 久久午夜羞羞影院免费观看| 91精品国产一区二区三区蜜臀| 91丨porny丨户外露出| 国产精品一二三在| 蜜臀精品久久久久久蜜臀| 亚洲一区二区三区中文字幕在线| 国产欧美1区2区3区| 精品免费一区二区三区| 91精品国产乱| 欧美人妖巨大在线| 91官网在线免费观看| www.日韩在线| 国产成人8x视频一区二区| 激情综合网天天干| 日本不卡一二三| 亚洲国产成人av网| 一区二区三区在线视频观看58| 一区二区中文视频| 国产情人综合久久777777| 亚洲精品一区二区三区精华液| 日韩一区二区在线免费观看| 欧美日韩免费不卡视频一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 成人午夜短视频| 国产黄色91视频| 国产一区二区福利视频| 国产一区高清在线| 久久国产麻豆精品| 秋霞午夜av一区二区三区| 五月婷婷久久丁香| 三级欧美在线一区| 日本欧美大码aⅴ在线播放| 青青草原综合久久大伊人精品优势| 天堂蜜桃91精品| 天堂精品中文字幕在线| 日本欧美一区二区在线观看| 免费视频最近日韩| 久久国产人妖系列| 韩国v欧美v日本v亚洲v| 国产精华液一区二区三区| 国产成人综合视频| 成人激情免费视频| av在线不卡网| 色视频欧美一区二区三区| 在线免费观看不卡av| 欧美日韩国产高清一区二区三区| 欧美日韩一区成人| 欧美日韩中文字幕精品| 欧美群妇大交群中文字幕| 91精品国产91久久综合桃花| 日韩限制级电影在线观看| 久久久美女毛片| 中文字幕制服丝袜成人av| 亚洲美女一区二区三区| 亚洲成av人影院|