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

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

?? component.cpp

?? 經(jīng)驗交流,從網(wǎng)上下載的好東西望大家分享
?? CPP
字號:
// component.cpp
#include <iostream.h>
#include "component\component.h" // Generated by MIDL
#include "registry.h" // Add This!!!

// {10000002-0000-0000-0000-000000000001}
const CLSID CLSID_InsideCOM = {0x10000002,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01}};

long g_cComponents = 0;
long g_cServerLocks = 0;

interface INoAggregationUnknown
{
	virtual HRESULT __stdcall QueryInterface_NoAggregation(REFIID riid, void** ppv)=0;
	virtual ULONG __stdcall AddRef_NoAggregation()=0;
	virtual ULONG __stdcall Release_NoAggregation()=0;
};

class CInsideCOM : public ISum, public INoAggregationUnknown
{
public:
	// IUnknown
	ULONG __stdcall AddRef();
	ULONG __stdcall Release();
	HRESULT __stdcall QueryInterface(REFIID riid, void** ppv);

	// INoAggregationUnknown
	ULONG __stdcall AddRef_NoAggregation();
	ULONG __stdcall Release_NoAggregation();
	HRESULT __stdcall QueryInterface_NoAggregation(REFIID riid, void** ppv);

	// ISum
	HRESULT __stdcall Sum(int x, int y, int* retval);

	CInsideCOM(IUnknown* pUnknownOuter);
	~CInsideCOM() { cout << "Component: CInsideCOM::~CInsideCOM()" << endl, g_cComponents--; }

private:
	ULONG m_cRef;
	IUnknown* m_pUnknownOuter;
};

CInsideCOM::CInsideCOM(IUnknown* pUnknownOuter) : m_cRef(1)
{
	g_cComponents++;
	if(pUnknownOuter != NULL)
		m_pUnknownOuter = pUnknownOuter;
	else
		m_pUnknownOuter = (IUnknown*)(INoAggregationUnknown*)this;
}

HRESULT CInsideCOM::QueryInterface_NoAggregation(REFIID riid, void** ppv)
{
	if(riid == IID_IUnknown)
	{
		cout << "Component: CInsideCOM::QueryInterface() for IUnknown returning " << this << endl;
		*ppv = (INoAggregationUnknown*)this;
	}
	else if(riid == IID_ISum)
	{
		cout << "Component: CInsideCOM::QueryInterface() for ISum returning " << this << endl;
		*ppv = (ISum*)this;
	}
	else 
	{
		*ppv = NULL;
		return E_NOINTERFACE;
	}
	((IUnknown*)(*ppv))->AddRef();
	return S_OK;
}

ULONG CInsideCOM::AddRef_NoAggregation()
{
	return ++m_cRef;
}

ULONG CInsideCOM::Release_NoAggregation()
{
	if(--m_cRef != 0)
		return m_cRef;
	delete this;
	return 0;
}

ULONG CInsideCOM::AddRef()
{
	return m_pUnknownOuter->AddRef();
}

ULONG CInsideCOM::Release()
{
	return m_pUnknownOuter->Release();
}

HRESULT CInsideCOM::QueryInterface(REFIID riid, void** ppv)
{
	return m_pUnknownOuter->QueryInterface(riid, ppv);
}

HRESULT CInsideCOM::Sum(int x, int y, int* retval)
{
	cout << "Component: CInsideCOM::Sum() " << x << " + " << y << " = " << x + y << endl;
	*retval = x + y;
	return S_OK;
}

class CFactory : public IClassFactory
{
public:
	// IUnknown
	ULONG __stdcall AddRef();
	ULONG __stdcall Release();
	HRESULT __stdcall QueryInterface(REFIID iid, void** ppv);

	// IClassFactory
	HRESULT __stdcall CreateInstance(IUnknown *pUnknownOuter, REFIID iid, void** ppv);
	HRESULT __stdcall LockServer(BOOL bLock);

	CFactory() : m_cRef(1) { }
	~CFactory() { }

private:
	ULONG m_cRef;
};

ULONG CFactory::AddRef()
{
	cout << "Component: CFactory::AddRef() m_cRef = " << m_cRef + 1 << endl;
	return ++m_cRef;
}

ULONG CFactory::Release()
{
	cout << "Component: CFactory::Release() m_cRef = " << m_cRef - 1 << endl;
	if(--m_cRef != 0)
		return m_cRef;
	delete this;
	return 0;
}

