資源簡介
代碼原封不動摘自《COM技術內幕》,只不過從MAKEFILE轉為vs2008實現。
vs2008包含兩個工程:Com工程,創建Com組件; Client工程,使用Com組件
Client目錄:
示例如何使用COM組件
Com目錄:
示例如何創建COM組件
Debug目錄:
REGISTER.BAT 注冊com組件
UnREGISTER.BAT 反注冊Com組件
Client.exe示例如何使用Com組件
Cmpnt.dll手動編寫的Com組件

代碼片段和文件信息
//
//?Client.cpp?-?client?implementation
//
#include?
#include?se.h>
#include?“Iface.h“
void?trace(const?char*?msg)?{?std::cout?<“Client:?\t\t“?<
//
//?main?function
//
int?main()
{
//?Initialize?COM?Library
CoInitialize(NULL)?;
trace(“Call?CoCreateInstance?to?create“)?;
trace(“??component?and?get?interface?IX.“)?;
IX*?pIX?=?NULL?;?
HRESULT?hr?=?::CoCreateInstance(CLSID_Component1
????????????????????????????????NULL?
????????????????????????????????CLSCTX_INPROC_SERVER
????????????????????????????????IID_IX?
????????????????????????????????(void**)&pIX)?;
if?(SUCCEEDED(hr))
{
trace(“Succeeded?getting?IX.“)?;
pIX->Fx()?;??????????//?Use?interface?IX.
trace(“Ask?for?interface?IY.“)?;
IY*?pIY?=?NULL?;
hr?=?pIX->QueryInterface(IID_IY?(void**)&pIY)?;
if?(SUCCEEDED(hr))
{
trace(“Succeeded?getting?IY.“)?;
pIY->Fy()?;???????//?Use?interface?IY.
pIY->Release()?;
trace(“Release?IY?interface.“)?;
}
else
{
trace(“Could?not?get?interface?IY.“)?;
}
trace(“Ask?for?interface?IZ.“)?;
IZ*?pIZ?=?NULL?;
hr?=?pIX->QueryInterface(IID_IZ?(void**)&pIZ)?;
if?(SUCCEEDED(hr))
{
trace(“Succeeded?in?getting?interface?IZ.“)?;
pIZ->Fz()?;
pIZ->Release()?;
trace(“Release?IZ?interface.“)?;
}
else
{
trace(“Could?not?get?interface?IZ.“)?;
}
trace(“Release?IX?interface.“)?;
pIX->Release()?;
}
else
{
????????std::cout?<“Client:?\t\tCould?not?create?component.?hr?=?“
????????????< }
//?Uninitialize?COM?Library
CoUninitialize()?;
return?0?;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1690??2017-12-05?14:55??ComAndClient\Client\Client.cpp
?????文件???????5287??2017-12-05?15:38??ComAndClient\Client\Client.vcproj
?????文件????????822??2002-09-30?12:00??ComAndClient\Client\GUIDS.CPP
?????文件????????544??2002-09-30?12:00??ComAndClient\Client\IFACE.H
?????文件???????1177??2017-12-05?15:31??ComAndClient\Client\ReadMe.txt
?????文件????????211??2017-12-05?15:31??ComAndClient\Client\stdafx.cpp
?????文件????????233??2017-12-05?15:31??ComAndClient\Client\stdafx.h
?????文件????????498??2017-12-05?15:31??ComAndClient\Client\targetver.h
?????文件???????6283??2017-12-05?15:44??ComAndClient\Com\CMPNT.CPP
?????文件????????311??2002-09-30?12:00??ComAndClient\Com\CMPNT.DEF
?????文件?????167936??2002-09-30?12:00??ComAndClient\Com\CMPNT.DLL
?????文件???????4092??2017-12-05?16:08??ComAndClient\Com\Com.vcproj
?????文件???????1404??2017-12-05?16:09??ComAndClient\Com\Com.vcproj.SPREADTRUM.Penghui.Yin.user
?????文件????????822??2002-09-30?12:00??ComAndClient\Com\GUIDS.CPP
?????文件????????544??2002-09-30?12:00??ComAndClient\Com\IFACE.H
?????文件???????6381??2002-09-30?12:00??ComAndClient\Com\REGISTRY.CPP
?????文件????????778??2004-07-20?14:45??ComAndClient\Com\REGISTRY.H
?????文件???????1331??2017-12-05?15:40??ComAndClient\Com.sln
?????文件??????41984??2017-12-05?15:51??ComAndClient\Debug\Client.exe
?????文件??????47616??2017-12-05?16:08??ComAndClient\Debug\Cmpnt.dll
?????文件????????106??2017-12-05?16:09??ComAndClient\Debug\REGISTER.BAT
?????文件????????106??2017-12-05?16:10??ComAndClient\Debug\UnREGISTER.BAT
?????文件????????207??2017-12-05?16:46??ComAndClient\Readme.txt
?????目錄??????????0??2017-12-05?16:46??ComAndClient\Client
?????目錄??????????0??2017-12-05?16:10??ComAndClient\Com
?????目錄??????????0??2017-12-05?16:46??ComAndClient\Debug
?????目錄??????????0??2017-12-05?16:46??ComAndClient
-----------?---------??----------?-----??----
???????????????290363????????????????????27
............此處省略0個文件信息
- 上一篇:收據發票打印軟件V4.08
- 下一篇:基于MSP430的數控直流電壓源
評論
共有 條評論