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

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

?? pviewce.cpp

?? PView CE from Microsoft Corporation
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                        0, (DLGPROC)ModuleDialogProc);
                    SetFocus(g_hWndListViews[MODULELV]);
                }
            }
        }
        break;
    case WM_NOTIFY:
        {
            NMHDR* pnmhdr = (NMHDR*)lParam;
            if (LVN_ITEMACTIVATE  == pnmhdr->code)
            {
                NMLISTVIEW* pnmlv = (NMLISTVIEW*)lParam;
                if (pnmhdr->hwndFrom == g_hWndListViews[PROCESSLV])
                {
                    DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DLGPROCESS),
                        0, (DLGPROC)ProcessDialogProc); 
                    SetFocus(g_hWndListViews[PROCESSLV]);
                }
                else if (pnmhdr->hwndFrom == g_hWndListViews[THREADLV])
                {
                    DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DLGTHREAD),
                        0, (DLGPROC)ThreadDialogProc);
                    SetFocus(g_hWndListViews[THREADLV]);
                }
                else if (pnmhdr->hwndFrom == g_hWndListViews[MODULELV])
                {
                    DialogBox(g_hInst, MAKEINTRESOURCE(IDD_DLGMODULE),
                        0, (DLGPROC)ModuleDialogProc);
                    SetFocus(g_hWndListViews[MODULELV]);
                }
            }
        }
        break;

    case WM_DESTROY:
        CleanupListViewes();
        PostQuitMessage(0);
        break;

    case WM_SIZE:
        {
            // Check to see if app is being Minimized
            if (SIZE_MINIMIZED == wParam) 
            {
                // App being minimized we'll just close instead
                PostMessage(hWnd, WM_DESTROY, 0, 0);
            }
        }
        break;
    }
    return DefWindowProc(hWnd, Msg, wParam, lParam);      
}

BOOL InitApplication()
{
	WNDCLASS wc;

	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc = (WNDPROC)MainWndProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hIcon = NULL;
	wc.hInstance = g_hInst;
	wc.hCursor = NULL;
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName = NULL;
	wc.lpszClassName = pszAppName;
	
	return RegisterClass(&wc);
}

BOOL InitInstance(
    int iCmdShow
    )
{
	g_hWndMain = CreateWindow(pszAppName, pszTitle, WS_VISIBLE,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL, g_hInst, NULL);

	if (NULL == g_hWndMain)
	{
		return FALSE;
	}

	ShowWindow(g_hWndMain, iCmdShow);
	UpdateWindow(g_hWndMain);

	return TRUE;
}

int WINAPI WinMain (
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance, 
    LPWSTR lpCmdLine, 
    int nShowCmd
    )

{
    MSG msg = {0};

    // Store the application instance in our global variable.
    g_hInst = hInstance;

    // Load strings
    pszAppName = StringFromResources(IDS_PVIEWCE_APPNAME);
    pszTitle = StringFromResources(IDS_PVIEWCE_TITLE);

    // Use a globally named mutex to detect another instance of HelloSMS
    const HANDLE hMutex = CreateMutex(0, 0, TEXT("_PVIEWCE_EXE_MUTEX_"));

    // check the result code
    if (0 != hMutex) 
    {
        // No other instances running? Okay to proceed...
        if (ERROR_ALREADY_EXISTS != GetLastError()) 
        if (true)
        {
		    // initialize the application
		    if (NULL != InitApplication())
		    {
			    // initialize the instance
			    if (TRUE == InitInstance(nShowCmd))
			    {
					// begin message pump
					while (GetMessage(&msg, NULL, 0,0))
					{
						TranslateMessage(&msg);
						DispatchMessage(&msg);
					}
			    }
		    }
            // Fall through to Cleanup
        }
        else 
        {
            // Already an instance running - attempt to switch to it and then exit
            const HWND hwndExistingInstance = FindWindow(pszAppName, pszTitle);
            if (NULL != hwndExistingInstance) 
            {
                SetForegroundWindow((HWND)(((ULONG)hwndExistingInstance) | 0x1));
            }

            // Fall through to Cleanup
        }
    }

    if (g_hProcessSnap != NULL) 
    {
        VERIFY(CloseToolhelp32Snapshot(g_hProcessSnap));
    }
    
    if (g_pmsModuleSnap != NULL) 
    {
        free(g_pmsModuleSnap);
    }
    
    if (0 != hMutex) 
    {
        VERIFY(CloseHandle(hMutex));
    }

    return msg.wParam;
}

