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

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

?? aboutdlg.cpp

?? <Visual C++ 網絡程序設計實例詳解>配套源碼
?? CPP
字號:
#include "stdafx.h"
#include "AboutDlg.h"
#include <Tlhelp32.h>

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
    m_pszLoadedModules         = NULL;
    m_pszLoadedModulesFullPath = NULL;
    m_nNumberOfLoadedModules   = 0;
}


CAboutDlg::~CAboutDlg()
{
    // Delete individual strings
    for (int i = 0; i < m_nNumberOfLoadedModules; ++i)
    {
        if (m_pszLoadedModules[i] != NULL)
        {
            delete m_pszLoadedModules[i];
            delete m_pszLoadedModulesFullPath[i];

            m_pszLoadedModulesFullPath[i] = NULL;
            m_pszLoadedModules[i]         = NULL;
        }
    }

    // Delete the array of strings
    if (m_pszLoadedModules != NULL)
    {
        delete m_pszLoadedModules;
        delete m_pszLoadedModulesFullPath;

        m_pszLoadedModules         = NULL;
        m_pszLoadedModulesFullPath = NULL;
    }
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
    	
	CListCtrl* pListCtrl = static_cast<CListCtrl*>(GetDlgItem(IDC_LIST_LOADED_MODULES));
    CStatic* pStaticBuildInfo = static_cast<CStatic*>(GetDlgItem(IDC_STATIC_BUILD_INFO));

    // Get the build date and time
    CString strBuildDateTime = GetBuildDateTime();
    pStaticBuildInfo->SetWindowText(strBuildDateTime);

    // Get the number of loaded modules that will be shown
    GetLoadedModules(&m_pszLoadedModules, &m_pszLoadedModulesFullPath, &m_nNumberOfLoadedModules);

    pListCtrl->InsertColumn(0, _T("Name"), LVCFMT_LEFT, 100);
    pListCtrl->InsertColumn(1, _T("Path"), LVCFMT_LEFT, 245);
    

    // We start from 1 because the first name is always the path of the exe itself.
    // Hence, no point in showing it again.
    for (int i = 1; i < m_nNumberOfLoadedModules; ++i)
    {
        pListCtrl->InsertItem(i - 1, m_pszLoadedModules[i]);
        pListCtrl->SetItemText(i - 1, 1, m_pszLoadedModulesFullPath[i]);
    }
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CAboutDlg::GetLoadedModules(TCHAR*** pszModuleList, TCHAR*** pszModuleListFullPath, int* pnNumberOfModules)
{
    *pnNumberOfModules = 0;

    DWORD dwCurrentProcessId = ::GetCurrentProcessId();
    
    // Take this process's snapshot
    HANDLE hModulesSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwCurrentProcessId);
    
    MODULEENTRY32 me32;

    // << Start counting the number of modules loaded
    BOOL bSuccessInModuleFind = ::Module32First(hModulesSnapShot, &me32);
    
    if (bSuccessInModuleFind)
    {
        ++(*pnNumberOfModules);
        do 
        {
            bSuccessInModuleFind = ::Module32Next(hModulesSnapShot, &me32);
            if (bSuccessInModuleFind)
            {
                ++(*pnNumberOfModules);
            }
        }
        while (bSuccessInModuleFind);
    }
    else
    {
        // We didn't forget to clean up the snapshot object.
        ::CloseHandle(hModulesSnapShot);

        return; // no modules loaded
    }

    // Stop counting the number of modules loaded >>


    // Now do the same things to get the loaded module names and paths, as done above,
    // but allocate memory for the module name and path name strings.
    // Again, walk through the list of modules in this process

    *pszModuleList         = new TCHAR*[(*pnNumberOfModules)];
    *pszModuleListFullPath = new TCHAR*[(*pnNumberOfModules)];

    ::Module32First(hModulesSnapShot, &me32);
    
    // Allocate memory for the first module name and its path
    unsigned int nStrLenModuleName     = ::strlen(me32.szModule);
    unsigned int nStrLenModuleFullPath = ::strlen(me32.szExePath);

    (*pszModuleList)[0]         = new TCHAR[nStrLenModuleName + 1];
    (*pszModuleListFullPath)[0] = new TCHAR[nStrLenModuleFullPath + 1];

    // Copy the first module name and its path in the buffer
    ::strcpy((*pszModuleList)[0], me32.szModule);
    ::strcpy((*pszModuleListFullPath)[0], me32.szExePath);

    for (int i = 1; i < (*pnNumberOfModules); ++i)
    {
        ::Module32Next(hModulesSnapShot, &me32);

        // Allocate memory for modules name and their path
        nStrLenModuleName     = ::strlen(me32.szModule);
        nStrLenModuleFullPath = ::strlen(me32.szExePath);

        (*pszModuleList)[i]         = new TCHAR[nStrLenModuleName + 1];
        (*pszModuleListFullPath)[i] = new TCHAR[nStrLenModuleFullPath + 1];

        // Copy the module name and their path in the buffer
        ::strcpy((*pszModuleList)[i], me32.szModule);
        ::strcpy((*pszModuleListFullPath)[i], me32.szExePath);
    }

    // We didn't forget to clean up the snapshot object.
    ::CloseHandle(hModulesSnapShot);
}


