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

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

?? callinfo.cpp

?? 關于COM口的說明
?? CPP
字號:
///////////////////////////////////////////////////
//
//  callinfo.cpp - Copyright 1997, Don Box
//  
//  External accessor to host info stored by channel hook
//
//

#include "callinfo.h"

#include "common.h"

#include "hosthook_i.c"

// helper routine to convert IP address to a BSTR
BSTR GetNameFromIPAddress(DWORD dwIP)
{
    HOSTENT *p = gethostbyaddr((const char*)&dwIP, 4, AF_INET);
    if (p && p->h_name)
    {
        int cch = lstrlenA(p->h_name);
        BSTR bstr = SysAllocStringLen(0, cch);
        if (bstr)
            MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, p->h_name, cch + 1, bstr, cch + 1);
        return bstr;
    }
    return 0;
}

STDMETHODIMP 
CallInfo::QueryInterface(REFIID riid, void **ppv)
{
    if (riid == IID_IUnknown)
        *ppv = static_cast<ICallInfo*>(this);
    else if (riid == IID_ICallInfo)
        *ppv = static_cast<ICallInfo*>(this);
    else if (riid == IID_IClientCallInfo)
        *ppv = static_cast<IClientCallInfo*>(this);
    else
        return (*ppv = 0), E_NOINTERFACE;
    reinterpret_cast<IUnknown*>(*ppv)->AddRef();
    return S_OK;

}

STDMETHODIMP_(ULONG) 
CallInfo::AddRef(void)
{
    return 2;
}

STDMETHODIMP_(ULONG) 
CallInfo::Release(void)
{
    return 1;
}

