随笔分类 -  COM/ATL

1 2 下一页
结构化存储
摘要:word excel 文档使用的存储格式均为结构化存储在结构化术语中: 目录对应于一个存储(storage) 文件对应于一个流(stream) 阅读全文
posted @ 2016-01-10 16:42 aoun 阅读(221) 评论(0) 推荐(0)
ATL属性化
摘要:从VS.Net开始,MS开始支持属性化选项(这个选项位于ATL工程向导中的复选框“Attributed”),属性化使得接口声明非常干净清爽。在大规模的COM工程,这点很重要,使得一看到声明就知道提供了哪些接口,而不是在一大堆乱糟糟的派生类和模版类里面找。但是本质上并没有差别,只不过VS把一些代码隐藏... 阅读全文
posted @ 2015-03-05 08:47 aoun 阅读(144) 评论(0) 推荐(0)
ATL常见错误处理
摘要:1.VS2008中ATL项目“对象不支持此属性和方法”问题参考地址:http://blog.sina.com.cn/s/blog_4dfc39d10100slhx.html 阅读全文
posted @ 2015-03-02 23:11 aoun 阅读(197) 评论(0) 推荐(0)
COM的概念总结
摘要:1.COM是一种规范,和语言无关。只要语言支持COM规范就可以用来创建COM对象2.COM的母语仍然是C++,因为COM使用的数据类型,在一些语言中很难表达,所以一般来说用C++制作可重用模块,其他弱类型语言将模块集成到应用中。3.自动化技术为高级语言调用COM模块提供了有效途径,ActiveX是自... 阅读全文
posted @ 2015-03-02 21:21 aoun 阅读(807) 评论(0) 推荐(0)
ATL字符串总结和转换
摘要:1.CString 转 BSTRCString s;...BSTR bstr = s.AllocSysString();2.BSTR在字符串之前放上字符数,这样处理起来有效率得多,这也决定了BSTR不能直接赋值:BSTR bstr = "...";//这是错误的ATL封装了CComBSTR类3.lo... 阅读全文
posted @ 2015-03-01 23:02 aoun 阅读(252) 评论(0) 推荐(0)
自定义TCHAR2BSTRh函数和BSTR内存的释放
摘要:1 inline HRESULT TCHAR2BSTR(TCHAR * szBuf, BSTR * bstrNew) 2 { 3 try 4 { 5 WCHAR * wszBuf; 6 #ifndef UNICODE 7 wszBuf = new W... 阅读全文
posted @ 2015-03-01 18:27 aoun 阅读(265) 评论(0) 推荐(0)
CComBstr CString 截取字符串
摘要:1 CComBSTR bstr;2 pDoc->get_FileName(&bstr);3 CString cstring(bstr);4 int len = cstring.GetLength();5 int pos = cstring.ReverseFind('\... 阅读全文
posted @ 2014-12-17 15:25 aoun 阅读(708) 评论(0) 推荐(0)
JS脚本调试
摘要:1.IE设置允许脚本调试2.安全设置中允许允许运行未标记为安全的ActiveX控件 阅读全文
posted @ 2014-06-28 00:49 aoun 阅读(185) 评论(0) 推荐(0)
Smart Pointer
摘要:以下内容摘自《http://blog.csdn.net/asanscape/article/details/6084600》Smart Pointer在初始化或释放等操作时,它们是一个对象,用点操作符,其他大部分操作则使用“->”操作符。For example: _ConnectionPtrm_p... 阅读全文
posted @ 2014-06-27 16:08 aoun 阅读(133) 评论(0) 推荐(0)
Detach
摘要:1 T* Detach() throw()2 {3 T* pt = p;4 p = NULL;5 return pt;6 } 阅读全文
posted @ 2014-06-19 14:18 aoun 阅读(134) 评论(0) 推荐(0)
VS2008 ATL 无法命中断点
摘要:把project 属性的Debugging->debugger type从auto改为mixed 阅读全文
posted @ 2014-06-18 22:14 aoun 阅读(164) 评论(0) 推荐(0)
ATL自动化
摘要:Dispatch所谓自动化就是使用自动化的数据类型,即参数不是死的,VARIANT...IDispatchImpl... 阅读全文
posted @ 2014-06-16 16:29 aoun 阅读(289) 评论(0) 推荐(0)
IDL 和内存管理 (in, out)
摘要:IDL :只带in属性的参数,client负责分配和释放参数所需内存只带out属性参数,server负责分配,client负责释放in/out属性参数,client负责分配和释放,但是如有需要,server可以重新分配 阅读全文
posted @ 2014-06-16 14:37 aoun 阅读(501) 评论(0) 推荐(0)
ATL的PS工程
摘要:PS: (proxy / stub)当你开发的组件需要用到代理/存根(即IPC(LPC+RPC)),就需要该工程,否则此工程无用创建Proxy/Stub DLL1. nmake -f HelloPS.mk2.regsvr32 helloPS.dll 阅读全文
posted @ 2014-06-16 13:59 aoun 阅读(466) 评论(0) 推荐(0)
ATL 调度(Marshaling)
摘要:调度(Marshaling): 进程和计算机之间进行函数参数和返回值传输的一个过程。核心: proxy / stub (代理 / 存根)当需要实现调度时,COM在客户程序进程地址空间创建一个proxy对象, 在组件的地址空间创建一个stub对象。客户程序与proxy交互,就像客户机和组件之间存在直接... 阅读全文
posted @ 2014-06-16 13:49 aoun 阅读(247) 评论(0) 推荐(0)
ATL组件实现
摘要:For example:1 class ATL_NO_VTABLE CMath :2 public CComObjectRootEx3 public CComClass4 public IMath,5 public IAdvancedMath6 {7 ....8 };从CC... 阅读全文
posted @ 2014-06-15 23:27 aoun 阅读(227) 评论(0) 推荐(0)
CComModule
摘要:CComModule为COM对象提供了基本的宿主支持,把windows中两种类型的宿主(EXE 和 DLL)之间的差别封装了起来。BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_Math, CMath)END_OBJECT_MAP()CComModul... 阅读全文
posted @ 2014-06-15 16:09 aoun 阅读(2341) 评论(0) 推荐(0)
COM基础2
摘要:COM把一个组件的功能分割到多个接口里,每一个接口都把一个小的、准确的功能集展现出来。(通过多个VTable实现)使用组件的模块可以直接与所需的功能模块(功能集)打交道。加入对marshaling的支持,从而能可以cross-thread, cross-process, cross-machine ... 阅读全文
posted @ 2014-06-12 21:34 aoun 阅读(167) 评论(0) 推荐(0)
ATL窗体基础
摘要:CHAIN_MSG_MAP(baseClass)是个很简单的宏,就是调用某个基类的ProcessWindowsMessage函数。意味着你把消息路由给他,看它处理不处理// 处理程序原型: // LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LP... 阅读全文
posted @ 2014-06-12 17:22 aoun 阅读(240) 评论(0) 推荐(0)
BSTR
摘要:以下内容摘自《http://blog.sina.com.cn/s/blog_66ec4d6601016q4z.html》#include "comutil.h"#pragma comment(lib, "comsupp.lib")::_com_util::ConvertBSTRToString(BS... 阅读全文
posted @ 2014-06-08 16:25 aoun 阅读(202) 评论(0) 推荐(0)

1 2 下一页