<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7353747</id><updated>2012-01-13T21:11:45.549+07:00</updated><title type='text'>commedo's blogger</title><subtitle type='html'>This is my blogger. You may discuss any technology related discussion here.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7353747.post-109885443419972076</id><published>2004-10-27T12:20:00.000+07:00</published><updated>2004-10-27T12:20:34.200+07:00</updated><title type='text'>[PROGRAMMING TIPS] How to trigger select action while clicking a label</title><content type='html'>You need the following HTML code to make this work:&lt;br /&gt;&lt;br /&gt;&lt;input id="d1" type=radio name=di1 value=1&gt;&lt;label for="d1"&gt;Click ME&lt;br /&gt;1&lt;/label&gt;&lt;br&gt;&lt;br /&gt;&lt;input id="d2" type=radio name=di1 value=2&gt;&lt;label for="d2"&gt;Click ME&lt;br /&gt;2&lt;/label&gt;&lt;br&gt;&lt;br /&gt;&lt;input id="d3" type="checkbox" name="di3" value=2&gt;&lt;label for="d3"&gt;Click ME&lt;br /&gt;3&lt;/label&gt;&lt;br&gt;&lt;br /&gt;&lt;label for="d4"&gt;Click ME 4&lt;/label&gt;&lt;input id="d4" type="text" name="di4"&gt;&lt;br /&gt;&lt;br /&gt;This code works for IE and Mozilla (FireFox) --&gt; Tested.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-109885443419972076?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/109885443419972076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=109885443419972076' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109885443419972076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109885443419972076'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/10/programming-tips-how-to-trigger-select.html' title='[PROGRAMMING TIPS] How to trigger select action while clicking a label'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-109815737672541720</id><published>2004-10-19T09:43:00.000+07:00</published><updated>2004-10-19T10:42:56.733+07:00</updated><title type='text'> [PROGRAMMING TIPS] Browser-Compatibility while accessing HTML element using DOM</title><content type='html'>Please notice that MSIE accesses an HTML element using attribute ID, but Mozilla not. Mozilla uses attribute NAME instead of ID. So, you just simply write both attributes to make it work. See the following example:&lt;br /&gt;&lt;br /&gt; &lt;span style="font-family: courier new;" class="c2f"&gt;&amp;lt;span &lt;span style="font-weight: bold;"&gt;id&lt;/span&gt;="var_name" &lt;span style="font-weight: bold;"&gt;name&lt;/span&gt;="var_name"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-109815737672541720?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/109815737672541720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=109815737672541720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109815737672541720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109815737672541720'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/10/programming-tips-browser-compatibility.html' title=' [PROGRAMMING TIPS] Browser-Compatibility while accessing HTML element using DOM'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-109401727622943838</id><published>2004-09-01T12:41:00.000+07:00</published><updated>2004-09-01T14:31:02.703+07:00</updated><title type='text'>[PROGRAMMING TIPS] Compilation Option for MSVC 2000 (v6)</title><content type='html'>Having problem with application (unhandled exception) run on MS Windows 2000/XP/2003?&lt;br /&gt;&lt;br /&gt;One of the solution key is using &lt;span style="font-weight:bold;"&gt;default&lt;/span&gt; option (Project Settings &gt; tab C++) while compiling application or DLL using MSVC.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DO NOT&lt;/span&gt; use &lt;span style="font-weight:bold;"&gt;Maximize speed&lt;/span&gt; nor &lt;span style="font-weight:bold;"&gt;Minimize size&lt;/span&gt; options to compile because these options are causing any exception handling codes such as try...catch, pretend not to be executed properly, and then system will generate error.&lt;br /&gt;&lt;br /&gt;You may simply try compiling the following code using compile options (default, maximize speed, minimize size) and compare the execution results:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main ()&lt;br /&gt;{&lt;br /&gt; char* c;&lt;br /&gt; try {&lt;br /&gt;    printf("test core dump\n");&lt;br /&gt;    strcpy(NULL, NULL);&lt;br /&gt; } catch (...) {&lt;br /&gt;    printf("YUPI, core dump\n");&lt;br /&gt; }&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Reference:&lt;br /&gt;Yusron Hilmy&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-109401727622943838?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/109401727622943838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=109401727622943838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109401727622943838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/109401727622943838'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/09/programming-tips-compilation-option.html' title='[PROGRAMMING TIPS] Compilation Option for MSVC 2000 (v6)'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108987079700185907</id><published>2004-07-15T12:53:00.000+07:00</published><updated>2004-07-15T15:13:23.183+07:00</updated><title type='text'>[PROGRAMMING TIPS] Using content-type: application/octet-stream HTTP header preventing browser opening a document automatically</title><content type='html'>Some browsers such as MSIE opening a document automatically without asking to save or open the document. Some people including me it is very annoying. So how to make an application which acts to send a document to a web client such as web browser always download the document rather open it?&lt;br /&gt;&lt;br /&gt;There is a simple way to do that by using &lt;font size=4&gt;&lt;b&gt;content-type: application/octet-stream&lt;/b&gt;&lt;/font&gt; HTTP header instead of using proper MIME-TYPE content-type for a web document to be sent. Most web browsers will downloaded a web document with this content-type including MSIE.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108987079700185907?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108987079700185907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108987079700185907' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108987079700185907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108987079700185907'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/07/programming-tips-using-content-type.html' title='[PROGRAMMING TIPS] Using content-type: application/octet-stream HTTP header preventing browser opening a document automatically'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108961453317672018</id><published>2004-07-12T13:42:00.000+07:00</published><updated>2004-07-12T13:46:36.033+07:00</updated><title type='text'>[PROGRAMMING TIPS] Freeing a dynamic allocated variable</title><content type='html'>You will be mad if you can't locate error in your program especially finally you find out that the cause is only not set your dynamic allocated variable is not set to NULL after freed it, won't you?&lt;br /&gt;&lt;br /&gt;There are some tips for freeing a dynamic allocated variable not to cause any trouble in future:&lt;br /&gt;1. Use the same function call to allocate and deallocate a dynamic allocated variable in your whole program.&lt;br /&gt;2. Check if a dynamic allocated variable is NULL or not before freeing it. Please ensure you don't free a dynamic allocated variable values NULL even some function call handle NULL condition.&lt;br /&gt;3. Set a freed dynamic allocated variable to NULL. This will not cause any error if this code is accessed rarely and not repetitively. By experience, this will cause error for repetitive condition.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;if (sTemp)&lt;br /&gt;{&lt;br /&gt;   free(sTemp);&lt;br /&gt;   sTemp = NULL;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reference&lt;/strong&gt;&lt;br /&gt;Based on my experiences&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108961453317672018?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108961453317672018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108961453317672018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108961453317672018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108961453317672018'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/07/programming-tips-freeing-dynamic.html' title='[PROGRAMMING TIPS] Freeing a dynamic allocated variable'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108758394147220691</id><published>2004-06-19T01:37:00.000+07:00</published><updated>2004-06-21T19:13:00.450+07:00</updated><title type='text'>[PROGRAMMING TIPS] Compilation Practice</title><content type='html'>&lt;li&gt;[gcc, egcs] use options : &lt;strong&gt;-O3 -s&lt;/strong&gt; when compile your code to optimize object code (intermediate files) and strip all unnecessary comments&lt;br /&gt;&lt;li&gt;[LINUX] Also you can type in shell : &lt;strong&gt;strip -g -s EXE_FILE&lt;/strong&gt; will give you the same effect as add options describe above&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108758394147220691?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108758394147220691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108758394147220691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758394147220691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758394147220691'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-compilation-practice.html' title='[PROGRAMMING TIPS] Compilation Practice'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108758385671202435</id><published>2004-06-19T01:36:00.000+07:00</published><updated>2004-06-19T02:37:42.596+07:00</updated><title type='text'>[PROGRAMMING TIPS] Coding Practice</title><content type='html'>&lt;li&gt;Cast any value that would be assigned to a variable, especially for pointer type (&lt;strong&gt;void*&lt;/strong&gt;)&lt;br /&gt;&lt;li&gt;Make sure to have same type while comparing two variables (values) avoiding warning message produced when compile the source code using gcc (NOT egcs). To get all warning message might caused unpredictable errors, use option &lt;strong&gt;-Wall&lt;/strong&gt; while compiling&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108758385671202435?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108758385671202435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108758385671202435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758385671202435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758385671202435'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-coding-practice.html' title='[PROGRAMMING TIPS] Coding Practice'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108758367638120697</id><published>2004-06-19T01:33:00.000+07:00</published><updated>2004-06-19T01:46:27.626+07:00</updated><title type='text'>[PROGRAMMING TIPS] Detecting memory leak (MSVC)</title><content type='html'>Microsoft provided library CRTDBG to detect memory leak in source code. Here is an example how to detect memory leak using CRTDBG:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;      #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;      #ifdef _DEBUG&lt;br /&gt;      #include &amp;lt;crtdbg.h&amp;gt;&lt;br /&gt;      #include &amp;lt;string.h&amp;gt;&lt;br /&gt;      #include &amp;lt;malloc.h&amp;gt;&lt;br /&gt;      #define  SET_CRT_DEBUG_FIELD(a)                   _CrtSetDbgFlag((a) | _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))&lt;br /&gt;      #define  CLEAR_CRT_DEBUG_FIELD(a)                   _CrtSetDbgFlag(~(a) &amp;amp; _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG))&lt;br /&gt;      #else&lt;br /&gt;      #define  SET_CRT_DEBUG_FIELD(a)   ((void) 0)&lt;br /&gt;      #define  CLEAR_CRT_DEBUG_FIELD(a) ((void) 0)&lt;br /&gt;      #endif&lt;br /&gt;&lt;br /&gt;      int main(int argc, char *argv[])&lt;br /&gt;      {&lt;br /&gt;        // variable&lt;br /&gt;        char *p;&lt;br /&gt;&lt;br /&gt;      #ifdef _DEBUG&lt;br /&gt;        _CrtMemState s1, s2, s3;&lt;br /&gt;        _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );&lt;br /&gt;        _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );&lt;br /&gt;        _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );&lt;br /&gt;        _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );&lt;br /&gt;        _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );&lt;br /&gt;        _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );&lt;br /&gt;        _CrtMemCheckpoint( &amp;amp;s1 );&lt;br /&gt;      #endif&lt;br /&gt;&lt;br /&gt;        // do some work here&lt;br /&gt;        p = (char *)malloc(sizeof(char)*100);&lt;br /&gt;        strcpy(p,"Hello world");&lt;br /&gt;        printf("%s\n",p);&lt;br /&gt;        //free(p);	// Seolah2 kita lupa mem-free&lt;br /&gt;&lt;br /&gt;      #ifdef _DEBUG&lt;br /&gt;        _CrtMemCheckpoint( &amp;amp;s2 );&lt;br /&gt;        if ( _CrtMemDifference( &amp;amp;s3, &amp;amp;s1, &amp;amp;s2 ) ){&lt;br /&gt;          printf("\n------------\nOuups! leak detection.\n");&lt;br /&gt;          _CrtMemDumpStatistics( &amp;amp;s3 );&lt;br /&gt;        }else{&lt;br /&gt;          printf("\n------------\nCongratulation! no leak detection.\n");&lt;br /&gt;        }&lt;br /&gt;      #endif&lt;br /&gt;        return 0;&lt;br /&gt;      } // end of main&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Use option /MTd to compile the code, e.g. cl memdetect.c /MTd&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108758367638120697?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108758367638120697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108758367638120697' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758367638120697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758367638120697'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-detecting-memory-leak.html' title='[PROGRAMMING TIPS] Detecting memory leak (MSVC)'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108758348700150259</id><published>2004-06-19T01:29:00.000+07:00</published><updated>2004-06-19T01:31:45.726+07:00</updated><title type='text'>[PROGRAMMING TIPS] Add a description to a Windows service</title><content type='html'>You can add a description about a service and displayed in Description column in Services Console (MMC) by adding the following codes after created a service (CreateService()) successfully:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;      #define SZDESCRIPTION               "A description about the service"&lt;br /&gt;&lt;br /&gt;      LPSERVICE_DESCRIPTION lpInfo;&lt;br /&gt;&lt;br /&gt;      // change service's description&lt;br /&gt;      lpInfo = (LPSERVICE_DESCRIPTION)malloc(sizeof(SERVICE_DESCRIPTION));&lt;br /&gt;      lpInfo-&gt;lpDescription = (LPTSTR)malloc(256);&lt;br /&gt;      strcpy((char*)lpInfo-&gt;lpDescription, (char*)SZDESCRIPTION);&lt;br /&gt;      if (!ChangeServiceConfig2(schService, SERVICE_CONFIG_DESCRIPTION,&lt;br /&gt;          lpInfo))&lt;br /&gt;         _tprintf(TEXT("Can't change service description.\n"));&lt;br /&gt;      free(lpInfo-&gt;lpDescription); lpInfo-&gt;lpDescription = NULL;&lt;br /&gt;      free(lpInfo); lpInfo = NULL;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you want to start a service automatically after installing it, add the following codes after created a service (CreateService()) successfully:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;      // Start Service&lt;br /&gt;      if (!StartService(schService, 0, NULL))&lt;br /&gt;         _tprintf(TEXT("Can't start service automatically.\n"));&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108758348700150259?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108758348700150259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108758348700150259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758348700150259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758348700150259'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-add-description-to.html' title='[PROGRAMMING TIPS] Add a description to a Windows service'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108758318726308118</id><published>2004-06-19T01:25:00.000+07:00</published><updated>2004-06-19T01:28:02.773+07:00</updated><title type='text'>[PROGRAMMING TIPS] Display custom tooltip on your web application</title><content type='html'>You can use attribute &lt;span style="font-weight: bold;"&gt;title&lt;/span&gt; at tag &lt;span style="font-weight: bold;"&gt;anchor&lt;/span&gt; (&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;) to display a custom tooltip as following:&lt;br /&gt;&lt;br style="font-family: courier new,courier,monospace;" /&gt;&lt;span style="font-family: courier new,courier,monospace;"&gt;&amp;lt;a href=&amp;quot;a&amp;quot; title=&amp;quot;This is a title test&amp;quot;&amp;gt;Title Test&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108758318726308118?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108758318726308118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108758318726308118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758318726308118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108758318726308118'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-display-custom.html' title='[PROGRAMMING TIPS] Display custom tooltip on your web application'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108756587508311223</id><published>2004-06-18T20:16:00.000+07:00</published><updated>2004-06-18T20:37:55.083+07:00</updated><title type='text'>[HACKING] MSIE Custom Context Sensitive Menu</title><content type='html'>If you are amazed with Google toolbar which is one of its feature is googling by right clicking on selected text, you can make it by your self.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I Need?&lt;/strong&gt;&lt;br /&gt;1. Registry Editor, commonly you just simply typing regedit on Start | Run&lt;br /&gt;2. Text/HTML editor to create an HTML file&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How?&lt;/strong&gt;&lt;br /&gt;1. Run regedit from Start | Run&lt;br /&gt;2. Locate section: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt&lt;br /&gt;3. Right click, select menu New | Key&lt;br /&gt;4. Edit new string (New Key #1) with &amp;Google Search for instance. This time, we will create context selective menu to do googling for selected words. Character &amp;amp; indicates shortcut, in this case 'G' as a shortcut.&lt;br /&gt;5. Click &amp;Google Search. Double click on entry (Default), and fill: d:\comm\google-search.html for instance. This indicates location of file which will be executed by if selecting menu "Google Search".&lt;br /&gt;6. Create new Entry, right click on right panel after entry (Default): New -&gt; Binary Value&lt;br /&gt;7. Change new entry name to "contexts" (without double-quotes)&lt;br /&gt;8. Double click on that entry to change the content. Fill binary value 10 00 00 00&lt;br /&gt;9. Create an HTML file name google-search.html in path filled in entry (Defaults)&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;var parentwin = external.menuArguments;&lt;br /&gt;var doc = parentwin.document;&lt;br /&gt;var sel = doc.selection;&lt;br /&gt;var rng = sel.createRange();&lt;br /&gt;var str = new String(rng.text);&lt;br /&gt;if(external.menuArguments.event.shiftKey)&lt;br /&gt;parentwin.open('http://www.google.com/search?hl=en&amp;amp;;lr=&amp;amp;ie=UTF-8&amp;amp;oe=utf-8&amp;amp;q='+ escape(str) + '&amp;amp;btnG=Google+Search');&lt;br /&gt;else&lt;br /&gt;parentwin.navigate('http://www.google.com/search?hl=en&amp;amp;;lr=&amp;amp;ie=UTF-8&amp;amp;oe=utf-8&amp;amp;q='+ escape(str) + '&amp;amp;btnG=Google+Search');&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;10. After all steps 1-9 completed, please test by opening your MSIE browser, and right click on selected words ...... Abrakadabra ... a menu item Google Search shows up. If you click it, will do googling for selected words. To search on new window, press &amp; hold SHIFT button (after selecting words and before right clicking) then click menu "Google Search".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;GUIDE&lt;/strong&gt;&lt;br /&gt;1. You may do this for other purposes such as query ke other sites http://www.kamus.web.id for instance by creating new HTML file with the following contents:&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;var parentwin = external.menuArguments;&lt;br /&gt;var doc = parentwin.document;&lt;br /&gt;var sel = doc.selection;&lt;br /&gt;var rng = sel.createRange();&lt;br /&gt;var str = new String(rng.text);&lt;br /&gt;if(external.menuArguments.event.shiftKey)&lt;br /&gt;parentwin.open("http://www.kamus.web.id/english.asp?pilih=eng&amp;amp;;kata=" + escape(str));&lt;br /&gt;else&lt;br /&gt;parentwin.navigate("http://www.kamus.web.id/english.asp?pilih=eng&amp;amp;;kata=" + escape(str));&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;2. Or, launching new popup-window, execute programs, etc. by changing contexts value with certain value.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DISCLAIMER&lt;/strong&gt;&lt;br /&gt;1. Author is not responsible about any DAMAGE/DATA LOST caused by this experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108756587508311223?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108756587508311223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108756587508311223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756587508311223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756587508311223'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/hacking-msie-custom-context-sensitive.html' title='[HACKING] MSIE Custom Context Sensitive Menu'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108756444424959460</id><published>2004-06-18T19:58:00.000+07:00</published><updated>2004-06-18T20:15:46.640+07:00</updated><title type='text'>[HACKING] Change default Microsoft Windows 2000/XP default boot logo</title><content type='html'>To whom are bored with MS Windows 2000/XP default logo with your favourite one. You may simply change it easily.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I Need?&lt;/strong&gt;&lt;br /&gt;1. Resource Hacker (&lt;a href="http://www.users.on.net/johnson/resourcehacker/"&gt;http://www.users.on.net/johnson/resourcehacker/&lt;/a&gt;)&lt;br /&gt;2. Image Editor, such as PhotoShop Pro, Adobe Photoshop, etc.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;How?&lt;/strong&gt;&lt;br /&gt;1. Copy %WINNT\system32\ntoskrnl.exe to other name, mine.exe for instance (at the same folder)&lt;br /&gt;2. Run Resource Hacker. From File | Open, open file mine.exe&lt;br /&gt;3. Expand tree Bitmap -&gt; 1 from right panel of Resource Hacker. Click number 1033. You'll see the default boot logo.&lt;br /&gt;4. Your logo must be a Windows Bitmap image (BMP) with 640x480 16 colors (4 bit). To change it, select menu Action | Replace Bitmap, then click Open file with the new bitmap button.&lt;br /&gt;5. When finished, save file by selecting menu File | Save&lt;br /&gt;6. There are mine_original.exe and mine.exe. File mine.exe is the new kernel file which is ready as new boot logo. Please ensure to copy it to %WINNT\system32.&lt;br /&gt;7. You may try your new boot logo by editing file C:\boot.ini. If you can't find this file, please ensure to set set Folder Options at Windows Explorer (menu Tools | Folder Options at View tab, option Show hidden files and folders).&lt;br /&gt;CAUTION: Content of the following file boot.ini may differ with your file boot.ini content on your computer&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;Original boot.ini&lt;br /&gt;&lt;br /&gt;[boot loader]&lt;br /&gt;timeout=30&lt;br /&gt;default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS&lt;br /&gt;[operating systems]&lt;br /&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect&lt;br /&gt;&lt;br /&gt;Modified boot.ini:&lt;br /&gt;&lt;br /&gt;[boot loader]&lt;br /&gt;timeout=30&lt;br /&gt;default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS&lt;br /&gt;[operating systems]&lt;br /&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect&lt;br /&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Custom Boot Screen" /KERNEL=mine.exe /fastdetect&lt;br /&gt;&lt;br /&gt;Please NOTICE the last line of modified boot.ini!&lt;br /&gt;Option &lt;strong&gt;/KERNEL=mine.exe&lt;/strong&gt; is pointer to your new kernel file as new boot logo.&lt;br /&gt;9. You may this by restarting your computer.&lt;br /&gt;10. While booting, there are 2 options: "Microsoft Windows XP Professional" and "Custom Boot Screen". Choose "Custom Boot Screen", then You'll see your new boot logo.&lt;br /&gt;11. If you are sure with this configuration, You may remove the first option.&lt;br /&gt;&lt;br /&gt;multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect&lt;br /&gt;&lt;br /&gt;so your computer will boot with your new boot logo automatically.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DISCLAIMER&lt;/strong&gt;&lt;br /&gt;1. Author is not responsible about any DAMAGE/DATA LOST caused by this experience.&lt;br /&gt;2. Author already experience this on MS Windows XP Professional and MS Windows 2000 Professional. There is no problem at all. For other version of MS Windows such as Windows 2000 Server/Advanced Server, please visit my references.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reference&lt;/strong&gt;&lt;br /&gt;1. &lt;a href="http://www.littlewhitedog.com"&gt;http://www.littlewhitedog.com&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.thecrackaz.com/articles/tipsandtricks/How%20To%20Change%20the%20Windows%202000%20Boot%20Logo.php"&gt;http://www.thecrackaz.com/articles/tipsandtricks/How%20To%20Change%20the%20Windows%202000%20Boot%20Logo.php&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://www.themexp.com"&gt;http://www.themexp.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108756444424959460?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108756444424959460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108756444424959460' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756444424959460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756444424959460'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/hacking-change-default-microsoft.html' title='[HACKING] Change default Microsoft Windows 2000/XP default boot logo'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108756268112858281</id><published>2004-06-18T19:38:00.000+07:00</published><updated>2004-06-18T19:44:41.130+07:00</updated><title type='text'>[PROGRAMMING TIPS] Shortcut/Hotkey on your web form application</title><content type='html'>You may create shortcut/hotkey for a field in a web form by using tag label and attribute id of a form input-type (field). Please notice to following bold written text!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CODE&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td align="right" width="43%"&amp;gt;&amp;lt;img src="frontpage/imgname.gif" width="80" height="12"&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;td width="57%"&amp;gt;&lt;br /&gt;    &lt;strong&gt;&amp;lt;label for="user" accesskey="U"&amp;gt;&amp;lt;/label&amp;gt;&lt;/strong&gt;&amp;lt;input type="text" name="user" &lt;strong&gt;id="user"&lt;/strong&gt; class="input" size="15"&amp;gt;&lt;br /&gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;td align="right" width="43%"&amp;gt;&amp;lt;img src="frontpage/imgpass.gif" width="80" height="12"&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;td width="57%"&amp;gt;&lt;br /&gt;    &lt;strong&gt;&amp;lt;label for="pass" accesskey="P"&amp;gt;&amp;lt;/label&amp;gt;&lt;/strong&gt;&amp;lt;input type="password" name="pass" &lt;strong&gt;id="pass"&lt;/strong&gt; class="input" size="15"&amp;gt;&lt;br /&gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;By above code, you may using &lt;strong&gt;ALT+U&lt;/strong&gt; to move the pointer into a form field named &lt;strong&gt;user&lt;/strong&gt; or &lt;strong&gt;ALT+P&lt;/strong&gt; to move the pointer into a form field named &lt;strong&gt;pass&lt;/strong&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108756268112858281?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108756268112858281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108756268112858281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756268112858281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756268112858281'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-shortcuthotkey-on.html' title='[PROGRAMMING TIPS] Shortcut/Hotkey on your web form application'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108756226201139025</id><published>2004-06-18T19:33:00.000+07:00</published><updated>2004-06-18T19:37:42.013+07:00</updated><title type='text'>[PROGRAMMING TIPS] Closing a socket connection on Windows and Linux</title><content type='html'>There is a difference to close a scoket connection on Windows and Linux.&lt;br /&gt;&lt;br /&gt;On Linux, we may simply use &lt;strong&gt;close()&lt;/strong&gt; function to close a socket connection, but you &lt;strong&gt;CAN NOT&lt;/strong&gt; use this function on Windows. Use &lt;strong&gt;closesocket()&lt;/strong&gt; function instead. If using close() function on Windows to close a socket connection, it will remain &lt;strong&gt;Close Wait&lt;/strong&gt; connection status means unable to close socket successfully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108756226201139025?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108756226201139025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108756226201139025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756226201139025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756226201139025'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/programming-tips-closing-socket.html' title='[PROGRAMMING TIPS] Closing a socket connection on Windows and Linux'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7353747.post-108756126076061123</id><published>2004-06-18T19:17:00.000+07:00</published><updated>2004-06-18T19:21:00.760+07:00</updated><title type='text'>How to get a gmail account?</title><content type='html'>Any one can help? Or Google itself would like invite me?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7353747-108756126076061123?l=commedo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://commedo.blogspot.com/feeds/108756126076061123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7353747&amp;postID=108756126076061123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756126076061123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7353747/posts/default/108756126076061123'/><link rel='alternate' type='text/html' href='http://commedo.blogspot.com/2004/06/how-to-get-gmail-account.html' title='How to get a gmail account?'/><author><name>commedo</name><uri>http://www.blogger.com/profile/13922707553905482599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