STDMETHODIMP 
CallInfo::get_OriginalProcessID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niIndirect : pctx->niThis;
    *pVal = rni.pid;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_OriginalThreadID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niIndirect : pctx->niThis;
    *pVal = rni.tid;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_OriginalHostID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niIndirect : pctx->niThis;
    *pVal = rni.ip;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_OriginalHostName(BSTR *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niIndirect : pctx->niThis;
    *pVal = GetNameFromIPAddress(rni.ip);
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_DirectProcessID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niDirect : pctx->niThis;
    *pVal = rni.pid;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_DirectThreadID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niDirect : pctx->niThis;
    *pVal = rni.tid;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_DirectHostID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niDirect : pctx->niThis;
    *pVal = rni.ip;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_DirectHostName(BSTR *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->pCurrentCall ? pctx->pCurrentCall->niDirect : pctx->niThis;
    *pVal = GetNameFromIPAddress(rni.ip);
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_PseudoCausalityID(GUID *pguid)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    if (pctx->pCurrentCall)
        *pguid = pctx->pCurrentCall->cid;
    else
        *pguid = GUID_NULL;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_TargetProcessID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->niTarget;
    *pVal = rni.pid;
    rni.pid = 0;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_TargetThreadID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->niTarget;
    *pVal = rni.tid;
    rni.tid = 0;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_TargetHostID(long *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->niTarget;
    *pVal = rni.ip;
    rni.ip = 0;
    return S_OK;
}

STDMETHODIMP 
CallInfo::get_TargetHostName(BSTR *pVal)
{
    THREAD_CONTEXT *pctx = GetCurrentThreadContext();
    NODE_INFO& rni = pctx->niTarget;
    *pVal = GetNameFromIPAddress(rni.ip);
    rni.ip = 0;
    return S_OK;
}

STDMETHODIMP 
CallInfoClassObject::QueryInterface(REFIID riid, void **ppv)
{
    if (riid == IID_IUnknown)
        *ppv = static_cast<IUnknown*>(this);
    else if (riid == IID_IClassFactory)
        *ppv = static_cast<IClassFactory*>(this);
    else
        return (*ppv = 0), E_NOINTERFACE;
    reinterpret_cast<IUnknown*>(*ppv)->AddRef();
    return S_OK;
}

STDMETHODIMP_(ULONG) 
CallInfoClassObject::AddRef(void)
{
    return 2;
}

STDMETHODIMP_(ULONG) 
CallInfoClassObject::Release(void)
{
    return 1;
}


STDMETHODIMP 
CallInfoClassObject::CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppv)
{
// we only have one CallInfo per process that satisfies all callers
    static CallInfo s_theInfo;
    if (pUnkOuter)
        return (*ppv = 0), CLASS_E_NOAGGREGATION;
    return s_theInfo.QueryInterface(riid, ppv);
}

STDMETHODIMP 
CallInfoClassObject::LockServer(BOOL bLock)
{
    return S_OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人免费电影| 欧美一区二区三区成人| 精品一二三四在线| 一区二区三区在线观看欧美| 欧美日韩和欧美的一区二区| 94-欧美-setu| 不卡的av在线| 91麻豆文化传媒在线观看| 成人av网站免费观看| 日韩精品一级二级| 天堂蜜桃91精品| 午夜精品一区二区三区电影天堂| 亚洲电影第三页| 国产在线精品一区二区夜色| 国产精品一品视频| 欧美午夜精品一区二区蜜桃| 日韩一级高清毛片| 国产精品免费免费| 青青草国产精品亚洲专区无| 国产在线麻豆精品观看| 欧洲在线/亚洲| 国产欧美日韩另类一区| 亚洲国产精品一区二区久久| 国产一区二区福利| www.综合网.com| 这里只有精品视频在线观看| 日本一区二区成人| 蜜臀久久久99精品久久久久久| 91无套直看片红桃| 国产性天天综合网| 麻豆91小视频| 欧美一区国产二区| 亚洲自拍偷拍图区| 色哟哟亚洲精品| 911精品国产一区二区在线| 亚洲无人区一区| 91猫先生在线| 一区二区视频在线看| 国产69精品久久99不卡| 久久久夜色精品亚洲| 久久精品久久精品| 欧美精品第1页| 亚洲美女视频在线观看| k8久久久一区二区三区| 日韩理论片一区二区| 波波电影院一区二区三区| 亚洲欧洲成人自拍| 色偷偷久久一区二区三区| 国产精品久久网站| 色综合天天综合网国产成人综合天 | 国产日韩欧美不卡在线| 国产成人综合在线观看| 国产亚洲欧美在线| jlzzjlzz欧美大全| 成人欧美一区二区三区1314| 色婷婷激情久久| 欧美96一区二区免费视频| 欧美日韩综合一区| 蜜臀99久久精品久久久久久软件| 日韩一区二区三区精品视频| 精品亚洲aⅴ乱码一区二区三区| 最新国产成人在线观看| 欧美伊人久久久久久久久影院 | k8久久久一区二区三区 | 国产成人福利片| 亚洲日穴在线视频| 日韩精品一区二区在线观看| 国产激情视频一区二区在线观看| 亚洲视频在线观看一区| 日韩亚洲欧美中文三级| 91网址在线看| 丁香六月久久综合狠狠色| 亚洲视频免费观看| 久久综合色播五月| 欧美日韩国产影片| 91香蕉国产在线观看软件| 狠狠色狠狠色综合| 亚洲在线中文字幕| 亚洲欧美日韩小说| 国产精品久久久久久久午夜片 | 日韩av在线免费观看不卡| 国产精品麻豆网站| 久久久不卡影院| 久久久久国产免费免费| 日韩欧美亚洲另类制服综合在线| 91蝌蚪porny| 99久久国产综合精品女不卡| 成人激情电影免费在线观看| 成人精品小蝌蚪| 国产成人av一区二区三区在线| 亚洲1区2区3区视频| 亚洲成人一区在线| 日本视频一区二区| 极品瑜伽女神91| 精品视频在线免费看| 97久久精品人人做人人爽50路| 国产精品白丝jk白祙喷水网站| 激情综合网天天干| 99国产精品国产精品久久| 91激情五月电影| 欧美日韩成人综合天天影院| 日韩精品专区在线影院观看| 久久伊99综合婷婷久久伊| 日本一区二区三区久久久久久久久不| 国产三级精品三级| 婷婷国产v国产偷v亚洲高清| 国产二区国产一区在线观看| a级高清视频欧美日韩| 欧美人妖巨大在线| 日韩欧美一二三四区| 国产精品久线在线观看| 偷拍亚洲欧洲综合| 色婷婷香蕉在线一区二区| 日韩一区二区三区视频| 亚洲人成精品久久久久久| 奇米精品一区二区三区四区| 99这里都是精品| 久久久不卡网国产精品二区 | 丁香激情综合国产| 3d动漫精品啪啪| 亚洲黄色录像片| 99久久综合精品| 欧美高清在线精品一区| 久88久久88久久久| 欧美日韩成人在线一区| 亚洲蜜桃精久久久久久久| 成人av免费在线播放| 国产亚洲一区二区三区在线观看| 136国产福利精品导航| 欧美在线观看禁18| 亚洲免费av网站| 在线看不卡av| 亚洲成av人片一区二区梦乃| 91高清在线观看| 亚洲午夜影视影院在线观看| 欧美午夜片在线观看| 丝袜脚交一区二区| 日韩美女一区二区三区四区| 久久精品久久综合| 国产午夜亚洲精品午夜鲁丝片| 国产馆精品极品| 亚洲综合色丁香婷婷六月图片| 色狠狠av一区二区三区| 日韩国产精品大片| 精品电影一区二区| 99久久精品国产精品久久| 一级日本不卡的影视| 日韩写真欧美这视频| 成人一区在线观看| 亚洲国产精品一区二区www在线| 91在线视频免费观看| 亚洲3atv精品一区二区三区| 精品免费99久久| 欧美一卡二卡在线| 成人黄色电影在线 | 91毛片在线观看| 久久精品国产一区二区三| 亚洲国产高清aⅴ视频| 在线免费观看日本欧美| 国产精品一区二区91| 亚洲国产成人av网| 专区另类欧美日韩| 久久精品在线免费观看| 欧美日韩成人一区| 在线看不卡av| 9久草视频在线视频精品| 麻豆精品蜜桃视频网站| 亚洲18女电影在线观看| 中文字幕日韩av资源站| 国产精品福利av| 日韩午夜在线观看| 欧美美女黄视频| 91电影在线观看| 欧美性受xxxx| 欧美日韩精品欧美日韩精品一综合| 97精品久久久午夜一区二区三区| 风流少妇一区二区| 成人黄色777网| 不卡视频在线看| 一本到不卡精品视频在线观看| 99re在线精品| 欧美日本精品一区二区三区| 在线观看中文字幕不卡| 欧美日韩在线播放一区| 欧美片在线播放| 久久综合久久鬼色中文字| 欧美sm极限捆绑bd| 国产性做久久久久久| 久久久久久久久久久久久夜| 久久众筹精品私拍模特| 精品国产一区二区三区四区四| 亚洲丝袜制服诱惑| 亚洲精品国产a久久久久久| 亚洲欧美aⅴ...| 777久久久精品| 久久精品一区二区三区av| 国产三级久久久| 亚洲视频免费观看| 亚洲第一狼人社区| 国产在线播放一区二区三区 |