HRESULT CFactory::QueryInterface(REFIID iid, void** ppv)
{
	if((iid == IID_IUnknown) || (iid == IID_IClassFactory))
	{
		cout << "Component: CFactory::QueryInteface() for IUnknown or IClassFactory " << this << endl;
		*ppv = (IClassFactory *)this;
	}
	else
	{
		*ppv = NULL;
		return E_NOINTERFACE;
	}
	AddRef();
	return S_OK;
}

HRESULT CFactory::CreateInstance(IUnknown *pUnknownOuter, REFIID riid, void** ppv)
{
	if(pUnknownOuter != NULL && riid != IID_IUnknown)
		return CLASS_E_NOAGGREGATION;

	CInsideCOM *pInsideCOM = new CInsideCOM(pUnknownOuter);
	if(pInsideCOM == NULL)
		return E_OUTOFMEMORY;

	HRESULT hr = pInsideCOM->QueryInterface_NoAggregation(riid, ppv);
	pInsideCOM->Release_NoAggregation();
	return hr;
}

HRESULT CFactory::LockServer(BOOL bLock)
{
	if(bLock)
		g_cServerLocks++;
	else
		g_cServerLocks--;
	return S_OK;
}

HRESULT __stdcall DllCanUnloadNow()
{
	cout << "Component: DllCanUnloadNow() " << (g_cServerLocks == 0 && g_cComponents == 0 ? "Yes" : "No") << endl;
	if(g_cServerLocks == 0 && g_cComponents == 0)
		return S_OK;
	else
		return S_FALSE;
}

HRESULT __stdcall DllGetClassObject(REFCLSID clsid, REFIID iid, void** ppv)
{
	cout << "Component: DllGetClassObject" << endl;
	
	if(clsid != CLSID_InsideCOM)
		return CLASS_E_CLASSNOTAVAILABLE;

	CFactory* pFactory = new CFactory;
	if(pFactory == NULL)
		return E_OUTOFMEMORY;

	// QueryInterface probably for IClassFactory
	HRESULT hr = pFactory->QueryInterface(iid, ppv);
	pFactory->Release();
	return hr;
}

HRESULT __stdcall DllRegisterServer()
{
	return RegisterServer("component.dll", CLSID_InsideCOM, "Inside COM Sample", "Component.InsideCOM", "Component.InsideCOM.1", NULL);
}

