读书笔记五(Chapter9 and Chapter10)

Chapter9 客户端的简化

1.智能指针 

智能指针---主要是指组件的AddRef和Release工作可以由系统自动做好,程序员不用操心啦。

接口指针类---ATL中有CComPtr何CComQIPtr的COM接口指针类。

接口指针的应用---通过接口的IID来创建对象,然后调用CoCreateInstance创建组件。

例如:

IPtr<IX, &IID_IX> spIX;

HRESULT hr = ::CoCreateInstance(CLSID_COMPONENT1, NULL, CLSCTX_ALL, spIX.iid(), (void**)&spIX);

if (SUCCEEDED(hr))

{

   spIX->Fx();

}

对于智能指针的情况:

IPtr<IX, &IID_IX> spIX;

HRESULT hr = spIX.CreateInstance(CLSID_COMPONENT1, NULL, CLSCTX_ALL);

if (SUCCEEDED(hr))

{

   spIX->Fx();

}

 

 

Chapter10 EXE中的服务器

 

1.列集与散集是针对解决客户和COM服务器处于不同进程(远程)时通信问题(如函数参数)的解决方案。
列集:将堆栈中的参数串行化送入一个平面(flat)存储器的过程。
散集:从flat读取参数数据,并且重建这个堆栈的过程。
代理:在客户进程内处理完成列集功能的dll。
存根:在服务进程内处理实现散集功能的dll。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值