CString CAboutDlg::GetBuildDateTime()
{
    CString strDateTime;
    
    strDateTime.Format("Built on %s at %s", __DATE__, __TIME__);

    return strDateTime;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区久久| 91麻豆精品一区二区三区| 国产精品麻豆视频| 久久亚洲精品小早川怜子| 91精品国产综合久久久久久久久久| 国产精品一区在线观看你懂的| 蜜臀国产一区二区三区在线播放| 亚洲一区二区四区蜜桃| 一区二区三区蜜桃网| 亚洲免费av网站| 洋洋av久久久久久久一区| 国产精品久久久一区麻豆最新章节| 久久综合九色综合97婷婷| 久久精品一级爱片| 亚洲精品中文在线影院| 亚洲v日本v欧美v久久精品| 亚洲国产视频a| 久久99国产精品尤物| 国产一区不卡视频| 在线亚洲高清视频| 在线综合+亚洲+欧美中文字幕| 日韩欧美黄色影院| 国产精品久久久久7777按摩 | 激情文学综合丁香| 色综合久久综合中文综合网| 欧美日韩国产高清一区二区 | 综合激情成人伊人| 亚洲无线码一区二区三区| 国产一区二区三区久久久| 色婷婷久久99综合精品jk白丝 | 9191国产精品| 久久久精品一品道一区| 日本免费新一区视频| 99精品国产一区二区三区不卡 | 日本一区二区三区电影| 亚洲午夜久久久久久久久电影院| 国产九色sp调教91| 91美女片黄在线| 久久丝袜美腿综合| 激情欧美一区二区| 欧美成人a∨高清免费观看| 亚洲a一区二区| 99精品久久只有精品| 亚洲欧美视频在线观看| 一本大道久久a久久精品综合| 国产精品欧美一区喷水| 成人国产视频在线观看| 国产精品久久午夜| 欧美日韩一区二区在线观看视频| 成人欧美一区二区三区小说| 国产欧美1区2区3区| 另类中文字幕网| 精品成人a区在线观看| 狠狠色丁香婷综合久久| 欧美国产欧美亚州国产日韩mv天天看完整| 美脚の诱脚舐め脚责91 | 亚洲成人一二三| 91色婷婷久久久久合中文| 亚洲欧美视频在线观看视频| 中文字幕一区免费在线观看| 成人精品在线视频观看| 亚洲毛片av在线| 日韩欧美一级二级三级| 激情欧美一区二区三区在线观看| 国产亚洲欧美激情| 欧美精品日韩一本| 风间由美一区二区三区在线观看 | 久久99热这里只有精品| 欧美一区二区观看视频| 欧美精彩视频一区二区三区| 成人h动漫精品| 亚洲国产成人va在线观看天堂 | 国产三级精品三级在线专区| 成人午夜又粗又硬又大| 精品一区二区三区在线视频| 一区二区三区精品在线观看| 日韩制服丝袜av| 色综合久久久久综合体| 国产欧美精品一区| 福利91精品一区二区三区| 国产清纯在线一区二区www| 国产经典欧美精品| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美国产日韩在线观看| 成人免费视频一区二区| 国产精品你懂的在线欣赏| 成人性视频网站| 国产精品国产三级国产有无不卡 | 精品亚洲成a人在线观看| 欧美xxxxx裸体时装秀| 精彩视频一区二区| 精品剧情在线观看| 国产高清久久久久| 亚洲图片你懂的| 在线亚洲人成电影网站色www| 一区二区三区不卡在线观看| 欧美无人高清视频在线观看| 视频一区二区三区中文字幕| 91精品国产黑色紧身裤美女| 激情久久五月天| 国产肉丝袜一区二区| 色噜噜狠狠色综合欧洲selulu| 亚洲一区精品在线| 精品久久久久久久久久久久包黑料 | 亚洲小少妇裸体bbw| 欧美一区二区在线免费观看| 国产乱子轮精品视频| 国产精品久久久一本精品| voyeur盗摄精品| 亚洲欧美激情在线| 99久久久久久| 亚洲男人的天堂在线aⅴ视频| 视频一区中文字幕国产| 国产经典欧美精品| 宅男在线国产精品| 亚洲欧美日韩国产手机在线| 日韩黄色在线观看| 白白色亚洲国产精品| 99re成人精品视频| 久久久久九九视频| 国产白丝精品91爽爽久久| 91精品国产全国免费观看| 国产精品亚洲午夜一区二区三区| 亚洲免费高清视频在线| 日韩一级片网站| 日本久久一区二区三区| 国产成人av自拍| 日韩精品福利网| 亚洲日本电影在线| 久久日一线二线三线suv| 色综合天天综合网国产成人综合天 | 国产精品一区二区黑丝| 亚洲制服丝袜在线| 中文字幕一区不卡| 欧美精品一区二区在线观看| 在线免费观看成人短视频| 国产mv日韩mv欧美| 极品少妇一区二区三区精品视频| 亚洲成在人线免费| 亚洲精品精品亚洲| 中文成人综合网| 久久精品综合网| 北条麻妃一区二区三区| 国产福利不卡视频| 久久99久国产精品黄毛片色诱| 亚洲一区二区三区四区在线免费观看 | 9久草视频在线视频精品| 国产精品亚洲а∨天堂免在线| 久久精品国产精品亚洲综合| 无码av免费一区二区三区试看 | 日韩免费高清av| 欧美精品一二三区| 欧美精品在线观看播放| 欧美综合一区二区| 欧美午夜精品理论片a级按摩| 日本高清不卡aⅴ免费网站| 99精品久久免费看蜜臀剧情介绍| 成人精品鲁一区一区二区| 国产宾馆实践打屁股91| 成人av中文字幕| 91麻豆产精品久久久久久 | 欧美体内she精高潮| 色网综合在线观看| 色综合久久综合网欧美综合网 | 欧美老女人第四色| 91精品国产综合久久久久久久久久| 欧美日韩精品三区| 日韩一区二区三区电影| 欧美不卡激情三级在线观看| 精品成人免费观看| 国产精品私人自拍| 一区二区成人在线| 日本aⅴ免费视频一区二区三区| 免费成人你懂的| 丁香激情综合五月| 日本电影欧美片| 欧美精品粉嫩高潮一区二区| 欧美成人精精品一区二区频| 久久亚洲私人国产精品va媚药| 国产精品私人影院| 亚洲国产你懂的| 国内外成人在线| 99视频在线观看一区三区| 欧美日韩一区成人| 久久久亚洲精品石原莉奈| 亚洲欧美在线高清| 裸体健美xxxx欧美裸体表演| 大胆亚洲人体视频| 欧美三级视频在线播放| 精品成人私密视频| 一区二区国产视频| 久久国产福利国产秒拍| 99久久99久久精品免费观看 | 国产精品综合一区二区三区| 91小视频免费观看| 精品国产凹凸成av人网站| 亚洲老妇xxxxxx| 国产精品伊人色| 欧美一卡二卡三卡| 亚洲婷婷综合久久一本伊一区|