ShowWeb Function
2004-05-24 조경민 bro ( bro@shinbiro.com )
==================================================
웹브라우저 새창, 기존창, 팝업창, 숨은창으로 띄우는 함수
typedef enum
{
BROWSE_SELF = 0,
BROWSE_NEW,
BROWSE_POPUP,
BROWSE_HIDE
}BROWSE_TYPE;
CString GetPopupURL( LPCTSTR url, int width, int height )
{
TCHAR szTempPath[MAX_PATH];
GetTempPath( MAX_PATH, szTempPath );
// 임시 파일을 만든다.
TCHAR szTempShortName[MAX_PATH];
ZeroMemory( szTempShortName, sizeof(szTempShortName) );
GetTempFileName(szTempPath, _T("bro"), 0, szTempShortName);
TCHAR szTempName[MAX_PATH];
ZeroMemory( szTempName, sizeof(szTempName) );
GetLongPathName( szTempShortName, szTempName, MAX_PATH );
// 생성된 임시파일의 File URL을 리턴한다.
CString sURL;
sURL.Format(_T("file://%s"), szTempName );
CString sHTML;
sHTML.Format(_T(" \
<HTML><SCRIPT language='VBScript'> \r\n\
Sub WIndow_OnLoad \r\n\
Call Window.Open( \"%s\" , \"\",\"height=%d, width=%d, toolbar=0\", true) \r\n\
End Sub \r\n\
</SCRIPT> \r\n\
<BODY> \r\n\
</BODY> \r\n\
</HTML>"), url, height, width );
HANDLE hTempFile;
hTempFile = CreateFile((LPTSTR) szTempName, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // no attr. template
DWORD dwWritten;
WriteFile( hTempFile, (LPCTSTR)sHTML, (DWORD)sHTML.GetLength(), &dwWritten, NULL );
CloseHandle(hTempFile);
return sURL;
}
//==============================================================
// 함수명 : ShowWeb
// 설 명 : 새로운 창으로 웹 브라우저를 띄운다.
// 인 자 : type = 0 self, = 1 new, = 2 popup
// 리턴값 :
//--------------------------------------------------------------
// 작성일 작성자 작성이유
// 2002-11-20 조경민 Jiransoft(c)
//==============================================================
void ShowWeb( LPCTSTR url, BROWSE_TYPE type /*= BROWSE_SELF*/ )
{
static bool _first = true;
if( _first || type == BROWSE_NEW )
{
// 새창으로 띄우기
ShellExecute( NULL, "open", "iexplore.exe",url, NULL, SW_SHOWNORMAL);
_first = false;
}
else
if( type == BROWSE_POPUP )
{
// popup 창으로 띄우기
ShellExecute( NULL, "open", "iexplore.exe",GetPopupURL( url ), NULL, SW_HIDE);
}
else
if( type == BROWSE_HIDE )
{
// hide 무조건 안보이게만 띄우기
ShellExecute( NULL, "open", "iexplore.exe", url , NULL, SW_HIDE);
}
else
//if( type == BROWSE_SELF )
{
// 기존창으로 띄우기
ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
}
}
2004-05-24 조경민 bro ( bro@shinbiro.com )
==================================================
웹브라우저 새창, 기존창, 팝업창, 숨은창으로 띄우는 함수
typedef enum
{
BROWSE_SELF = 0,
BROWSE_NEW,
BROWSE_POPUP,
BROWSE_HIDE
}BROWSE_TYPE;
CString GetPopupURL( LPCTSTR url, int width, int height )
{
TCHAR szTempPath[MAX_PATH];
GetTempPath( MAX_PATH, szTempPath );
// 임시 파일을 만든다.
TCHAR szTempShortName[MAX_PATH];
ZeroMemory( szTempShortName, sizeof(szTempShortName) );
GetTempFileName(szTempPath, _T("bro"), 0, szTempShortName);
TCHAR szTempName[MAX_PATH];
ZeroMemory( szTempName, sizeof(szTempName) );
GetLongPathName( szTempShortName, szTempName, MAX_PATH );
// 생성된 임시파일의 File URL을 리턴한다.
CString sURL;
sURL.Format(_T("file://%s"), szTempName );
CString sHTML;
sHTML.Format(_T(" \
<HTML><SCRIPT language='VBScript'> \r\n\
Sub WIndow_OnLoad \r\n\
Call Window.Open( \"%s\" , \"\",\"height=%d, width=%d, toolbar=0\", true) \r\n\
End Sub \r\n\
</SCRIPT> \r\n\
<BODY> \r\n\
</BODY> \r\n\
</HTML>"), url, height, width );
HANDLE hTempFile;
hTempFile = CreateFile((LPTSTR) szTempName, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // no attr. template
DWORD dwWritten;
WriteFile( hTempFile, (LPCTSTR)sHTML, (DWORD)sHTML.GetLength(), &dwWritten, NULL );
CloseHandle(hTempFile);
return sURL;
}
//==============================================================
// 함수명 : ShowWeb
// 설 명 : 새로운 창으로 웹 브라우저를 띄운다.
// 인 자 : type = 0 self, = 1 new, = 2 popup
// 리턴값 :
//--------------------------------------------------------------
// 작성일 작성자 작성이유
// 2002-11-20 조경민 Jiransoft(c)
//==============================================================
void ShowWeb( LPCTSTR url, BROWSE_TYPE type /*= BROWSE_SELF*/ )
{
static bool _first = true;
if( _first || type == BROWSE_NEW )
{
// 새창으로 띄우기
ShellExecute( NULL, "open", "iexplore.exe",url, NULL, SW_SHOWNORMAL);
_first = false;
}
else
if( type == BROWSE_POPUP )
{
// popup 창으로 띄우기
ShellExecute( NULL, "open", "iexplore.exe",GetPopupURL( url ), NULL, SW_HIDE);
}
else
if( type == BROWSE_HIDE )
{
// hide 무조건 안보이게만 띄우기
ShellExecute( NULL, "open", "iexplore.exe", url , NULL, SW_HIDE);
}
else
//if( type == BROWSE_SELF )
{
// 기존창으로 띄우기
ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
}
}
'KB > MFC/Win32' 카테고리의 다른 글
ATL COM 로컬 서버 Keep Alive 시키기 (0) | 2006.01.06 |
---|---|
DCOM with xp sp2 (0) | 2006.01.06 |
[펌] band object에서 IWebBrowser 인터페이스 받기. (0) | 2004.05.12 |
메세지 크래커 (0) | 2004.04.29 |
[DB] ODBC 데이타소스 생성하기 (DSN 생성) (0) | 2004.04.28 |