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

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

?? bank.cpp

?? 本程序是利用com原理開發(fā)的一個ATM機與銀行之間的分布式應用
?? CPP
字號:
// Bank.cpp : Implementation of WinMain


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

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

#include "Bank_i.c"
#include "Account.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)
OBJECT_ENTRY(CLSID_Account, CAccount)
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_BANKLib);
    _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_Bank, FALSE);
            nRet = _Module.UnregisterServer(TRUE);
            bRun = FALSE;
            break;
        }
        if (lstrcmpi(lpszToken, _T("RegServer"))==0)
        {
            _Module.UpdateRegistryFromResource(IDR_Bank, 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));

        MSG msg;
        while (GetMessage(&msg, 0, 0, 0))
            DispatchMessage(&msg);

        _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一区二区三区免费野_久草精品视频
色8久久人人97超碰香蕉987| 欧美电影精品一区二区| 欧美一区二区网站| 国产精品毛片高清在线完整版| 亚洲大片一区二区三区| 99久久精品国产观看| 欧美一区二区三区视频在线| 亚洲精品国产视频| 国产白丝精品91爽爽久久| 日韩一区二区免费电影| 亚洲一区二区三区四区五区黄| 国产成人日日夜夜| 亚洲精品一区二区三区蜜桃下载| 一区二区欧美国产| 99久久综合99久久综合网站| 亚洲精品一区在线观看| 久久国产福利国产秒拍| 欧美美女视频在线观看| 亚洲欧美韩国综合色| 丁香天五香天堂综合| 久久久久久久久久美女| 狠狠色丁香久久婷婷综合丁香| 欧美一区二区日韩一区二区| 偷拍日韩校园综合在线| 欧美日韩精品久久久| 亚洲一区在线电影| 在线日韩av片| 亚洲chinese男男1069| 欧美在线综合视频| 亚洲一区二区三区四区五区中文 | 亚洲美女区一区| 国产馆精品极品| 欧美国产一区二区| 成人免费黄色在线| 中文字幕一区二区三| 91在线观看一区二区| 自拍偷拍国产精品| 色激情天天射综合网| 悠悠色在线精品| 欧美视频在线观看一区二区| 亚洲成精国产精品女| 欧美精品久久一区二区三区| 日韩高清电影一区| 欧美成人精品3d动漫h| 狠狠色丁香婷婷综合久久片| 欧美国产精品v| 成人app下载| 亚洲大尺度视频在线观看| 91精品国产91久久久久久一区二区| 免费成人在线影院| 久久久精品综合| 99精品视频在线播放观看| 亚洲影视在线播放| 日韩一区二区免费在线观看| 国产69精品久久久久毛片| 亚洲天堂久久久久久久| 欧美精品一卡二卡| 国产精品伊人色| 亚洲欧美激情在线| 91麻豆精品国产91| 国产成人午夜99999| 亚洲综合一区二区精品导航| 日韩精品最新网址| 成人免费三级在线| 亚洲福利视频导航| 国产日韩三级在线| 欧美日韩国产精选| 国产在线视频一区二区三区| 亚洲精选视频在线| 久久色.com| 欧美婷婷六月丁香综合色| 国产原创一区二区| 一区二区三区国产豹纹内裤在线| 日韩午夜精品电影| 在线视频你懂得一区| 国产精品影视网| 日日夜夜精品视频天天综合网| 久久亚洲二区三区| 欧美日韩国产综合一区二区 | 一本到高清视频免费精品| 男女男精品视频网| 伊人婷婷欧美激情| 久久众筹精品私拍模特| 欧美高清性hdvideosex| av电影在线观看一区| 国产在线不卡一区| 亚洲成人午夜电影| 亚洲日本丝袜连裤袜办公室| 久久久久久久久久久99999| 欧美日韩亚洲不卡| 色综合天天性综合| 成人在线视频一区二区| 极品少妇一区二区三区精品视频| 亚洲国产综合色| 椎名由奈av一区二区三区| 久久久99久久| 26uuu精品一区二区| 日韩三级伦理片妻子的秘密按摩| 91黄视频在线| 99久久777色| 99久久婷婷国产精品综合| 国产高清成人在线| 国产一区二区三区免费观看| 久久99精品久久久久久| 五月婷婷色综合| 日日夜夜精品视频天天综合网| 亚洲男同1069视频| 亚洲欧美另类久久久精品| 中文字幕日韩av资源站| 国产精品久久久久四虎| 国产精品丝袜一区| 中文字幕综合网| 亚洲欧美激情一区二区| 一二三区精品福利视频| 一区二区免费在线| 亚洲国产日韩综合久久精品| 亚洲国产综合色| 日韩一区欧美二区| 九色|91porny| 国产福利视频一区二区三区| 成人午夜视频在线观看| 97se亚洲国产综合在线| 色妞www精品视频| 欧美三级视频在线| 91精品视频网| 精品欧美久久久| 国产精品视频第一区| 国产精品久久久久aaaa| 一区二区三区加勒比av| 日韩国产一区二| 黄色资源网久久资源365| 福利视频网站一区二区三区| 99久久精品国产麻豆演员表| 欧美伊人精品成人久久综合97 | 天堂午夜影视日韩欧美一区二区| 丝袜亚洲另类丝袜在线| 激情成人综合网| 波多野结衣欧美| 欧美麻豆精品久久久久久| www国产精品av| 亚洲色欲色欲www| 秋霞国产午夜精品免费视频| 国产成人高清在线| 日本韩国欧美国产| 日韩免费看的电影| 国产精品三级av在线播放| 亚洲成人手机在线| 国产白丝精品91爽爽久久| 欧洲视频一区二区| 久久亚洲精品国产精品紫薇| 亚洲伦在线观看| 精品一区二区三区视频| 91搞黄在线观看| 久久久久久亚洲综合| 午夜不卡av免费| 成人免费视频一区二区| 91精品国产欧美日韩| 中文字幕在线不卡视频| 日本欧美一区二区| 99久久精品国产精品久久| 日韩精品一区二区三区四区视频| 国产精品国产成人国产三级 | 国产午夜精品福利| 亚洲成人第一页| 国产99久久久国产精品潘金| 91精品国产综合久久婷婷香蕉 | 国产精品久久久久婷婷| 日韩制服丝袜先锋影音| 成人h精品动漫一区二区三区| 91精品国产一区二区人妖| 亚洲欧洲综合另类在线| 国产99精品国产| 精品国产一区二区三区四区四| 亚洲五月六月丁香激情| av高清不卡在线| 国产人成一区二区三区影院| 乱中年女人伦av一区二区| 欧美三级欧美一级| 亚洲六月丁香色婷婷综合久久| 国产大陆精品国产| 亚洲精品一线二线三线| 日本成人中文字幕在线视频| 色婷婷激情久久| 亚洲视频网在线直播| 成人精品国产免费网站| 国产欧美日韩一区二区三区在线观看| 奇米亚洲午夜久久精品| 欧美一二三区精品| 五月综合激情日本mⅴ| 欧美日韩你懂得| 亚洲第一主播视频| 日本精品免费观看高清观看| 国产精品激情偷乱一区二区∴| 国产毛片精品国产一区二区三区| 精品国产1区二区| 久久精品国产免费| 久久先锋影音av鲁色资源网| 国产在线一区二区| 久久久久久久精| 粉嫩嫩av羞羞动漫久久久|