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

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

?? m.cpp

?? Embedded C++ 4.0 Multimedia Timer
?? CPP
字號:

#include "StdAfx.h"
#include "M.h"

#pragma comment(lib, "Mmtimer.lib")

CMMTimer::CMMTimer() :
m_Milliseconds(0),
m_Delay(0),
m_Count(0),
m_RunningFlag(false)
{
    // Initialize critical section. Since we use a linked list for storing 
    // timer listeners, it's important to surround access to the list with a 
    // critical section in order for this class to be thread safe.
    ::InitializeCriticalSection(&m_CriticalSection);
}


// Destructor
CMMTimer::~CMMTimer()
{
	if(m_RunningFlag)
    {
        //Stop();
    }

    ::DeleteCriticalSection(&m_CriticalSection);
}


// Starts timer
bool CMMTimer::Start(UINT Delay, UINT Resolution)
{
    bool Result = true;

    // Only begin timer if it is not already running
    if(!m_RunningFlag)
    {
        // If this timer started without error
        if((m_Id = ::timeSetEvent(Delay, Resolution, TimeProc,
            reinterpret_cast<DWORD>(this), TIME_PERIODIC || TIME_CALLBACK_FUNCTION)) != NULL)
        {            
            // Keep track of delay interval and note that this timer is 
            // running
            m_Delay       = Delay;
            m_RunningFlag = true;
			RETAILMSG(1, (TEXT("start\r\n")));
        }
        // Else an error occurred
        else
        {
            // Note error
            Result = false;
        }
    }

    return Result;
}


// Stop timer
void CMMTimer::Stop()
{
    if(m_RunningFlag)
    {
		RETAILMSG(1, (TEXT("end\r\n")));
        ::timeKillEvent(m_Id);
        m_RunningFlag = false;
    }
}


// Reset timer values
void CMMTimer::Reset()
{
    m_Milliseconds = m_Count = 0;
//    NotifyListeners();
}


// Attach timer listener so that it can be notified when a timing event 
// occurrs
void CMMTimer::AttachListener(CMMTimerListener &Listener)
{
    ::EnterCriticalSection(&m_CriticalSection);

    m_Listeners.push_front(&Listener);

    ::LeaveCriticalSection(&m_CriticalSection);    
}


// Detach listener
void CMMTimer::DetachListener(CMMTimerListener &Listener)
{
    ::EnterCriticalSection(&m_CriticalSection);

    m_Listeners.remove(&Listener);

    ::LeaveCriticalSection(&m_CriticalSection);    
}


// Notify listeners that a timing event has occured
void CMMTimer::NotifyListeners()
{
    ::EnterCriticalSection(&m_CriticalSection);

    for(std::list<CMMTimerListener *>::iterator i = m_Listeners.begin();
        i != m_Listeners.end(); i++)
    {
		RETAILMSG(1, (TEXT("aa %d\r\n")));
        (*i)->Update(*this);
    }

    ::LeaveCriticalSection(&m_CriticalSection);
}


// Gets total number of seconds that have passed since this timer began.
DWORD CMMTimer::GetTotalSeconds() const
{
    return m_Milliseconds / MILLISECONDS_PER_SECOND;
}


// Gets total number of minutes that have passed since this timer began.
DWORD CMMTimer::GetTotalMinutes() const
{
    return GetTotalSeconds() / SECONDS_PER_MINUTE;
}


// Gets total number of hours that have passed since this timer began.
DWORD CMMTimer::GetTotalHours() const
{
    return GetTotalMinutes() / MINUTES_PER_HOUR;
}


// Gets number of milliseconds that have passed since the last second.
DWORD CMMTimer::GetCurrentMilliseconds() const
{ 
    return m_Milliseconds - GetTotalSeconds() * MILLISECONDS_PER_SECOND;
}


// Gets number of seconds that have passed since last minute.
DWORD CMMTimer::GetCurrentSeconds() const
{
    return GetTotalSeconds() - GetTotalMinutes() * SECONDS_PER_MINUTE;
}


