社区
ATL
帖子详情
那位提供一个用C++编写COM的例子
WQ
2003-07-16 11:27:43
那位提供一个用C++编写COM的例子
...全文
95
7
打赏
收藏
那位提供一个用C++编写COM的例子
那位提供一个用C++编写COM的例子
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qrlvls
2003-10-31
打赏
举报
回复
潘老师的书上就有
rockrabbit
2003-10-31
打赏
举报
回复
谢谢,我也比较感兴趣。
nilm
2003-07-16
打赏
举报
回复
http://www.codeproject.com/com/com_server_without_mfc_atl.asp
WQ
2003-07-16
打赏
举报
回复
不用MFC和ATL
清泉ys
2003-07-16
打赏
举报
回复
http://www.vchelp.net/vchelp/type.asp?class_id=1&type_id=29
BoxFan
2003-07-16
打赏
举报
回复
//IServer.h
#include <iostream.h>
#include <objbase.h>
interface IX:IUnknown
{
virtual void __stdcall Fx()=0;
};
interface IY:IUnknown
{
virtual void __stdcall Fy()=0;
};
interface IZ:IUnknown
{
virtual void __stdcall Fz()=0;
};
// {76CFA0E6-60B0-4854-9A33-9FD3EC6E2494}
static const IID IID_IX =
{ 0x76cfa0e6, 0x60b0, 0x4854, { 0x9a, 0x33, 0x9f, 0xd3, 0xec, 0x6e, 0x24, 0x94 } };
// {C35BDC46-8F67-4ffc-969C-942F64E98725}
static const IID IID_IY =
{ 0xc35bdc46, 0x8f67, 0x4ffc, { 0x96, 0x9c, 0x94, 0x2f, 0x64, 0xe9, 0x87, 0x25 } };
// {F8F1980F-6075-4e06-83F5-C01A399B4130}
static const IID IID_IZ =
{ 0xf8f1980f, 0x6075, 0x4e06, { 0x83, 0xf5, 0xc0, 0x1a, 0x39, 0x9b, 0x41, 0x30 } };
class CA:public IX,public IY
{
public:
//IUnknown Implement
virtual HRESULT __stdcall QueryInterface(const IID &iid,void **ppv);
virtual ULONG __stdcall AddRef(){return 0;}
virtual ULONG __stdcall Release(){return 0;}
//Interface Implement
virtual void __stdcall Fx(){cout<<"FX"<<endl;}
virtual void __stdcall Fy(){cout<<"FY"<<endl;}
};
//IServer.cpp
#include "StdAfx.h"
#include "IServer.h"
extern void trace(char *pMsg);
HRESULT __stdcall CA::QueryInterface(const IID &iid,void **ppv)
{
if (iid==IID_IUnknown)
{
trace("QueryInterface return pointer to IUnknown");
*ppv=static_cast<IX*>(this);
}
else if (iid==IID_IX)
{
trace("QueryInterface return pointer to IX");
*ppv=static_cast<IX*>(this);
}
else if (iid==IID_IY)
{
trace("QueryInterface return pointer to IY");
*ppv=static_cast<IY*>(this);
}
else
{
trace("QueryInterface return pointer to null");
*ppv=NULL;
return E_NOINTERFACE;
}
reinterpret_cast<IUnknown*>(*ppv)->AddRef();
return S_OK;
}
这是我学习com时的例子
Skt32
2003-07-16
打赏
举报
回复
转载:
#include <iostream>
#import "scrrun.dll" raw_interfaces_only
int main()
{
CoInitialize(NULL);
{
try
{
Scripting::IFileSystem3Ptr fs;
fs.CreateInstance(__uuidof(Scripting::FileSystemObject));
Scripting::IFolderPtr folder;
fs->GetFolder(_bstr_t("c:\\temp"),&folder);
_variant_t vsize;folder->get_Size(&vsize);
std::cout<<"c:\\temp size:"<<(long)vsize<<" bytes"<<std::endl;
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
std::cout<<"Get directory size via FileSystemObject, by masterz"<<std::endl;
std::cout<<"COM error occurred,source:"<<(LPCTSTR)bstrSource<<std::endl;
std::cout<<"Description:"<<(LPCTSTR)bstrDescription<<std::endl;
}
}
CoUninitialize();
return 0;
}
C++
编程实例100篇
C++
编程实例100篇,里面有很多很基础的编程实例,可以作为参考。
c++
各种小游戏(我们老师的)
这是我们老师做的,各种小游戏,我感觉还不错,所以传上来玩玩。是
c++
做的,有的可以用来交作业和课程设计都行的,而且对于
c++
游戏初学者的话很有帮助的。
V
C++
编程100例
V
C++
编程100例。包含了很多的实例,包括了很多方面,如界面编辑,文件操作等等。十分适合初学者。
vcruntime140.dll 问题的解决方法
安装apache时提示“vcruntime140.dll”。只不过是因为v
c++
的运行库的问题。本软件中包括了64位系统的各种版本的v
c++
运行库,主要全部安装,问题就能得到解决
FlatBuffers
C++
写
一个
例子
FlatBuffers
C++
写
一个
例子
ATL
3,248
社区成员
48,531
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章