• 大小: 79KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: 其他
  • 标签: COM组件  编写  示例  

资源简介

代码原封不动摘自《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“ << msg << std::endl ;}

//
// 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 = “
            << std::hex << hr << std::endl ;    
}

// 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个文件信息

评论

共有 条评论