// Gets number of minutes that have passed since last hour.
DWORD CMMTimer::GetCurrentMinutes() const
{
    return GetTotalMinutes() - GetTotalHours() * MINUTES_PER_HOUR;
}

    
// Gets multimedia device capabilities.
void CMMTimer::GetDevCaps(LPTIMECAPS TimeCap)
{
    ::timeGetDevCaps(TimeCap, sizeof(TIMECAPS));
}


// Function called by Windows when a timing event associated with this timer
// occurs.
void __stdcall CMMTimer::TimeProc(UINT uID, UINT UMsg, DWORD dwUser, DWORD dw1,
                                 DWORD dw2)
{
    CMMTimer *Timer = reinterpret_cast<CMMTimer *>(dwUser);

    Timer->m_Milliseconds += Timer->m_Delay;
    Timer->m_Count++;

	RETAILMSG(1, (TEXT("Failed %d\r\n"), Timer->m_Count));
	//TRACE(L"%d", Timer->m_Count);
    Timer->NotifyListeners();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美狂野另类xxxxoooo| 欧美成人一区二区三区| 久久精品噜噜噜成人88aⅴ| 亚洲免费资源在线播放| 欧美激情一区在线| 欧美国产成人精品| 水蜜桃久久夜色精品一区的特点 | 亚洲成人一区在线| 亚洲国产一区二区三区青草影视 | 国产欧美一区二区精品性色| 精品久久国产字幕高潮| 亚洲欧美日本韩国| 国产91精品免费| 色香蕉成人二区免费| 欧美亚洲动漫制服丝袜| 欧美乱妇15p| 亚洲日本va午夜在线电影| 亚洲综合免费观看高清完整版 | 国产亚洲人成网站| 国产精品传媒视频| 亚洲福利一区二区三区| 99视频有精品| 欧美日韩国产另类一区| 亚洲一区精品在线| 床上的激情91.| 欧美在线小视频| 亚洲精品一区二区三区蜜桃下载 | 国产精品中文欧美| 99国产精品久| 欧美一级视频精品观看| 中文字幕免费不卡在线| 国产成人综合网站| 欧美日韩国产综合一区二区| 亚洲激情欧美激情| 国产精品中文有码| 中文一区二区在线观看| 处破女av一区二区| 一区二区中文字幕在线| 老色鬼精品视频在线观看播放| 欧美美女直播网站| 视频一区欧美日韩| 日韩欧美一区中文| 一区二区三区色| 国产91精品在线观看| 国产精品久久免费看| 91在线porny国产在线看| 日韩免费观看高清完整版| 伊人夜夜躁av伊人久久| 欧美专区在线观看一区| 日韩电影免费在线看| 99久久精品情趣| 高清久久久久久| 国产精品不卡在线观看| 99re成人精品视频| 婷婷丁香久久五月婷婷| 成人免费av资源| 一区二区三区在线影院| 欧美精品成人一区二区三区四区| 欧美96一区二区免费视频| 欧美日韩精品免费观看视频| 免费观看在线色综合| 国产拍揄自揄精品视频麻豆| 成年人午夜久久久| 日韩一区中文字幕| 777久久久精品| 亚洲成av人片在线| 国产午夜精品久久久久久久| 色综合天天狠狠| 久久综合综合久久综合| 国产精品高潮呻吟| 3d动漫精品啪啪1区2区免费 | 亚洲一区二区三区影院| 精品国产人成亚洲区| 成人免费视频一区| 日韩成人一区二区三区在线观看| 精品免费视频.| 日本韩国一区二区三区视频| 亚洲九九爱视频| 精品三级在线看| 在线观看区一区二| 国产福利一区二区三区在线视频| 亚洲综合免费观看高清完整版| 久久久久久久综合狠狠综合| 国产一区二区美女| 国产人妖乱国产精品人妖| 欧美女孩性生活视频| 日韩免费看网站| 91高清视频在线| 国产成人av电影在线观看| 日本最新不卡在线| 一区二区三区波多野结衣在线观看| 久久美女艺术照精彩视频福利播放| 欧美三区免费完整视频在线观看| 午夜精品久久一牛影视| 日韩久久一区二区| 国产拍揄自揄精品视频麻豆| 日韩免费性生活视频播放| 欧美日韩在线一区二区| 91蜜桃免费观看视频| 国产成人无遮挡在线视频| 久久国内精品自在自线400部| 亚洲国产婷婷综合在线精品| 亚洲欧洲成人自拍| 国产精品成人网| 国产精品入口麻豆九色| 欧美亚洲动漫精品| 在线免费观看一区| 色综合视频一区二区三区高清| 国产福利91精品一区二区三区| 美女视频黄久久| 136国产福利精品导航| 国产三级精品视频| 国产色爱av资源综合区| 久久久亚洲国产美女国产盗摄| 日韩视频永久免费| 欧美电影精品一区二区| 欧美成人猛片aaaaaaa| 日韩区在线观看| 精品剧情在线观看| 26uuu国产电影一区二区| 欧美做爰猛烈大尺度电影无法无天| 91色porny| 色噜噜狠狠成人中文综合| 色域天天综合网| 欧美视频在线观看一区| 欧洲日韩一区二区三区| 欧美日韩小视频| 91精品国产丝袜白色高跟鞋| 日韩一区二区电影| 国产亚洲综合av| 国产精品不卡视频| 亚洲图片一区二区| 一道本成人在线| 欧美精品精品一区| 久久蜜臀精品av| 亚洲欧美日韩成人高清在线一区| 一区二区三区免费观看| 日欧美一区二区| 国产盗摄视频一区二区三区| 99视频超级精品| 欧美日韩精品系列| 精品国产麻豆免费人成网站| 中文字幕av一区 二区| 亚洲精品高清在线| 久久国产日韩欧美精品| 成人免费观看男女羞羞视频| 欧美亚洲综合网| 精品国产sm最大网站免费看| 国产精品久久久久久久久免费相片 | 26uuu欧美日本| 亚洲天堂免费在线观看视频| 午夜精品123| 国产91综合网| 欧美精品免费视频| 中文字幕av在线一区二区三区| 亚洲午夜精品在线| 国产精品综合在线视频| 欧美伊人久久久久久午夜久久久久| 日韩欧美第一区| 亚洲激情欧美激情| 国产精品一品二品| 欧美午夜宅男影院| 中文字幕免费一区| 久久国产麻豆精品| 91精品福利视频| 国产三级精品在线| 麻豆视频一区二区| 精品成人私密视频| 亚洲一区在线观看网站| 粉嫩av一区二区三区| 欧美一区中文字幕| 一区二区三区加勒比av| 国产成人精品亚洲777人妖| 91精品国产综合久久精品麻豆| 中文字幕av不卡| 国产一区二区三区观看| 欧美精品乱码久久久久久按摩| 亚洲少妇中出一区| 国产99久久久国产精品潘金| 日韩三级电影网址| 日韩中文字幕麻豆| 在线观看精品一区| 亚洲日本va午夜在线电影| 粉嫩嫩av羞羞动漫久久久| 欧美成va人片在线观看| 日韩国产精品久久| 欧美日韩国产经典色站一区二区三区| 中文字幕制服丝袜一区二区三区| 国产综合一区二区| 91麻豆精品秘密| 国产精品美女久久久久久久| 国产乱对白刺激视频不卡| 日韩女优av电影| 麻豆精品国产传媒mv男同| 欧美一区二区三区影视| 美腿丝袜一区二区三区| 日韩一区二区三区在线视频| 免费观看30秒视频久久| 欧美一区二区视频观看视频| 日本午夜一本久久久综合|