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

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

?? albumdb.c

?? MS-Press book about programming under Windows CE with source-codes of examples
?? C
?? 第 1 頁 / 共 3 頁
字號:
        if (rc == 0) {
            TCHAR szDbg[128];
            rc = GetLastError();
            wsprintf (szDbg, TEXT ("Couldn\'t delete db. rc=%d"), rc);
            MessageBox (hWnd, szDbg, szAppName, MB_OK);
            g_hDB = CeOpenDatabase (&g_oidDB, NULL, g_nLastSort, 
                                    0, hWnd);
            return 0;
        }
        g_hDB = 0;
        g_oidDB = 0;
    }
    ListView_SetItemCount (GetDlgItem (hWnd, ID_LISTV), 0);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandExit - Process Program Exit command.
//
LPARAM DoMainCommandExit (HWND hWnd, WORD idItem, HWND hwndCtl, 
                          WORD wNotifyCode) {

    SendMessage (hWnd, WM_CLOSE, 0, 0);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandNew - Process Program New command.
//
LPARAM DoMainCommandNew (HWND hWnd, WORD idItem, HWND hwndCtl, 
                         WORD wNotifyCode) {
    PCEPROPVAL pcepv;
    INT i, rc;
    CEOID oid;
    HWND hwndLV = GetDlgItem (hWnd, ID_LISTV);

    // Display the new/edit dialog.
    pcepv = 0;
    rc = DialogBoxParam (hInst, TEXT ("EditAlbumDlg"), hWnd, 
                         EditAlbumDlgProc, (LPARAM)&pcepv);
    if (rc == 0) 
        return 0;

    // Write the record.
    oid = CeWriteRecordProps(g_hDB, 0, NUM_DB_PROPS, pcepv);
    if (!oid) {
        TCHAR szText[64];
        rc = GetLastError ();
        wsprintf (szText, TEXT ("Write Rec fail. Error %d (%x)"),
                  rc, rc);
        MessageBox (hWnd, szText, TEXT ("Error"), MB_OK);
    }
    ClearCache ();                              // Clear the lv cache.

    i = ListView_GetItemCount (hwndLV) + 1;     // Increment list view
                                                // count.
    ListView_SetItemCount (hwndLV, i);
    InvalidateRect (hwndLV, NULL, TRUE);        // Force list view
                                                // redraw.
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandEdit - Process Program Edit command.
//
LPARAM DoMainCommandEdit (HWND hWnd, WORD idItem, HWND hwndCtl, 
                          WORD wNotifyCode) {
    PCEPROPVAL pcepv = 0;
    INT nSel, rc;
    WORD wProps = 0;
    DWORD dwRecSize, dwIndex;
    CEOID oid;
    HWND hwndLV = GetDlgItem (hWnd, ID_LISTV);

    nSel = ListView_GetSelectionMark (hwndLV);
    if (nSel == -1) 
        return 0;

    // Seek to the necessary record.
    oid = CeSeekDatabase (g_hDB, CEDB_SEEK_BEGINNING, nSel, &dwIndex);
    if (oid == 0) {
        TCHAR szTxt[64];
        INT rc = GetLastError();
        wsprintf (szTxt, TEXT ("Db item not found. rc = %d (%x)"),
                  rc, rc);
        MessageBox (NULL, szTxt, TEXT ("err"), MB_OK);
        return 0;
    }
    // Read all properties for the record.  Have the system
    // allocate the buffer containing the data.
    oid = CeReadRecordProps (g_hDB, CEDB_ALLOWREALLOC, &wProps, NULL,
                             &(LPBYTE)pcepv, &dwRecSize);
    if (oid == 0) {
        TCHAR szTxt[64];
        INT rc = GetLastError();
        wsprintf (szTxt, TEXT ("Db item not read. rc = %d (%x)"),
                  rc, rc);
        MessageBox (NULL, szTxt, TEXT ("err"), MB_OK);
        return 0;
    }
    // Display the edit dialog.
    rc = DialogBoxParam (hInst, TEXT ("EditAlbumDlg"), hWnd, 
                         EditAlbumDlgProc, (LPARAM)&pcepv);
    if (rc == 0) 
        return 0;

    // Write the record.
    oid = CeWriteRecordProps(g_hDB, oid, NUM_DB_PROPS, pcepv);
    if (!oid) {
        TCHAR szText[64];
        rc = GetLastError ();
        wsprintf (szText, TEXT ("Write Rec fail. Error %d (%x)"),
                   rc, rc);
        MessageBox (hWnd, szText, TEXT ("Error"), MB_OK);
    }
    LocalFree ((LPBYTE)pcepv);
    ClearCache ();                              // Clear the lv cache.

    InvalidateRect (hwndLV, NULL, TRUE);        // Force list view
                                                // redraw.
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandDelete - Process Program Delete command.
//
LPARAM DoMainCommandDelete (HWND hWnd, WORD idItem, HWND hwndCtl, 
                            WORD wNotifyCode) {
    HWND hwndLV;
    TCHAR szText[64];
    DWORD dwIndex;
    int i;
    CEOID oid;
    int nSel;

    hwndLV = GetDlgItem (hWnd, ID_LISTV);
    nSel = ListView_GetSelectionMark (hwndLV);
    if (nSel != -1) {

        wsprintf (szText, TEXT ("Delete this item?")); 
        i = MessageBox (hWnd, szText, TEXT ("Delete"), MB_YESNO);
        if (i != IDYES) 
            return 0;

        // Seek to the necessary record.
        oid = CeSeekDatabase (g_hDB, CEDB_SEEK_BEGINNING, nSel, &dwIndex);
        CeDeleteRecord (g_hDB, oid);

        // Reduce the list view count by one and force redraw.
        i = ListView_GetItemCount (hwndLV) - 1;
        ListView_SetItemCount (hwndLV, i);
        ClearCache ();                          // Clear the lv cache.
        InvalidateRect (hwndLV, NULL, TRUE);
    }
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandSort - Process the Sort commands.
//
LPARAM DoMainCommandSort(HWND hWnd, WORD idItem, HWND hwndCtl, 
                         WORD wNotifyCode) {
    int nSort;

    switch (idItem) {
    case IDM_SORTNAME:
        nSort = PID_NAME;
        break;
    case IDM_SORTARTIST:
        nSort = PID_ARTIST;
        break;
    case IDM_SORTCATEGORY:
        nSort = PID_CATEGORY;
        break;
    }
    if (nSort == g_nLastSort)
        return 0;

    ReopenDatabase (hWnd, nSort);      // Close and reopen the database.
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandAbout - Process the Help | About menu command.
//
LPARAM DoMainCommandAbout(HWND hWnd, WORD idItem, HWND hwndCtl, 
                          WORD wNotifyCode) {
    // Use DialogBox to create modal dialog.
    DialogBox (hInst, TEXT ("aboutbox"), hWnd, AboutDlgProc);
    return 0;
}
//----------------------------------------------------------------------
// CreateLV - Creates the list view control
//
HWND CreateLV (HWND hWnd, RECT *prect) {
    HWND hwndLV;
    LVCOLUMN lvc;

    // Create album list window.  
    hwndLV = CreateWindowEx (0, WC_LISTVIEW, TEXT (""), 
                         WS_VISIBLE | WS_CHILD | WS_VSCROLL |
                         LVS_OWNERDATA | WS_BORDER | LVS_REPORT, 
                         prect->left, prect->top,
                         prect->right - prect->left,
                         prect->bottom - prect->top,
                         hWnd, (HMENU)ID_LISTV, 
                         hInst, NULL);
    // Add columns.
    if (hwndLV) {
        lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT | LVCF_SUBITEM;
        lvc.fmt = LVCFMT_LEFT;
        lvc.cx = 150;
        lvc.pszText = TEXT ("Name");
        lvc.iSubItem = 0;
        SendMessage (hwndLV, LVM_INSERTCOLUMN, 0, (LPARAM)&lvc);

        lvc.mask |= LVCF_SUBITEM;
        lvc.pszText = TEXT ("Artist");
        lvc.cx = 100;
        lvc.iSubItem = 1;
        SendMessage (hwndLV, LVM_INSERTCOLUMN, 1, (LPARAM)&lvc);

        lvc.mask |= LVCF_SUBITEM;
        lvc.pszText = TEXT ("Category");
        lvc.cx = 100;
        lvc.iSubItem = 2;
        SendMessage (hwndLV, LVM_INSERTCOLUMN, 2, (LPARAM)&lvc);
    }

    return hwndLV;
}
//----------------------------------------------------------------------
// OpenCreateDB - Open database, create if necessary.
//
HANDLE OpenCreateDB (HWND hWnd, int *pnRecords) {
    INT i, rc;
    CEOIDINFO oidinfo;
    SORTORDERSPEC sos[4];

    g_oidDB = 0;
    g_hDB = CeOpenDatabase (&g_oidDB, TEXT ("\\Albums"), 
                            g_nLastSort, 0, hWnd);
    if (g_hDB == INVALID_HANDLE_VALUE) {
        rc = GetLastError();
        if (rc == ERROR_FILE_NOT_FOUND) {
            i = 0;
            sos[i].propid = PID_NAME;
            sos[i++].dwFlags = 0;

            sos[i].propid = PID_ARTIST;
            sos[i++].dwFlags = 0;

            sos[i].propid = PID_CATEGORY;
            sos[i++].dwFlags = 0;

            g_oidDB = CeCreateDatabase (TEXT ("\\Albums"), 0, 3, 
                                        sos);
            if (g_oidDB == 0) {
                TCHAR szErr[128];
                wsprintf (szErr, TEXT ("Database create failed. \
                          rc %d"), GetLastError());
                MessageBox (hWnd, szErr, szAppName, MB_OK);
                return 0;
            }
            g_hDB = CeOpenDatabase(&g_oidDB,NULL, g_nLastSort, 0, hWnd);
        }
    } 
    CeOidGetInfo (g_oidDB, &oidinfo);
    *pnRecords = oidinfo.infDatabase.wNumRecords;
    return g_hDB;
}
//----------------------------------------------------------------------
// ClearCache - Clears the one item cache for the list view control.
//
void ClearCache (void) {

    if (g_pLastRecord)
        LocalFree (g_pLastRecord);
    g_pLastRecord = 0;            
    g_nLastItem = -1;
    return;
}
//----------------------------------------------------------------------
// ReopenDatabase - Closes and reopens the database 
//
void ReopenDatabase (HWND hWnd, INT nNewSort) {
    INT nCnt; 

    if (nNewSort != -1)
        g_nLastSort = nNewSort;

    if (g_hDB)
        CloseHandle (g_hDB);
    ClearCache ();                        // Clear the lv cache.

    g_hDB = OpenCreateDB (hWnd, &nCnt);

    ListView_SetItemCount (GetDlgItem (hWnd, ID_LISTV), nCnt);
    InvalidateRect (GetDlgItem (hWnd, ID_LISTV), NULL, 0);
    return;
}
//----------------------------------------------------------------------
// Get the album data from the database for the requested lv item.
//
int GetItemData (int nItem, PLVCACHEDATA pcd) {
    static WORD wProps;
    DWORD dwIndex;
    CEOID oid;
    PCEPROPVAL pRecord = NULL;
    DWORD dwRecSize;
    int i;

    // See if the item requested was the previous one.  If so,
    // just use the old data.
    if ((nItem == g_nLastItem) && (g_pLastRecord)) 
        pRecord = (PCEPROPVAL)g_pLastRecord;
    else {
        // Seek to the necessary record.
        oid = CeSeekDatabase (g_hDB, CEDB_SEEK_BEGINNING, nItem, &dwIndex);
        if (oid == 0) {
            TCHAR szTxt[64];
            INT rc = GetLastError();
            wsprintf (szTxt, TEXT ("Db item not found. rc = %d (%x)"),
                      rc, rc);
            MessageBox (NULL, szTxt, TEXT ("err"), MB_OK);
            return 0;
        }
        // Read all properties for the record.  Have the system
        // allocate the buffer containing the data.
        oid = CeReadRecordProps (g_hDB, CEDB_ALLOWREALLOC, &wProps, NULL,
                                 &(LPBYTE)pRecord, &dwRecSize);
        if (oid == 0) {
            TCHAR szTxt[64];
            INT rc = GetLastError();
            wsprintf (szTxt, TEXT ("Db item not read. rc = %d (%x)"),
                      rc, rc);
            MessageBox (NULL, szTxt, TEXT ("err"), MB_OK);
            return 0;
        }
        // Free old record and save the newly read one.
        if (g_pLastRecord)
            LocalFree (g_pLastRecord);
        g_nLastItem = nItem;
        g_pLastRecord = (LPBYTE)pRecord;

    }
    // Copy the data from the record to the album structure.
    for (i = 0; i < wProps; i++) {
        switch (pRecord->propid) {
        case PID_NAME:
            lstrcpy (pcd->Album.szName, pRecord->val.lpwstr);
            break;
        case PID_ARTIST:
            lstrcpy (pcd->Album.szArtist, pRecord->val.lpwstr);
            break;
        case PID_CATEGORY:
            pcd->Album.sCategory = pRecord->val.iVal;
            break;
        case PID_NUMTRACKS:
            pcd->Album.sNumTracks = pRecord->val.iVal;
            break;
        }
        pRecord++;
    }
    return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利电影一区二区| 亚洲高清免费在线| 日韩一级免费一区| 欧美精品日韩一本| 黄色日韩三级电影| 人人狠狠综合久久亚洲| 亚洲综合丁香婷婷六月香| 国产精品国产精品国产专区不蜜| 在线区一区二视频| 91老司机福利 在线| 成人黄色a**站在线观看| 寂寞少妇一区二区三区| 美女视频免费一区| 五月婷婷激情综合网| 国产精品免费看片| 亚洲欧美色一区| 亚洲精品成人少妇| 天堂蜜桃91精品| 青青青爽久久午夜综合久久午夜| 亚洲一区二区三区视频在线| 日韩毛片在线免费观看| 欧美国产激情二区三区| 欧美韩国一区二区| 亚洲色图欧洲色图| 亚洲黄色小视频| 日韩精品一区第一页| 一区二区三区精品视频| 亚洲伊人色欲综合网| 午夜免费久久看| 精品一区二区免费看| 国内不卡的二区三区中文字幕| 美脚の诱脚舐め脚责91| 韩国精品主播一区二区在线观看 | 中文字幕制服丝袜一区二区三区 | 免费观看30秒视频久久| 国内精品免费在线观看| 国内精品免费在线观看| zzijzzij亚洲日本少妇熟睡| 91免费在线看| 日韩欧美国产精品| 欧美—级在线免费片| 亚洲综合区在线| 免费看欧美女人艹b| 色先锋久久av资源部| 精品国产一区a| 亚洲主播在线播放| 成人高清在线视频| 337p日本欧洲亚洲大胆精品| 一区二区在线观看视频| 国产乱理伦片在线观看夜一区| 欧美三级韩国三级日本三斤| 国产精品情趣视频| 国产一区二区美女| 欧美一区二区观看视频| 久久久一区二区三区捆绑**| 日韩精品一区在线| 日韩欧美国产午夜精品| 欧美激情中文不卡| 日韩电影在线观看一区| 国产91丝袜在线观看| 欧美在线观看一区| 国产精品美女久久久久久久| 水蜜桃久久夜色精品一区的特点| 国内成人免费视频| 欧美人与性动xxxx| 亚洲欧美国产三级| 国产成人免费xxxxxxxx| 7777精品伊人久久久大香线蕉| 国产精品国产三级国产a| 青青青爽久久午夜综合久久午夜| 91香蕉视频mp4| 久久久精品日韩欧美| 精品一区二区三区在线视频| 色伊人久久综合中文字幕| 欧美成人性福生活免费看| 亚洲免费看黄网站| 国产盗摄视频一区二区三区| 日韩一区二区三| 日韩高清在线不卡| 欧美日韩国产在线观看| 亚洲精品综合在线| 成人精品国产一区二区4080| 日韩午夜在线观看| 日日噜噜夜夜狠狠视频欧美人| 9191国产精品| 午夜一区二区三区视频| 欧美视频在线一区| 亚洲第一成年网| 欧美亚洲一区二区在线观看| 一区二区三区日本| 在线中文字幕一区二区| 亚洲欧美日韩综合aⅴ视频| www.在线欧美| 亚洲免费在线播放| 欧美视频一区在线| 亚洲影院理伦片| 91亚洲精品久久久蜜桃| 亚洲精品国产视频| 欧美综合久久久| 一区二区三区四区在线| 日本久久电影网| 亚洲风情在线资源站| 欧美最新大片在线看 | 亚洲va欧美va人人爽| 精品视频免费在线| 日韩电影在线观看网站| 日韩精品一区二区三区在线| 美腿丝袜亚洲一区| 精品区一区二区| 国产精品一线二线三线精华| 久久久久国产精品厨房| av一区二区三区四区| 亚洲色图20p| wwww国产精品欧美| 欧日韩精品视频| 成熟亚洲日本毛茸茸凸凹| 午夜精品久久久久久久久久久| 欧美制服丝袜第一页| 蜜桃视频一区二区三区在线观看| 2欧美一区二区三区在线观看视频| 成人国产一区二区三区精品| 亚洲成av人片一区二区梦乃 | 欧美色视频在线观看| 天天综合色天天| 26uuu久久天堂性欧美| 久久精品免费看| 亚洲色图都市小说| 欧美xxxxx牲另类人与| caoporm超碰国产精品| 日日摸夜夜添夜夜添国产精品| 国产午夜精品久久久久久免费视| 色哟哟欧美精品| 欧美日韩久久久一区| 亚洲综合另类小说| 亚洲图片你懂的| 中文子幕无线码一区tr| 久久综合中文字幕| 日韩女优av电影在线观看| 欧美中文字幕不卡| 在线免费观看视频一区| 成人黄色777网| 成人午夜碰碰视频| 国产91在线观看| 成人一区二区在线观看| 国产精品一区二区91| 久久精品国产精品青草| 日本不卡123| 美女一区二区三区在线观看| 日日噜噜夜夜狠狠视频欧美人| 一区二区三区精品视频在线| 亚洲精品视频在线看| 一区二区三区四区五区视频在线观看| 国产精品毛片高清在线完整版 | 狠狠色丁香婷综合久久| 免费在线观看不卡| 日本欧美肥老太交大片| 日韩av在线免费观看不卡| 日韩精品一卡二卡三卡四卡无卡 | 欧美一级日韩免费不卡| 欧美一卡2卡3卡4卡| 欧美电视剧免费观看| 欧美tickling网站挠脚心| 精品国产伦理网| 国产精品美女一区二区在线观看| 国产精品无遮挡| 亚洲精选一二三| 三级欧美韩日大片在线看| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品亚洲视频| 91蝌蚪国产九色| 欧美日韩成人在线| 日韩欧美综合一区| 国产日韩在线不卡| 一区二区三区四区在线播放| 日韩电影在线观看一区| 国产在线视频不卡二| 一本一道综合狠狠老| 91精品福利在线一区二区三区| 久久精品男人的天堂| 亚洲黄色在线视频| 国内精品免费在线观看| 在线观看一区二区精品视频| 日韩美女在线视频| 亚洲美女电影在线| 美国毛片一区二区三区| 91免费观看国产| 欧美mv日韩mv| 亚洲风情在线资源站| 国产成人av电影在线播放| 欧美日韩视频在线观看一区二区三区 | 91美女片黄在线观看| 制服.丝袜.亚洲.另类.中文| 国产精品网站在线观看| 日韩在线一区二区三区| 国产suv精品一区二区6| 欧美一区二区三区在线| 亚洲免费在线视频| 国产sm精品调教视频网站| 欧美一区日本一区韩国一区| 自拍偷在线精品自拍偷无码专区|