<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[newlist的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/newlist</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; newlist]]></copyright><item><title><![CDATA[找到第k小的数字]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/136974398</link><guid>https://blog.youkuaiyun.com/newlist/article/details/136974398</guid><author>newlist</author><pubDate>Sat, 23 Mar 2024 20:17:27 +0800</pubDate><description><![CDATA[快速排序算法]]></description><category></category></item><item><title><![CDATA[0120_noip_抓牛]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/135711599</link><guid>https://blog.youkuaiyun.com/newlist/article/details/135711599</guid><author>newlist</author><pubDate>Sat, 20 Jan 2024 10:03:52 +0800</pubDate><description><![CDATA[填写该函数,判断下一步是不是要旋转,是的话返回true,否则返回false。// 人记录专属值是否出现。// 牛记录专属值是否出现。// 人的信息[方向, x, y]int c[3] = {};// 牛的信息[方向, x, y]填写该函数,判断是否抓到牛,是的话返回true,否则返回false。// 人走到重复格子的次数。// 牛走到重复格子的次数。// x,y为x,y坐标，mi为方向。// h为类型：农夫为0，奶牛为1。]]></description><category></category></item><item><title><![CDATA[0113_noip]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/135566514</link><guid>https://blog.youkuaiyun.com/newlist/article/details/135566514</guid><author>newlist</author><pubDate>Sat, 13 Jan 2024 10:19:54 +0800</pubDate><description><![CDATA[打印第n个数字,n从1开始。]]></description><category></category></item><item><title><![CDATA[VS2005下opengl的helloworld]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7873832</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7873832</guid><author>newlist</author><pubDate>Thu, 16 Aug 2012 16:14:25 +0800</pubDate><description><![CDATA[#include 
void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
    glFlush();
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);//是一个初始]]></description><category></category></item><item><title><![CDATA[DLL入口点函数DllMain .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7783612</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7783612</guid><author>newlist</author><pubDate>Wed, 25 Jul 2012 10:34:43 +0800</pubDate><description><![CDATA[每个DLL都可以有一个入口点函数DllMain,系统会在不同的时刻调用此函数。以下是DllMain的一般形式：
BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpR]]></description><category></category></item><item><title><![CDATA[COM注册什么时候需要注册APPID .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7781616</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7781616</guid><author>newlist</author><pubDate>Tue, 24 Jul 2012 17:53:04 +0800</pubDate><description><![CDATA[COM 7.0以后有这样一个宏DECLARE_REGISTRY_APPID_RESOURCEID
 
在VS03以后的版本中，ATL工程中会自动添加这样的代码
class CXXModule : public CAtlDllModuleT
{
public :
 DECLARE_LIBID(LIBID_xinstallerLib)
 DECLARE_REGISTRY_APPID_RE]]></description><category></category></item><item><title><![CDATA[CoTaskMemAlloc]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7779626</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7779626</guid><author>newlist</author><pubDate>Tue, 24 Jul 2012 14:16:05 +0800</pubDate><description><![CDATA[CoTaskMemAlloc Function

分配一块任务内存区。分配方法与IMalloc::Alloc 相同。
语法C++LPVOID CoTaskMemAlloc(
__in SIZE_T cb
);参数
cb [in] 
所要分配的内存大小（单位字节）

返回值
如果成功，返回分配好的内存块，否则返回NULL.
备注
该函数使用默认的分配器来对内存进行分配。没必要]]></description><category></category></item><item><title><![CDATA[put_DocHostFlags]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7779461</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7779461</guid><author>newlist</author><pubDate>Tue, 24 Jul 2012 13:43:16 +0800</pubDate><description><![CDATA[IE控件是否支持XP的Theme，说白了只是一个标记（Flag）而已。
如果你使用了ATL的CAxWindow，那么打开Theme支持，只需要：

    CAxWindow m_ax; // 创建的IE控件。

    CComPtr spHost;
    m_ax.QueryHost(&spHost);
    spHost->put_DocHostFlags(]]></description><category></category></item><item><title><![CDATA[CoCreateInstance]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7778760</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7778760</guid><author>newlist</author><pubDate>Tue, 24 Jul 2012 10:45:46 +0800</pubDate><description><![CDATA[CoCreateInstance 

创建组件的最简单的方法是使用CoCreateInstance函数。
在COM库中包含一个用于创建组件的名为CoCreateInstance的函数。此函数需要一个CLSID参数，在此基础上创建相应组件的一个实例，并返回此组件的某个接口。
 
CoCreateInstance 
的声明


HRESULT _stdcall 
CoCreateI]]></description><category></category></item><item><title><![CDATA[COM接口映射表 .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7777803</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7777803</guid><author>newlist</author><pubDate>Tue, 24 Jul 2012 09:07:49 +0800</pubDate><description><![CDATA[CComObjectRootObjectBase中以表驱动的方式对接口的查询作了一个内部的实现，即InternalQueryInterface()。所以在创建基于ATL的COM类时，需要创建一个包含所有实现接口的映射表。
1. BEGIN_COM_MAP、END_COM_MAP、COM_INTERFACE_ENTRY与COM_INTERFACE_ENTRY2宏
ATL提供了BEGIN_COM_]]></description><category></category></item><item><title><![CDATA[ATL 的CComCoClass .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7775352</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7775352</guid><author>newlist</author><pubDate>Mon, 23 Jul 2012 14:47:22 +0800</pubDate><description><![CDATA[这个类是ATL中Com对象的核心，它让你的类轻松的实现
类厂的支持和被聚合的支持，所有这一切，就两个宏






#define DECLARE_CLASSFACTORY()DECLARE_CLASSFACTORY_EX(ATL::CComClassFactory)
  #define DECLARE_AGGREGATABLE(x) public:/
  typedef AT]]></description><category></category></item><item><title><![CDATA[CComObjectRootEx类 .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7775198</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7775198</guid><author>newlist</author><pubDate>Mon, 23 Jul 2012 14:22:02 +0800</pubDate><description><![CDATA[该类处理聚合和非聚合对象的对象引用记数管理。对于非聚合对象它拥有对象的引用记数
对于聚合对象它拥有一个指向外部unknown的指针。对于聚合对象来说，CComOjbectRootEx
可以用来处理内部对象构造失败并保护外部对象在内部接口被释放或删除的时候不被删除。
template
class CComObjectRootEx : public CComObjectRootBase 
参]]></description><category></category></item><item><title><![CDATA[VC6重载BeforeNavigate2和DocumentComplete函数方法 .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7774779</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7774779</guid><author>newlist</author><pubDate>Mon, 23 Jul 2012 11:53:00 +0800</pubDate><description><![CDATA[众所周知BeforeNavigate2和DocumentComplete函数是IE未公开的接口，如果你做基于IE的二次开发的话，而且很不幸因为种种原因只能用VC6的话，那么本文将帮助你，告诉你如何正确识别网页下载完毕以及在网页未下载完成的时候正确识别真正的url


重载这两个函数的方法是：
第一步
在chtmlxxxview.h文件添加
    void DocumentComple]]></description><category></category></item><item><title><![CDATA[ATL_NO_VTABLE详解 .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7774769</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7774769</guid><author>newlist</author><pubDate>Mon, 23 Jul 2012 11:51:33 +0800</pubDate><description><![CDATA[我们可以注意到在用ATL编写COM组件时，在类前面都有一个宏ATL_NO_VTABLE,那么这个宏到底有什么作用呢？这个宏的定义如下： 
#define	__declspec(novtable) ATL_NO_VTABLE;

下面这段是MSDN中对这个宏的描述： 
This form of _declspec can be applied to any class declaration]]></description><category></category></item><item><title><![CDATA[支持 IDispEventImpl - (COM事件的使用) .]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7774005</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7774005</guid><author>newlist</author><pubDate>Mon, 23 Jul 2012 09:21:55 +0800</pubDate><description><![CDATA[支持 IDispEventImpl


模板类 IDispEventImpl 可用于在 ATL 类中提供连接点接收器支持。连接点接收器使类得以处理从外部 COM 对象引发的事件。这些连接点接收器是用事件接收映射（由类提供）来映射的。
若要正确地实现类的连接点接收器，必须完成以下步骤： 


为每个外部对象导入类型库 
声明 IDispEventImpl 接口 
声明事件接收映射]]></description><category></category></item><item><title><![CDATA[新的挑战]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7765686</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7765686</guid><author>newlist</author><pubDate>Fri, 20 Jul 2012 08:44:56 +0800</pubDate><description><![CDATA[现在只有一个目标，就是搞定WTL，来吧代码，老子跟你拼了。]]></description><category></category></item><item><title><![CDATA[2.2 Windows Object]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7736355</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7736355</guid><author>newlist</author><pubDate>Wed, 11 Jul 2012 14:09:15 +0800</pubDate><description><![CDATA[2.2 Windows
Object
用SDK的Win32 API编写各种Windows应用程序，有其共同的规律：首先是编写WinMain函数，编写处理消息和事件的窗口过程WndProc，在WinMain里头注册窗口（Register
 Window），创建窗口，然后开始应用程序的消息循环。
MFC应用程序也不例外，因为MFC是一个建立在SDK API基础上的编程框架。对程序员来说所不同的]]></description><category></category></item><item><title><![CDATA[MFC Object和Windows Object的关系]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7735888</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7735888</guid><author>newlist</author><pubDate>Wed, 11 Jul 2012 11:40:08 +0800</pubDate><description><![CDATA[2.1 MFC Object和Windows Object的关系
MFC中最重要的封装是对Win32 API的封装，因此，理解Windows Object和MFC Object (C++对象，一个C++类的实例)之间的关系是理解MFC的关键之一。所谓Windows Object（Windows对象）是Win32下用句柄表示的Windows操作系统对象；所谓MFC Object (MFC对象)是C]]></description><category></category></item><item><title><![CDATA[MFC概述]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7735653</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7735653</guid><author>newlist</author><pubDate>Wed, 11 Jul 2012 10:57:44 +0800</pubDate><description><![CDATA[MFC是一个编程框架

MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架，它的目的就是让程序员在此基础上来建立Windows下的应用程序，这是一种相对SDK来说更为简单的方法。因为总体上，MFC框架定义了应用程序的轮廓，并提供了用户接口的标准实现方法，程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。]]></description><category></category></item><item><title><![CDATA[ATL对象多线程访问]]></title><link>https://blog.youkuaiyun.com/newlist/article/details/7728587</link><guid>https://blog.youkuaiyun.com/newlist/article/details/7728587</guid><author>newlist</author><pubDate>Mon, 09 Jul 2012 11:47:19 +0800</pubDate><description><![CDATA[COM对象必须在套间中运行。套间分为单线程套间和多线程套间。在单线程套间中，套间保证COM对象实例仅有一个线程可以访问，而在多线程套间中， COM对象实例可同时被多个线程访问。因此，在多线程套间中执行的COM对象必须解决多线程访问的同步和冲突等线程安全相关问题。
引用计数器管理的实现——CComObjectRootEx
ATL使用CComObjectRootEx类来实现对COM对象计数器的管理]]></description><category></category></item></channel></rss>