HRESULT __stdcall DllUnregisterServer()
{
	return UnregisterServer(CLSID_InsideCOM, "Component.InsideCOM", "Component.InsideCOM.1");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利一二区| 丰满少妇久久久久久久| 91麻豆成人久久精品二区三区| 国产视频一区二区三区在线观看| 丝袜美腿亚洲综合| 欧美日韩精品一区二区| 午夜视频在线观看一区二区| 欧美日韩在线免费视频| 午夜精彩视频在线观看不卡| 欧美日韩一区成人| 久久99精品一区二区三区三区| 精品国产一区二区三区不卡| 韩国av一区二区三区在线观看| 国产片一区二区| 色综合久久综合中文综合网| 一区二区免费看| 5566中文字幕一区二区电影| 韩国一区二区三区| 国产精品高潮久久久久无| 欧美视频中文字幕| 国产综合久久久久久鬼色| 国产精品天干天干在观线| 在线免费不卡视频| 久久国产三级精品| 中文字幕人成不卡一区| 日韩免费电影一区| 99久久精品国产网站| 青青青爽久久午夜综合久久午夜| 欧美激情资源网| 91精品福利在线一区二区三区 | 国产精品萝li| 在线播放/欧美激情| 色综合久久天天综合网| 久久99久久精品| 亚洲1区2区3区视频| 国产精品视频九色porn| 精品福利视频一区二区三区| 在线观看日产精品| 91免费国产在线| 一区二区三区在线免费视频| 欧美成人一区二区三区片免费| www.亚洲国产| 国产91精品一区二区麻豆网站 | 欧美v国产在线一区二区三区| 精品欧美一区二区三区精品久久| 一本一道久久a久久精品| 亚洲国产精品久久不卡毛片| 国产精品久久久久久久浪潮网站 | 色综合久久久久综合| 粉嫩一区二区三区性色av| 国产在线视视频有精品| 久久国产精品99久久久久久老狼| 婷婷国产v国产偷v亚洲高清| 亚洲va在线va天堂| 日韩专区欧美专区| 九一久久久久久| 国产成人福利片| 高清国产一区二区| 成人教育av在线| 色哟哟日韩精品| 欧美疯狂做受xxxx富婆| 精品久久久久久久久久久久久久久 | 亚洲国产婷婷综合在线精品| 日韩av网站在线观看| 国产一区在线观看视频| av在线播放成人| 欧美日韩电影在线| 欧美一区二区三区免费| 国产午夜亚洲精品不卡| 一区二区三区日韩| 精品一二线国产| 91在线视频免费观看| 日韩精品最新网址| 国产精品国产三级国产aⅴ中文 | 亚洲精品成人在线| 久久se这里有精品| 欧美午夜在线一二页| 国产亚洲一二三区| 日韩高清不卡一区| 99re8在线精品视频免费播放| 91精品久久久久久久99蜜桃| 国产精品无遮挡| 狠狠色丁香婷婷综合久久片| 91久久香蕉国产日韩欧美9色| 精品国产1区二区| 亚洲一区二区偷拍精品| 99久久精品久久久久久清纯| 精品国产乱码久久久久久1区2区| 亚洲国产精品一区二区www在线| 成人性生交大片免费看视频在线 | 国产欧美一区二区精品性色 | 亚洲三级电影网站| 国产成人av电影在线| 国产日韩高清在线| 美国十次了思思久久精品导航| 欧美日韩一区 二区 三区 久久精品| 国产精品毛片久久久久久| 国产激情精品久久久第一区二区 | 亚洲成在人线免费| 99精品一区二区三区| 专区另类欧美日韩| 色婷婷激情久久| 亚洲韩国一区二区三区| 在线观看网站黄不卡| 亚洲一区电影777| 欧美精品高清视频| 青青草国产成人av片免费| 精品欧美黑人一区二区三区| 久久精品噜噜噜成人av农村| 精品成人佐山爱一区二区| 国产传媒日韩欧美成人| 亚洲素人一区二区| 欧美日韩亚州综合| 激情小说欧美图片| 中文字幕视频一区| 欧美精品v日韩精品v韩国精品v| 免费观看日韩电影| 国产精品沙发午睡系列990531| 在线观看网站黄不卡| 男女激情视频一区| 国产精品美女久久福利网站| 在线91免费看| 91福利视频久久久久| 国内精品久久久久影院薰衣草| 亚洲品质自拍视频| 精品电影一区二区| 精品视频在线免费| 成人永久aaa| 偷拍一区二区三区| 欧美激情在线一区二区| 在线观看日产精品| 成人免费三级在线| 秋霞成人午夜伦在线观看| 一区二区高清在线| 欧美韩国日本一区| 国产亚洲一区二区三区在线观看 | av电影天堂一区二区在线观看| 亚洲6080在线| 亚洲国产视频一区二区| 亚洲欧洲美洲综合色网| 欧美国产日韩a欧美在线观看| 日韩视频在线一区二区| 欧美中文字幕一区| 91精彩视频在线| 在线观看网站黄不卡| 色婷婷亚洲综合| 在线视频一区二区免费| 色播五月激情综合网| 欧美揉bbbbb揉bbbbb| 欧美亚洲一区二区在线| 欧美日韩国产三级| 欧美日韩成人综合在线一区二区| 欧美私模裸体表演在线观看| 欧美日韩一区中文字幕| 欧美一级日韩不卡播放免费| 日韩免费看网站| 国产精品青草久久| 一区二区三区在线视频免费 | 亚洲欧洲精品天堂一级| 综合久久久久久| 日韩成人一区二区三区在线观看| 美腿丝袜亚洲综合| 成人18视频日本| 欧美无砖砖区免费| 精品久久久久久无| 亚洲欧洲综合另类| 久久精品99国产精品| 成人三级在线视频| 欧美精品久久久久久久久老牛影院| 日韩色视频在线观看| 中文字幕永久在线不卡| 午夜国产不卡在线观看视频| 国产精品资源站在线| 欧美综合亚洲图片综合区| 欧美成人一级视频| 亚洲综合色丁香婷婷六月图片| 国产乱人伦精品一区二区在线观看| 99久久777色| 久久精品视频一区二区| 亚洲国产成人精品视频| 99久久99久久免费精品蜜臀| 26uuu精品一区二区| 亚洲午夜免费视频| 色综合咪咪久久| 国产精品欧美极品| 韩国毛片一区二区三区| 欧美一级久久久久久久大片| 亚洲美女免费视频| 9人人澡人人爽人人精品| 久久九九99视频| 国产一区二区电影| 国产精品视频第一区| 国产一区视频网站| 欧美一区二区三区在线观看视频 | 精品国产欧美一区二区| 亚洲综合无码一区二区| 色综合久久天天| 亚洲高清视频在线| 在线观看网站黄不卡| 亚洲风情在线资源站|