·ÎÄà ³×Æ®¿öÅ© Áö¿øÀº °øÂ¥·Î Áö¿ø ¹ÞÀ» ¼ö ÀÖÀ¸¹Ç·Î ÄÚµùÀ» ÇÒ ÇÊ¿ä°¡ ¾ø°í ±×·³ ÀÌÁ¦ Á» ´õ ³ÐÀº ¼¼»óÀ¸·Î ³ª°¡ º¸µµ·Ï ÇÏÀÚ. ¿ÜºÎ ³×Æ®¿öÅ©¸¦ ÅëÇØ ÆÄÀÏÀ» ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Â ÇÁ·ÎÅäÄÝ¿¡´Â ´ëÇ¥ÀûÀ¸·Î FTP°¡ ÀÖ°í HTTPµµ ÆÄÀÏÀ» ÀÐÀ» ¼ö´Â ÀÖ´Ù. ÀÌ µÎ ÇÁ·ÎÅäÄÝ·Î ¿ø°ÝÁöÀÇ ÆÄÀÏÀ» ÆíÁýÇÏ´Â ±â´ÉÀ» ÀÛ¼ºÇغ¸µµ·Ï ÇÏÀÚ.
FTP °°Àº ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝÀ» Á¦´ë·Î ÇÁ·Î±×·¡¹ÖÇÏ·Á¸é ¼ÒÄÏ ÇÁ·Î±×·¡¹ÖÀ» ÇØ¾ß ÇÑ´Ù. ±×·¯³ª ÀÌ´Â ³Ê¹« ¾î·Æ°í ±ÍÂúÀº ÀÏÀÌ¶ó ¿©±â¼´Â À©µµ¿ìÁî°¡ Á¦°øÇÏ´Â WinInet °í¼öÁØ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ³×Æ®¿öÅ© ÀÔÃâ·ÂÀ» Çϱâ·Î ÇÑ´Ù. WinInet¿¡ °üÇÑ »çÇ×Àº API Á¤º¹ 43Àå¿¡ ÀÖÀ¸¹Ç·Î Âü°íÇϱ⠹ٶõ´Ù. HTTP·Î ÆÄÀÏÀ» ÀÐÀ¸·Á¸é ¸ÕÀú ´ë»ó ÆÄÀÏÀÇ Á¤È®ÇÑ À§Ä¡¸¦ ÀÔ·Â¹Þ¾Æ¾ß ÇÑ´Ù. ´Ü¼øÇÑ ¹®ÀÚ¿ ÀÔ·Â ´ëÈ»óÀÚ·Î URLÀ» ÀԷ¹ޱ⸸ ÇÏ¸é µÈ´Ù. ÀÌ ´ëÈ»óÀÚ´Â ¸®¼Ò½º¿¡ ´ÙÀ½°ú °°ÀÌ ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Ù.
´Ù¿î·Îµå¸¸ ¹ÞÀ» ¼ö ÀÖÀ¸¸ç ´ë¼Ò¹®ÀÚ ±¸ºÐÀÌ Á¤È®ÇØ¾ß ÇÑ´Ù´Â ¾È³» ¸Þ½ÃÁö¸¦ ´ëÈ»óÀÚ¿¡ Ç¥½ÃÇسõ¾Ò´Ù. À¥ ÀÚü´Â ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ÇÏÁö ¾ÊÁö¸¸ À¯´Ð½º(¸®´ª½º Æ÷ÇÔ) °è¿ÀÇ ÆÄÀÏ ½Ã½ºÅÛÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϱ⠶§¹®¿¡ ½ÇÁ¦ Æú´õ, ÆÄÀϸí°ú Á¤È®È÷ °°°Ô Àû¾î¾ß ÇÑ´Ù. HTTP ÇÁ·ÎÅäÄÝÀº Æú´õ ¿°Å ±â´ÉÀ» Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡(Áö¿øÇÏ´Â À¥ ¼¹öµµ ÀÖ´Ù) ã¾Æº¸±â ±â´ÉÀº »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç »ç¿ëÀÚ°¡ URLÀ» Á÷Á¢ ±â¾ïÇؼ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ÀÌ ´ëÈ»óÀÚÀÇ ÇÁ·Î½ÃÀú¸¦ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.
BOOL CALLBACK DGHttpProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
static TCHAR *Path;
switch(iMessage)
{
case WM_INITDIALOG:
MoveToParentCenter(hDlg);
SetDlgItemText(hDlg,IDC_HTTPFILE,"http://");
MySetImeMode(GetDlgItem(hDlg,IDC_HTTPFILE),FALSE);
Path=(TCHAR *)lParam;
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
GetDlgItemText(hDlg,IDC_HTTPFILE,Path,MAX_PATH);
EndDialog(hDlg,IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hDlg,IDCANCEL);
return TRUE;
}
return FALSE;
}
return FALSE;
}
URLÀ» ÀÔ·Â¹Þ¾Æ lParamÀ¸·Î Àü´ÞµÈ ¹öÆÛ¿¡ ³Ö¾î ¸®ÅÏÇÏ´Â ±â´É¹Û¿¡ ¾ø´Ù. ÆÄÀÏ¿±â °øÅë ´ëÈ»óÀÚ°¡ ÆÄÀÏÀÇ À̸§À» ¾ò¾îÁֱ⸸ ÇÏ´Â °Í°ú ¸¶Âù°¡Áö´Ù. OnCommand¿¡¼´Â ÀÌ ´ëÈ»óÀÚ¸¦ ÅëÇØ URLÀ» ÀԷ¹ްí ÆÄÀÏÀ» ¿¬´Ù.
void OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
....
case IDM_FILE_HTTPOPEN:
if (DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_HTTP),
g_hFrameWnd, DGHttpProc,(LPARAM)Path)==IDOK) {
if (lstrlen(Path)) {
OpenFromFile(Path);
}
}
break;
URLÀ» ÀԷ¹ÞÀ¸¸é OpenFromFile ÇÔ¼ö·Î URLÀ» ³Ñ°Ü ÁØ´Ù. ³×Æ®¿öÅ©¿¡¼ ÆÄÀÏÀ» ¿©´Â °Í°ú ·ÎÄÿ¡¼ ÆÄÀÏÀ» ¿©´Â °ÍÀ» µ¿ÀÏÇÑ ÇÔ¼ö¿¡¼ ¼öÇàÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é Àá½Ã ÈÄ¿¡ ÀÛ¼ºÇÒ ÇÁ·ÎÁ§Æ® ±â´ÉÀÌ º¹ÀâÇØÁö¸ç ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â MRU ±â´Éµµ ¼Õ»óµÈ´Ù. ÆÄÀÏÀ» ÀÔÃâ·ÂÇÏ´Â ¹æ¹ý¿¡ ÀÏ°ü¼ºÀÌ ÀÖ¾î¾ß °ü·Ã ·çƾµéÀÌ ÆÄÀÏÀÇ Á¾·ù¿¡ »ó°ü¾øÀÌ ÆÄÀÏÀ» °ü¸®ÇÒ ¼ö ÀÖ´Ù.
HTTP ÆÄÀÏÀ» Àд ÀÛ¾÷Àº OpenFromFile°ú ±×ÀÇ Á¹º´ ÇÔ¼öÀÎ OpenFileToChild ÇÔ¼ö°¡ Á÷Á¢ ó¸®ÇØ¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Ç쵂 ÄÚµå Ãß°¡»Ó¸¸ ¾Æ´Ï¶ó ÀüüÀûÀÎ ¼ø¼°¡ ¹Ù²î¾î¾ß ÇÑ´Ù.
BOOL OpenFileToChild(HWND hChild, TCHAR *Path)
{
SInfo *pSi;
HANDLE hFile;
DWORD dwRead,dwSize;
TCHAR *TextBuf;
pSi=(SInfo *)GetWindowLong(hChild,0);
SelectParser(pSi->Ae,Path);
pSi->Ae.InitDoc();
if (strnicmp(Path,"http",4) == 0) {
dwSize=DgHttpDown(Path,TextBuf);
if (dwSize==-1) {
return FALSE;
}
} else {
hFile=CreateFile(Path,GENERIC_READ,0,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE) {
return FALSE;
}
dwSize=GetFileSize(hFile,NULL);
if (dwSize > 30*1048576) {
if (MessageBox(g_hFrameWnd, "ÀÌ ÆÄÀÏÀÇ Å©±â´Â 30M°¡ ³Ñ½À´Ï´Ù. Á¤¸»·Î ¿©½Ã°Ú½À´Ï±î?",
"Áú¹®",MB_YESNO)==IDNO) {
CloseHandle(hFile);
return FALSE;
}
}
TextBuf=(TCHAR *)malloc(dwSize+2);
ReadFile(hFile,TextBuf,dwSize,&dwRead,NULL);
TextBuf[dwRead]=0;
TextBuf[dwRead+1]=0;
CloseHandle(hFile);
}
pSi->Ae.SetText(TextBuf,dwSize);
free(TextBuf);
pSi->Ae.SetModified(FALSE);
lstrcpy(pSi->NowFile,Path);
SetWindowText(hChild,Path);
return TRUE;
}
Àμö·Î Àü´ÞµÈ PathÀÇ Ã¹ 4±ÛÀÚ°¡ http·Î ½ÃÀ۵Ǹé ÀÌ ÆÄÀÏÀº HTTP ¼¹ö¿¡ ÀÖÀ¸¹Ç·Î ´Ù¿î·Îµå¹Þ¾Æ¼ ¿µµ·Ï Çß´Ù. ÆÄÀÏ ÀÚü¸¦ ´Ù¿î·Îµå¹Þ´Â °ÍÀÌ ¾Æ´Ï¶ó ÆÄÀÏÀÇ ³»¿ëÀ» ¹öÆÛ·Î ÀоîµéÀ̵µ·Ï ÇßÀ¸¸ç ´Ù¿î·ÎµåµÈ ÅؽºÆ®¸¦ ApiEdit¿¡ Àü´ÞÇÏ¿´´Ù. ´ÙÀ½ ÇÔ¼ö´Â HTTP ¼¹ö¿¡¼ ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ¾Æ ¹öÆÛ¿¡ º¹»çÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ´Ù¿î·Îµå °úÁ¤À» º¸¿©ÁÖ°í Áß°£¿¡ Ãë¼ÒÇÒ ¼ö ÀÖµµ·Ï Çϴµ¥ ÀÌ ±â´ÉÀº º°µµÀÇ ´ëÈ»óÀÚ°¡ ó¸®ÇϹǷΠÀá½Ã ÈÄ µû·Î ¾Ë¾Æ º¸ÀÚ.
int DgHttpDown(TCHAR *URL, TCHAR *&Text)
{
HINTERNET hInternet, hURL;
int len,extra;
TCHAR *p;
DWORD Size;
DWORD dwRead, TotalRead;
int toff;
BOOL Result=FALSE;
MSG msg;
TCHAR Mes[400];
HWND hDlgDown;
bContDown=TRUE;
hDlgDown=CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_DOWNLOAD),
g_hFrameWnd, (DLGPROC)DGDownProc);
SetDlgItemText(hDlgDown,IDC_STDOWN1,"ÀÎÅÍ³Ý Á¢¼ÓÁß...");
SetWindowText(hDlgDown,"HTTP ´Ù¿î·Îµå");
ShowWindow(hDlgDown,SW_SHOW);
UpdateWindow(hDlgDown);
EnableWindow(g_hFrameWnd, FALSE);
hInternet=InternetOpen("Dangeun", INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, 0);
if (hInternet == NULL) {
MessageBox(g_hFrameWnd, "ÀÎÅͳݿ¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù","¾Ë¸²",MB_OK);
goto NetFail;
}
hURL=InternetOpenUrl(hInternet,URL,NULL,0,INTERNET_FLAG_RELOAD,0);
if (hURL==NULL) {
MessageBox(g_hFrameWnd, "URLÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù","¾Ë¸²",MB_OK);
goto EndDown;
}
wsprintf(Mes,"À§Ä¡ : %s",URL);
SetDlgItemText(hDlgDown,IDC_STDOWN1,Mes);
len=10000;
extra=10000;
Text=(TCHAR *)malloc(len);
memset(Text,0,len);
p=Text;
TotalRead=0;
do {
InternetQueryDataAvailable(hURL,&Size,0,0);
if (extra < int(Size+2)) {
len+=(Size+2+10000);
extra+=(Size+2+10000);
toff=p-Text;
Text=(TCHAR *)realloc(Text,len);
memset(Text+len-(Size+2+10000),0,(Size+2+10000));
p=Text+toff;
}
Result=InternetReadFile(hURL,p,Size,&dwRead);
if (Result==FALSE) {
MessageBox(g_hFrameWnd, "HTTP ¼¹öÀÇ ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾ø½À´Ï´Ù","¾Ë¸²",MB_OK);
break;
}
if (bContDown==FALSE) {
break;
}
p+=dwRead;
TotalRead+=dwRead;
extra-=dwRead;
SendMessage(hDlgDown,WM_USER+1,(WPARAM)TotalRead,(LPARAM)-1);
while (PeekMessage(&msg, NULL,0,0,PM_REMOVE)) {
if (!IsDialogMessage(hDlgDown, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
} while (dwRead != 0);
InternetCloseHandle(hURL);
EndDown:
InternetCloseHandle(hInternet);
NetFail:
EnableWindow(g_hFrameWnd, TRUE);
DestroyWindow(hDlgDown);
if (Result == TRUE && bContDown == TRUE) {
return TotalRead;
} else {
return -1;
}
}
¿ø°ÝÁö¿¡ ÀÖ´Â ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ¾Æ¾ß ÇϹǷΠÀÎÅͳݿ¡ ¸ÕÀú Á¢¼Ó ÇÑ´Ù. ÀÌ ±â´ÉÀ» »ç¿ëÇÏ·Á¸é ÄÄÇ»ÅÍ°¡ ³×Æ®¿öÅ©¿¡ Á¢¼ÓµÇ¾î ÀÖ¾î¾ß Çϸç Á¢¼Ó¿¡ ½ÇÆÐÇϸé ÆÄÀÏÀ» ´Ù¿î·Îµå¹ÞÀ» ¼ö ¾ø´Ù. ¿¡·¯ ¹ß»ý½Ã ¿¡·¯ Äڵ带 ¸®ÅÏÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÌ ÇÔ¼ö°¡ Á÷Á¢ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϵµ·Ï Çߴµ¥ OpenFromFileÀ̳ª OpenFileToChild ÇÔ¼öµéÀÌ ³×Æ®¿öÅ© ¿¡·¯±îÁö ó¸®Çϱâ´Â Èûµé±â ¶§¹®ÀÌ´Ù.
ÀÎÅͳݿ¡ ¹«»çÈ÷ Á¢¼ÓÇßÀ¸¸é ÆÄÀÏÀ» ¿°í ÆÄÀÏÀ» Àбâ À§ÇÑ ¹öÆÛ¸¦ ÇÒ´çÇÑ´Ù. ¿ø°ÝÁö¿¡ ÀÖ´Â ÆÄÀÏÀÇ Å©±â¸¦ ¹Ì¸® ¾Ë ¼ö ¾ø±â ¶§¹®¿¡ ÀÏ´Ü 10KB¸¦ ÇÒ´çÇسõ°í Àд Áß¿¡ ¼¹ö°¡ ¿ä±¸ÇÏ´Â ¸¸Å ÀçÇÒ´çÇϵµ·Ï Çß´Ù. È£Ãâ¿ø¿¡¼ ¹Ì¸® ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ¾øÀ¸¹Ç·Î ÀÌ ÇÔ¼ö°¡ ÆÄÀÏÀÇ Å©±â¸¦ ½Ç½Ã°£À¸·Î Á¶»çÇÏ¿© ÇÊ¿äÇÑ ¸¸Å ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ¿© ¸®ÅÏÇϵµ·Ï µÇ¾î ÀÖ´Ù. ±×·¡¼ TextÀμö´Â Æ÷ÀÎÅÍÀÇ ·¹ÆÛ·±½º·Î Àü´Þ¹Þ´Â´Ù.
ÆÄÀÏÀ» ¿ÏÀüÈ÷ ´Ù¿î·Îµå¹Þ¾ÒÀ¸¸é ÀÎÅÍ³Ý Á¢¼ÓÀ» ÇØÁ¦ÇÏ°í ¸®ÅÏÇÑ´Ù. HTTP ÇÁ·ÎÅäÄÝÀº ¿ø·¡ ¿¬°áÀ» °è¼Ó À¯ÁöÇÏÁö ¾Ê´Â Ư¼ºÀÌ ÀÖÀ¸¹Ç·Î ´ÙÀ½ Á¢¼ÓÀ» À§ÇØ °è¼Ó ¿¬°áÇسõÀ» ÇÊ¿ä´Â ¾ø´Ù. ¸®ÅÏ°ªÀº ½ÇÁ¦·Î ÀÐÀº ÆÄÀÏ Å©±âÀÌ´Ù. ÆÄÀÏÀ» ´Ù¿î·Îµå¹Þ´Â ÀÛ¾÷À» ÀÌ ÇÔ¼ö¿Í OpenFileToChild°¡ ÇϹǷΠOpenFromFile ÇÔ¼ö´Â °ÅÀÇ ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç ¾à°£¸¸ ¼ÕÁúÇÏ¸é µÈ´Ù.
BOOL OpenFromFile(TCHAR *Path,BOOL bReadOnly/*=FALSE*/,BOOL bBrowse/*=FALSE*/)
{
....
if (OpenFileToChild(hChild,Path)==FALSE) {
if (bNew) {
SendMessage(g_hMDIClient,WM_MDIDESTROY,(WPARAM)hChild,0);
}
if (strnicmp(Path,"http",4) != 0 && strnicmp(Path,"ftp",3) != 0) {
wsprintf(Mes,"%s ÆÄÀÏÀ» ¿ ¼ö ¾ø½À´Ï´Ù. "
"´Ù¸¥ ÇÁ·Î±×·¥ÀÌ »ç¿ëÁßÀÎÁö È®ÀÎÇϽʽÿÀ.",Path);
MessageBox(g_hFrameWnd, Mes,"¾Ë¸²",MB_OK);
}
return FALSE;
}
if (strnicmp(Path,"http",4)!=0 && strnicmp(Path,"ftp",3)!=0) {
if (bReadOnly || (GetFileAttributes(Path) & FILE_ATTRIBUTE_READONLY)) {
pSi->Ae.SetReadOnly(TRUE);
}
}
³×Æ®¿öÅ© ÀÔÃâ·ÂÇÔ¼öµéÀÌ Á÷Á¢ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϹǷΠOpenFromFile ÇÔ¼ö´Â ¼³»ç ¿¡·¯°¡ ¹ß»ýÇß´õ¶óµµ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏÁö ¾Êµµ·Ï Çß´Ù. FTP, HTTP ÇÁ·ÎÅäÄÝ·Î ÀÐÀº ÆÄÀÏÀº GetFileAttributes ÇÔ¼ö°¡ ¼Ó¼ºÀ» Á¦´ë·Î Á¶»çÇÒ ¼ö ¾øÀ¸¸ç HTTP ÆÄÀÏÀº Ç×»ó ÀбâÀü¿ëÀ¸·Î Á¶»çµÈ´Ù. ±×·¸´Ù°í Çؼ ÆÄÀÏ ÆíÁýÀ» °ÅºÎÇÒ ÇÊ¿ä´Â ¾øÀ¸¹Ç·Î ³×Æ®¿öÅ© ÆÄÀÏÀÇ °æ¿ì´Â ÀбâÀü¿ë ¼Ó¼ºÀ» Á¡°ËÇÏÁö ¾Êµµ·Ï ÇÏ¿´´Ù.
HTTP ¿±â ´ëÈ»óÀÚ¿¡¼ URL¸¸ Á¦´ë·Î ÀÔ·ÂÇÏ¸é ¿ø°ÝÁöÀÇ ÆÄÀÏÀ» Àоî¿Ã ¼ö ÀÖÀ¸¸ç ÀÌ ÆÄÀϵµ ÀÏ¹Ý ÆÄÀÏó·³ MRU¿¡ µî·ÏµÈ´Ù. MRU¿¡¼ HTTP ÆÄÀÏÀ» ´Ù½Ã ¼±ÅÃÇϸé ÀÎÅͳݿ¡ Á¢¼ÓÇÏ¿© ÆÄÀÏÀ» Àоî¿Ã °ÍÀÌ´Ù. OpenFromFile ÇÔ¼ö°¡ ¹Þ¾ÆµéÀÌ´Â Àμö Path°¡ ·ÎÄà °æ·Î¿¡¼ URL·Î Àǹ̰¡ È®ÀåµÇ¾ú±â ¶§¹®¿¡ ³» ÄÄÇ»ÅÍ¿¡ ÀÖÁö ¾ÊÀº ÆÄÀÏ¿¡ ´ëÇؼµµ MRU°¡ Àß µ¿ÀÛÇÏ´Â °ÍÀÌ´Ù. ´Ù¸¸ ±×·¡µµ ³×Æ®¿öÅ©¿¡ ÀÖ´Â ÆÄÀÏÀº ·ÎÄà ÆÄÀÏ°ú´Â ´Ù¸¥ Á¡ÀÌ ÀÖÀ¸¹Ç·Î ´ÙÀ½ Äڵ常 ¾à°£ ¼ÕÁúÇÏ¸é µÈ´Ù.
void OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
....
if (LOWORD(wParam) >= Mru.MenuID && LOWORD(wParam) < Mru.MenuID+Mru.MaxMru) {
idx=LOWORD(wParam)-Mru.MenuID;
Mru.GetFilePath(idx,Path);
if (strnicmp(Path,"http",4) != 0 && strnicmp(Path,"ftp",3) != 0) {
if (_access(Path,0) != 0) {
wsprintf(Mes,"%s ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù. ÃÖ±Ù ÆÄÀÏ ¸ñ·Ï¿¡¼ "
"ÀÌ ÆÄÀÏÀ» Á¦°ÅÇÕ´Ï´Ù.",Path);
MessageBox(g_hFrameWnd, Mes,"¾Ë¸²",MB_OK);
Mru.RemoveMRU(idx);
return;
}
}
OpenFromFile(Path);
return;
}
Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏÀ» MRU ¸ñ·Ï¿¡¼ »èÁ¦ÇÏ´Â ±â´ÉÀÌ Àִµ¥ HTTP, FTP·Î ÀÐÀº ÆÄÀÏÀº _access ÇÔ¼ö·Î Á¸Àç ¿©ºÎ¸¦ ¾Ë ¼ö ¾øÀ¸¹Ç·Î ÀÌ Å×½ºÆ®¸¦ ÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. MRU °ü¸®¸¦ À§ÇØ ÀÎÅͳݿ¡ ¸ÕÀú Á¢¼ÓÀ» ÇØ º¼ ¼öµµ ÀÖÁö¸¸ ÀÌ·¸°Ô µÇ¸é ÀÌÁßÀ¸·Î Á¢¼ÓÀ» ÇÏ´Â ¼ÀÀÌ µÇ¾î ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù. ³×Æ®¿öÅ© ÆÄÀÏ¿¡ ´ëÇؼ´Â ±»ÀÌ Á¸Àç ¿©ºÎ¸¦ Á¡°ËÇÏÁö ¾Ê´õ¶óµµ º° ¹®Á¦´Â ¾øÀ¸¸ç ¼³»ç ´çÀå ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾ø´Ù ÇÏ´õ¶óµµ ÀϽÃÀûÀÎ ¹®Á¦ÀÏ ¼öµµ Àֱ⠶§¹®¿¡ MRUÀÇ ¸ñ·Ï±îÁö »èÁ¦ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
HTTP ÇÁ·ÎÅäÄÝÀº ´Ù¿î·Îµå¸¸ Áö¿øÇÏ¸ç ¾÷·Îµå´Â Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ Ŭ¶óÀ̾ðÆ® ÀÔÀå¿¡¼´Â ÀбâÀü¿ëÀÇ ÇÁ·ÎÅäÄÝÀ̶ó ÇÒ ¼ö ÀÖ´Ù. HTTP Çì´õ¿¡ ÷ºÎÆÄÀÏÀ» ºÙ¿©¼ º¸³»´Â ±â´ÉÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ÀÌ´Â ÆÄÀÏ ¾÷·Îµå¿Í´Â ´Ù¸¥ ÀǹÌÀÌ´Ù. ¸¸¾à HTTP·Î ´Ù¿î·Îµå¹ÞÀº ÆÄÀÏ¿¡ ´ëÇØ ÀúÀå ¸í·ÉÀ» ³»¸®¸é ¿ø·¡ Àоú´ø °÷À¸·Î ¾÷·ÎµåÇÒ ¼ö ¾øÀ¸¹Ç·Î ¿¡·¯ ¸Þ½ÃÁö¸¦ È®½ÇÇÏ°Ô º¸¿©ÁÖ¾î¾ß ÇÑ´Ù. ¿¡·¯ ¸Þ½ÃÁö¶ó±â º¸´Ù´Â ÀÏÁ¾ÀÇ ¾È³» ¸Þ½ÃÁö¶ó ÇÒ ¼ö ÀÖ´Ù.
BOOL SaveToFile(HWND hChild,TCHAR *Path)
{
....
if (strnicmp(Path,"http",4)==0) {
MessageBox(hChild, "HTTP ÇÁ·ÎÅäÄÝÀº ¾÷·Îµå¸¦ Áö¿øÇÏÁö ¾ÊÀ¸¹Ç·Î ÀÌ À̸§À¸·Î´Â "
"ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù. »õ À̸§À» ÇÏµå µð½ºÅ©¿¡ ÀúÀåÇϽʽÿÀ","¾Ë¸²",MB_OK);
return FALSE;
}
±×·¸´Ù¸é ´ç±ÙÀº ÀúÀåÇÏÁöµµ ¸øÇÏ´Â HTTP ÆÄÀÏ¿¡ ´ëÇØ ¿Ö ÀбâÀü¿ë Ç÷¡±×¸¦ ¼³Á¤ÇÏÁö ¾Ê°í ÆíÁýÀ» Çã¿ëÇÒ±î? ±× ÀÌÀ¯´Â ¾÷·Îµå´Â ÇÒ ¼ö ¾øÁö¸¸ »õ À̸§À¸·Î ¹Ù²Ù¾î ·ÎÄà °æ·Î¿¡ ÀúÀåÇÏ´Â °ÍÀº °¡´ÉÇϱ⠶§¹®ÀÌ´Ù. HTTP·Î ¾÷·Îµå°¡ ¾ÈµÈ´Ù´Â °ÍÀº ´ëºÎºÐÀº »ç¿ëÀÚµéÀÌ ¾Ë°í ÀÖÀ¸¹Ç·Î ÀÌ ±â´ÉÀº ÁÖ·Î ÆÄÀÏ È®ÀοëÀ¸·Î »ç¿ëµÉ °ÍÀÌ´Ù. ¸¸¾à HTTP ÆÄÀÏÀ» »ç¿ëÀÚ°¡ ¼öÁ¤Çß´Ù¸é ÀÌ´Â »õ À̸§À¸·Î ÀúÀåÇÏ·Á´Â ºÐ¸íÇÑ ¸ñÀûÀ» °¡Áö°í ÀÖ´Ù°í ÆÇ´ÜÇÏ¿´´Ù.
HTTP´Â ¾÷·Îµå¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù´Â Ãø¸é¿¡¼ »ç½Ç º°·Î ½Ç¿ë¼ºÀÌ ¾øÀ¸¸ç ±×·¡¼ ´ëºÎºÐÀÇ ÆíÁý±â´Â HTTP ÆÄÀÏ¿±â¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ´ç±ÙÀÌ ÀÌ ±â´ÉÀ» Áö¿øÇÏ´Â ¸ñÀûÀº ±×³É ÀбâÀü¿ëÀ¸·Î À¥ ¼¹ö¿¡ ÀÖ´Â ³»¿ëÀ» È®ÀÎÀ̳ª Ç϶ó´Â ¶æÀ̸ç ÀÌÈÄ ÀÛ¼ºµÉ ÇÁ·ÎÁ§Æ®¿¡¼ Á¶±ÝÀÌ¶óµµ °ü·ÃÀÌ ÀÖ´Â ÆÄÀÏÀ» ÇÑ ¹À½À¸·Î °ü¸®ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇؼÀÌ´Ù. ¿ø°ÝÁöÀÇ ÆÄÀÏÀ» Á÷Á¢ ÆíÁýÇÏ·Á¸é HTTPº¸´Ù´Â ¹Ù·Î ´ÙÀ½¿¡ ÀÛ¼ºÇÒ FTP°¡ ÈξÀ ´õ ½Ç¿ëÀûÀÌ´Ù. FTP ÇÁ·ÎÅäÄÝÀº ³×Æ®¿öÅ© ¼Óµµ¸¸ ÃæºÐÇÏ´Ù¸é °ÅÀÇ ·ÎÄðú Â÷ÀÌ°¡ ¾øÀ» Á¤µµ·Î Æí¸®ÇÏ´Ù.