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

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

?? regview.c

?? MS-Press book about programming under Windows CE with source-codes of examples
?? C
?? 第 1 頁 / 共 2 頁
字號:

        case TVN_SELCHANGED:
            GetTree (hWnd, pNotifyTV->itemNew.hItem, &hRoot, 
                     szKey, dim(szKey));
            EnumValues (hWnd, hRoot, szKey);
            break;

        case TVN_ITEMEXPANDING:
            if (pNotifyTV->action == TVE_EXPAND) {
                GetTree (hWnd, pNotifyTV->itemNew.hItem, &hRoot, 
                         szKey, dim(szKey));
                i = EnumChildren (hWnd, pNotifyTV->itemNew.hItem, 
                                  hRoot, szKey);
            }
            break;
    }
    return 0;
}
//----------------------------------------------------------------------
// CreateLV - Create list view control.
//
HWND CreateLV (HWND hWnd, RECT *prect) {
    HWND hwndLV;
    LVCOLUMN lvc;

    //
    // Create report window.  Size it so that it fits under
    // the command bar and fills the remaining client area.
    //
    hwndLV = CreateWindowEx (0, WC_LISTVIEW, TEXT (""), 
                         WS_VISIBLE | WS_CHILD | WS_VSCROLL |
                         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 | 
                   LVCF_ORDER;
        lvc.fmt = LVCFMT_LEFT;
        lvc.cx = 120;
        lvc.pszText = TEXT ("Name");
        lvc.iOrder = 0;
        lvc.iSubItem = 0;
        SendMessage (hwndLV, LVM_INSERTCOLUMN, 0, (LPARAM)&lvc);

        lvc.mask |= LVCF_SUBITEM;
        lvc.pszText = TEXT ("Data");
        lvc.cx = 250;
        lvc.iOrder = 1;
        lvc.iSubItem = 1;
        SendMessage (hwndLV, LVM_INSERTCOLUMN, 1, (LPARAM)&lvc);
    } 
    return hwndLV;
}
//----------------------------------------------------------------------
// InitTreeView - Initialize tree view control.
//
HWND CreateTV (HWND hWnd, RECT *prect) {
    HBITMAP hBmp;
    HIMAGELIST himl;
    HWND hwndTV;

    //
    // Create tree view.  Size it so that it fits under
    // the command bar and fills the left part of the client area.
    //
    hwndTV = CreateWindowEx (0, WC_TREEVIEW, 
                         TEXT (""), WS_VISIBLE | WS_CHILD | WS_VSCROLL |
                         WS_BORDER | TVS_HASLINES | TVS_HASBUTTONS | 
                         TVS_LINESATROOT, prect->left, prect->top, 
                         prect->right, prect->bottom,
                         hWnd, (HMENU)ID_TREEV, hInst, NULL);

    // Destroy frame if window not created.
    if (!IsWindow (hwndTV)) 
        return 0;

    // Create image list control for tree view icons.
    himl = ImageList_Create (16, 16, ILC_COLOR, 2, 0);
    // Load first two images from one bitmap.
    hBmp = LoadBitmap (hInst, MAKEINTRESOURCE (ID_BMPS));
    ImageList_Add (himl, hBmp, NULL);
    DeleteObject (hBmp);

    TreeView_SetImageList(hwndTV, himl, TVSIL_NORMAL);
    return hwndTV;
}
//----------------------------------------------------------------------
// InsertLV - Add an item to the list view control.
//
INT InsertLV (HWND hWnd, INT nItem, LPTSTR pszName, LPTSTR pszData) {

    HWND hwndLV = GetDlgItem (hWnd, ID_LISTV);
    LVITEM lvi;
    INT rc;

    lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
    lvi.iItem = nItem;
    lvi.iSubItem = 0;
    lvi.pszText = pszName;
    lvi.iImage = 0;
    lvi.lParam = nItem;
    rc = SendMessage (hwndLV, LVM_INSERTITEM, 0, (LPARAM)&lvi);

    lvi.mask = LVIF_TEXT;
    lvi.iItem = nItem;
    lvi.iSubItem = 1;
    lvi.pszText = pszData;
    rc = SendMessage (hwndLV, LVM_SETITEM, 0, (LPARAM)&lvi);
    return 0;
}
//----------------------------------------------------------------------
// InsertTV - Insert item into tree view control.
//
HTREEITEM InsertTV (HWND hWnd, HTREEITEM hParent, TCHAR *pszName, 
                    LPARAM lParam, DWORD nChildren) {
    TV_INSERTSTRUCT tvis;

    HWND hwndTV = GetDlgItem (hWnd, ID_TREEV);
    // Initialize the insertstruct.
    memset (&tvis, 0, sizeof (tvis));
    tvis.hParent = hParent;
    tvis.hInsertAfter = TVI_LAST;
    tvis.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_CHILDREN |
                     TVIF_IMAGE;
    tvis.item.pszText = pszName;
    tvis.item.cchTextMax = lstrlen (pszName);
    tvis.item.iImage = 1;
    tvis.item.iSelectedImage = 1;
    tvis.item.lParam = lParam;
    if (nChildren)
        tvis.item.cChildren = 1;
    else
        tvis.item.cChildren = 0;

    return TreeView_InsertItem (hwndTV, &tvis);
}
//----------------------------------------------------------------------
// GetTree - Compute the full path of the tree view item.
//
INT GetTree (HWND hWnd, HTREEITEM hItem, HKEY *pRoot, TCHAR *pszKey, 
             INT nMax) {
    TV_ITEM tvi;
    TCHAR szName[256];
    HTREEITEM hParent;
    HWND hwndTV = GetDlgItem (hWnd, ID_TREEV);

    memset (&tvi, 0, sizeof (tvi));

    hParent = TreeView_GetParent (hwndTV, hItem);
    if (hParent) { 
        // Get the parent of the parent of the...
        GetTree (hWnd, hParent, pRoot, pszKey, nMax);

        // Get the name and of item.
        tvi.mask = TVIF_TEXT;
        tvi.hItem = hItem;
        tvi.pszText = szName;
        tvi.cchTextMax = dim(szName);
        TreeView_GetItem (hwndTV, &tvi);

        lstrcat (pszKey, TEXT ("\\"));
        lstrcat (pszKey, szName);
    } else {
        *pszKey = TEXT ('\0');
        szName[0] = TEXT ('\0');
        // Get the name and of item.
        tvi.mask = TVIF_TEXT | TVIF_PARAM;
        tvi.hItem = hItem;
        tvi.pszText = szName;
        tvi.cchTextMax = dim(szName);
        if (TreeView_GetItem (hwndTV, &tvi))
            *pRoot = (HTREEITEM)tvi.lParam;
        else {
            INT rc = GetLastError();
        }
    }
    return 0;
}
//----------------------------------------------------------------------
// DisplayValue - Display the data depending on the type.
//
INT DisplayValue (HWND hWnd, INT nCnt, LPTSTR pszName, PBYTE pbData, 
                  DWORD dwDSize, DWORD dwType) {
    TCHAR szData[512];
    INT i, len;

    switch (dwType) {
    case REG_MULTI_SZ:
    case REG_EXPAND_SZ:
    case REG_SZ:
        lstrcpy (szData, (LPTSTR)pbData);
        break;

    case REG_DWORD:
        wsprintf (szData, TEXT ("%X"), *(int *)pbData);
        break;

    case REG_BINARY:
        szData[0] = TEXT ('\0');
        for (i = 0; i < (int)dwDSize; i++) {
            len = lstrlen (szData);
            wsprintf (&szData[len], TEXT ("%02X "), pbData[i]);
            if (len > dim(szData) - 6)
                break;
        }
        break;
    default:
        wsprintf (szData, TEXT ("Unknown type: %x"), dwType);
    }
    InsertLV (hWnd, nCnt, pszName, szData);
    return 0;
}
//----------------------------------------------------------------------
// EnumValues - Enumerate each of the values of a key.
//
INT EnumValues (HWND hWnd, HKEY hRoot, LPTSTR pszKey) {
    INT nCnt = 0, rc;
    DWORD dwNSize, dwDSize, dwType;
    TCHAR szName[MAX_PATH];
    BYTE bData[1024];
    HKEY hKey;

    if (lstrlen (pszKey)) {
        if (RegOpenKeyEx (hRoot, pszKey, 0, 0, &hKey) != ERROR_SUCCESS)
            return 0;
    } else 
        hKey = hRoot;

    // Clean out list view.
    ListView_DeleteAllItems (GetDlgItem (hWnd, ID_LISTV));

    // Enumerate the values in the list view control.
    nCnt = 0;
    dwNSize = dim(szName);
    dwDSize = dim(bData);
    rc = RegEnumValue (hKey, nCnt, szName, &dwNSize,
                       NULL, &dwType, bData, &dwDSize);

    while (rc == ERROR_SUCCESS) {
        // Display the value in the list view control.
        DisplayValue (hWnd, nCnt, szName, bData, dwDSize, dwType);

        dwNSize = dim(szName);
        dwDSize = dim(bData);
        nCnt++;
        rc = RegEnumValue (hKey, nCnt, szName, &dwNSize,
                           NULL, &dwType, bData, &dwDSize);
    }
    if (hKey != hRoot)
        RegCloseKey (hKey);
    return 1;
}
//----------------------------------------------------------------------
// CountChildren - Count the number of children of a key.
//
DWORD CountChildren (HKEY hRoot, LPTSTR pszKeyPath, LPTSTR pszKey) {
    TCHAR *pEnd;
    DWORD dwCnt;
    HKEY hKey;

    pEnd = pszKeyPath + lstrlen (pszKeyPath);
    lstrcpy (pEnd, TEXT ("\\"));
    lstrcat (pEnd, pszKey);

    if (RegOpenKeyEx(hRoot, pszKeyPath, 0, 0, &hKey) == ERROR_SUCCESS){
        RegQueryInfoKey (hKey, NULL, NULL, 0, &dwCnt, NULL, NULL, NULL,
                         NULL, NULL, NULL, NULL);
        RegCloseKey (hKey);
    }
    *pEnd = TEXT ('\0');
    return dwCnt;
}
//----------------------------------------------------------------------
// EnumChildren - Enumerate the child keys of a key.
//
INT EnumChildren (HWND hWnd, HTREEITEM hParent, HKEY hRoot, 
                  LPTSTR pszKey) {
    INT i = 0, rc;
    DWORD dwNSize;
    DWORD dwCSize;
    TCHAR szName[MAX_PATH];
    TCHAR szClass[256];
    FILETIME ft;
    DWORD nChild;
    HKEY hKey;
    TVITEM tvi;

    // All keys but root need to be opened.
    if (lstrlen (pszKey)) {
        if (RegOpenKeyEx (hRoot, pszKey, 0, 0, &hKey) != ERROR_SUCCESS) {
            rc = GetLastError();
            return 0;
        }
    } else 
        hKey = hRoot;

    dwNSize = dim(szName);
    dwCSize = dim(szClass);
    rc = RegEnumKeyEx (hKey, i, szName, &dwNSize, NULL,
                       szClass, &dwCSize, &ft);
    while (rc == ERROR_SUCCESS) {

        nChild = CountChildren (hRoot, pszKey, szName);
        // Add key to tree view.
        InsertTV (hWnd, hParent, szName, 0, nChild);
        dwNSize = dim(szName);
        rc = RegEnumKeyEx (hKey, ++i, szName, &dwNSize,
                           NULL, NULL, 0, &ft);
    }
    // If this wasn't the a root key, close it.
    if (hKey != hRoot)
        RegCloseKey (hKey);

    // If no children, remove expand button.
    if (i == 0) {
        tvi.hItem = hParent;
        tvi.mask = TVIF_CHILDREN;
        tvi.cChildren = 0;
        TreeView_SetItem (GetDlgItem (hWnd, ID_TREEV), &tvi);
    }
    return i;
}
//======================================================================
// About Dialog procedure
//
BOOL CALLBACK AboutDlgProc (HWND hWnd, UINT wMsg, WPARAM wParam, 
                            LPARAM lParam) {
    switch (wMsg) {
        case WM_COMMAND:
            switch (LOWORD (wParam)) {
                case IDOK:
                case IDCANCEL:
                    EndDialog (hWnd, 0);
                    return TRUE;
            }
        break;
    }
    return FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品动漫网站| 日韩一区欧美一区| 欧美一级在线观看| 欧美无乱码久久久免费午夜一区| 91论坛在线播放| 欧美综合天天夜夜久久| 色狠狠色狠狠综合| 91精品视频网| 精品国产1区二区| 中文字幕第一页久久| 国产精品久久久久7777按摩| 亚洲色图制服诱惑| 亚洲成人动漫在线观看| 麻豆91在线观看| 国产成人精品www牛牛影视| 99视频一区二区| 欧美日韩一区国产| 日韩欧美在线一区二区三区| 国产亚洲欧美一级| 亚洲免费av网站| 日本成人在线不卡视频| 国产成人啪免费观看软件| www.亚洲色图| 91精品国产手机| 免费在线成人网| 欧美日韩视频专区在线播放| 亚洲国产aⅴ成人精品无吗| 亚洲国产aⅴ成人精品无吗| 男人的天堂久久精品| 风间由美中文字幕在线看视频国产欧美| 成人av网在线| 欧美日韩日日夜夜| 国产网站一区二区| 亚洲大片精品永久免费| 国产精品911| 欧美日韩中文另类| 亚洲国产精品v| 午夜国产精品一区| 成人av在线影院| 日韩写真欧美这视频| 亚洲婷婷综合久久一本伊一区| 天天综合日日夜夜精品| 99久久99久久精品免费看蜜桃| 欧美日韩国产一级| 中文字幕中文字幕在线一区 | 国产一区二区三区四区五区美女| eeuss鲁片一区二区三区 | 在线免费精品视频| 精品国产乱码久久久久久影片| 自拍av一区二区三区| 国产一区二区三区在线观看免费| 欧美特级限制片免费在线观看| 欧美激情综合在线| 国产精品一卡二| 欧美成人女星排行榜| 一区二区三区蜜桃| 91原创在线视频| 久久精品无码一区二区三区| 强制捆绑调教一区二区| 欧美色综合天天久久综合精品| 国产精品国产三级国产aⅴ原创 | 中文字幕高清不卡| 久久国产欧美日韩精品| 91精品国产综合久久婷婷香蕉| 中文字幕在线不卡| 成人成人成人在线视频| 国产亚洲精品aa午夜观看| 国产一区欧美二区| 久久综合av免费| 国产尤物一区二区| 久久久国产午夜精品| 国产综合久久久久影院| 久久久青草青青国产亚洲免观| 九九视频精品免费| 精品国精品国产| 国产成人日日夜夜| 国产精品高潮呻吟久久| 91丨porny丨首页| 亚洲人成在线观看一区二区| 欧美在线视频不卡| 天天亚洲美女在线视频| 欧美日韩在线电影| 美女视频黄频大全不卡视频在线播放 | 日韩电影一二三区| 欧美一区二区三区日韩| 精品中文字幕一区二区小辣椒| 日韩精品一区二区三区在线 | 99在线视频精品| 一区二区三区av电影| 欧美日韩美女一区二区| 久久精品国产999大香线蕉| www国产成人| av不卡免费电影| 午夜精品久久久久久久蜜桃app | 国产精品全国免费观看高清| av影院午夜一区| 日韩中文字幕不卡| 久久精品人人做人人综合 | 337p日本欧洲亚洲大胆色噜噜| 韩国女主播一区| 亚洲三级理论片| 欧美久久久一区| 国产乱子轮精品视频| 中文字幕亚洲欧美在线不卡| 欧美日韩一级二级三级| 国产精品456| 亚洲国产三级在线| 国产目拍亚洲精品99久久精品| 色婷婷综合在线| 黄色精品一二区| 一区二区三区在线观看国产| 26uuuu精品一区二区| 日本高清不卡在线观看| 国产一区二区影院| 亚洲自拍偷拍九九九| 久久久久久亚洲综合影院红桃| 99精品久久只有精品| 精品制服美女久久| 亚洲一区二区偷拍精品| 中文字幕免费在线观看视频一区| 欧美二区三区的天堂| av电影天堂一区二区在线| 激情亚洲综合在线| 亚洲午夜免费福利视频| 国产精品你懂的在线| 欧美xxxxxxxxx| 91精品欧美久久久久久动漫 | 亚洲欧美色综合| 久久久综合激的五月天| 91精品国产一区二区三区香蕉| 色域天天综合网| 波多野结衣欧美| 国产91精品久久久久久久网曝门| 日韩电影在线免费看| 亚洲午夜日本在线观看| 亚洲综合丁香婷婷六月香| 国产精品久久久久久久浪潮网站| 久久夜色精品国产噜噜av | 中文字幕国产一区二区| 精品国产乱码91久久久久久网站| 欧美三级三级三级爽爽爽| 色欧美乱欧美15图片| 不卡的av电影在线观看| 成人免费视频一区二区| 国产高清精品久久久久| 激情综合一区二区三区| 美国欧美日韩国产在线播放| 天堂成人国产精品一区| 五月综合激情网| 石原莉奈在线亚洲二区| 日韩专区一卡二卡| 精品在线一区二区三区| 精品一区二区免费在线观看| 国内精品伊人久久久久av影院 | 91精品国产欧美日韩| 欧美精品久久一区| 日韩一区二区三| 久久伊99综合婷婷久久伊| 国产亚洲欧美日韩在线一区| 欧美激情一区三区| 成人欧美一区二区三区| 一区二区三区四区在线播放| 亚洲高清在线精品| 蜜桃精品视频在线| 国产激情一区二区三区| 不卡的av中国片| 欧美日韩免费一区二区三区| 日韩亚洲欧美高清| 中文字幕欧美日韩一区| 亚洲影院久久精品| 美女看a上一区| www.亚洲人| 欧美日韩国产成人在线免费| 精品美女一区二区三区| √…a在线天堂一区| 亚洲福利电影网| 国产成人亚洲综合a∨猫咪| 在线看日韩精品电影| 日韩一卡二卡三卡四卡| 欧美经典三级视频一区二区三区| 一区二区三区中文在线| 久久99精品久久久久久国产越南| 波多野结衣中文字幕一区 | 亚洲6080在线| 国产一区二区在线观看视频| 色综合婷婷久久| 精品国产成人系列| 亚洲免费色视频| 久久精品国产亚洲aⅴ | 欧美日韩高清一区二区不卡| 久久免费午夜影院| 午夜一区二区三区视频| 成人高清视频在线| 日韩一区二区免费在线观看| 国产精品进线69影院| 精品综合久久久久久8888| 欧美视频三区在线播放| 中文字幕精品三区| 黄色日韩三级电影| 91精品午夜视频|