BOOL FillProcList(
    HANDLE hProcessSnap
    )
{
    PROCESSENTRY32 pe32 = {0};
    LVITEM lvi;
    int iItem;
    TCHAR tszBuffer[11];

    ZeroMemory(&lvi, sizeof(lvi));

    // Clear the ListView
    SendMessage(g_hWndListViews[PROCESSLV], LVM_DELETEALLITEMS, 0, 0);

    // Size of the PROCESSENTRY32 structure must be filled out before use.
    pe32.dwSize = sizeof(PROCESSENTRY32);
  
    // Walk the snapshot of processes and for each process, add it to the list
    if (TRUE == Process32First(hProcessSnap, &pe32)) 
    {
        do 
        {
            // Subitem 0 is the Process name
            lvi.pszText = pe32.szExeFile;
            lvi.cchTextMax = MAX_PATH;
            lvi.mask = LVIF_TEXT | LVIF_PARAM;
            lvi.lParam = pe32.th32ProcessID;

            iItem = ListView_InsertItem(g_hWndListViews[PROCESSLV], &lvi);

            _stprintf(tszBuffer, TEXT("0x%08x"), pe32.th32ProcessID);

            lvi.mask = LVIF_TEXT;
            ListView_SetItemText(g_hWndListViews[PROCESSLV], iItem, 1, tszBuffer);
            
        } while (Process32Next(hProcessSnap, &pe32));

        ListView_SetItemState(g_hWndListViews[PROCESSLV], 0,
            LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);
    } 
    else 
    {
        // Couldn't walk first node of list
        return FALSE;
    }
    
    return TRUE;
}


static BOOL FillThreadList(
    HANDLE hProcessSnap, 
    DWORD dwOwnerPID
    )
{
    THREADENTRY32 te32 = {0};
    TCHAR tszBuffer[11];
    LVITEM lvi;
    int iItem;

    // Prepare the LVITEM
    ZeroMemory(&lvi, sizeof(lvi));

    // Clear the ListView
    SendMessage(g_hWndListViews[THREADLV], LVM_DELETEALLITEMS, 0, 0);
  
    // Size of the THREADENTRY32 structure must be filled out before use.
    te32.dwSize = sizeof(THREADENTRY32);
  
    // Walk thread snapshot to find all threads of the process we want.
    // If the thread belongs to the process we want, add its information  
    // to the display list.
    if (Thread32First(hProcessSnap, &te32)) 
    {
        do 
        {   
            if (te32.th32OwnerProcessID == dwOwnerPID) 
            {
                _stprintf(tszBuffer, TEXT("0x%08x"), te32.th32ThreadID);

                // Subitem 0 is the Process name
                lvi.pszText = tszBuffer;
                lvi.cchTextMax = ARRAY_LENGTH(tszBuffer);
                lvi.mask = LVIF_TEXT | LVIF_PARAM;
                lvi.lParam = te32.th32ThreadID;

                iItem = ListView_InsertItem(g_hWndListViews[THREADLV], &lvi);

                _stprintf(tszBuffer, TEXT("0x%08x"), te32.tpBasePri);

                lvi.mask = LVIF_TEXT;
                ListView_SetItemText(g_hWndListViews[THREADLV], iItem, 1, tszBuffer);

            }
        } while (Thread32Next(hProcessSnap, &te32));
        ListView_SetItemState(g_hWndListViews[THREADLV], 0,
            LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);
    } 
    else 
    {
        // Couldn't walk the list of threads.
        return FALSE; 
    }

    return TRUE;
}

static BOOL FillModuleList(
    DWORD dwOwnerPID
    )
{
    MODULEENTRY32 me32 = {0};
    LVITEM lvi;
    int iItem;
    TCHAR tszBuffer[11];
    int iSnapIndex = PID2ArrayID(dwOwnerPID);


    // sanity check
    if (iSnapIndex < 0) 
    {
        return FALSE;
    }

    // Prepare the LVITEM
    ZeroMemory(&lvi, sizeof(lvi));

    // Clear the ListView
    SendMessage(g_hWndListViews[MODULELV], LVM_DELETEALLITEMS, 0, 0);

    // Size of the MODULEENTRY32 structure must be filled out before use.
    me32.dwSize = sizeof(MODULEENTRY32);
  
    // Walk thread snapshot to find all modules of the process we want.
    // If the module belongs to the process we want, add its information  
    // to the display list.
    if (Module32First(g_pmsModuleSnap[iSnapIndex].hSnapShot, &me32)) 
    {
        do 
        {   
            // Subitem 0 is the Process name
            lvi.pszText = me32.szModule;
            lvi.cchTextMax = MAX_PATH;
            lvi.mask = LVIF_TEXT | LVIF_PARAM;
            lvi.lParam = me32.th32ModuleID;

            iItem = ListView_InsertItem(g_hWndListViews[MODULELV], &lvi);
             
            _stprintf(tszBuffer, TEXT("0x%08x"), me32.th32ModuleID);

            lvi.mask = LVIF_TEXT;
            ListView_SetItemText(g_hWndListViews[MODULELV], iItem, 1, tszBuffer);



        } while (Module32Next(g_pmsModuleSnap[iSnapIndex].hSnapShot, &me32));

        ListView_SetItemState(g_hWndListViews[MODULELV], 0,
            LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);
    } 
    else 
    {
        // Couldn't walk the list of modules.
        return FALSE;          
    }

    return TRUE;
}


