• 大小: 38KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: COM  MFC  

资源简介

使用MFC实现简单的COM,演示了整个COM构成,注释清晰。

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “AnimalObj.h“
#include 

using namespace std;

//支持动态创建
IMPLEMENT_DYNCREATE(CAnimalObj CCmdTarget)

//定义本组件ClassFactory
// {49DC8329-D2EB-440c-BCF6-AA9CAA583DE1}
IMPLEMENT_OLECREATE(CAnimalObj “CAnimalObj.object“ 
0x4DDDE51A 0x2252 0x4EFC 0x94 0x54 0xC5 0x74 0xEB 0xC4 0x14 0x8A);

//接口查询表
BEGIN_INTERFACE_MAP(CAnimalObj CCmdTarget)
INTERFACE_PART(CAnimalObj IID_ICat Cat)
INTERFACE_PART(CAnimalObj IID_IDog Dog)
END_INTERFACE_MAP()

CAnimalObj::CAnimalObj(void)
{
}

CAnimalObj::~CAnimalObj(void)
{
}

//接口查询和生命周期管理
STDMETHODIMP_(ULONG) CAnimalObj::XCat::AddRef()
{
METHOD_PROLOGUE_EX_(CAnimalObj Cat)
return pThis->ExternalAddRef();
}

STDMETHODIMP_(ULONG) CAnimalObj::XCat::Release()
{
METHOD_PROLOGUE_EX_(CAnimalObj Cat)
return pThis->ExternalRelease();
}

STDMETHODIMP_(HRESULT) CAnimalObj::XCat::QueryInterface(REFIID iid LPVOID* ppvObj)
{
METHOD_PROLOGUE_EX_(CAnimalObj Cat)
return pThis->ExternalQueryInterface(&iid ppvObj);
}

STDMETHODIMP_(ULONG) CAnimalObj::XDog::AddRef()
{
METHOD_PROLOGUE_EX_(CAnimalObj Dog)
return pThis->ExternalAddRef();
}

STDMETHODIMP_(ULONG) CAnimalObj::XDog::Release()
{
METHOD_PROLOGUE_EX_(CAnimalObj Dog)
return pThis->ExternalRelease();
}

STDMETHODIMP_(HRESULT) CAnimalObj::XDog::QueryInterface(REFIID iid LPVOID* ppvObj)
{
METHOD_PROLOGUE_EX_(CAnimalObj Dog)
return pThis->ExternalQueryInterface(&iid ppvObj);
}

//接口实现
STDMETHODIMP_(void) CAnimalObj::XCat::SayHello(LPCWSTR szWord)
{
wcout << L“喵~ 猫大王发话: “ << szWord << endl;
}

STDMETHODIMP_(void) CAnimalObj::XDog::SayHello(LPCWSTR szWord)
{
wcout << L“汪~ 狗大王发话: “ << szWord << endl;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-07-16 16:22  MFCbaseCom\
     目录           0  2016-07-16 16:22  MFCbaseCom\MFCbaseCom\
     文件        1355  2016-07-08 11:55  MFCbaseCom\MFCbaseCom.sln
     文件       48640  2016-07-16 16:21  MFCbaseCom\MFCbaseCom.suo
     文件         751  2016-07-08 12:13  MFCbaseCom\MFCbaseCom\AnimalInterfaces.h
     文件        1785  2016-07-08 12:17  MFCbaseCom\MFCbaseCom\AnimalObj.cpp
     文件         676  2016-07-08 11:43  MFCbaseCom\MFCbaseCom\AnimalObj.h
     文件       18952  2016-07-08 15:30  MFCbaseCom\MFCbaseCom\MFCbaseCom.aps
     文件        2484  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\MFCbaseCom.cpp
     文件         228  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\MFCbaseCom.def
     文件         419  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\MFCbaseCom.h
     文件         261  2016-07-07 21:03  MFCbaseCom\MFCbaseCom\MFCbaseCom.idl
     文件        3122  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\MFCbaseCom.rc
     文件        5859  2016-07-07 21:37  MFCbaseCom\MFCbaseCom\MFCbaseCom.vcproj
     文件        1401  2016-07-16 16:21  MFCbaseCom\MFCbaseCom\MFCbaseCom.vcproj.QIHUQIH-I5QE4NK.Administrator.user
     文件        1529  2016-07-08 12:14  MFCbaseCom\MFCbaseCom\MFCbaseCom_h.h
     文件        1714  2016-07-08 12:14  MFCbaseCom\MFCbaseCom\MFCbaseCom_i.c
     文件        2245  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\ReadMe.txt
     目录           0  2016-07-16 16:21  MFCbaseCom\MFCbaseCom\res\
     文件         366  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\Resource.h
     文件         366  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\res\MFCbaseCom.rc2
     文件         141  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\stdafx.cpp
     文件        1131  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\stdafx.h
     文件        1030  2016-07-07 19:24  MFCbaseCom\MFCbaseCom\targetver.h
     目录           0  2016-07-16 16:22  MFCbaseCom\TestCom\
     文件         751  2016-07-08 12:13  MFCbaseCom\TestCom\AnimalInterfaces.h
     文件        1650  2016-07-08 11:52  MFCbaseCom\TestCom\ReadMe.txt
     文件         390  2016-07-08 11:52  MFCbaseCom\TestCom\Resource.h
     文件         212  2016-07-08 11:52  MFCbaseCom\TestCom\stdafx.cpp
     文件         813  2016-07-08 11:52  MFCbaseCom\TestCom\stdafx.h
     文件        1026  2016-07-08 11:52  MFCbaseCom\TestCom\targetver.h
............此处省略5个文件信息

评论

共有 条评论