<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>はみ出しRAPTの戯言</title><link>http://blogs.wankuma.com/rapt/</link><description>- a day after yesterday -</description><managingEditor>RAPT</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>RAPT</dc:creator><title>INI 編集ツール IniModifier を作成してみる (3)</title><link>http://blogs.wankuma.com/rapt/archive/2008/08/17/153287.aspx</link><pubDate>Sun, 17 Aug 2008 16:20:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/08/17/153287.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/153287.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/08/17/153287.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/153287.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/153287.aspx</trackback:ping><description>&lt;h1&gt;INI 編集ツール IniModifier を作成してみる (3)&lt;/h1&gt;
&lt;p&gt;過去の記事へのリンク：
&lt;br&gt;&lt;A href="http://blogs.wankuma.com/rapt/archive/2008/08/16/153180.aspx" title="INI 編集ツール IniModifier を作成してみる (1) へ"&gt;INI 編集ツール IniModifier を作成してみる (1)&lt;/a&gt;
&lt;br&gt;&lt;A href="http://blogs.wankuma.com/rapt/archive/2008/08/16/153188.aspx" title="INI 編集ツール IniModifier を作成してみる (2) へ"&gt;INI 編集ツール IniModifier を作成してみる (2)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
まずは、WTL::CRichEditCtrl のヘッダを見てみることにする。&lt;br&gt;
WTL は SDK のラッパであり、MFC とほぼ同機能のメソッドを持っているので迷ったら、MSDN で MFC と SDK のヘルプを見るのが常套手段。
&lt;/p&gt;
&lt;h2&gt;WTL::CRichEditCtrl&lt;/h2&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:green;"&gt;// WTL::CRichEditCtrl (CRichEditCtrlT&amp;lt;ATL::CWindow&amp;gt;) の宣言&lt;/span&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// Constructors&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; CRichEditCtrl( &lt;span style="color:magenta;"&gt;HWND&lt;/span&gt; hWnd = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; CRichEditCtrl&amp;amp; &lt;span style="color:blue;"&gt;operator&lt;/span&gt; =( &lt;span style="color:magenta;"&gt;HWND&lt;/span&gt; hWnd );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;HWND&lt;/span&gt; Create( &lt;span style="color:magenta;"&gt;HWND&lt;/span&gt; hWndParent, ATL::_U_RECT rect = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt;, &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; szWindowName = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwStyle = &lt;span style="color:red;"&gt;0&lt;/span&gt;, &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwExStyle = &lt;span style="color:red;"&gt;0&lt;/span&gt;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ATL::_U_MENUorID MenuOrID = &lt;span style="color:red;"&gt;0U&lt;/span&gt;, &lt;span style="color:magenta;"&gt;LPVOID&lt;/span&gt; lpCreateParam = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt; );
&lt;br&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// Attributes&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; GetWndClassName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; GetLibraryName();
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetLineCount() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; GetModify() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SetModify( &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bModified = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GetRect( &lt;span style="color:magenta;"&gt;LPRECT&lt;/span&gt; lpRect ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetOptions() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; SetOptions( &lt;span style="color:magenta;"&gt;WORD&lt;/span&gt; wOperation, &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwOptions );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// NOTE: first word in lpszBuffer must contain the size of the buffer!&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetLine( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nIndex, &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpszBuffer ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetLine( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nIndex, &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpszBuffer, &lt;span style="color:blue;"&gt;int&lt;/span&gt; nMaxLength ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; CanUndo() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; CanPaste( &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; nFormat = &lt;span style="color:red;"&gt;0&lt;/span&gt; ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GetSel( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt;&amp;amp; nStartChar, &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt;&amp;amp; nEndChar ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GetSel( CHARRANGE &amp;amp;cr ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetSel( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nStartChar, &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nEndChar );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetSel( CHARRANGE &amp;amp;cr );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetSelAll();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetSelNone();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetDefaultCharFormat( CHARFORMAT&amp;amp; cf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetSelectionCharFormat( CHARFORMAT&amp;amp; cf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetEventMask() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; GetLimitText() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetParaFormat( PARAFORMAT&amp;amp; pf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0200&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; GetSelText( &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpstrBuff ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#else&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// RichEdit 1.0 EM_GETSELTEXT is ANSI only&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; GetSelText( &lt;span style="color:magenta;"&gt;LPSTR&lt;/span&gt; lpstrBuff ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#ifndef&lt;/span&gt; _ATL_NO_COM
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; GetSelTextBSTR( &lt;span style="color:magenta;"&gt;BSTR&lt;/span&gt;&amp;amp; bstrText ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; &lt;span style="color:blue;"&gt;defined&lt;/span&gt;( _WTL_USE_CSTRING ) || &lt;span style="color:blue;"&gt;defined&lt;/span&gt;( __ATLSTR_H__ )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; GetSelText( _CSTRING_NS::&lt;span style="color:magenta;"&gt;CString&lt;/span&gt;&amp;amp; strText ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;WORD&lt;/span&gt; GetSelectionType() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;COLORREF&lt;/span&gt; SetBackgroundColor( &lt;span style="color:magenta;"&gt;COLORREF&lt;/span&gt; cr );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;COLORREF&lt;/span&gt; SetBackgroundColor();&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// sets to system background&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetCharFormat( CHARFORMAT&amp;amp; cf, &lt;span style="color:magenta;"&gt;WORD&lt;/span&gt; wFlags );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetDefaultCharFormat( CHARFORMAT&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetSelectionCharFormat( CHARFORMAT&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetWordCharFormat( CHARFORMAT&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; SetEventMask( &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwEventMask );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetParaFormat( PARAFORMAT&amp;amp; pf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetTargetDevice( &lt;span style="color:magenta;"&gt;HDC&lt;/span&gt; hDC, &lt;span style="color:blue;"&gt;int&lt;/span&gt; cxLineWidth );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextLength() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetReadOnly( &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bReadOnly = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetFirstVisibleLine() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; EDITWORDBREAKPROCEX GetWordBreakProcEx() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; EDITWORDBREAKPROCEX SetWordBreakProcEx( EDITWORDBREAKPROCEX pfnEditWordBreakProcEx );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextRange( TEXTRANGE* pTextRange ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0200&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextRange( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nStartChar, &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nEndChar, &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpstrText ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#else&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextRange( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nStartChar, &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nEndChar, &lt;span style="color:magenta;"&gt;LPSTR&lt;/span&gt; lpstrText ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0200&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetDefaultCharFormat( CHARFORMAT2&amp;amp; cf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetCharFormat( CHARFORMAT2&amp;amp; cf, &lt;span style="color:magenta;"&gt;WORD&lt;/span&gt; wFlags );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetDefaultCharFormat( CHARFORMAT2&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetSelectionCharFormat( CHARFORMAT2&amp;amp; cf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetSelectionCharFormat( CHARFORMAT2&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetWordCharFormat( CHARFORMAT2&amp;amp; cf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; GetParaFormat( PARAFORMAT2&amp;amp; pf ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetParaFormat( PARAFORMAT2&amp;amp; pf );
&lt;br&gt;&amp;nbsp; &amp;nbsp; TEXTMODE GetTextMode() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetTextMode( TEXTMODE enumTextMode );
&lt;br&gt;&amp;nbsp; &amp;nbsp; UNDONAMEID GetUndoName() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; UNDONAMEID GetRedoName() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; CanRedo() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; GetAutoURLDetect() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetAutoURLDetect( &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bAutoDetect = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// this method is deprecated, please use SetAutoURLDetect&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; EnableAutoURLDetect( &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bEnable = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; SetUndoLimit( &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uUndoLimit );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SetPalette( &lt;span style="color:magenta;"&gt;HPALETTE&lt;/span&gt; hPalette );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextEx( GETTEXTEX* pGetTextEx, &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpstrText ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextEx( &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt; lpstrText, &lt;span style="color:blue;"&gt;int&lt;/span&gt; nTextLen, &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwFlags = GT_DEFAULT, &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uCodePage = CP_ACP, &lt;span style="color:magenta;"&gt;LPCSTR&lt;/span&gt; lpDefaultChar = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt;, &lt;span style="color:magenta;"&gt;LPBOOL&lt;/span&gt; lpUsedDefChar = &lt;span style="color:magenta;"&gt;NULL&lt;/span&gt; ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextLengthEx( GETTEXTLENGTHEX* pGetTextLengthEx ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetTextLengthEx( &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwFlags = GTL_DEFAULT, &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uCodePage = CP_ACP ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0300&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetTextEx( SETTEXTEX* pSetTextEx, &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; lpstrText );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetTextEx( &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; lpstrText, &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwFlags = ST_DEFAULT, &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uCodePage = CP_ACP );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; GetEditStyle() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; SetEditStyle( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nStyle, &lt;span style="color:blue;"&gt;int&lt;/span&gt; nMask = &lt;span style="color:red;"&gt;-1&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetFontSize( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nFontSizeDelta );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GetScrollPos( &lt;span style="color:magenta;"&gt;LPPOINT&lt;/span&gt; lpPoint ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SetScrollPos( &lt;span style="color:magenta;"&gt;LPPOINT&lt;/span&gt; lpPoint );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; GetZoom( &lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;amp; nNum, &lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;amp; nDen ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetZoom( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nNum, &lt;span style="color:blue;"&gt;int&lt;/span&gt; nDen );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetZoomOff();
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// Operations&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; LimitText( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nChars = &lt;span style="color:red;"&gt;0&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; LineFromChar( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nIndex ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;&lt;span style="color:magenta;"&gt;POINT&lt;/span&gt;&lt;/span&gt; PosFromChar( &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nChar ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; CharFromPos( &lt;span style="color:magenta;"&gt;POINT&lt;/span&gt; pt ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; EmptyUndoBuffer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; LineIndex( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nLine = &lt;span style="color:red;"&gt;-1&lt;/span&gt; ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; LineLength( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nLine = &lt;span style="color:red;"&gt;-1&lt;/span&gt; ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; LineScroll( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nLines, &lt;span style="color:blue;"&gt;int&lt;/span&gt; nChars = &lt;span style="color:red;"&gt;0&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ReplaceSel( &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; lpszNewText, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bCanUndo = &lt;span style="color:magenta;"&gt;FALSE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; SetRect( &lt;span style="color:magenta;"&gt;LPCRECT&lt;/span&gt; lpRect );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; DisplayBand( &lt;span style="color:magenta;"&gt;LPRECT&lt;/span&gt; pDisplayRect );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; FindText( &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwFlags, FINDTEXT&amp;amp; ft ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; FindText( &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwFlags, FINDTEXTEX&amp;amp; ft ) &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; FormatRange( FORMATRANGE&amp;amp; fr, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bDisplay = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; FormatRange( FORMATRANGE* pFormatRange, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bDisplay = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; HideSelection( &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bHide = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt;, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bChangeStyle = &lt;span style="color:magenta;"&gt;FALSE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; PasteSpecial( &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uClipFormat, &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; dwAspect = &lt;span style="color:red;"&gt;0&lt;/span&gt;, HMETAFILE hMF = &lt;span style="color:red;"&gt;0&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; RequestResize();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; StreamIn( &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uFormat, EDITSTREAM&amp;amp; es );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; StreamOut( &lt;span style="color:magenta;"&gt;UINT&lt;/span&gt; uFormat, EDITSTREAM&amp;amp; es );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;DWORD&lt;/span&gt; FindWordBreak( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nCode, &lt;span style="color:magenta;"&gt;LONG&lt;/span&gt; nStartChar );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// Additional operations&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ScrollCaret();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; InsertText( &lt;span style="color:blue;"&gt;long&lt;/span&gt; nInsertAfterChar, &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; lpstrText, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bCanUndo = &lt;span style="color:magenta;"&gt;FALSE&lt;/span&gt; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;int&lt;/span&gt; AppendText( &lt;span style="color:magenta;"&gt;LPCTSTR&lt;/span&gt; lpstrText, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bCanUndo = &lt;span style="color:magenta;"&gt;FALSE&lt;/span&gt; );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// Clipboard operations&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; Undo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Copy();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Cut();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Paste();
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// OLE support&lt;/span&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; IRichEditOle* GetOleInterface() &lt;span style="color:blue;"&gt;const&lt;/span&gt;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetOleCallback( IRichEditOleCallback* pCallback );
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0200&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; Redo();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; StopGroupTyping();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ShowScrollBar( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nBarType, &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; bVisible = &lt;span style="color:magenta;"&gt;TRUE&lt;/span&gt; );
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if&lt;/span&gt; ( _RICHEDIT_VER &amp;gt;= &lt;span style="color:red;"&gt;0x0300&lt;/span&gt; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetTabStops( &lt;span style="color:blue;"&gt;int&lt;/span&gt; nTabStops, &lt;span style="color:magenta;"&gt;LPINT&lt;/span&gt; rgTabStops );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetTabStops();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;BOOL&lt;/span&gt; SetTabStops( &lt;span style="color:blue;"&gt;const&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;amp; cxEachStop );&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// takes an 'int'&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;
これで大体何ができるか分かった。
あとは、実際に使用しそうで使ったことがないメソッドについて詳しくみていくことにする。
&lt;/p&gt;
&lt;h2&gt;GetLibraryName&lt;/h2&gt;
&lt;p&gt;リッチエディットコントロールを使用するには、最初にリッチエディットコントロールの DLL をロードしておかなければいけないらしい。
&lt;br&gt;リッチエディットコントロールの DLL 名はバージョンによって異なるので（Ver1.0 は RICHED32.DLL で、Ver2.0 以降は RICHED20.DLL）、このメソッドを使うことでその違いを CRichEditCtrl がプリプロセス時点で解決してくれる。
&lt;/p&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:green;"&gt;// IniModifier.cpp&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; &lt;span style="color:magenta;"&gt;WINAPI&lt;/span&gt; _tWinMain( &lt;span style="color:magenta;"&gt;HINSTANCE&lt;/span&gt;, &lt;span style="color:magenta;"&gt;HINSTANCE&lt;/span&gt;, &lt;span style="color:magenta;"&gt;LPTSTR&lt;/span&gt;, &lt;span style="color:blue;"&gt;int&lt;/span&gt; )
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:magenta;"&gt;HMODULE&lt;/span&gt; hRich = ::LoadLibrary( CRichEditCtrl::GetLibraryName() );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:green;"&gt;// snip&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; ::FreeLibrary( hRich );
&lt;br&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color:blue;"&gt;return&lt;/span&gt; nRet;
&lt;br&gt;}
&lt;/div&gt;
&lt;h2&gt;SetSelectionCharFormat&lt;/h2&gt;
&lt;p&gt;現在の選択のテキストの文字書式属性を設定する。
&lt;br&gt;なお、選択範囲がない場合は、以降の入力についての設定となる。
&lt;/p&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:green;"&gt;// CRichEditCtrl m_rich;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// テキストを青色太字にして保護にする&lt;/span&gt;
&lt;br&gt;CHARFORMAT cf;
&lt;br&gt;cf.dwMask = CFM_PROTECTED | CFM_COLOR | CFM_BOLD;
&lt;br&gt;cf.dwEffects = CFE_PROTECTED | CFE_BOLD;
&lt;br&gt;cf.crTextColor = &lt;span style="color:magenta;"&gt;RGB&lt;/span&gt;( &lt;span style="color:red;"&gt;0&lt;/span&gt;, &lt;span style="color:red;"&gt;0&lt;/span&gt;, &lt;span style="color:red;"&gt;255&lt;/span&gt; );
&lt;br&gt;m_rich.SetSelectionCharFormat( cf );
&lt;/div&gt;
&lt;h2&gt;SetEventMask&lt;/h2&gt;
&lt;p&gt;親ウィンドウに送る通知メッセージを指定する。&lt;/p&gt;
&lt;dl style="line-height:130%;"&gt;
&lt;dt&gt;ENM_PROTECTED
 &lt;dd&gt;保護領域を編集しようとした時に WM_NOTIFY メッセージで EN_PROTECTED が通知されるようにする。
 &lt;br&gt;0 を返すと変更許可、非0 を返すと変更禁止とする。
 &lt;br&gt;&lt;code&gt;ENPROTECTED* pProtected = &lt;span style="color:blue;"&gt;reinterpret_cast&lt;/span&gt;&amp;lt; ENPROTECTED* &amp;gt;( &lt;span style="color:blue;"&gt;reinterpret_cast&lt;/span&gt;&amp;lt; LPNMHDR &amp;gt;( lParam ) );&lt;/code&gt; としたとき、
 &lt;br&gt;&lt;code&gt;pProtected-&amp;gt;msg&lt;/code&gt; に、この通知発生原因のメッセージ ID が入っている。
 &lt;br&gt;&lt;code&gt;pProtected-&amp;gt;chrg.cpMin&lt;/code&gt; と &lt;code&gt;pProtected-&amp;gt;chrg.cpMax&lt;/code&gt; に、この通知発生元のインデックス（リッチエディットコントロール先頭位置からのオフセット）が入っている。
&lt;dt&gt;ENM_KEYEVENTS
 &lt;dd&gt;キーボードイベントが発生した時に WM_NOTIFY メッセージで EN_MSGFILTER が通知されるようにする。
 &lt;br&gt;0 を返すと通常のイベントを処理する。非0 を返すと以降のイベント処理を無視する。
 &lt;br&gt;&lt;code&gt;MSGFILTER* pFilter = &lt;span style="color:blue;"&gt;reinterpret_cast&lt;/span&gt;&amp;lt; MSGFILTER* &amp;gt;( &lt;span style="color:blue;"&gt;reinterpret_cast&lt;/span&gt;&amp;lt; LPNMHDR &amp;gt;( lParam ) );&lt;/code&gt; としたとき、
 &lt;br&gt;&lt;code&gt;pFilter-&amp;gt;msg&lt;/code&gt; に、この通知発生原因のメッセージ ID が入っている。
&lt;dt&gt;ENM_MOUSEEVENTS
 &lt;dd&gt;マウスイベントが発生した時に WM_NOTIFY メッセージで EN_MSGFILTER が通知されるようにする。
 &lt;br&gt;EN_MSGFILTER の動作については、ENM_KEYEVENTS と同じ。
&lt;/dl&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
m_rich.SetEventMask( ENM_PROTECTED | ENM_KEYEVENTS | ENM_MOUSEEVENTS );
&lt;/div&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/153287.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>INI 編集ツール IniModifier を作成してみる (2)</title><link>http://blogs.wankuma.com/rapt/archive/2008/08/16/153188.aspx</link><pubDate>Sat, 16 Aug 2008 01:23:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/08/16/153188.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/153188.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/08/16/153188.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/153188.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/153188.aspx</trackback:ping><description>&lt;h1&gt;INI 編集ツール IniModifier を作成してみる (2)&lt;/h1&gt;
&lt;p&gt;過去の記事へのリンク：
&lt;br&gt;&lt;A href="http://blogs.wankuma.com/rapt/archive/2008/08/16/153180.aspx" title="INI 編集ツール IniModifier を作成してみる (1) へ"&gt;INI 編集ツール IniModifier を作成してみる (1)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
リソース配置が楽なのでダイアログベースで作ることにする。&lt;br&gt;
とりあえずリソースエディタで適当にコントロールを配置して、UI を決める。&lt;br&gt;
ダイアログの自動リサイズを実装するため、CDialogResize も継承しておく。&lt;br&gt;
&lt;/p&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:blue;"&gt;class&lt;/span&gt; CMainDlg&lt;br&gt;
&amp;nbsp; &amp;nbsp; : &lt;span style="color:blue;"&gt;public&lt;/span&gt; CDialogImpl&amp;lt; CMainDlg &amp;gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; , &lt;span style="color:blue;"&gt;public&lt;/span&gt; CDialogResize&amp;lt; CMainDlg &amp;gt;&lt;br&gt;
{&lt;br&gt;
&lt;/div&gt;
&lt;p&gt;
テキストを編集したり色をつけたりしたいので、リッチエディットコントロールを使ってみようと思う。リッチエディットコントロールを使うのはこれが初めてだが、WTL のヘッダを見ていると結構いろいろできそうなので、せっかくなので調べながら作っていくことにする。&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;リソースエディタのイメージはこんな感じ↓&lt;/p&gt;
&lt;img src="http://rapt.wankuma.com/IniModifier_image01.png" width="545px" height="363px" alt="リソースエディタのイメージ" /&gt;&lt;br&gt;
&lt;p&gt;
リッチエディットコントロールは 2.0 を使うこととする。&lt;br&gt;
CDialogResize は atlframe.h&lt;br&gt;
CRichEditCtrl は atlctrls.h&lt;br&gt;
にそれぞれ定義されているので、stdafx.h は下記のようになった。
&lt;/p&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:green;"&gt;// stdafx.h&lt;/span&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// Change these values to use different versions&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#define&lt;/span&gt; WINVER&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color:red;"&gt;0x0500&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#define&lt;/span&gt; _WIN32_WINNT&amp;nbsp; &amp;nbsp; &lt;span style="color:red;"&gt;0x0501&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#define&lt;/span&gt; _WIN32_IE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color:red;"&gt;0x0501&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#define&lt;/span&gt; _RICHEDIT_VER&amp;nbsp; &amp;nbsp;&lt;span style="color:red;"&gt;0x0200&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:green;"&gt;// WTL よりも ATL を優先する場合は、atlapp.h より前に include すること&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlstr.h&amp;gt;&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atltypes.h&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlbase.h&amp;gt;&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlapp.h&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;extern&lt;/span&gt; CAppModule _Module;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlcrack.h&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlframe.h&amp;gt;&lt;/span&gt;&amp;nbsp; &lt;span style="color:green;"&gt;// CDialogResize&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atlctrls.h&amp;gt;&lt;/span&gt;&amp;nbsp; &lt;span style="color:green;"&gt;// CRichEditCtrl&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#include&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;lt;atldlgs.h&amp;gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color:green;"&gt;// CFileDialog&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;処理の関係上、文字セットは UNICODE ではなく、マルチバイト文字セット(MBCS) でビルドすることにする。&lt;/p&gt;
&lt;div style="font-family:monospace; padding:10px; border:3px double green; margin:10px;"&gt;
&lt;span style="color:green;"&gt;// stdafx.cpp&lt;/span&gt;
&lt;br&gt;&lt;span style="color:blue;"&gt;#if defined&lt;/span&gt;( _UNICODE ) || &lt;span style="color:blue;"&gt;defined&lt;/span&gt;( UNICODE )
&lt;br&gt;&lt;span style="color:blue;"&gt;#error&lt;/span&gt; This program doesn't assume unicode build.
&lt;br&gt;&lt;span style="color:blue;"&gt;#endif&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;
# ところで、なぜ &lt;code style="font-size:100%;"&gt;#error&lt;/code&gt; ディレクティブではマルチバイト文字が使えないんだろ。&lt;br&gt;
# ダブルクォーテーションで括ってやってもだめ。L&amp;quot;&amp;quot; としてもだめ。何かうまくいくようにしてくれるといいんだけど。
&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/153188.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>INI 編集ツール IniModifier を作成してみる (1)</title><link>http://blogs.wankuma.com/rapt/archive/2008/08/16/153180.aspx</link><pubDate>Sat, 16 Aug 2008 00:18:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/08/16/153180.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/153180.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/08/16/153180.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/153180.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/153180.aspx</trackback:ping><description>&lt;h1&gt;IniModifier&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://www.jrsoftware.org/isinfo.php" title="Inno Setup へ"&gt;Inno Setup&lt;/a&gt; のフロントエンドである ISTool の&lt;a href="http://rapt21.com/innosetup.php" title="ISTool の日本語言語ファイル配布ページへ"&gt;日本語言語ファイル&lt;/a&gt;作成をしたりしているが、INI 形式のファイルをアップデートが非常にめんどくさすぎるので何かツールを作成しようと思う。&lt;/p&gt;
&lt;p&gt;開発環境は以下の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows XP sp2
&lt;li&gt;Visual C++ .NET 2003 sp1
&lt;li&gt;WTL 8.0
&lt;/ul&gt;
&lt;p&gt;要件仕様は下記の通りとする。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイルのエンコーディングは SJIS/UTF-8 に対応。（できれば EUC も対応。）
&lt;li&gt;セクション名・キー名で差分チェックを行う。
&lt;li&gt;Visual SourceSafe の比較画面のように見比べつつ編集もできるようにする。
&lt;li&gt;セクション：&lt;b style="color:black;"&gt;[太字表示]&lt;/b&gt;
&lt;li&gt;コメント：&lt;b style="color:green;"&gt;緑色表示&lt;/b&gt;
&lt;li&gt;追加されたセクション・キー：&lt;b style="color:blue;"&gt;青色表示&lt;/b&gt;
&lt;li&gt;削除されたセクション・キー：&lt;b style="color:red;"&gt;赤色表示&lt;/b&gt;
&lt;li&gt;削除されたキー：キーの先頭に &lt;code style="font-size:100%;"&gt;&amp;quot;&lt;span style="color:red; font-weight:bold;"&gt;;&amp;lt;DEL&amp;gt;:&lt;/span&gt;&amp;quot;&lt;/code&gt; を追加。
&lt;/ul&gt;
&lt;p&gt;IniModifier の完成イメージはこんな感じ↓&lt;/p&gt;
&lt;img src="http://rapt.wankuma.com/IniModifier_image00.png" width="545px" height="363px" alt="IniModifier の完成イメージ" /&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/153180.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>2008年02月度PageView</title><link>http://blogs.wankuma.com/rapt/archive/2008/03/21/129006.aspx</link><pubDate>Fri, 21 Mar 2008 23:42:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/03/21/129006.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/129006.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/03/21/129006.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/129006.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/129006.aspx</trackback:ping><description>&lt;p&gt;とっても今更感がありますが・・・(^^;&lt;/p&gt;
&lt;table border=1 cellspacing=0 cellpadding=3 cols=2&gt;
&lt;caption&gt;2008年02月度PageView&lt;/caption&gt;
&lt;colgroup align="right" span=2&gt;&lt;/colgroup&gt;
&lt;thead style="background: #a0a0a0;"&gt;
&lt;tr&gt;&lt;th style="text-align: center;"&gt;日付&lt;/th&gt;&lt;th style="text-align: center;"&gt;PV&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot style="background: #a0a0a0;"&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;合計&lt;/th&gt;&lt;td&gt;12,270&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;平均&lt;/th&gt;&lt;td&gt;423&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;前月比&lt;/th&gt;&lt;td&gt;+0.3%&lt;/td&gt;&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;2008/02/01&lt;/td&gt;&lt;td&gt;386&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/02&lt;/td&gt;&lt;td&gt;257&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/03&lt;/td&gt;&lt;td&gt;*448&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/04&lt;/td&gt;&lt;td&gt;513&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/05&lt;/td&gt;&lt;td&gt;433&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/06&lt;/td&gt;&lt;td&gt;435&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/07&lt;/td&gt;&lt;td&gt;437&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/08&lt;/td&gt;&lt;td&gt;474&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/09&lt;/td&gt;&lt;td&gt;267&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/10&lt;/td&gt;&lt;td&gt;374&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/11&lt;/td&gt;&lt;td&gt;791&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/12&lt;/td&gt;&lt;td&gt;529&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/13&lt;/td&gt;&lt;td&gt;571&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/14&lt;/td&gt;&lt;td&gt;388&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/15&lt;/td&gt;&lt;td&gt;370&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/16&lt;/td&gt;&lt;td&gt;312&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/17&lt;/td&gt;&lt;td&gt;291&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/18&lt;/td&gt;&lt;td&gt;*707&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/19&lt;/td&gt;&lt;td&gt;*790&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/20&lt;/td&gt;&lt;td&gt;554&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/21&lt;/td&gt;&lt;td&gt;379&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/22&lt;/td&gt;&lt;td&gt;416&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/23&lt;/td&gt;&lt;td&gt;228&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/24&lt;/td&gt;&lt;td&gt;270&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/25&lt;/td&gt;&lt;td&gt;372&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/26&lt;/td&gt;&lt;td&gt;305&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/27&lt;/td&gt;&lt;td&gt;374&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/28&lt;/td&gt;&lt;td&gt;302&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/02/29&lt;/td&gt;&lt;td&gt;297&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;記事を投稿した日に * 印をつけてみました。&lt;/p&gt;
&lt;p&gt;IME 関係の記事はまま好評だったようで何より。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/129006.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>ウイルスバスター 2008 の落とし穴</title><link>http://blogs.wankuma.com/rapt/archive/2008/03/04/126295.aspx</link><pubDate>Tue, 04 Mar 2008 23:48:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/03/04/126295.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/126295.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/03/04/126295.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/126295.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/126295.aspx</trackback:ping><description>&lt;P&gt;自宅では、メーラーは秀丸メールを使用しているのだけど、大量にくる迷惑メールはウイルスバスター 2007 の迷惑/詐欺メールの判定機能（[MEIWAKU] や [Phishing] と件名に表示）を併用してうまくフィルタリングさせていた。&lt;/P&gt;
&lt;P&gt;ところが 3/1 に自宅のウイルスバスターを 2008 にアップデートしたところ、深刻な問題が発生。迷惑メール対策機能を設定しているにも関わらず、上記の [MEIWAKU] といった文字が追加されなくなり、&lt;FONT color=#006400 size=4&gt;&lt;STRONG&gt;メールのフィルタリングが動作しなくなってしまった&lt;/STRONG&gt;&lt;/FONT&gt;。&lt;/P&gt;
&lt;P&gt;何度か設定を見直したが、設定ミスというのは考えられず、むしろ&lt;FONT color=#006400 size=4&gt;&lt;STRONG&gt;機能削除&lt;/STRONG&gt;&lt;/FONT&gt;された感がある。そこで、サポートにメール問い合わせをしてみた。&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;以下、回答。&lt;BR&gt;----------&lt;BR&gt;迷惑/詐欺メールの判定につきまして、[MEIWAKU]や[Phishing]と件名に表示という機能は&lt;BR&gt;大変申し訳ございませんがご要望されている機能は&lt;BR&gt;現時点では、ウイルスバスター2008 にはにはございません。&lt;/P&gt;
&lt;P&gt;ご希望に添うことができず、誠に申し訳ございませんが製品仕様につき&lt;BR&gt;なにとぞご理解、ご了承のほどよろしくお願いいたします。&lt;/P&gt;
&lt;P&gt;なお、「秀丸メール」は動作要件外となっております。&lt;BR&gt;大変申し訳ございませんが、何卒ご了承いただきますようお願いいたします。&lt;BR&gt;----------&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;とのことorz&lt;/P&gt;
&lt;P&gt;いやな予感、大的中。速攻で 2007 に戻しました。&lt;BR&gt;この迷惑メール判定機能が便利でアッサリ 3 年契約したのに・・・&lt;BR&gt;とりあえず再登載の要望は出しておくか。&lt;/P&gt;
&lt;P&gt;年内は 2007 が使えるからいいとして、来年からどうしようかな。&lt;BR&gt;こうなってはウイルスバスター 2008 は もはや&lt;FONT color=#006400 size=4&gt;&lt;STRONG&gt;使う意味ない&lt;/STRONG&gt;&lt;/FONT&gt;し、何かいいフィルタリングソフトを探さないといけないかな。。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/126295.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>Microsoft Office IME 2007 で [JP] から [EN] に変わっってしまったときの直しかた</title><link>http://blogs.wankuma.com/rapt/archive/2008/02/19/123807.aspx</link><pubDate>Tue, 19 Feb 2008 10:10:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/02/19/123807.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/123807.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/02/19/123807.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/123807.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/123807.aspx</trackback:ping><description>&lt;P&gt;&lt;A title="キーボードの A を押すと半角カナの「チ」となってしまうときの直しかた へ" HREF="/rapt/archive/2008/02/18/123663.aspx"&gt;キーボードの A を押すと半角カナの「チ」となってしまうときの直しかた&lt;/A&gt; でいただいたコメントより。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000 size=4&gt;&lt;STRONG&gt;[Alt+Shift]&lt;/STRONG&gt;&lt;/FONT&gt; で [EN] - [JP] 間の切り替えができました。&lt;BR&gt;これで、万一言語が切り替わってしまっても、いちいちキーボードから手を離さずにそのまま入力を続けることができます。&lt;/P&gt;
&lt;P&gt;2リットルさん、情報ありがとうございました。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/123807.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>キーボードの A を押すと半角カナの「チ」となってしまうときの直しかた</title><link>http://blogs.wankuma.com/rapt/archive/2008/02/18/123663.aspx</link><pubDate>Mon, 18 Feb 2008 12:51:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/02/18/123663.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/123663.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/02/18/123663.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/123663.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/123663.aspx</trackback:ping><description>&lt;P&gt;防備録として。&lt;BR&gt;・IME が OFF のとき、キーボードの A を押すと、「A」ではなく半角カナの「チ」となってしまう。&lt;BR&gt;・IME が ON のとき、キーボードの A を押すと、ひらがなの「あ」ではなく「ち」となってしまう。&lt;BR&gt;これらは、何かの勢いでキー操作をした時に起こる問題で、以前は、その度に泣く泣く Windows を再起動していた。&lt;/P&gt;
&lt;P&gt;これは、&lt;FONT color=#008000 size=4&gt;&lt;STRONG&gt;[Ctrl+Shift+ひらがな]&lt;/STRONG&gt;&lt;/FONT&gt; とすることで、ローマ字入力・かな入力切り替えをすることができる。&lt;BR&gt;これは IME が ON/OFF の状態に関わらず有効だ。&lt;/P&gt;
&lt;P&gt;ちなみに、σ(^^) は Microsoft Office IME 2007 を使っているが、ひょんな拍子で、タスクバーの IME が [JP] から [EN] に変わってしまうことがある。&lt;BR&gt;これがなんのタイミングで切り替わるのかわからなくて、今のところはマウスで [EN] をクリックして [JP] に戻して使っているが、これがいちいちめんどくさい。&lt;BR&gt;IME の設定で [EN] を削除すればいいだけなんだろうけど、削除せずに切り替える（または勝手に切り替わらないようにする）方法はないものか。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/123663.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>2008年01月度PageView</title><link>http://blogs.wankuma.com/rapt/archive/2008/02/03/120633.aspx</link><pubDate>Sun, 03 Feb 2008 03:27:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/02/03/120633.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/120633.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/02/03/120633.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/120633.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/120633.aspx</trackback:ping><description>&lt;h1&gt;2008年01月度PageView&lt;/h1&gt;

&lt;table border=1 cellspacing=0 cellpadding=3 cols=2&gt;
&lt;caption&gt;2008年01月度PageView&lt;/caption&gt;
&lt;colgroup align="right" span=2&gt;&lt;/colgroup&gt;
&lt;thead style="background: #a0a0a0;"&gt;
&lt;tr&gt;&lt;th style="text-align: center;"&gt;日付&lt;/th&gt;&lt;th style="text-align: center;"&gt;PV&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot style="background: #a0a0a0;"&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;合計&lt;/th&gt;&lt;td&gt;13,076&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;平均&lt;/th&gt;&lt;td&gt;422&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;前月比&lt;/th&gt;&lt;td&gt;-19.0%&lt;/td&gt;&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;2008/01/01&lt;/td&gt;&lt;td&gt;*514&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/02&lt;/td&gt;&lt;td&gt;324&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/03&lt;/td&gt;&lt;td&gt;337&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/04&lt;/td&gt;&lt;td&gt;366&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/05&lt;/td&gt;&lt;td&gt;316&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/06&lt;/td&gt;&lt;td&gt;279&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/07&lt;/td&gt;&lt;td&gt;518&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/08&lt;/td&gt;&lt;td&gt;414&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/09&lt;/td&gt;&lt;td&gt;652&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/10&lt;/td&gt;&lt;td&gt;594&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/11&lt;/td&gt;&lt;td&gt;468&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/12&lt;/td&gt;&lt;td&gt;318&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/13&lt;/td&gt;&lt;td&gt;251&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/14&lt;/td&gt;&lt;td&gt;285&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/15&lt;/td&gt;&lt;td&gt;424&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/16&lt;/td&gt;&lt;td&gt;331&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/17&lt;/td&gt;&lt;td&gt;346&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/18&lt;/td&gt;&lt;td&gt;544&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/19&lt;/td&gt;&lt;td&gt;327&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/20&lt;/td&gt;&lt;td&gt;283&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/21&lt;/td&gt;&lt;td&gt;425&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/22&lt;/td&gt;&lt;td&gt;405&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/23&lt;/td&gt;&lt;td&gt;*326&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/24&lt;/td&gt;&lt;td&gt;843&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/25&lt;/td&gt;&lt;td&gt;459&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/26&lt;/td&gt;&lt;td&gt;371&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/27&lt;/td&gt;&lt;td&gt;438&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/28&lt;/td&gt;&lt;td&gt;461&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/29&lt;/td&gt;&lt;td&gt;469&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/30&lt;/td&gt;&lt;td&gt;489&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2008/01/31&lt;/td&gt;&lt;td&gt;499&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;記事を投稿した日に * 印をつけてみました。&lt;/p&gt;
&lt;p&gt;先月のMS月例パッチで IE6 がクラッシュする事件があってから、PV 増加中です。&lt;br&gt;
といっても 1 月は大した記事を書いていないことを考えると、あれに関する記事も未だに需要があるってことなのかな。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/120633.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>(2/13) 自動更新による Internet Explorer 7 の配布開始</title><link>http://blogs.wankuma.com/rapt/archive/2008/01/23/118955.aspx</link><pubDate>Wed, 23 Jan 2008 23:59:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/01/23/118955.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/118955.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/01/23/118955.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/118955.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/118955.aspx</trackback:ping><description>&lt;P&gt;来月の Windows Update 月例パッチで遂に IE7 が優先度の高い更新プログラムとして配布されますね。&lt;BR&gt;ref. &lt;A title="Microsoft のサイトへ移動" href="http://www.microsoft.com/japan/technet/updatemanagement/windowsupdate/ie7announcement.mspx"&gt;Internet Explorer 7 の自動更新による配布&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;で、企業などでのシステム要件だとかテスト環境だとかで IE6 環境を保持したい場合には、これを事前にブロックする設定が必要だと Microsoft は述べています。&lt;BR&gt;この情報は大分前から発信されていますが、いよいよ残り 3 週間となったので、メモしておきたいと思います。&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;ブロックする方法として、Microsoft は 4 つの方法を提示しています。&lt;BR&gt;下記のうちの 1 つまたは複数の対応が必要ですが、一番上の方法がベストかと。&lt;BR&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A title="Microsoft のサイトへ移動" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4C12D92F-808D-4C21-96CA-DC191A0A8E41&amp;amp;displaylang=ja"&gt;自動配布の無効化ツールキット(Blocker Toolkit) をダウンロード&lt;/A&gt;して展開。 
&lt;LI&gt;更新プログラム管理ソリューションを展開。（社内 LAN などで管理している管理者向け） 
&lt;LI&gt;ユーザーが各自のコンピュータでローカル管理者として実行しないようにする。 
&lt;LI&gt;更新プログラムをインストールできることが自動更新から通知されたときに、Internet Explorer 7 のインストールを拒否する。 &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;今回はテスト環境を残したいという理由なので、&lt;A title="Microsoft のサイトへ移動" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4C12D92F-808D-4C21-96CA-DC191A0A8E41&amp;amp;displaylang=ja"&gt;自動配布の無効化ツールキット(Blocker Toolkit)&lt;/A&gt; を使うのがもっとも適切ですね。&lt;BR&gt;実際にダウンロードして使ってみました。自己解凍型の ZIP 書庫になっていて、実行すると下記のファイルが展開されます。&lt;/P&gt;
&lt;DL&gt;
&lt;DT&gt;IE70Blocker.adm
&lt;DD&gt;グループポリシーで設定を行う場合に使うテンプレート。 
&lt;DT&gt;&lt;FONT color=#006400&gt;&lt;STRONG&gt;IE70Blocker.cmd&lt;/STRONG&gt;&lt;/FONT&gt;
&lt;DD&gt;&lt;FONT color=#006400&gt;&lt;STRONG&gt;コマンドラインから設定を行うためのバッチファイル。&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;DT&gt;IE70BlockerHelp.htm
&lt;DD&gt;このツールキットの使い方（英語）。 
&lt;DT&gt;IE70BlockerHelp-GPFilteringDialog.jpg
&lt;DD&gt;IE70BlockerHelp.htm 内で使用されている画像ファイル。 &lt;/DD&gt;&lt;/DL&gt;
&lt;P&gt;ここでは、コマンドラインから設定します。なお、IE70Blocker.cmd ファイルをダブルクリックしても何もおこりません。（一瞬コマンドプロンプトが表示され、使い方が表示されますがすぐに消えます。）&lt;BR&gt;使い方は簡単。コマンドプロンプトを開き、IE70Blocker.cmd のあるフォルダで下記のコマンドを入力し、Enter キーを押下するだけ。すぐに成否が画面に表示されます。&lt;BR&gt;&lt;STRONG&gt;&lt;KBD&gt;&lt;FONT color=#ff0000&gt;IE70Blocker.cmd /B&lt;/FONT&gt;&lt;/KBD&gt;&lt;BR&gt;&lt;/STRONG&gt;これを元に戻す（自動更新で IE7 のインストールを許可する）には、下記のコマンドを入力します。&lt;BR&gt;&lt;KBD&gt;&lt;FONT color=#ff0000&gt;IE70Blocker.cmd /U&lt;/FONT&gt;&lt;/KBD&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;ちなみに実行される内容はそれぞれ下記のとおりです。&lt;/P&gt;&lt;PRE&gt;ブロック設定時
&lt;FONT color=#0000ff&gt;REG ADD    "HKLM\SOFTWARE\Microsoft\Internet Explorer\Setup\7.0" /v DoNotAllowIE70 /t REG_DWORD /d 1 /f&lt;/FONT&gt;
ブロック解除時
&lt;FONT color=#0000ff&gt;REG DELETE "HKLM\SOFTWARE\Microsoft\Internet Explorer\Setup\7.0" /v DoNotAllowIE70 /f&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;なお、.reg ファイルでやりたい方は下記をコピペして使っても構いません。σ(^^)のところで上記を実際に実行した結果からレジストリキーをエクスポートしたものです(Windows XP sp2)。&lt;BR&gt;この DWORD 値を 0 にするか、このエントリがないときは自動更新で IE7 がインストールされます。&lt;BR&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT color=#0000ff&gt;Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Setup\7.0]
"DoNotAllowIE70"=dword:00000001&lt;/FONT&gt;
&lt;/PRE&gt;
&lt;P&gt;※上記内容については、Microsoft の情報をまとめたものであり、万が一、この文書が原因で何らかの不利益が発生したとしても、当方は一切の責任をとれませんので予めご了承ください。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/118955.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>RAPT</dc:creator><title>2008年です。＆2007年12月度PageView</title><link>http://blogs.wankuma.com/rapt/archive/2008/01/01/115668.aspx</link><pubDate>Tue, 01 Jan 2008 03:21:00 GMT</pubDate><guid>http://blogs.wankuma.com/rapt/archive/2008/01/01/115668.aspx</guid><wfw:comment>http://blogs.wankuma.com/rapt/comments/115668.aspx</wfw:comment><comments>http://blogs.wankuma.com/rapt/archive/2008/01/01/115668.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/rapt/comments/commentRss/115668.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/rapt/services/trackbacks/115668.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT color=#006400 size=5&gt;&lt;STRONG&gt;新年あけましておめでとうございます。&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#006400 size=5&gt;&lt;STRONG&gt;今年もよろしくお願いいたします。&lt;/STRONG&gt;&lt;/FONT&gt;m(__)m&lt;BR&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cols=2 cellPadding=3 border=1&gt;
&lt;CAPTION&gt;2007年12月度PageView&lt;/CAPTION&gt;
&lt;COLGROUP span=2 align=right&gt;&lt;/COLGROUP&gt;
&lt;THEAD style="BACKGROUND: #a0a0a0"&gt;
&lt;TR&gt;
&lt;TH style="TEXT-ALIGN: center"&gt;日付&lt;/TH&gt;
&lt;TH style="TEXT-ALIGN: center"&gt;PV&lt;/TH&gt;&lt;/TR&gt;&lt;/THEAD&gt;
&lt;TFOOT style="BACKGROUND: #a0a0a0"&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center"&gt;合計&lt;/TH&gt;
&lt;TD&gt;16,135&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center"&gt;平均&lt;/TH&gt;
&lt;TD&gt;520&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="TEXT-ALIGN: center"&gt;前月比&lt;/TH&gt;
&lt;TD&gt;+131.3%&lt;/TD&gt;&lt;/TR&gt;&lt;/TFOOT&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/01&lt;/TD&gt;
&lt;TD&gt;139&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/02&lt;/TD&gt;
&lt;TD&gt;182&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/03&lt;/TD&gt;
&lt;TD&gt;182&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/04&lt;/TD&gt;
&lt;TD&gt;232&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/05&lt;/TD&gt;
&lt;TD&gt;186&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/06&lt;/TD&gt;
&lt;TD&gt;331&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/07&lt;/TD&gt;
&lt;TD&gt;168&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/08&lt;/TD&gt;
&lt;TD&gt;175&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/09&lt;/TD&gt;
&lt;TD&gt;175&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/10&lt;/TD&gt;
&lt;TD&gt;296&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/11&lt;/TD&gt;
&lt;TD&gt;219&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/12&lt;/TD&gt;
&lt;TD&gt;228&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/13&lt;/TD&gt;
&lt;TD&gt;274&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/14&lt;/TD&gt;
&lt;TD&gt;**1,005&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/15&lt;/TD&gt;
&lt;TD&gt;400&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/16&lt;/TD&gt;
&lt;TD&gt;332&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/17&lt;/TD&gt;
&lt;TD&gt;*1,117&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/18&lt;/TD&gt;
&lt;TD&gt;854&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/19&lt;/TD&gt;
&lt;TD&gt;730&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/20&lt;/TD&gt;
&lt;TD&gt;*1,290&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/21&lt;/TD&gt;
&lt;TD&gt;*1,855&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/22&lt;/TD&gt;
&lt;TD&gt;949&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/23&lt;/TD&gt;
&lt;TD&gt;502&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/24&lt;/TD&gt;
&lt;TD&gt;567&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/25&lt;/TD&gt;
&lt;TD&gt;792&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/26&lt;/TD&gt;
&lt;TD&gt;518&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/27&lt;/TD&gt;
&lt;TD&gt;*803&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/28&lt;/TD&gt;
&lt;TD&gt;484&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/29&lt;/TD&gt;
&lt;TD&gt;376&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/30&lt;/TD&gt;
&lt;TD&gt;312&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2007/12/31&lt;/TD&gt;
&lt;TD&gt;462&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;記事を投稿した日に * 印をつけてみました。&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;2007年12月の Microsoft セキュリティアップデートでの問題についてタイムリーだったのが PV を格段に増やしたようです。素直に喜べないのが残念ですが。汗&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/rapt/aggbug/115668.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>