static BOOL InitModuleSnap(
    HANDLE hProcessSnap
    )
{
    PROCESSENTRY32  pe32 = {0};
    int             iCount = 0;
  
    // Size of the PROCESSENTRY32 structure must be filled out before use.
    pe32.dwSize = sizeof(PROCESSENTRY32);
  
    // Walk the snapshot of processes and for each process, count it
    if (Process32First(hProcessSnap, &pe32)) 
    {
        do 
        {
            ++iCount;
        } while (Process32Next(hProcessSnap, &pe32));
    } 
    else 
    {
        return FALSE;    // Couldn't walk the list of processes.
    }

    g_pmsModuleSnap = (MODSNAP*) malloc(sizeof(MODSNAP) * iCount);
    if (g_pmsModuleSnap == NULL) 
    {
        return FALSE;
    }

    // store the count
    g_iTotalProcs = iCount;
    
    // Walk the process list again, this time initializing the modinfo
    iCount = 0;
    if (Process32First(hProcessSnap, &pe32)) 
    {
        do 
        {
            g_pmsModuleSnap[iCount].dwOwnerPID = pe32.th32ProcessID;
            g_pmsModuleSnap[iCount].hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID);
            
            // was the snapshot successful?
            if (g_pmsModuleSnap[iCount].hSnapShot == (HANDLE) -1) 
            {
                return FALSE;
            }

            ++iCount;
        } while (Process32Next(hProcessSnap, &pe32));
    } 
    else 
    {
        return FALSE;    // Couldn't walk the list of processes.
    }
    
    return TRUE;
}


