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

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

?? oledbatlenumerator.cpp

?? 數據庫開發的一些實例供學習使用
?? CPP
字號:
// OLEDBATLEnumerator.cpp : Implementation of WinMain


// Note: Proxy/Stub Information
//      To build a separate proxy/stub DLL, 
//      run nmake -f OLEDBATLEnumeratorps.mk in the project directory.

#include "stdafx.h"
#include "resource.h"
#include <initguid.h>
#include "OLEDBATLEnumerator.h"

#include "OLEDBATLEnumerator_i.c"
//Added by Chuck Wood for dialog box support
#include "EnumDialog.h"

const DWORD dwTimeOut = 5000; // time for EXE to be idle before shutting down
const DWORD dwPause = 1000; // time to wait for threads to finish up

// Passed to CreateThread to monitor the shutdown event
static DWORD WINAPI MonitorProc(void* pv)
{
    CExeModule* p = (CExeModule*)pv;
    p->MonitorShutdown();
    return 0;
}

LONG CExeModule::Unlock()
{
    LONG l = CComModule::Unlock();
    if (l == 0)
    {
        bActivity = true;
        SetEvent(hEventShutdown); // tell monitor that we transitioned to zero
    }
    return l;
}

//Monitors the shutdown event
void CExeModule::MonitorShutdown()
{
    while (1)
    {
        WaitForSingleObject(hEventShutdown, INFINITE);
        DWORD dwWait=0;
        do
        {
            bActivity = false;
            dwWait = WaitForSingleObject(hEventShutdown, dwTimeOut);
        } while (dwWait == WAIT_OBJECT_0);
        // timed out
        if (!bActivity && m_nLockCnt == 0) // if no activity let's really bail
        {
#if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED)
            CoSuspendClassObjects();
            if (!bActivity && m_nLockCnt == 0)
#endif
                break;
        }
    }
    CloseHandle(hEventShutdown);
    PostThreadMessage(dwThreadID, WM_QUIT, 0, 0);
}

bool CExeModule::StartMonitor()
{
    hEventShutdown = CreateEvent(NULL, false, false, NULL);
    if (hEventShutdown == NULL)
        return false;
    DWORD dwThreadID;
    HANDLE h = CreateThread(NULL, 0, MonitorProc, this, 0, &dwThreadID);
    return (h != NULL);
}

CExeModule _Module;

BEGIN_OBJECT_MAP(ObjectMap)
END_OBJECT_MAP()


LPCTSTR FindOneOf(LPCTSTR p1, LPCTSTR p2)
{
    while (p1 != NULL && *p1 != NULL)
    {
        LPCTSTR p = p2;
        while (p != NULL && *p != NULL)
        {
            if (*p1 == *p)
                return CharNext(p1);
            p = CharNext(p);
        }
        p1 = CharNext(p1);
    }
    return NULL;
}

/////////////////////////////////////////////////////////////////////////////
//
extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, 
    HINSTANCE /*hPrevInstance*/, LPTSTR lpCmdLine, int /*nShowCmd*/)
{
    lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT

#if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED)
    HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);
#else
    HRESULT hRes = CoInitialize(NULL);
#endif
    _ASSERTE(SUCCEEDED(hRes));
    _Module.Init(ObjectMap, hInstance, &LIBID_OLEDBATLENUMERATORLib);
    _Module.dwThreadID = GetCurrentThreadId();
    TCHAR szTokens[] = _T("-/");

    int nRet = 0;
    BOOL bRun = TRUE;
    LPCTSTR lpszToken = FindOneOf(lpCmdLine, szTokens);
    while (lpszToken != NULL)
    {
        if (lstrcmpi(lpszToken, _T("UnregServer"))==0)
        {
            _Module.UpdateRegistryFromResource(IDR_OLEDBATLEnumerator, FALSE);
            nRet = _Module.UnregisterServer(TRUE);
            bRun = FALSE;
            break;
        }
        if (lstrcmpi(lpszToken, _T("RegServer"))==0)
        {
            _Module.UpdateRegistryFromResource(IDR_OLEDBATLEnumerator, TRUE);
            nRet = _Module.RegisterServer(TRUE);
            bRun = FALSE;
            break;
        }
        lpszToken = FindOneOf(lpszToken, szTokens);
    }

    if (bRun)
    {
        _Module.StartMonitor();
#if _WIN32_WINNT >= 0x0400 & defined(_ATL_FREE_THREADED)
        hRes = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, 
            REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED);
        _ASSERTE(SUCCEEDED(hRes));
        hRes = CoResumeClassObjects();
#else
        hRes = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, 
            REGCLS_MULTIPLEUSE);
#endif
        _ASSERTE(SUCCEEDED(hRes));
