`

ATL总结二

 
阅读更多

 1.智能指针

   智能指针封装了 QueryInterface / Release 以及  CoCreateInstance / Release 两对方法,因此使用该类的用户不用担心com是否被释放。 ATL提供了两个智能指针类: CComPTR / CComQIPtr。

CComPtr<IMath> ptrMath;

HRESULT hr;
 hr = CoCreateInstance(CLSID_Math,
                                    NULL,
                                    CLSCTX_LOCAL_SERVER,
                                    IID_IMath,
                                    (void**)&ptrMath);

long lResult;
ptrMath->Add(134,353,&lResult);
cout << "134+353="   << lResult << endl;

    我们并不需要考虑调用release.

 

       

//CComQIPtr

CComQIPtr<IAdvancedMath,&IID_IAdvancedMath> ptrAdvancedMath(ptrMath);

if( ptrAdvancedMath )
{
   //使用ptrAdvancedMath
}

 

分享到:
评论

相关推荐

    ICESAT-2 +ATL03 + ATL08

    总结,ICESAT-2的ATL03和ATL08数据结合使用,能够提供强大的地表特征分析能力,尤其是对于森林覆盖区域和冰川研究。通过数据关联和筛选,可以获取到不同地物的精确高度信息,支持气候变化研究、森林生态学以及地形...

    C++标准库STL&ATL之总结

    2. 小型基类:ATL提供了许多小而高效的基类,如CComPtr(智能指针)、CComQIPtr(查询接口智能指针)、CComBSTR(BSTR封装)等,方便开发者管理COM接口。 3. 工具类和模板:ATL还提供了许多实用的工具类,如字符串...

    ICESat2_ATL07_ATL10_ATBD_r004.pdf

    总结起来,《ICESat-2_ATL07_ATL10_ATBD_r004.pdf》是研究和应用ICESat-2海洋冰层数据的科学家们的宝贵资源,它提供了从数据采集到产品生成的全面理论基础,为理解冰层动态变化和气候变化提供了关键的技术支撑。

    COM_ATL 介绍

    2. ** ATL基类**:如`CComObjectRootEx`和`CComCoClass`,它们处理了对象的引用计数和创建实例等基本操作。 3. ** ATL COM服务器**:ATL支持本地服务器(exe或dll)和远程服务器(Out-of-Process)。通过`...

    ATL开发与COM原理

    总结,ATL和COM是Windows开发中不可或缺的工具,它们为创建可重用、跨平台的组件提供了强大支持。了解和掌握ATL开发与COM原理,能够帮助开发者更好地构建和利用这些组件,提高软件的复用性和扩展性。

    ATL学习笔记.doc

    总结来说,ATL是C++开发者用来构建COM组件的强大工具,它简化了对象的实现过程,而VS2012提供了一套直观的向导来辅助创建和管理这些组件。通过理解ATL项目创建的步骤、COM组件的注册方法以及如何解决常见的编译和...

    ATL 消息互发

    总结,本篇文章主要介绍了如何利用ATL和Visual Studio 2005创建两个DLL,通过自定义接口和消息传递机制实现它们之间的通信。ATL提供了一种高效的方式来构建COM组件,而COM则为我们提供了一个标准的跨进程通信框架。...

    使用ATL对WORD编程

    2. 定义接口:使用ATL的宏定义自定义接口,这些接口将暴露给Word应用调用。 3. 实现接口:实现接口中的方法,这些方法将处理Word的各种操作,如打开文档、保存文档等。 4. 注册COM组件:使用ATL的注册宏注册你的COM...

    VC ATL COM 入门实例教程

    2. 创建一个新的 ATL 对象:在 Workspace View 中,右击鼠标键,并选择“New ATL Object”,然后输入“Short Name”并选择“Attributes”。 3. 添加一个方法:在“ClassView”标签中,右击鼠标键,并选择“Add ...

    ATL字符串转换宏

    总结来说,ATL字符串转换宏为开发者提供了一种简单易用的方式来处理不同编码的字符串,但使用时需要注意其限制,确保转换操作的效率和安全性。在处理大量数据或特定场景时,选择更适合的API来进行字符串编码转换。

    atl word插件源代码

    总结来说,"atl word插件源代码"项目展示了如何使用ATL和VS2012来开发一个与Word集成的插件,该插件支持特定的工具条功能,提供了对Word操作的自定义扩展。通过深入理解ATL、COM、Word Add-ins和VS2012的特性,...

    ATL设计组件

    二、ATL组件设计 1. 接口定义:在ATL中,接口通常使用`IDispEventImpl`或`IConnectionPointContainerImpl`宏来实现,这些宏处理事件的调度和连接点管理。 2. 对象实现:通过继承`CComObjectRootEx`和`CComCoClass`...

    VC中使用ATL编写控件

    2. 创建ATL项目 - 在VC2005中,选择“文件”&gt;“新建”&gt;“项目”,然后在模板中选择“ATL项目”。 - 完成项目设置后,VC2005会自动生成必要的COM结构,如导出库、接口和类。 3. 添加ActiveX控件 - 在ATL项目中,...

    ATL ActiveX密码控件

    2. ActiveX控件:ActiveX控件是一种可以在多种应用程序中重复使用的软件组件,通常由Internet Explorer浏览器支持。它们可以在网页上提供交互性,如按钮、文本框等。密码控件是其中一种,用于安全地收集用户的密码...

    ATL使用类型库实现IDispatch接口

    总结来说,通过ATL使用类型库实现IDispatch接口,可以极大地简化COM组件的自动化支持。这个过程涉及定义接口、注册类型库、获取和使用ITypeInfo、以及实现IDispatch的关键方法。ATL提供的工具和模板使得这个过程更加...

    ICESat2_ATL03A_ATBD.pdf

    ICESAT-2_ATL03A_ATBD.pdf文档详述了ICESAT-2任务中ATLAS仪器的数据处理流程,特别是大气延迟校正算法的理论基础,以及如何通过SIPS进行数据处理和管理。这个过程涵盖了从原始数据到最终产品的整个链条,旨在提供...

    C++中ATL与WTL学习

    #### 第二部分:WTL中的GUI基础类 **WTL综述** - **WTL消息映射的增强:** WTL进一步改进了ATL中的消息映射机制,提供了更多的灵活性和控制力。例如,可以使用`MESSAGE_HANDLER`宏代替传统的`ON_WM_XXX`宏,以便更...

    用ATL生成一个简单的DLL并有测试程序调用该DLL

    总结:通过ATL创建DLL并进行测试调用,可以高效地构建COM组件,减少代码量,提高可维护性。ATL的模板设计使得COM编程变得更加简洁,而测试程序的编写则能确保DLL功能的正确性。遵循上述步骤,你可以轻松完成一个简单...

    C++ ATL控件与JavaScript交互

    总结来说,“C++ ATL控件与JavaScript交互”是一个关于在浏览器环境中利用COM组件与脚本语言协同工作的实践案例。它涉及了ATL控件的创建、接口设计、JavaScript调用以及跨域安全等多个方面,是提升Web应用功能和性能...

    一个VC++编写视频采集ATL控件及C#测试

    总结来说,这个项目展示了如何利用VC++的ATL和DirectShow来创建一个视频采集控件,并在C#环境中对其进行测试和使用。这个过程中,开发者需要熟悉COM编程、ATL模板类、DirectShow滤镜图以及C#对COM组件的调用机制。...

Global site tag (gtag.js) - Google Analytics