Project

General

Profile

プラグイン LaunchBrowser を使ってファイルをダウンロードさせるサーバ側のプログラムはないのか?

技術ノート
07/22/2010

[番号]
技術ノート KGTN 2010072202

[現象]
プラグイン LaunchBrowser を使ってファイルをダウンロードさせるサーバ側のプログラムはないのか?

[説明]
サーバ側のプログラムの処理の概要とVC++2008 でのサンプルコードを以下に示します.

ファイル選択ダイアログを表示
選択されたファイルをウエッブサーバのドキュメントフォルダへコピー
そのファイルをダウンロードするURLを生成
LaunchBrowserI.dll をロード
LaunchBrowser のアドレスを取得
LaunchBrowser( <URL>, <URLの長さを保持するDWORD変数のポインタ>) をコール
FreeLibrary でLaunchBrowserI.dll を開放

void CGMFileDownloadDlg::OnBnClickedOk() {
TCHAR tFilePath[nBufferSize+1],tFileCopy[nBufferSize+1],tFileName[nBufferSize+1];
TCHAR tBuf[nBufferSize+1];
char cBuf[nBufferSize+1];
DWORD dTemp;
size_t CharactersConverted = 0;

m_filePath.GetWindowTextW(tFilePath,(sizeof(tFilePath)/sizeof(tFilePath[0])));
GetFileTitle(tFilePath,tFileName,nBufferSize);
_stprintf_s(tFileCopy,_T("%s¥¥%s"),opt_copyDir,tFileName);
CopyFile(tFilePath,tFileCopy,FALSE);
_stprintf_s(tBuf,opt_downloadURL,tFileName);
//---
HMODULE hMod = NULL;
LaunchBrowser func = NULL;
if(!hMod) {
hMod = LoadLibrary(_T ("LaunchBrowserI.dll"));
}
if(hMod) {
func = (LaunchBrowser)GetProcAddress(hMod,"LaunchBrowser");
}
_stprintf_s(tBuf,opt_downloadURL,tFileName);
wcstombs_s(&CharactersConverted,cBuf,sizeof(cBuf),tBuf,_TRUNCATE);
dTemp = strlen(cBuf);
(*func)((LPTSTR)cBuf,&dTemp);
FreeLibrary(hMod);
}

Files

KGTN2010072202.pdf (64.7 KB) kitasp 技術センター, 07/22/2010 12:44 PM