//Added by Chuck Wood to open the dialog box
		CEnumDialog c;
        _Module.RevokeClassObjects();
        Sleep(dwPause); //wait for any threads to finish
    }

    _Module.Term();
    CoUninitialize();
    return nRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情小说欧美图片| 成人理论电影网| 丁香一区二区三区| 日韩精品国产精品| 日本精品一区二区三区四区的功能| 日韩欧美中文一区| 一区二区日韩av| 成人性生交大片| 欧美国产精品专区| 亚洲第一综合色| 久久99日本精品| 久久精品国产精品亚洲精品| 亚洲在线免费播放| 午夜精品福利一区二区蜜股av| 日韩成人精品在线| 国产盗摄精品一区二区三区在线| 成人av在线资源网| 91美女在线视频| 岛国av在线一区| 99久久精品一区二区| 国产精品日产欧美久久久久| 91捆绑美女网站| 亚洲一二三四在线| 69堂精品视频| 国产成人高清视频| 亚洲人成网站精品片在线观看| 欧美视频一二三区| 激情久久五月天| 中文字幕高清不卡| 欧美久久一二三四区| 欧美三级欧美一级| 亚洲乱码中文字幕综合| 欧洲生活片亚洲生活在线观看| 欧美日韩国产天堂| 久久综合色婷婷| 欧美mv和日韩mv国产网站| 精品日韩99亚洲| 尤物视频一区二区| 99久久夜色精品国产网站| 精品福利一区二区三区免费视频| 99久久精品国产导航| 欧美性猛交xxxx黑人交| 国产日韩欧美精品一区| 欧美优质美女网站| 国产福利一区二区三区视频在线| 日韩亚洲电影在线| 99精品视频一区| 天堂一区二区在线免费观看| 久久婷婷国产综合精品青草| 极品少妇一区二区| 欧美一区二区在线不卡| 国产精品乱人伦| 成av人片一区二区| 亚洲女人****多毛耸耸8| 欧美视频一区二区在线观看| 亚洲视频图片小说| 日本高清不卡视频| 亚洲国产欧美日韩另类综合| 欧美一区二区人人喊爽| 亚洲欧美综合另类在线卡通| 欧美日韩电影一区| 欧美中文字幕不卡| 国产精品中文有码| 天堂va蜜桃一区二区三区漫画版| 国产精品视频在线看| xf在线a精品一区二区视频网站| 精品视频一区三区九区| 成人高清视频在线| 高清国产一区二区三区| 日本成人在线不卡视频| 亚洲国产视频一区二区| 亚洲欧美成aⅴ人在线观看| 日韩免费电影网站| 精品欧美乱码久久久久久 | 久久久久久久久久久久久久久99 | 色欧美日韩亚洲| 国产麻豆视频一区二区| 日本最新不卡在线| 日韩影院在线观看| 一区二区不卡在线播放 | 青椒成人免费视频| 婷婷综合久久一区二区三区| 亚洲免费av高清| 亚洲欧美日韩小说| 亚洲女性喷水在线观看一区| 亚洲天堂中文字幕| 亚洲色图都市小说| 亚洲精品久久久久久国产精华液| 国产精品黄色在线观看 | 久久精品亚洲麻豆av一区二区| 91亚洲国产成人精品一区二三| 播五月开心婷婷综合| 国产成人午夜精品影院观看视频| 精品夜夜嗨av一区二区三区| 免费观看在线色综合| 国产自产视频一区二区三区| 久久精品国产亚洲高清剧情介绍| 亚洲精品国产精品乱码不99| 一区二区三区在线观看视频| 日韩久久一区二区| 日韩国产欧美三级| 免费观看在线色综合| 国产精品一二三在| 91一区二区三区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 欧美日韩免费高清一区色橹橹 | 国产一区二区导航在线播放| 成人小视频在线观看| 成人国产电影网| 制服丝袜激情欧洲亚洲| 日韩欧美色综合| 日韩三级视频中文字幕| 国产免费成人在线视频| 一区在线播放视频| 青青草国产成人99久久| 国产在线看一区| 国产一区二区电影| 在线观看亚洲a| 91精品国产91久久久久久一区二区| 国产午夜精品理论片a级大结局| 国产精品无码永久免费888| 中文字幕日本不卡| 韩国中文字幕2020精品| 成人动漫精品一区二区| 91精品欧美一区二区三区综合在| 精品成人佐山爱一区二区| 日韩三级伦理片妻子的秘密按摩| 欧美国产激情一区二区三区蜜月| 亚洲乱码中文字幕| 国产成人免费视频| 欧美在线视频日韩| 欧美韩国日本综合| 婷婷六月综合网| 国产成人在线影院| 91精品国产综合久久久蜜臀图片| 精品免费国产二区三区| 亚洲一区二区免费视频| 国产在线精品一区在线观看麻豆| 91美女视频网站| 国产精品久久一级| 石原莉奈在线亚洲二区| 91色porny蝌蚪| 久久免费的精品国产v∧| 国产精品久久三区| 国产大陆亚洲精品国产| 欧美性高清videossexo| 国产精品久久久久久久久免费樱桃 | 国产精品女上位| 丝袜国产日韩另类美女| 成人av免费在线| 日本一区二区免费在线观看视频 | 最好看的中文字幕久久| 麻豆精品在线观看| 一本一本大道香蕉久在线精品| 欧美一区二区视频在线观看2022| 国产精品免费观看视频| 青椒成人免费视频| 欧美高清www午色夜在线视频| 国产精品三级电影| 国产精品亚洲视频| 91精品国产入口在线| 亚洲国产aⅴ成人精品无吗| 成人在线综合网站| 精品国产乱码久久久久久夜甘婷婷 | 精品国产第一区二区三区观看体验| 亚洲精品国产精华液| 免费欧美在线视频| 欧美一区二区人人喊爽| 亚洲大片免费看| 欧美日韩一级视频| 伊人婷婷欧美激情| 91成人在线观看喷潮| 亚洲婷婷在线视频| 波多野结衣在线一区| 国产精品麻豆视频| 成人激情免费视频| 亚洲视频一区二区在线| 成人国产免费视频| 国产日产精品1区| 成人aa视频在线观看| 日本一区二区不卡视频| 成人激情动漫在线观看| 中文字幕av不卡| av在线不卡网| 亚洲国产成人私人影院tom| 国产精品99精品久久免费| 久久九九久精品国产免费直播| 激情欧美一区二区| 综合电影一区二区三区| 99久久久国产精品| 一区二区三区高清在线| 在线亚洲人成电影网站色www| 日韩理论片在线| 欧美一区二区二区| 久久精品国产99| 国产精品久久777777| 91国偷自产一区二区开放时间| 天天色综合天天| 精品久久久久久亚洲综合网| 久久99深爱久久99精品|