How to convert BSTR to LPCTSTR

Posted on May 31, 2009

I’ve had to deal with a pointer of a BSTR string returned to an event handler of an ActiveX control. I wanted to convert it to LPCTSTR, and a simple implicit type-casting worked seamlessly when I tried in a test project.

void put_UseServer(LPCTSTR newValue);

void ServerChanged(BSTR* NewServer)
{
	put_UseServer(*NewServer); // This conversion works only in Unicode Character Set
}

However, when I copied the same code into my actual project, it caused an error. The reason was that my project used the Multi-byte Character Set whereas I tested the code in the Unicode Character Set. The simplest solution I found which also works in the Multi-byte Character set is like the following.

void put_UseServer(LPCTSTR newValue);

void ServerChanged(BSTR* NewServer)
{
	put_UseServer(COLE2CT(*NewServer)); // Use ATL String Conversion Class
}

More information about ATL and MFC String Conversion is on the MSDN website.

Some VS2005 and VS2008 wizards pop up script error after installing IE8

Posted on May 30, 2009

I experienced this trouble when I tried to add a variable with a wizard in Visual Studio 2008. I never suspected IE8, but MS disappointed me again. Anyway, here is a workaround posted in Visual C++ Team Blog and it seems to work. For the details, click HERE

Please follow the following steps:

– Open regedit (on a 64-bit OS, open the 32-bit regedit)

– Under “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones“, create a new key called 1000 (if it isn’t already there)

– Under 1000, create a DWORD entry with:
o Name = 1207
o Type = REG_DWORD
o Data = 0x000000

For the workaround to work on VS2005, however, the VS2005 SP1 (and VS2005 SP1 Update for Windows Vista) has to be installed.

노무현 전 대통령 서거

Posted on May 22, 2009

참으로 허망하다.

한국발 기사들을 보면서, 깨끗하겠다고 다짐한 대통령이었기에 측근의, 부인의, 아들딸의 수뢰설이 참으로 부담스러웠을 터이고 본인이 몰랐다고 하기에도 면목이 없으리라는 생각은 했지만

그보다 더 더러운 사람들도 뻔뻔히 살아가는데, 꿋꿋이 버텨내고 나는 바담 풍 했지만 너희는 바람 풍 해라 하실 줄 알았다.

선거 날 저녁 대학로 한 일식집에서 순희랑 전복죽 시켜놓고 기다리면서 여섯시 땡과 더불어 방송 3사가 내보내는 노무현 당선 자막을 보고 ‘그래! 대한민국 아직 죽지 않았어!’ 하던 때가 엊그제 같은데…

이제 근심일랑은 내려놓으시고 좋은 곳으로 가시길…

Continue…

How to align a DIV box at the center using CSS

Posted on May 16, 2009

Here are some examples of how the new web standard of CSS deals with horizontal positioning.

<div style=”text-align: center;”>test</div>

test

<div style=”text-align: center; width: 200px;”>test</div>

test

<div style=”text-align: center; width: 400px;”><div style=”width: 200px;”>test</div></div>

test

<div style=”margin-left: auto; margin-right: auto;”>test</div>

test

<div style=”margin-left: auto; margin-right: auto; width: 200px;”>test</div>

test

<div style=”width: 400px;”><div style=”margin-left: auto; margin-right: auto; width: 200px;”>test</div></div>

test

How to rotate Apache logs on Windows

Posted on Apr 15, 2009

Rotating Apache logs files on Windows platform is not so much different from doing it on Linux or other Unix. There are just two things to remember. First, the name of the utility provided for this purpose is “rotatelogs.exe” instead of just “rotatelogs”. It is in the “bin” directory of the Apache installation path. Plus, if your Apache installation path contains any space as in “C:/Program Files/Apache2”, you need to put the escape character, “\” (backslash) before and after the path string. (Note that you must use forward slashes within path strings where filenames are specified.)

The following is an example of rotating log files every seventh day. “ErrorLog” directive seems to require a full path, but somehow “CustomLog” does not.

ErrorLog “|\”C:/Program Files/Apache2/bin/rotatelogs.exe\” \”C:/Program Files/Apache2/logs/error.%Y%m%d.log\” 604800″

<IfModule log_config_module>

CustomLog “|bin/rotatelogs.exe logs/access.%Y%m%d.log 604800” common

</IfModule>