static int PID2ArrayID(
    DWORD dwOwnerPID
    )
{
    // sanity check
    ASSERT(g_pmsModuleSnap != NULL);
    
    for (int i = 0; i < g_iTotalProcs; i++) 
    {
        if (g_pmsModuleSnap[i].dwOwnerPID == dwOwnerPID) 
        {
            return i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区四区| 欧美精品一区二区蜜臀亚洲| 99视频一区二区| 不卡在线视频中文字幕| 国产麻豆成人传媒免费观看| 日韩精品国产精品| 亚洲成人激情社区| 亚洲综合男人的天堂| 一区二区三区在线不卡| 日韩美女啊v在线免费观看| 国产精品嫩草影院av蜜臀| 国产日韩精品一区二区浪潮av| 亚洲综合免费观看高清完整版在线| 中文字幕日韩av资源站| 韩国av一区二区三区在线观看| 国产精品五月天| 国产日韩欧美一区二区三区乱码 | 久久精品国产第一区二区三区| 亚洲一区在线视频| 亚洲不卡一区二区三区| 午夜欧美大尺度福利影院在线看| 亚洲麻豆国产自偷在线| 婷婷久久综合九色综合伊人色| 三级欧美韩日大片在线看| 免费成人在线观看视频| 成人免费观看av| 欧洲精品视频在线观看| 欧美一级精品大片| 国产精品久久网站| 午夜欧美一区二区三区在线播放| 久久99这里只有精品| 91麻豆免费观看| 欧美日韩在线播放一区| 久久久久国产精品免费免费搜索| 亚洲精品五月天| 狠狠色丁香久久婷婷综合_中 | 成人av网站在线观看免费| 欧美日韩综合在线免费观看| 精品乱码亚洲一区二区不卡| 亚洲黄色小视频| 久久se这里有精品| 欧美色图激情小说| 国产精品久久久久久久久图文区 | 欧美日韩国产在线观看| 国产日韩精品一区二区三区在线| 亚洲韩国精品一区| 成人国产电影网| 久久综合资源网| 久久国产成人午夜av影院| 欧美在线影院一区二区| 欧美国产日韩在线观看| 久久草av在线| 精品区一区二区| 日本欧美加勒比视频| 色综合天天性综合| 国产精品每日更新| 成人在线综合网| 欧美韩国日本一区| 成人免费高清在线| 国产农村妇女精品| 成人永久免费视频| 亚洲国产成人一区二区三区| 国产伦精品一区二区三区免费 | 色综合久久久久综合| 国产精品成人免费在线| 高清免费成人av| 综合精品久久久| 91久久精品网| 丝袜脚交一区二区| 欧美成人乱码一区二区三区| 美国毛片一区二区三区| 久久久久久久综合日本| 国产成人av影院| 亚洲精品久久7777| 欧美变态口味重另类| 国内精品久久久久影院薰衣草| 久久久99精品免费观看| 色婷婷激情久久| 日韩福利视频导航| 中文字幕av资源一区| 欧美影院一区二区三区| 老鸭窝一区二区久久精品| 亚洲国产成人在线| 欧美一区二区在线播放| 国产精品99久久久| 亚洲精品网站在线观看| 91精品国产色综合久久久蜜香臀| 国产一本一道久久香蕉| 国产精品久久久久久久久晋中| 色噜噜久久综合| 开心九九激情九九欧美日韩精美视频电影| 精品美女在线播放| k8久久久一区二区三区| 亚洲18女电影在线观看| 国产日韩影视精品| 欧美中文字幕一区二区三区亚洲| 奇米影视在线99精品| 亚洲三级在线播放| 国产情人综合久久777777| 精彩视频一区二区| 久久成人免费日本黄色| 国产精品国产三级国产a| 9191国产精品| 色综合av在线| 粉嫩av亚洲一区二区图片| 亚洲成av人片一区二区三区| 国产精品视频九色porn| 亚洲精品一区二区三区影院| 欧美精品三级在线观看| 97精品国产97久久久久久久久久久久| 美女视频一区二区| 91性感美女视频| 懂色av一区二区夜夜嗨| 成人一区二区视频| 国产精品综合二区| 国产精品性做久久久久久| 国产91精品入口| 国产婷婷色一区二区三区| 欧美一区二区视频免费观看| 一本一本大道香蕉久在线精品 | 日韩在线卡一卡二| 日韩国产欧美在线视频| 免费高清在线一区| 久久精品国产免费| 国内精品写真在线观看| 粉嫩一区二区三区在线看| www.66久久| 欧美日韩高清影院| 欧美日韩你懂的| 欧美一区二区三区公司| 欧美成人一区二区三区片免费| 精品国产一区二区三区不卡| 国产精品天美传媒沈樵| 亚洲九九爱视频| 日本午夜精品一区二区三区电影 | 精品在线播放免费| 不卡的av中国片| 欧美美女一区二区| 国产亚洲精久久久久久| 亚洲成a人片综合在线| 国产精品一区三区| 欧美午夜精品一区二区三区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产一区中文字幕| 国产精品欧美极品| 精品一区二区三区在线播放| 波多野结衣视频一区| 精品少妇一区二区三区在线播放| 亚洲欧美日韩一区| 国产精品18久久久| 欧美福利视频导航| 一区二区三区免费观看| 国产成a人无v码亚洲福利| 日韩一区二区精品葵司在线| 亚洲已满18点击进入久久| 93久久精品日日躁夜夜躁欧美| 日韩中文字幕区一区有砖一区| 久久国产福利国产秒拍| 欧美日韩视频在线观看一区二区三区 | 欧美私模裸体表演在线观看| 国产亚洲精久久久久久| 黄一区二区三区| 色激情天天射综合网| 亚洲人成网站在线| caoporn国产精品| 欧美日产国产精品| 国产精品美女久久久久久 | 日本欧美在线看| 欧美福利视频导航| 亚洲国产欧美一区二区三区丁香婷| 久久国产精品色婷婷| av毛片久久久久**hd| 亚洲视频一二区| 成人av在线资源| 一级精品视频在线观看宜春院 | 久久久五月婷婷| 粉嫩一区二区三区性色av| 国产精品99久久久久| 欧美大度的电影原声| 日日夜夜精品免费视频| 欧美成人高清电影在线| 国产一区二区在线观看视频| 欧美国产97人人爽人人喊| 亚洲精品第1页| 在线观看欧美日本| 亚洲国产成人av网| 精品国精品自拍自在线| 99久久99久久免费精品蜜臀| 亚洲www啪成人一区二区麻豆| 日韩三级视频在线看| 成年人国产精品| 日日摸夜夜添夜夜添精品视频| 久久久91精品国产一区二区三区| 色婷婷综合久色| 精品制服美女久久| 亚洲在线观看免费| 日本一区二区三区四区| 51精品秘密在线观看| 成人黄色小视频在线观看| 免费久久99精品国产|