2011-08-08 17:47 by Clingingboy, 225 visits, 网摘, 收藏, 编辑
摘要:1.初始化控件 int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine,...
阅读全文
2011-08-08 17:47 by Clingingboy, 175 visits, 网摘, 收藏, 编辑
摘要:1.创建ToolBar和StatusBar LRESULT CMainFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara...
阅读全文
2011-08-08 17:46 by Clingingboy, 278 visits, 网摘, 收藏, 编辑
摘要:WTL基于ATL,并做了简化和封装 不同点 1.DECLARE_FRAME_WND_CLASS 原ATL:DECLARE_WND_CLASS封装了一个ATL::CWndClassInfo结构 DEC...
阅读全文
2011-08-03 23:20 by Clingingboy, 142 visits, 网摘, 收藏, 编辑
摘要:目前发现仅此一篇完整,不过国人可笑的是骂的人居多讨论的人却很少 http://www.vckbase.com/document/viewdoc/?id=1597 下面这个帖子的讨论也很精彩 http...
阅读全文
2011-08-01 21:16 by Clingingboy, 217 visits, 网摘, 收藏, 编辑
摘要:一.名字对象比较 Hash和IsEqual方法 IMoniker* moniker2=NULL;CreateFileMoniker(OLESTR("F:\\test.xlsx"),&moniker2...
阅读全文
2011-07-26 20:31 by Clingingboy, 392 visits, 网摘, 收藏, 编辑
摘要:1.文件名字对象 IUnknown* pUnk = NULL;IMoniker* moniker2=NULL;CreateFileMoniker(OLESTR("E:\\test.xlsx"),&m...
阅读全文
2011-07-26 20:30 by Clingingboy, 188 visits, 网摘, 收藏, 编辑
摘要:一.IBindCtx Provides access to a bind context, which is an object that stores information about a pa...
阅读全文
2011-07-20 22:53 by Clingingboy, 189 visits, 网摘, 收藏, 编辑
摘要:继承该类,派生类就可以支持一些固有属性 一实现方法 1.继承CStockPropImpl class ATL_NO_VTABLE CBullsEye : public CStockPropImpl<...
阅读全文
2011-07-19 23:00 by Clingingboy, 142 visits, 网摘, 收藏, 编辑
摘要:一.IObjectSafety 浏览器安全等级 http://blog.csdn.net/sstower/article/details/6586687 二.IProvideClassInfo2 S...
阅读全文
2011-07-19 19:40 by Clingingboy, 167 visits, 网摘, 收藏, 编辑
摘要:一.Keyboard Accelerators控件快捷键 参考:http://blog.csdn.net/Welson80/article/details/5808277 http://www.cn...
阅读全文
2011-07-19 19:39 by Clingingboy, 283 visits, 网摘, 收藏, 编辑
摘要:参考:http://www.cnblogs.com/del/archive/2008/07/27/1252343.html 一.复合文档相关函数 1.StgCreateDocfile The Stg...
阅读全文
2011-07-16 20:45 by Clingingboy, 105 visits, 网摘, 收藏, 编辑
摘要:对于这门技术我真的是边学边忘,复杂的一塌糊涂. 一.http://www.cnblogs.com/Clingingboy/archive/2011/06/13/2080100.html 一般都有一个...
阅读全文
2011-07-16 20:45 by Clingingboy, 225 visits, 网摘, 收藏, 编辑
摘要:一.自定义一个Worker class CMyWorker { public: typedef MyRequestType RequestType; BOOL Initialize(void* pv...
阅读全文
2011-07-16 20:44 by Clingingboy, 240 visits, 网摘, 收藏, 编辑
摘要:一.客户端获取连接点IConnectionPoint LRESULT CMyDlg::OnCreateDoDuck(WORD wNotifyCode, WORD wID, HWND hwndCtl,...
阅读全文
2011-07-14 21:33 by Clingingboy, 315 visits, 网摘, 收藏, 编辑
摘要:一.原始Win32窗体 #include "stdafx.h" // Includes windows.h and tchar.hLRESULT CALLBACK WndProc(HWND, UI...
阅读全文
2011-06-20 23:48 by Clingingboy, 148 visits, 网摘, 收藏, 编辑
摘要:一.类的静态初始化 c++没有静态构造函数(只初始化一篇),所以atl加了一个ObjectMain方法,true为构造函数,false为析构函数 static void WINAPI ObjectM...
阅读全文
2011-06-15 20:37 by Clingingboy, 105 visits, 网摘, 收藏, 编辑
摘要:一.实现枚举器 typedef std::vector< std::string > ContainerType;typedef VCUE::GenericCopy<VARIANT, Contain...
阅读全文
2011-06-15 20:35 by Clingingboy, 240 visits, 网摘, 收藏, 编辑
摘要:接上篇http://www.cnblogs.com/Clingingboy/archive/2011/06/14/2081019.html 一.封装生命周期步骤 由于以上过程容易出错,所以在CCom...
阅读全文
2011-06-15 20:34 by Clingingboy, 123 visits, 网摘, 收藏, 编辑
摘要:一.UNREFERENCED_PARAMETER的用处 http://blog.csdn.net/liuchanghe/archive/2006/12/31/1471302.aspx 二.RegCo...
阅读全文
2011-06-14 22:31 by Clingingboy, 230 visits, 网摘, 收藏, 编辑
摘要:一.FinalConstruct && FinalRelease 显然构造函数调用虚方法是有问题的 class Base {public: Base() { Init(); } virtual void Init() {}};class Derived : public Base {public: virtual void Init() {}};分部构造的意思就是在构造函数完全初始化好之后,然后...
阅读全文
2011-06-13 21:58 by Clingingboy, 124 visits, 网摘, 收藏, 编辑
摘要:interface IItems : IDispatch{ [id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IUnknown...
阅读全文
2011-06-13 21:33 by Clingingboy, 172 visits, 网摘, 收藏, 编辑
摘要:http://msdn.microsoft.com/zh-cn/library/cc468023(VS.71).aspx template <class T>class _Copy{public:...
阅读全文
2011-06-11 21:02 by Clingingboy, 155 visits, 网摘, 收藏, 编辑
摘要:一.双重接口 http://baike.baidu.com/view/1295308.htm 使用dual标记 [ object, uuid(CE00527D-F8E3-46A3-8BC8-A253...
阅读全文
2011-06-09 21:13 by Clingingboy, 160 visits, 网摘, 收藏, 编辑
摘要:一.COM接口映射表 BEGIN_INTERFACE_PART(Dictionary, IDictionary) INIT_INTERFACE_PART(CDictionary, Dictionar...
阅读全文
2009-07-09 14:04 by Clingingboy, 314 visits, 网摘, 收藏, 编辑
摘要:http://www.cnblogs.com/yoran/articles/1099601.html http://hi.baidu.com/ilotus_y/blog/item/b70acf31d446eb1eebc4af81.html
阅读全文
2009-07-09 13:04 by Clingingboy, 351 visits, 网摘, 收藏, 编辑
摘要:一.包容 如同适配器,调用方法时,调用内部接口方法,对其内部接口进行了封装// Interface IYvirtual void __stdcall Fy() { m_pIY->Fy() ;} //@N二.聚合特殊的包容形式,把内部的接口指针直接暴露给外部HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv)...
阅读全文
2009-07-07 23:37 by Clingingboy, 221 visits, 网摘, 收藏, 编辑
摘要:一.CoCreateInstance STDAPI CoCreateInstance( REFCLSID rclsid, //创建的Com对象的类标识符(CLSID) LPUNKNOWN pUnkOuter, //指向接口IUnknown的指针 DWORD dwClsContext, //运行可执行代码的上下文 REFIID riid, //创建的Com对象的接口标识符 LP...
阅读全文
2009-07-07 23:35 by Clingingboy, 589 visits, 网摘, 收藏, 编辑
摘要:用百度词条挺不错的. 1.HRESULT http://baike.baidu.com/view/1754469.htm 2.GUID http://baike.baidu.com/view/185358.htm 3.CLSID http://baike.baidu.com/view/150219.htm GUID,它是Globally Unique Identifier的简称,中文翻译为“全球唯...
阅读全文
2009-07-05 23:13 by Clingingboy, 250 visits, 网摘, 收藏, 编辑
摘要:之前写的com组件与主程序是一起的。虽然都可以称为组件。但为了分发方便,可重用性强。以动态性链接库的方式则更会一些,也即将com组件写成以dll的动态链接形式。 一.从dll中输出函数 常用的 extern "C" 是把导出函数声明为C编译。由于C++编译器在编译的时候会造成其函数名的改变,在其他应用程序中导致函数不可调用,而C编译器则不会在编译后改变其函数名。这样如果用C编译的程序来调用该d...
阅读全文
2009-07-05 23:12 by Clingingboy, 460 visits, 网摘, 收藏, 编辑
摘要:clr内存是托管的,但c++不是.我们用完组件还得回收。那么就有一个问题。我们需要知道使用中的组件可以释放了吗?必须想一种机制在适当的时候来释放资源,于是就有了引用计数的概念.IUnknown还有其他两个成员,我们没有讲过 即AddRef和Release方法.用这两个方法可以有效的管理组件的生命周期。 AddRef则计数加1 Release则计数减1,若等于0则释放资源interface IUnk...
阅读全文
2009-07-05 16:56 by Clingingboy, 1046 visits, 网摘, 收藏, 编辑
摘要:QueryInterface 接上篇 一.COM接口的开始IUnknown com起于接口,又归于接口. com之所以是com,是因为其继承了一个名为IUnknown接口. IUnknown接口是一个非常有趣的名字.我们第一次看到这个接口,都会非常好奇,名字的由来开发内部肯定是有故事的,或者他们想不出啥好名字也是有可能的. 下面我们来看一下IUnknown接口定义了哪些成员,这篇只讲Query...
阅读全文
2009-07-05 12:08 by Clingingboy, 601 visits, 网摘, 收藏, 编辑
摘要:看com组件方面的东西大概也有3个多月了.看到com本质论的作者说6个月才对com有感觉,所以我深感欣慰哈…之前学习com完全是为了wpf,然后就一发不可收拾,知识体系发生非常大的变化.看的第一本书是潘爱民的 com原理与应用,此书是作者看了n多书总结的,像我等初学者看了这么多理论,非常之艰难,这书可不是什么武打小说,均是密密麻麻的理论...不过还是苦苦坚持看了2个月,后来发现com技术内幕和co...
阅读全文