2014年5月29日
摘要: VARIANT辅助函数VariantChangeTypeVariantInitVariantCopyVariantCopyIndVariantClear 1 if (varOp1.vt == VT_BSTR && varOp2.vt == VT_BSTR) 2 { 3 VariantInit... 阅读全文
posted @ 2014-05-29 14:28 aoun 阅读(507) 评论(0) 推荐(0)
摘要: BOOL VARIANTToDouble(VARIANTARG * pVarSrc, double * pd){ VARIANTARG dest; VARIANTINIT(&dest); HRESULT hr = VariantChangeType(pVarSrc, dest, 0... 阅读全文
posted @ 2014-05-29 13:39 aoun 阅读(167) 评论(0) 推荐(0)
  2014年5月27日
摘要: 1 typedef IUnknown * (* CREATEFUNCPTR)(); 2 3 IUnknown * CallCreateInstance(char * name) 4 { 5 HINSTANCE hComponent = ::LoadLibrary(name); 6 ... 阅读全文
posted @ 2014-05-27 15:25 aoun 阅读(162) 评论(0) 推荐(0)
摘要: 没有动态链接的组件,就相当与没有装备的消防员对组件生命周期的管理是通过接口引用计数来实现的,在实现IUnknown之后组件和客户之间非常松散的连接DLL相当于一个组件服务器CLSID 组件ID (类标识符)ProgID 是coder给CLSID指定的一个易于记住的名字COM库的初始化一般只在EXE中... 阅读全文
posted @ 2014-05-27 15:18 aoun 阅读(590) 评论(0) 推荐(0)
摘要: win32可以使用InterlockedIncrementInterlockedDecrement来使同一时间只有一个线程在访问变量 1 ULONG _stdcall CA::AddRef() 2 { 3 return InterlockedIncrement(&m_ref); 4 } 5 ... 阅读全文
posted @ 2014-05-27 15:05 aoun 阅读(133) 评论(0) 推荐(0)
摘要: 1 // 08win32console-ATL.cpp : 定义控制台应用程序的入口点。 2 // 3 4 5 #include "stdafx.h" 6 #include 7 #include 8 9 using std::cout; 10 using std::en... 阅读全文
posted @ 2014-05-27 14:14 aoun 阅读(558) 评论(0) 推荐(0)
  2014年5月26日
摘要: StretchBlt可以缩放、翻转图像Bitblt只是简单的图像拷贝 阅读全文
posted @ 2014-05-26 22:49 aoun 阅读(229) 评论(0) 推荐(0)
  2014年5月22日
摘要: 1 interface IUnknown2 {3 virtual HRESULT __stdcall QueryInterface(const IID & iid, void ** ppv) = 0;4 virtual ULONG _stdcall AddRef() = 0;5 ... 阅读全文
posted @ 2014-05-22 10:30 aoun 阅读(386) 评论(0) 推荐(0)
  2014年5月21日
摘要: COMComponent Object Model (组件对象模型)在二进制级别上进行集成和重用的软件单元在同一软件中的组件必须使用相同的接口标准,组件之间才能相互通信访问COM对象的唯一途径是通过COM接口接口是一组调用函数,也是客户程序和组件之间的协议核心接口--IUnknownCOM 是C/S... 阅读全文
posted @ 2014-05-21 23:01 aoun 阅读(408) 评论(0) 推荐(0)
  2014年5月19日
摘要: 一个人的气质,并不在容颜和身材,而是所经历过的往事,是内在留下的印迹,令人深沉而安谧。所以,优雅不是装扮出来的,而是一种阅历的凝聚;淡然不是伪装出来的,而是一段人生的沉淀。时间会让一颗灵魂,变得越来越动人。 阅读全文
posted @ 2014-05-19 21:18 aoun 阅读(254) 评论(0) 推荐(0)