void DrawBitmap(HDC hdc, int x, int y, HBITMAP hBitmap)
{
    HDC hMemDC;
    HBITMAP hOldBitmap;
    int nWidth, nHeight;
    BITMAP bitmapData;

    hMemDC = CreateCompatibleDC(hdc);
    hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);

    GetObject(hBitmap, sizeof(BITMAP), &bitmapData);
    nWidth = bitmapData.bmWidth;
    nHeight = bitmapData.bmHeight;

    SetStretchBltMode(hdc, HALFTONE);
    StretchBlt(hdc, 0, 0, 160, 120, hMemDC, 0, 0, nWidth, nHeight, SRCCOPY);
    //BitBlt(hdc, x, y, nWidth, nHeight, hMemDC, 0, 0, SRCCOPY);

    SelectObject(hMemDC, hOldBitmap);
    DeleteDC(hMemDC);
}
char* UTF8toANSI(char *pszCode)
{
    BSTR    bstrWide;   
    char*   pszAnsi;   
    int     nLength;       
 
    // Get nLength of the Wide Char buffer   
    nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1,NULL, NULL);
    bstrWide = SysAllocStringLen(NULL, nLength);   
 
    // Change UTF-8 to Unicode (UTF-16)   
    MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1, bstrWide, nLength);
 
    // Get nLength of the multi byte buffer    
    nLength = WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, NULL, 0, NULL, NULL);
    pszAnsi = new char[nLength];   
    
    // Change from unicode to multi byte   
    WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL);
 
    SysFreeString(bstrWide);   
 
    return pszAnsi;   
}
기본적으로 지역명으로 가져올 수 있는 경우의 URL은

http://www.google.com/ig/api?weather=Seoul
http://www.google.com/ig/api?weather=Busan

등이 있다.

하지만 위와 같이 지역명으로 가져올 수 없는 지역일 경우,
http://www.google.com/ig/cities?output=xml&hl=ko&country=kr

에서, 해당지역의 위도와 경도를 찾아 입력하여 주면 된다.

예를 들어 강릉의 경우,

Gangneung 으로 정보를 불러올 수 없지만 아래와 같이 위도와 경도를 입력하여 줌으로써 원하는 정보를 얻을 수 있다.

http://www.google.com/ig/api?hl=ko&weather=gangneung,,,37750000,12889993
function OnEnd()
    string szProgram, szCmdLine;
begin
    szProgram = WINSYSDIR ^ "regsvr32.exe ";
    szCmdLine = TARGETDIR ^ "파일이름";
    //LongPathToShortPath (szCmdLine);
    LongPathToQuote (szCmdLine, TRUE);
    MessageBox(szCmdLine, INFORMATION);
    LaunchAppAndWait(szProgram, szCmdLine, WAIT/*LAAW_OPTION_CHANGEDIRECTORY |  LAAW_OPTION_FIXUP_PROGRAM /*LAAW_OPTION_WAIT*/); 
end;
// 길이를 구하고
int nMultiByteLen = WideCharToMultiByte(CP_ACP, 0, pwcName, -1, NULL, 0, NULL, NULL);

// 변환한다.
WideCharToMultiByte(CP_ACP, 0, pwcName, -1, szName, nMultiByteLen, NULL, NULL);
char szPath[MAX_PATH] = {0,};    // 경로 받아올 변수
SHGetSpecialFolderPath(NULL, szPath, CSIDL_PERSONAL, FALSE);
// 상수 정의
#ifndef WS_EX_LAYERED
#define WS_EX_LAYERED                0x00080000
#define LWA_COLORKEY                 0x00000001
#define LWA_ALPHA                    0x00000002
#endif

// USER32.DLL 에서 import할 함수형
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

// 멤버변수로 보관
lpfnSetLayeredWindowAttributes m_pSetLayeredWindowAttributes;

// 이제부터 코드 추가 부분...
// USER32.DLL로부터 함수를 import한다.
HMODULE hUser32 = GetModuleHandle(_T("USER32.DLL"));
m_pSetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32, "SetLayeredWindowAttributes");

// import가 제대로 됐는지 체크한다.
if (NULL == m_pSetLayeredWindowAttributes)
    return FALSE;

// 다이얼로그의 현재 상태를 체크하고 WS_EX_LAYERED 속성을 추가한다.
SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);

// 윈도우를 70% 가시화
m_pSetLayeredWindowAttributes(m_hWnd, 0, (255 / 70) * 100, LWA_ALPHA);
0x80은 DBCS를 알수 있게 해주는 Mask입니다.
char character;
WORD chDBCS;
if (character & 0x80) {
// DBCS
    if ( ( chDBCS = (character << 8) ) > 0xCAA0) {
         // Hanja character
    }
        // Hangeul character
} else {
// SBCS
    if (character < 0x41) {
         // Symbol..
         if (character < 0x20) {
             // System Char
         } else if (character >= '0' && character <='9') {
             // Numeric characters..
         } else {
             // Symbol
         }
    } else if (character >= 0x5B && character <= 0x60) {
         // Symbol 2..
    } else if (character > 0x7A) {
         // Symbol 3..
    } else {
         // Alphabet.
    }
}