<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Hidden tmp Blog of Sandy - 记录]]></title>
<link>http://whumstc.com/users/sandy/pblog/default.asp/</link>
<description><![CDATA[how did you find it?!]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[sandy_sp@163.com(mpSandy)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>Hidden tmp Blog of Sandy</title>
	<url>http://whumstc.com/users/sandy/pblog/default.asp/images/logos.gif</url>
	<link>http://whumstc.com/users/sandy/pblog/default.asp/</link>
	<description>Hidden tmp Blog of Sandy</description>
</image>

			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=20</link>
			<title><![CDATA[打算做一个个人微博]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Fri,30 Oct 2009 10:46:45 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=20</guid>
		<description><![CDATA[<strong>打算做一个个人微博</strong><br/><br/>有这个想法很久了。主要原因就是微博这种东西很好用，但是现有的taotao、新浪微博等等这些东西功能不能满足需求，而且不可定制。<br/>于是打算自己写一个。反正也不复杂。自己独用的话也不涉及海量数据的问题。<br/><br/>要实现这些功能：<br/>可以发布微型文章。即所谓的唠叨。<br/>--发布过程要非常简洁方便。想唠叨顺手就可以唠叨。<br/>--唠叨没有字数限制。<br/>--唠叨可以选择隐蔽、条件隐蔽、公开。默认公开<br/>--唠叨可以选择是否使用ubb格式。默认否<br/>--唠叨可以选择是否加tag。默认否<br/>--唠叨可以附加图片。<br/>可以rss订阅。<br/>可以同步微型文章。<br/>--既然私人空间做不到各处share，也做不到随时随地自由发送，那么我们就想办法借用云的力量。<br/>--可以和taotao、饭否、新浪微博之一进行同步。将在它们上面发布的唠叨给拉下来保存到这个微博系统中。也可以把这个微博中的内容同步到上述网站上。（当然格式会删减）<br/><br/>实现方式：<br/>发布微型文章没什么难的，把blog文章系统简化优化即可。<br/>同步，考虑使用GUID+时间的方式来辨别。抓取应该不难。发布要看上述系统是否提供API。<br/><br/>工作量：原型系统应该2~3个页面即可完成，一个简单的数据库，1天的工作量。<br/>]]></description>
		</item>
		
			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=17</link>
			<title><![CDATA[给pjblog上面移植自己的ubb功能成功]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Wed,21 Oct 2009 23:27:19 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=17</guid>
		<description><![CDATA[<strong>给pjblog上面移植自己的ubb功能成功</strong><br/><br/>自己本机的blog上面有自己写的grid功能和codehilight代码高亮，在外面的这个pjblog上没有，就觉得用着很不顺。<br/><br/>今天抽空打算移植下，顺便就翻了下pj的代码。<br/>却意外地发现和我本机的那个旧blog结构惊人地相似，很多地方代码几乎完全一样。于是移植这些功能完全不费吹灰之力，copy几次代码就完了。<br/>也在怀疑是否pj和这个旧blog同根同源。<br/><br/>grid功能测试：<br/><table border="1" cellspacing="0"><tr><td></td></tr><tr><td></td><td>A</td><td>B</td><td>C</td><td>D</td></tr><tr><td>1</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td></tr><tr><td>2</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td></tr><tr><td>3</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td><td>&nbsp;&nbsp;</td></tr></table><br/><br/><br/><table border="1" cellspacing="0"><tr><td></td></tr><tr><td></td><td><span style="color:blue">windows getLastError return value:</span></td></tr><tr><td>0 </td><td> 操作成功完成。</td></tr><tr><td>1 </td><td> 功能错误。</td></tr><tr><td>2 </td><td> 系统找不到指定的文件。</td></tr><tr><td>3 </td><td> 系统找不到指定的路径。</td></tr><tr><td>4 </td><td> 系统无法打开文件。</td></tr><tr><td>5 </td><td> 拒绝访问。</td></tr><tr><td>6 </td><td> 句柄无效。</td></tr><tr><td>7 </td><td> 存储控制块被损坏。</td></tr><tr><td>8 </td><td> 存储空间不足，无法处理此命令。</td></tr><tr><td>9 </td><td> 存储控制块地址无效。</td></tr><tr><td>10 </td><td> 环境错误。</td></tr><tr><td>11 </td><td> 试图加载格式错误的程序。</td></tr><tr><td>12 </td><td> 访问码无效。</td></tr><tr><td>13 </td><td> 数据无效。</td></tr><tr><td>14 </td><td> 存储器不足，无法完成此操作。</td></tr><tr><td>15 </td><td> 系统找不到指定的驱动器。</td></tr><tr><td>16 </td><td> 无法删除目录。</td></tr><tr><td>17 </td><td> 系统无法将文件移到不同的驱动器。</td></tr><tr><td>18 </td><td> 没有更多文件。</td></tr><tr><td>19 </td><td> 介质受写入保护。</td></tr><tr><td>20 </td><td> 系统找不到指定的设备。</td></tr><tr><td>21 </td><td> 设备未就绪。</td></tr><tr><td>22 </td><td> 设备不识别此命令。</td></tr><tr><td>23 </td><td> 数据错误 (循环冗余检查)。</td></tr><tr><td>24 </td><td> 程序发出命令，但命令长度不正确。</td></tr><tr><td>25 </td><td> 驱动器无法找出磁盘上特定区域或磁道的位置。</td></tr><tr><td>26 </td><td> 无法访问指定的磁盘或软盘。</td></tr><tr><td>27 </td><td> 驱动器找不到请求的扇区。</td></tr><tr><td>28 </td><td> 打印机缺纸。</td></tr><tr><td>29 </td><td> 系统无法写入指定的设备。</td></tr><tr><td>30 </td><td> 系统无法从指定的设备上读取。</td></tr><tr><td>31 </td><td> 连到系统上的设备没有发挥作用。</td></tr><tr><td>32 </td><td> 进程无法访问文件，因为另一个程序正在使用此文件。</td></tr><tr><td>33 </td><td> 进程无法访问文件，因为另一个程序已锁定文件的一部分。</td></tr><tr><td>36 </td><td> 用来共享的打开文件过多。</td></tr><tr><td>38 </td><td> 到达文件结尾。</td></tr><tr><td>39 </td><td> 磁盘已满。</td></tr><tr><td>50 </td><td> 不支持网络请求。</td></tr><tr><td>51 </td><td> 远程计算机不可用 。</td></tr><tr><td>52 </td><td> 在网络上已有重复的名称。</td></tr><tr><td>53 </td><td> 找不到网络路径。</td></tr><tr><td>54 </td><td> 网络忙。</td></tr><tr><td>55 </td><td> 指定的网络资源或设备不再可用。</td></tr><tr><td>56 </td><td> 已到达网络 BIOS 命令限制。</td></tr><tr><td>57 </td><td> 网络适配器硬件出错。</td></tr><tr><td>58 </td><td> 指定的服务器无法运行请求的操作。</td></tr><tr><td>59 </td><td> 发生意外的网络错误。</td></tr><tr><td>60 </td><td> 远程适配器不兼容。</td></tr><tr><td>61 </td><td> 打印机队列已满。</td></tr><tr><td>62 </td><td> 无法在服务器上获得用于保存待打印文件的空间。</td></tr><tr><td>63 </td><td> 删除等候打印的文件。</td></tr><tr><td>64 </td><td> 指定的网络名不再可用。</td></tr><tr><td>65 </td><td> 拒绝网络访问。</td></tr><tr><td>66 </td><td> 网络资源类型错误。</td></tr><tr><td>67 </td><td> 找不到网络名。</td></tr><tr><td>68 </td><td> 超过本地计算机网卡的名称限制。</td></tr><tr><td>69 </td><td> 超出网络 BIOS 会话限制。</td></tr><tr><td>70 </td><td> 远程服务器已暂停，或正在启动过程中。</td></tr><tr><td>71 </td><td> 当前已无法再同此远程计算机连接，因为已达到计算机的连接数目极限。</td></tr><tr><td>72 </td><td> 已暂停指定的打印机或磁盘设备。</td></tr><tr><td>80 </td><td> 文件存在。</td></tr><tr><td>82 </td><td> 无法创建目录或文件。</td></tr><tr><td>83 </td><td> INT 24 失败。</td></tr><tr><td>84 </td><td> 无法取得处理此请求的存储空间。</td></tr><tr><td>85 </td><td> 本地设备名已在使用中。</td></tr><tr><td>86 </td><td> 指定的网络密码错误。</td></tr><tr><td>87 </td><td> 参数错误。</td></tr><tr><td>88 </td><td> 网络上发生写入错误。</td></tr><tr><td>89 </td><td> 系统无法在此时启动另一个进程。</td></tr><tr><td>100 </td><td> 无法创建另一个系统信号灯。</td></tr><tr><td>101 </td><td> 另一个进程拥有独占的信号灯。</td></tr><tr><td>102 </td><td> 已设置信号灯且无法关闭。</td></tr><tr><td>103 </td><td> 无法再设置信号灯。</td></tr><tr><td>104 </td><td> 无法在中断时请求独占的信号灯。</td></tr><tr><td>105 </td><td> 此信号灯的前一个所有权已结束。</td></tr><tr><td>107 </td><td> 程序停止，因为替代的软盘未插入。</td></tr><tr><td>108 </td><td> 磁盘在使用中，或被另一个进程锁定。</td></tr><tr><td>109 </td><td> 管道已结束。</td></tr><tr><td>110 </td><td> 系统无法打开指定的设备或文件。</td></tr><tr><td>111 </td><td> 文件名太长。</td></tr><tr><td>112 </td><td> 磁盘空间不足。</td></tr><tr><td>113 </td><td> 无法再获得内部文件的标识。</td></tr><tr><td>114 </td><td> 目标内部文件的标识不正确。</td></tr><tr><td>117 </td><td> 应用程序制作的 IOCTL 调用错误。</td></tr><tr><td>118 </td><td> 验证写入的切换参数值错误。</td></tr><tr><td>119 </td><td> 系统不支持请求的命令。</td></tr><tr><td>120 </td><td> 此功能只被此系统支持。</td></tr><tr><td>121 </td><td> 信号灯超时时间已到。</td></tr><tr><td>122 </td><td> 传递到系统调用的数据区太小。</td></tr><tr><td>123 </td><td> 文件名、目录名或卷标语法不正确。</td></tr><tr><td>124 </td><td> 系统调用级别错误。</td></tr><tr><td>125 </td><td> 磁盘没有卷标。</td></tr><tr><td>126 </td><td> 找不到指定的模块。</td></tr><tr><td>127 </td><td> 找不到指定的程序。</td></tr><tr><td>128 </td><td> 没有等候的子进程。</td></tr><tr><td>130 </td><td> 试图使用操作(而非原始磁盘 I/O)的已打开磁盘分区的文件句柄。</td></tr><tr><td>131 </td><td> 试图移动文件指针到文件开头之前。</td></tr><tr><td>132 </td><td> 无法在指定的设备或文件上设置文件指针。</td></tr><tr><td>133 </td><td> 包含先前加入驱动器的驱动器无法使用 JOIN 或 SUBST 命令。</td></tr><tr><td>134 </td><td> 试图在已被合并的驱动器上使用 JOIN 或 SUBST 命令。</td></tr><tr><td>135 </td><td> 试图在已被合并的驱动器上使用 JOIN 或 SUBST 命令。</td></tr><tr><td>136 </td><td> 系统试图解除未合并驱动器的 JOIN。</td></tr><tr><td>137 </td><td> 系统试图解除未替代驱动器的 SUBST。</td></tr><tr><td>138 </td><td> 系统试图将驱动器合并到合并驱动器上的目录。</td></tr><tr><td>139 </td><td> 系统试图将驱动器替代为替代驱动器上的目录。</td></tr><tr><td>140 </td><td> 系统试图将驱动器合并到替代驱动器上的目录。</td></tr><tr><td>141 </td><td> 系统试图替代驱动器为合并驱动器上的目录。</td></tr><tr><td>142 </td><td> 系统无法在此时运行 JOIN 或 SUBST。</td></tr><tr><td>143 </td><td> 系统无法将驱动器合并到或替代为相同驱动器上的目录。</td></tr><tr><td>144 </td><td> 目录并非根目录下的子目录。</td></tr><tr><td>145 </td><td> 目录非空。</td></tr><tr><td>146 </td><td> 指定的路径已在替代中使用。</td></tr><tr><td>147 </td><td> 资源不足，无法处理此命令。</td></tr><tr><td>148 </td><td> 指定的路径无法在此时使用。</td></tr><tr><td>149 </td><td> 企图将驱动器合并或替代为驱动器上目录是上一个替代的目标的驱动器。</td></tr><tr><td>150 </td><td> 系统跟踪信息未在 CONFIG.SYS 文件中指定，或不允许跟踪。</td></tr><tr><td>151 </td><td> 为 DosMuxSemWait 指定的信号灯事件个数错误。</td></tr><tr><td>152 </td><td> DosMuxSemWait 不可运行。已设置过多的信号灯。</td></tr><tr><td>153 </td><td> DosMuxSemWait 清单错误。</td></tr><tr><td>154 </td><td> 输入的卷标超过目标文件系统的长度限制</td></tr><tr><td>155 </td><td> 无法创建另一个线程。</td></tr><tr><td>156 </td><td> 接收进程已拒绝此信号。</td></tr><tr><td>157 </td><td> 段已被放弃且无法锁定。</td></tr><tr><td>158 </td><td> 段已解除锁定。</td></tr><tr><td>159 </td><td> 线程标识的地址错误。</td></tr><tr><td>160 </td><td> 传递到 DosExecPgm 的参数字符串错误。</td></tr><tr><td>161 </td><td> 指定的路径无效。</td></tr><tr><td>162 </td><td> 信号已暂停。</td></tr><tr><td>164 </td><td> 无法在系统中创建更多的线程。</td></tr><tr><td>167 </td><td> 无法锁定文件区域。</td></tr><tr><td>170 </td><td> 请求的资源在使用中。</td></tr><tr><td>173 </td><td> 对于提供取消区域进行锁定的请求不明显。</td></tr><tr><td>174 </td><td> 文件系统不支持锁定类型的最小单元更改。</td></tr><tr><td>180 </td><td> 系统检测出错误的段号。</td></tr><tr><td>183 </td><td> 当文件已存在时，无法创建该文件。</td></tr><tr><td>186 </td><td> 传递的标志错误。</td></tr><tr><td>187 </td><td> 找不到指定的系统信号灯名称。</td></tr><tr><td>196 </td><td> 操作系统无法运行此应用程序。</td></tr><tr><td>197 </td><td> 操作系统当前的配置不能运行此应用程序。</td></tr><tr><td>199 </td><td> 操作系统无法运行此应用程序。</td></tr><tr><td>200 </td><td> 代码段不可大于或等于 64K。</td></tr><tr><td>203 </td><td> 操作系统找不到已输入的环境选项。</td></tr><tr><td>205 </td><td> 命令子树中的进程没有信号处理程序。</td></tr><tr><td>206 </td><td> 文件名或扩展名太长。</td></tr><tr><td>207 </td><td> 第 2 环堆栈已被占用。</td></tr><tr><td>208 </td><td> 没有正确输入文件名通配符 * 或 ?，或指定过多的文件名通配符。</td></tr><tr><td>209 </td><td> 正在发送的信号错误。</td></tr><tr><td>210 </td><td> 无法设置信号处理程序。</td></tr><tr><td>212 </td><td> 段已锁定且无法重新分配。</td></tr><tr><td>214 </td><td> 连到该程序或动态链接模块的动态链接模块太多。</td></tr><tr><td>215 </td><td> 无法嵌套调用 LoadModule。</td></tr><tr><td>230 </td><td> 管道状态无效。</td></tr><tr><td>231 </td><td> 所有的管道实例都在使用中。</td></tr><tr><td>232 </td><td> 管道正在关闭中。</td></tr><tr><td>233 </td><td> 管道的另一端上无任何进程。</td></tr><tr><td>234 </td><td> 更多数据可用。</td></tr><tr><td>240 </td><td> 取消会话。</td></tr><tr><td>254 </td><td> 指定的扩展属性名无效。</td></tr><tr><td>255 </td><td> 扩展属性不一致。</td></tr><tr><td>258 </td><td> 等待的操作过时。</td></tr><tr><td>259 </td><td> 没有可用的数据了。</td></tr><tr><td>266 </td><td> 无法使用复制功能。</td></tr><tr><td>267 </td><td> 目录名无效。</td></tr><tr><td>275 </td><td> 扩展属性在缓冲区中不适用。</td></tr><tr><td>276 </td><td> 装在文件系统上的扩展属性文件已损坏。</td></tr><tr><td>277 </td><td> 扩展属性表格文件已满。</td></tr><tr><td>278 </td><td> 指定的扩展属性句柄无效。</td></tr><tr><td>282 </td><td> 装入的文件系统不支持扩展属性。</td></tr><tr><td>288 </td><td> 企图释放并非呼叫方所拥有的多用户终端运行程序。</td></tr><tr><td>298 </td><td> 发向信号灯的请求过多。</td></tr><tr><td>299 </td><td> 仅完成部分的 ReadProcessMemoty 或 WriteProcessMemory 请求。</td></tr><tr><td>300 </td><td> 操作锁定请求被拒绝。</td></tr><tr><td>301 </td><td> 系统接收了一个无效的操作锁定确认。</td></tr><tr><td>487 </td><td> 试图访问无效的地址。</td></tr><tr><td>534 </td><td> 算术结果超过 32 位。</td></tr><tr><td>535 </td><td> 管道的另一端有一进程。</td></tr><tr><td>536 </td><td> 等候打开管道另一端的进程。</td></tr><tr><td>994 </td><td> 拒绝访问扩展属性。</td></tr></table><br/><br/>codehilight功能测试：<br/><table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin-top:2px;margin-bottom:2px;"><tr><td class="UBBTitle">C++ 代码：</td></tr></table><div class="UBBPanel codePanel UBBContent" id="UBBdCodeH0" >//我写的一个WM上简单的DX类的截取<br/>#include &#34;StdAfx.h&#34;<br/>#include &#34;DXGraphics.h&#34;<br/>#include &#34;MobileDXDemo1.h&#34;<br/><br/>extern CMobileDXDemo1App theApp;<br/><br/>template&lt;typename T1&gt;<br/>void inline StructInit(T1&amp; st1)<br/>{<br/>&#160;&#160;&#160;&#160;::ZeroMemory(&amp;st1,sizeof(T1));<br/>&#160;&#160;&#160;&#160;st1.dwSize = sizeof(T1);<br/>}<br/><br/>HRESULT Cr&#101;ateDDSurfaceFromBitmap(IDirectDraw* DDraw1, IDirectDrawSurface* &amp; pdds, HBITMAP hbm, int x, int y, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; int dx, int dy) <br/>{ <br/>&#160;&#160;&#160;&#160;HDC hdcImage; <br/>&#160;&#160;&#160;&#160;HDC hdc; <br/>&#160;&#160;&#160;&#160;BITMAP bm; <br/>&#160;&#160;&#160;&#160;//DDSURFACEDESC ddsd; <br/>&#160;&#160;&#160;&#160;HRESULT hr; <br/><br/>&#160;&#160;&#160;&#160;if (hbm == NULL ) <br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//LOGOUT3(4,_T(&#34;INVALID para&#34;));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return E_FAIL; <br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;// <br/>&#160;&#160;&#160;&#160;// Sel&#101;ct bitmap into a memoryDC so we can use it. <br/>&#160;&#160;&#160;&#160;// <br/>&#160;&#160;&#160;&#160;hdcImage = Cr&#101;ateCompatibleDC(NULL); <br/>&#160;&#160;&#160;&#160;if (!hdcImage) { <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;OutputDebugString(TEXT(&#34;DDHEL: Cr&#101;ateCompatibleDC failed.\n&#34;));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//LOGOUT3(5,_T(&#34;DDHEL: Cr&#101;ateCompatibleDC failed.\n&#34;));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return E_FAIL; <br/>&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;Sel&#101;ctObject(hdcImage, hbm); <br/><br/>&#160;&#160;&#160;&#160;// <br/>&#160;&#160;&#160;&#160;// Get size of the bitmap <br/>&#160;&#160;&#160;&#160;// <br/>&#160;&#160;&#160;&#160;GetObject(hbm, sizeof(bm), &amp;bm); <br/>&#160;&#160;&#160;&#160;dx = dx == 0 ? bm.bmWidth : dx;&nbsp;&nbsp;&nbsp;&nbsp;// Use the passed size, unless zero <br/>&#160;&#160;&#160;&#160;dy = dy == 0 ? bm.bmHeight : dy; <br/><br/><br/>&#160;&#160;&#160;&#160;DDSURFACEDESC ddsd1;<br/>&#160;&#160;&#160;&#160;StructInit(ddsd1);<br/>&#160;&#160;&#160;&#160;ddsd1.dwFlags = DDSD_HEIGHT | DDSD_WIDTH; /*| DDSD_PIXELFORMAT;*/<br/>&#160;&#160;&#160;&#160;ddsd1.dwHeight = dy;<br/>&#160;&#160;&#160;&#160;ddsd1.dwWidth = dx;<br/>&#160;&#160;&#160;&#160;//StructInit((ddsd2.ddpfPixelFormat));<br/>&#160;&#160;&#160;&#160;//ddsd2.ddpfPixelFormat.dwFlags = DDPF_RGB;<br/>&#160;&#160;&#160;&#160;//ddsd2.ddpfPixelFormat.dwRGBBitCount = 24; <br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = DDraw1-&gt;Cr&#101;ateSurface(&amp;ddsd1,&amp;pdds,NULL);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//LOGOUT3(hr1,_T(&#34;Cannot cr&#101;ate surface!&#34;));<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return hr1;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;DDPIXELFORMAT ddpf;<br/><br/>&#160;&#160;&#160;&#160;if (SUCCEEDED(pdds-&gt;GetPixelFormat(&amp;ddpf)))<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TCHAR str1[256];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;_stprintf(str1,_T(&#34;Pf RGBcount:%d R:%x G:%x B:%x\n&#34;),ddpf.dwRGBBitCount,ddpf.dwRBitMask,ddpf.dwGBitMask,ddpf.dwBBitMask);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;::OutputDebugString(str1);<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;if ((hr = pdds-&gt;GetDC(&amp;hdc)) == DD_OK) <br/>&#160;&#160;&#160;&#160;{ <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (!StretchBlt(hdc, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0, 0, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ddsd1.dwWidth, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ddsd1.dwHeight, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;hdcImage, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;x, y, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;dx, dy, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SRCCOPY)) hr = E_FAIL; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;pdds-&gt;ReleaseDC(hdc); <br/>&#160;&#160;&#160;&#160;} <br/>&#160;&#160;&#160;&#160;Del&#101;teDC(hdcImage); <br/>&#160;&#160;&#160;&#160;return hr; <br/>} <br/><br/><br/>CDXGraphics::CDXGraphics(void)<br/>{<br/>&#160;&#160;&#160;&#160;backDC = 0;<br/>}<br/><br/>CDXGraphics::~CDXGraphics(void)<br/>{<br/>}<br/><br/>bool CDXGraphics::Init(int W,int H,HWND Hwnd)<br/>{<br/>&#160;&#160;&#160;&#160;this-&gt;scnW = W;<br/>&#160;&#160;&#160;&#160;this-&gt;scnH = H;<br/>&#160;&#160;&#160;&#160;this-&gt;theHwnd = Hwnd;<br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = DirectDrawCr&#101;ate(NULL, &amp;DDraw1, NULL);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;hr1 = DDraw1-&gt;SetCooperativeLevel (this-&gt;theHwnd,DDSCL_NORMAL );<br/>&#160;&#160;&#160;&#160;if(hr1 !=DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;::DDSURFACEDESC ddsd1;<br/>&#160;&#160;&#160;&#160;StructInit(ddsd1);<br/>&#160;&#160;&#160;&#160;ddsd1.dwFlags = DDSD_CAPS ; <br/>&#160;&#160;&#160;&#160;ddsd1.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE ;<br/><br/>&#160;&#160;&#160;&#160;hr1 = DDraw1-&gt;Cr&#101;ateSurface (&amp;ddsd1,&amp;DPrim1,NULL);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;DDSURFACEDESC ddsd2;<br/>&#160;&#160;&#160;&#160;StructInit(ddsd2);<br/>&#160;&#160;&#160;&#160;ddsd2.dwFlags =&nbsp;&nbsp;DDSD_HEIGHT | DDSD_WIDTH/* | DDSD_PIXELFORMAT*/ ;<br/>&#160;&#160;&#160;&#160;ddsd2.dwHeight = scnH;<br/>&#160;&#160;&#160;&#160;ddsd2.dwWidth = scnW;<br/>&#160;&#160;&#160;&#160;/*StructInit((ddsd2.ddpfPixelFormat));<br/>&#160;&#160;&#160;&#160;ddsd2.ddpfPixelFormat.dwFlags = DDPF_RGB;<br/>&#160;&#160;&#160;&#160;ddsd2.ddpfPixelFormat.dwRGBBitCount = 24; <br/>&#160;&#160;&#160;&#160;ddsd2.ddpfPixelFormat.dwRBitMask = 0xff0000;<br/>&#160;&#160;&#160;&#160;ddsd2.ddpfPixelFormat.dwGBitMask = 0xff00;<br/>&#160;&#160;&#160;&#160;ddsd2.ddpfPixelFormat.dwBBitMask = 0xff; */<br/><br/><br/>&#160;&#160;&#160;&#160;hr1 = DDraw1-&gt;Cr&#101;ateSurface (&amp;ddsd2, &amp;DBack1,NULL);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;hr1 = DDraw1-&gt;Cr&#101;ateClipper(0,&amp;DBackClipper1,NULL);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;HRGN hRgn1= Cr&#101;ateRectRgn(0,0,scnW,scnH);<br/>&#160;&#160;&#160;&#160;BYTE buf[256];<br/>&#160;&#160;&#160;&#160;LPRGNDATA pRgn1 =(LPRGNDATA) buf;<br/>&#160;&#160;&#160;&#160;GetRegionData(hRgn1,sizeof(buf),pRgn1);<br/>&#160;&#160;&#160;&#160;hr1 = DBackClipper1-&gt;SetClipList(pRgn1,0);<br/>&#160;&#160;&#160;&#160;Del&#101;teObject(hRgn1);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;hr1 = DBack1-&gt;SetClipper(DBackClipper1);<br/>&#160;&#160;&#160;&#160;if(hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;return true;<br/>}<br/><br/>bool CDXGraphics::Refresh()<br/>{<br/>&#160;&#160;&#160;&#160;RECT Rc1,Rc2;<br/>&#160;&#160;&#160;&#160;GetWindowRect(theHwnd, &amp;Rc1);<br/>&#160;&#160;&#160;&#160;Rc1.right = Rc1.left + scnW;<br/>&#160;&#160;&#160;&#160;Rc1.bottom = Rc1.top + scnH;<br/><br/>&#160;&#160;&#160;&#160;Rc2.left = 0;<br/>&#160;&#160;&#160;&#160;Rc2.top = 0;<br/>&#160;&#160;&#160;&#160;Rc2.right = scnW;<br/>&#160;&#160;&#160;&#160;Rc2.bottom =scnH;<br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = DPrim1-&gt;Blt( &amp;Rc1,DBack1,&amp;Rc2,DDBLT_WAITNOTBUSY,NULL);<br/>&#160;&#160;&#160;&#160;return (hr1==DD_OK);<br/>}<br/><br/>bool CDXGraphics::Draw(int x,int y,int w,int h,int resId,int srcX,int srcY,bool useColorKey)<br/>{<br/>&#160;&#160;&#160;&#160;RECT rc1,rc2;<br/>&#160;&#160;&#160;&#160;rc1.left = x;<br/>&#160;&#160;&#160;&#160;rc1.top&nbsp;&nbsp;= y;<br/>&#160;&#160;&#160;&#160;rc1.right= rc1.left + w;<br/>&#160;&#160;&#160;&#160;rc1.bottom=rc1.top + h;<br/><br/>&#160;&#160;&#160;&#160;rc2.left = srcX;<br/>&#160;&#160;&#160;&#160;rc2.top&nbsp;&nbsp;= srcY;<br/>&#160;&#160;&#160;&#160;rc2.right= rc2.left + w;<br/>&#160;&#160;&#160;&#160;rc2.bottom=rc2.top + h;<br/><br/>&#160;&#160;&#160;&#160;DWORD flag1 = DDBLT_WAITNOTBUSY ;<br/>&#160;&#160;&#160;&#160;if(useColorKey)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;flag1 |= DDBLT_KEYSRC;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = this-&gt;DBack1-&gt;Blt(&amp;rc1,this-&gt;vDRes1[resId],&amp;rc2,flag1,NULL);<br/>&#160;&#160;&#160;&#160;return (hr1==DD_OK);<br/>}<br/><br/>bool CDXGraphics::DrawRect(int x1, int y1, int w1, int h1, DWORD color1)<br/>{<br/>&#160;&#160;&#160;&#160;RECT rc1;<br/>&#160;&#160;&#160;&#160;rc1.left = x1; <br/>&#160;&#160;&#160;&#160;rc1.top = y1;<br/>&#160;&#160;&#160;&#160;rc1.right = rc1.left + w1;<br/>&#160;&#160;&#160;&#160;rc1.bottom = rc1.top + h1;<br/><br/>&#160;&#160;&#160;&#160;DDPIXELFORMAT ddpf;<br/><br/>&#160;&#160;&#160;&#160;if (FAILED(DBack1-&gt;GetPixelFormat(&amp;ddpf)))<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return 1;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;::DDBLTFX bfx1;<br/>&#160;&#160;&#160;&#160;StructInit(bfx1);<br/>&#160;&#160;&#160;&#160;bfx1.dwFillColor = color1;<br/><br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = DBack1-&gt;Blt( &amp;rc1,NULL,NULL,DDBLT_COLORFILL ,&amp;bfx1 );<br/><br/>&#160;&#160;&#160;&#160;return (hr1==DD_OK);<br/>}<br/><br/><br/><br/><br/>int CDXGraphics::LoadRes(LPCTSTR FileName,DWORD colorKey )<br/>{<br/>&#160;&#160;&#160;&#160;int id1 = vDRes1.size();<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;LPDIRECTDRAWSURFACE lpDD;<br/>&#160;&#160;&#160;&#160;HBITMAP hbmp;<br/><br/>&#160;&#160;&#160;&#160;hbmp = LoadBitmap(theApp.m_hInstance,FileName);<br/>&#160;&#160;&#160;&#160;if(hbmp == NULL)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return -1;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;HRESULT hr1 = Cr&#101;ateDDSurfaceFromBitmap(this-&gt;DDraw1,lpDD,hbmp,0,0,0,0);<br/>&#160;&#160;&#160;&#160;if( hr1 != DD_OK)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return -1;<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;if(colorKey!=0xffffffff)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DDCOLORKEY cKey;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cKey.dwColorSpaceHighValue = colorKey;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cKey.dwColorSpaceLowValue&nbsp;&nbsp;= colorKey;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;hr1 = lpDD-&gt;SetColorKey(0,&amp;cKey);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(hr1 != DD_OK){return -1;}<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;this-&gt;vDRes1.push_back(lpDD);<br/><br/>&#160;&#160;&#160;&#160;Del&#101;teObject(hbmp);<br/><br/>&#160;&#160;&#160;&#160;return id1;<br/>}<br/><br/></div><script language="JavaScript">CodeHilight("UBBdCodeH0","cpp" );</script><br/><br/><table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin-top:2px;margin-bottom:2px;"><tr><td class="UBBTitle">java 代码：</td></tr></table><div class="UBBPanel codePanel UBBContent" id="UBBdCodeH1" >//个人某自娱自乐作品截取<br/><br/>/**<br/> * 此类用于描述一个Boss的动作，起到控制boss的作用<br/> */<br/>public abstract class BossAction1 extends TimeLine1<br/>{<br/>&#160;&#160;&#160;&#160;/**是哪个boss的动作*/<br/>&#160;&#160;&#160;&#160;protected Boss1 boss1;<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;protected static final int cMaxKey=10; //默认的时间轴最大key数量<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;public Boss1 GetBoss1(){return boss1;}<br/>&#160;&#160;&#160;&#160;public void SetBoss1(Boss1 val1){boss1=val1;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * 构造函数<br/>&#160;&#160;&#160;&#160; * @param TimeInc1 时间轴的增量，参见TimeLine1的构造函数<br/>&#160;&#160;&#160;&#160; * @param MaxKeyCount1 最大TimeKey数量，参见TimeLine1的构造函数<br/>&#160;&#160;&#160;&#160; */<br/>&#160;&#160;&#160;&#160;public BossAction1(int TimeInc1,int maxKeyCount)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;super(TimeInc1,maxKeyCount);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;boss1=null;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sTimeInc1=TimeInc1;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sTime1=0;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * 构造函数，使用默认的TimeKey数量<br/>&#160;&#160;&#160;&#160; * @param TimeInc1 时间轴的增量，参见TimeLine1的构造函数<br/>&#160;&#160;&#160;&#160; */<br/>&#160;&#160;&#160;&#160;public BossAction1(int TimeInc1)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this(TimeInc1,cMaxKey);<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * 构造函数<br/>&#160;&#160;&#160;&#160; * @param theBoss1 描述哪个boss的动作<br/>&#160;&#160;&#160;&#160; * @param TimeInc1 时间轴的增量，参见TimeLine1的构造函数<br/>&#160;&#160;&#160;&#160; * @param MaxKeyCount1 最大TimeKey数量，参见TimeLine1的构造函数<br/>&#160;&#160;&#160;&#160; */<br/>&#160;&#160;&#160;&#160;public BossAction1(Boss1 theBoss1,int TimeInc1,int maxKeyCount)<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this(TimeInc1,maxKeyCount);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;boss1=theBoss1;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * boss动作的驱动函数，会先调用go()驱动时间轴，然后引发doAction1()<br/>&#160;&#160;&#160;&#160; * @return doAction1()的返回值<br/>&#160;&#160;&#160;&#160; */<br/>&#160;&#160;&#160;&#160;public final int Action1()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.Go();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int bk1=doAction1();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return bk1;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * boss的动作控制函数，默认什么都不做。<br/>&#160;&#160;&#160;&#160; * 重载此函数可以提供对boss的实时控制。（以配合时间轴所提供的非实时控制，如Handle1()等）<br/>&#160;&#160;&#160;&#160; * @return 可自定义返回值，默认返回0。<br/>&#160;&#160;&#160;&#160; */<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected int doAction1(){return 0;};<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/**<br/>&nbsp;&nbsp;&nbsp;&nbsp; * 当前Action的名字<br/>&nbsp;&nbsp;&nbsp;&nbsp; * @return 名字<br/>&nbsp;&nbsp;&nbsp;&nbsp; */<br/>&#160;&#160;&#160;&#160;abstract public String GetActionName1();<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;/**<br/>&#160;&#160;&#160;&#160; * 获得动作剩余的时间<br/>&#160;&#160;&#160;&#160; * @return 时间（毫秒为单位）<br/>&#160;&#160;&#160;&#160; */<br/>&#160;&#160;&#160;&#160;abstract public int GetLastTime1();<br/>&#160;&#160;&#160;&#160;<br/>}<br/></div><script language="JavaScript">CodeHilight("UBBdCodeH1","java" );</script><br/><br/><br/><table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin-top:2px;margin-bottom:2px;"><tr><td class="UBBTitle">vb 代码：</td></tr></table><div class="UBBPanel codePanel UBBContent" id="UBBdCodeH2" >&#39;很久之前写的2D游戏用VB图像绘制模块截取<br/>Public Declare Function SetPixel Lib &#34;gdi32&#34; (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long<br/><br/>Public Declare Function Cr&#101;ateCompatibleDC Lib &#34;gdi32&#34; (ByVal hdc As Long) As Long<br/><br/>Public Declare Function Sel&#101;ctObject Lib &#34;gdi32&#34; (ByVal hdc As Long, ByVal hObject As Long) As Long<br/><br/>Public Declare Function Del&#101;teDC Lib &#34;gdi32&#34; (ByVal hdc As Long) As Long<br/><br/>&#39;==========================================================================================<br/><br/>Public Declare Sub CopyMemory Lib &#34;kernel32&#34; Alias &#34;RtlMoveMemory&#34; (Destination As Any, Source As Any, ByVal Length As Long)<br/><br/>Public Declare Function timeGetTime Lib &#34;winmm.dll&#34; () As Long<br/><br/><br/>Public ResPic1() As StdPicture<br/>Public ResPicDC1() As Long<br/>Public ResPicRect1() As Rect<br/>Public ResPicCount1 As Long<br/><br/>Public TargetSurf1 As PictureBox<br/><br/>Function InitGDI1(NewTargetSurf1 As PictureBox, Optional ByVal sWidth1 As Long = -5, Optional sHeight1 As Long = -5)<br/> Set TargetSurf1 = NewTargetSurf1<br/> TargetSurf1.AutoRedraw = True<br/> TargetSurf1.Parent.ScaleMode = 3<br/> TargetSurf1.ScaleMode = 3<br/> If sWidth1 &gt; 0 Then TargetSurf1.Width = sWidth1<br/> If sHeight1 &gt; 0 Then TargetSurf1.Height = sHeight1<br/>End Function<br/><br/>Function InitGDI_Res1(ByVal Count1 As Long)<br/> ResPicCount1 = 5<br/> ReDim ResPic1(ResPicCount1)<br/> ReDim ResPicDC1(ResPicCount1)<br/> ReDim ResPicRect1(ResPicCount1)<br/> <br/>End Function<br/><br/><br/>Function LoadBitmap1(ByVal Idx1 As Long, File1 As String)<br/> Set ResPic1(Idx1) = LoadPicture(File1)<br/> ResPicDC1(Idx1) = Cr&#101;ateCompatibleDC(ByVal 0&amp;)<br/> Sel&#101;ctObject ResPicDC1(Idx1), ResPic1(Idx1).Handle<br/> With ResPicRect1(Idx1)<br/>&nbsp;&nbsp;.Left = 0<br/>&nbsp;&nbsp;.Top = 0<br/>&nbsp;&nbsp;.Right = TargetSurf1.ScaleX(ResPic1(Idx1).Width, vbHimetric, vbPixels)<br/>&nbsp;&nbsp;.Bottom = TargetSurf1.ScaleY(ResPic1(Idx1).Height, vbHimetric, vbPixels)<br/> End With<br/> <br/>End Function<br/>Function CopyBitmap1(ByVal Idx1 As Long, Pic1 As Picture)<br/> Set ResPic1(Idx1) = Pic1<br/> ResPicDC1(Idx1) = Cr&#101;ateCompatibleDC(ByVal 0&amp;)<br/> Sel&#101;ctObject ResPicDC1(Idx1), ResPic1(Idx1).Handle<br/> With ResPicRect1(Idx1)<br/>&nbsp;&nbsp;.Left = 0<br/>&nbsp;&nbsp;.Top = 0<br/>&nbsp;&nbsp;.Right = TargetSurf1.ScaleX(ResPic1(Idx1).Width, vbHimetric, vbPixels)<br/>&nbsp;&nbsp;.Bottom = TargetSurf1.ScaleY(ResPic1(Idx1).Height, vbHimetric, vbPixels)<br/> End With<br/> <br/>End Function<br/><br/>Function GDI_Draw1(ByVal x1 As Long, ByVal y1 As Long, ByVal ResIdx1 As Long, SrcRc1 As Rect, Optional dwRop1 As Long = vbSrcCopy) as Long<br/> Dim back1 As Long<br/> back1 = BitBlt(TargetSurf1.hdc, x1, y1, SrcRc1.Right - SrcRc1.Left, SrcRc1.Bottom - SrcRc1.Top, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResPicDC1(ResIdx1), SrcRc1.Left, SrcRc1.Top, dwRop1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/> If back1 = 0 Then GDI_Draw1=1<br/> <br/>End Function<br/><br/></div><script language="JavaScript">CodeHilight("UBBdCodeH2","vb" );</script><br/><br/>看来虽然还有点小问题，但是正常使用已经完全可以了。就这样吧，很晚了，睡。]]></description>
		</item>
		
			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=13</link>
			<title><![CDATA[那些实在想知道我近况的人...]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Thu,03 Sep 2009 22:10:45 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=13</guid>
		<description><![CDATA[<p>实在想关注我的人，就看这个吧，或多或少有点更新：</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<object height="400" width="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param value="http://www.taotao.com/res/ttlist.swf" name="movie" />
<param value="qq=315278620&amp;num=20&amp;style=1" name="flashvars" />
<param value="autohigh" name="quality" />
<param value="transparent" name="wmode" /><embed height="400" width="400" wmode="transparent" quality="autohigh" flashvars="qq=315278620&amp;num=20&amp;style=1" src="http://www.taotao.com/res/ttlist.swf" type="application/x-shockwave-flash"></embed></object></p>]]></description>
		</item>
		
			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=6</link>
			<title><![CDATA[搞定 ubuntu下无法打开win分区的问题]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Sun,12 Apr 2009 11:36:59 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=6</guid>
		<description><![CDATA[<strong>搞定 ubuntu下无法打开win分区的问题</strong><br/><br/>正如之前所说这几天的ubuntu一直有问题，貌似是从一次大规模的软件包更新后就是这样。<br/>开机登录后弹出一堆错误，而且无法在FileBrowser里面打开win下面的那些分区。<br/>症状是双击后要输入密码，但是输入密码后没反应。有时候则是输入密码后直接卡死，等很久然后一直按ESC才可以恢复。<br/>而且不止文件系统是这样，系统管理里面所有要输入密码才能解锁进行设置的那些图形设置界面，全部无效，症状和上面一样，点Unlock要输入密码，输入后没反应。<br/><br/>于是上网搜，看了很多帖子后，觉得可能是policykit的问题，决定试试更新它看看。于是<br/>sudo apt-get install policykit<br/>结果apt-get又说什么什么interrupt了，让我重新运行，于是按它说的把XXYY运行了，然后又说什么依赖关系有问题，让我运行apt-get -f install来纠正，于是又运行，很幸运很顺利。然后回头来更新policykit，之后试试File Browser，很好，打开各个Win分区终于又恢复正常了。]]></description>
		</item>
		
			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=5</link>
			<title><![CDATA[搞定 挂载Win分区乱码的问题]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Sat,11 Apr 2009 20:43:36 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=5</guid>
		<description><![CDATA[<strong>搞定挂载 Win分区乱码的问题</strong><br/><br/>ubuntu不知道咋了，无法进入win下面的那些ntfs和fat32分区，双击要输入密码，输入后没反应。可能是前阵子更新的时候什么地方没搞好，现在系统一直有点不正常。<br/><br/>但是要写东西啊，不然明天没的交啊。东西在那些分区下啊，于是打算手动mount啊。<br/><br/>然后mount，ntfs很成功。mount fat32，也就是vfat，结果文件名中文乱码。<br/><br/>网上搜了一阵子，最后搞定： mount -t vfat -o iocharset=utf8 XXX&nbsp;&nbsp;YYY<br/><br/>是的，iocharset＝utf8，开始试了cp936不行，试了gb2312不行，后来查locale，我的系统是utf8的，然后试了utf8，搞定。<br/><br/>PS：我承认我linux非常菜，不擅长搞这玩意～～<br/>]]></description>
		</item>
		
			<item>
			<link>http://whumstc.com/users/sandy/pblog/default.asp/article.asp?id=4</link>
			<title><![CDATA[[公告]隙间的blog]]></title>
			<author>sandy_sp@163.com(sandy1)</author>
			<category><![CDATA[记录]]></category>
			<pubDate>Sat,11 Apr 2009 20:32:13 +0800</pubDate>
			<guid>http://whumstc.com/users/sandy/pblog/default.asp/default.asp?id=4</guid>
		<description><![CDATA[临时架了个blog，作为在不同操作系统下共享blog文章的一个方式。<br/><br/>大家不要在意，不会经常在此blog发表太多文章的。<br/><br/>如果你偶然看到此blog，可以无视。<br/><br/>是的，你什么都没看见。<br/>]]></description>
		</item>
		
</channel>
</rss>
