ATL】的更多相关文章

开发大型GUI界面程序MFC当仁不让,但如果是开发图形应用程序,并不需要大规模界面控件,没有必要链接庞大的MFC库,直接使用platform sdk会很麻烦,这时ATL中的关于Windows的封装就是最好的选择 ATL的窗口架构是这样的—— [两个底层封装类] CWindow 窗口句柄和API封装类 只封装了hWnd窗口句柄和与之有关的WinAPI,CWindow和hWnd可以方便地进行转换. CMessageMap 消息映射接口 该基类有一个待实现的函数ProcessWindowMessage…
本文介绍了一种使用VC++ ATL(Active Template Library),利用ISPExtensibility接口,为 iStylePDF 加入功能简单的COM插件(addin),加入工具栏按钮等可视部件,并为其加入响应事件的方法.我们采用VS2010为iStylePDF平台开发插件,当然也可以使用其他VS工具.开发插件的第一步需要安装iStylePDF的客户端,客户端程序中包括了ActiveX控件,这个是我们需要用到的类型库.如果没有客户端,请进入这里下载.下面开始逐步介绍开发步骤…
ATL中采用了一种动态生成机器指令的方式进行窗口句柄与窗口对象进行关联,以是详细分析: CWindowImpl会在第一次调用Create时注册窗口类,该窗口类是的信息是在CWindowImpl的子类中使用 DECLARE_WND_CLASS定义的,该宏会为CWindowImpl的子类定义一个静态成员函数GetWndClassInfo, 该函数返回一个CWndClassInfo结构体,其中包含了WNDCLASSEX,用于指定该类的窗口类注册时所用的 WNDCLASSEX结构. 在DECLARE_W…
ATL开发 ActiveX控件的 inf文件模板    …
// This goes past the ATL includes #import "C:/WINDOWS/system32/Macromed/Flash/Flash9e.ocx" named_guids, rename_namespace("Flash") Flash::IShockwaveFlash * flash = NULL; hr = spDispatch->QueryInterface(__uuidof(Flash::IShockwaveFlas…
I have tried to assemble together information about the Visual C++ releases, the compiler and the frameworks (MFC and ATL). You can find these on many places, but it is often incomplete or focused on something particular (Visual Studio, C++ compiler,…
ATL是如何实现线程安全的引用计数和多线程控制的 正如标题所示,这是我经常被问到的一个问题,而每次我都从头开始给人说一次,其实说来过程理解起来的确有点复杂. 我们的每一个ATL Server Object都继承于CComObjectRootEx, 而这个类其实就是秘密最核心的地方.大家想必都知道COM技术的对象存在于套间之中,套间主要分为单线程套间和多线程套间,而套间决定了引用计数的实现方式,对于单线程套间,根本不需要保护,所以引用计数的和关键数据保护的实现相对简单,而多线程套间其引用计数和数据…
这是一个相当于“Hello world!”的任务,作为认识ATL,考查了其运作流程与机制. 环境:VS2008 创建:新建-项目-Win32项目-添加公用头文件用于(选择ATL). PS:注意新建项目取消预编译头与设置自增链接为默认 需要用到的头文件: ,, OK,下面进行程序设计:(非完整代码,主要便于认识) Main函数: int APIENTRY _tWinMain(HINSTANCE hInstance,     HINSTANCE hPrevInstance,     LPTSTR l…
有时候遇到一些初学者问我这个问题:在VS中使用MFC和ATL与使用WIN32有什么联系或区别?通俗来说,win32是通过调用windows api去实现需要的功能.而MFC和ATL是封装好的类库,包含windows API和一些算法,提供给用户去使用.每一种类库代表了一种编程思想.打个很简单的例子,如果你喜欢自己维修东西,可以自己去商店掏锤子.螺丝刀.电工刀.钳子等等,也可以去买一个博世工具箱,里边各种工具一应俱全.自己淘货相当于使用win32调用windows api.买的工具箱相当于封装好的…
有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?头文件 d:\program files\microsoft visual studio 8\vc\atlmfc\include\atlconv.h如果要使用ATL字符串转换宏,请先定义 USES_CONVERSION;  // 只需要调用一次,就可以在函数中进行多次转换 下面一个例子: USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多次转换 ] = "c…