項目 | 説明 |
開始ボタン | アップロードまたはダウンロード処理を開始します。 処理中はキャンセルボタンになります。 処理中にブラウザやアプリケーションを終了させるとキャンセルされます。 |
参照ボタン |
アップロードするファイルまたはフォルダを選択するために選択ダイアログを表示します。
表示するダイアログの種類はBrowseプロパティで初期値を設定できます。 InitialDirプロパティで初期フォルダを設定できます。 |
リストボックス | アップロードするファイルが表示されます。ファイルをドロップすることもできます。 |
プログレスバー | プログレスバーを表示します。 |
メッセージ行 | ステータスや推定残り時間を表示します。 |
コンテクストメニュー |
BFup Pro ActiveXクライアントエリアで右クリックするとポップアップメニューを表示します。 |
項目 | 説明 |
開始 | アップロードまたはダウンロード処理を開始します。 |
キャンセル | アップロードまたはダウンロード処理をキャンセルします。 ブラウザを終了させる方法でもキャンセルできます。実行中のみ表示。 |
クリア | リストボックスをクリアします。 |
フォルダの選択 | アップロードするフォルダやダウンロード先のフォルダをダイアログから選択できます。 |
ファイルの選択 | アップロードするファイルやダウンロードする保存ファイル名をダイアログから選択できます。 アップロード時には複数ファイルを選択可能です。 |
プロパティ表示 | プロパティ情報をメモ帳に書出します。 プロパティ情報を確認するときに使います。 |
ログ(メモ帳) | ログ情報をメモ帳に出力を行うかどうか指示します。 テスト時に動作を出力するときに使います。 |
バージョン(情報) | バージョン情報を表示します。 |
BFup Pro ActiveXのメソッドおよびプロパティは、Edge(IEモード)がサポートするスクリプトから使うことができます。
スクリプトの記述には、Microsoft Visual Basic Scripting Edition (VBScript) と Microsoft の ECMAScript 言語である
JScriptの 2 つの言語のいずれかを使います。
一つの Web ページ内で、異なる記述言語のスクリプトを混在させることも可能です。
ActiveX コントロールのスクリプトの詳細については、Microsoft Scripting の Web ページを参照してください。
ここでは次のトピックを説明します。
1.IEサイト許可リストを作成 拡張子(xml)でIEモードで開きたいサイトを指定したリストファイルを作成。 例:ie-mode.xml <site-list version="20220601.0"> <site url="○○.co.jp"><open-in>IE11</open-in></site> <site url="○○.com"><open-in>IE11</open-in></site> </site-list> 2.作成したサイト許可リストファイルを配置 ローカルフォルダかサイトに配置します。 例:ローカルに配置 C:/local//ie-mode.xml 例:サイトに配置 https://○○.co.jp/bfup/ie-mode.xml 3.レジストリ修正 レジストリ登録ファイル(拡張子reg)を作成し、ファイルをダブルクリックして登録します。 例1:ローカルに配置 ie-mode1.reg Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge] "InternetExplorerIntegrationLevel"=dword:00000001 "InternetExplorerIntegrationSiteList"="file:///C:/local/ie-mode.xml" 例2:サイトに配置 ie-mode2.reg Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge] "InternetExplorerIntegrationLevel"=dword:00000001 "InternetExplorerIntegrationSiteList"="https://○○.co.jp/bfup/ie-mode.xml"■一時的にIEモードで開く方法
Edgeの既定モードを開く。URLに以下を入力。 edge://settings/defaultBrowser [Internet Explorer モードでサイトの再読み込みを許可] [既定]から[許可]に変更。 [Internet Explorer モード ページ] [追加]で IEモードで開きたい URL(ページ単位)を入力。 ページ追加日から 30 日間 Internet Explorer モードとなります。
<OBJECT HEIGHT=270 WIDTH=480 ID="bfup" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="http://xxxxxxx/BFupp.CAB#version=n,n,n,n"> <PARAM NAME="URL" VALUE="http://xxxxxx/bfup/fileup.asp"> <PARAM NAME="FilePath" VALUE="d:\data"> <PARAM NAME="InitialDir" VALUE="d:\data"> <PARAM NAME="Filter" VALUE="Excelファイル(*.xls)"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="upload"> </OBJECT>
項目 | 説明 |
HEIGHT,WIDTH |
オブジェクトのクライアントエリアの大きさ。既定値は、HEIGTH=270,WIDTH=480。
自分独自のユーザー インターフェイスを作成したい場合は、HEIGTH=0,WIDTH=0 に設定します。 |
ID | コード内のほかの部分でこの ActiveX コントロールを識別し、使うための名前。 |
CLASSID | コントロールに固有の16 進数の番号。この番号はこのコントロールに固有のもので、 この場合は BFup Pro ActiveXコントロールを指します。 この番号は、リリースノートに記述されています。入力ミスを防ぐためにカット&ペーストして入力してください。 |
CODEBASE |
BFup Pro ActiveXのダウンロード場所を示すURL。 versionを指定しておくとEdgeの機能によりパソコン上のBFup Pro ActiveXのバージョンが古い場合に 常に新しいバージョンがインストールされます。省略可能です。 |
PARAM NAME | 初期化時にBFup Pro ActiveXオブジェクトにパラメータを渡すには、 PARAM タグを使ってコントロールのプロパティを設定します。 BFup Pro ActiveXのプロパティの詳細は、リファレンスを参照してください。 |
<HTML><BODY BGCOLOR=wheat> <OBJECT ID="BFUP" HEIGHT=80 WIDTH=305 CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="http://xxxxxxx/BFupp.CAB#version=n,n,n,n"> <PARAM NAME="Action" VALUE="open"> <PARAM NAME="BarStyle" VALUE="1"> <PARAM NAME="BarColor" VALUE="#800000"> <PARAM NAME="BarHeight" VALUE="25"> <PARAM NAME="BarWidth" VALUE="300"> <PARAM NAME="ButtonHeight" VALUE="33"> <PARAM NAME="ButtonWidth" VALUE="300"> <PARAM NAME="CancelCaption" VALUE="ダウンロード中..."> <PARAM NAME="Exec" VALUE="DownLoad"> <PARAM NAME="FilePath" VALUE="c:\temp"> <PARAM NAME="Hidden" VALUE="22"> <PARAM NAME="Replace" VALUE="1"> <PARAM NAME="StartCaption" VALUE="To DownLoad Click Me!!!!"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="URL" VALUE="http://server/test/download.asp"> </OBJECT> <HR> <OBJECT ID="BFUP" HEIGHT=100 WIDTH=305 CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="http://xxxxxxx/BFupp.CAB#version=n,n,n,n"> <PARAM NAME="AutoClose" VALUE="1"> <PARAM NAME="BarColor" VALUE="#800000"> <PARAM NAME="BarHeight" VALUE="35"> <PARAM NAME="BarWidth" VALUE="200"> <PARAM NAME="ButtonHeight" VALUE="43"> <PARAM NAME="ButtonWidth" VALUE="200"> <PARAM NAME="CancelCaption" VALUE="アップロード中..."> <PARAM NAME="Exec" VALUE="UpLoad"> <PARAM NAME="FilePath" VALUE="c:\temp"> <PARAM NAME="Hidden" VALUE="22"> <PARAM NAME="StartCaption" VALUE="To Upload Click Me!!!!"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="URL" VALUE="http://server/test/fileup.asp"> </OBJECT> </BODY></HTML>2つのオブジェクトを埋め込んだ例を示します。
<INPUT TYPE="BUTTON" NAME="BTNSTART" VALUE="Start" OnClick="GoStart()"> <INPUT TYPE="BUTTON" NAME="BTNCANCEL" VALUE="Cancel" OnClick="GoCancel()">ボタンの名前は、コード内でボタンを識別するために使われます。 ボタンの値 (VALUE) は、ボタンに表示されるラベルです。 OnClick 属性で、ボタンがクリックされたときにスクリプト コードのどの部分が 呼び出されるかを識別します。
<HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Pro ActiveX Web Page</TITLE><BODY> <OBJECT ID="bfup" HEIGHT=50 WIDTH=480 CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="BFupp.CAB#version=n,n,n,n"> <PARAM NAME="Hidden" VALUE="7"> <PARAM NAME="TransParent" VALUE="1"> </OBJECT> <SCRIPT LANGUAGE="VBScript"> Sub download_onClick() url = "http://xxxxxx/data/data.dat" filepath = "d:\data" bfup.Replace = 1 bfup.FireEvent = 1 rc = bfup.DownLoad(url,filepath) End Sub Sub upload_onClick() url = "http://xxxxxx/data/fileup.asp" filepath = "d:\data" bfup.FireEvent = 1 rc = bfup.UpLoad(url,filepath) End Sub ' BFup Pro ActiveXイベントプロシージャは、オブジェクト名 + _(アンダーライン) + イベント名で ' 指定します。 Sub bfup_OnLog(log) status = log End Sub Sub bfup_OnProgress(msg) status = msg End Sub </SCRIPT> <input type=button name=download value=DownLoad> <input type=button name=upload value=UpLoad> </BODY></HTML>
JScript は、NetscapeブラウザのJavaScriptと互換性のあるスクリプト言語です。
WebページでのJScript使用例を示します。
<HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Pro ActiveX Web Page</TITLE><BODY> <OBJECT ID="bfup" HEIGHT=50 WIDTH=480 CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="BFupp.CAB#version=n,n,n,n"> <PARAM NAME="Hidden" VALUE="7"> <PARAM NAME="TransParent" VALUE="1"> </OBJECT> <script language="JavaScript"> var rc; function ondownload() { var url = "http://xxxxxx/data/data.dat"; var filepath = "d:\\data"; bfup.Replace = 1; bfup.FireEvent = 1; rc = bfup.DownLoad(url,filepath); } function onupload() { var url = "http://xxxxxx/data/fileup.asp"; var filepath = "d:\\data"; bfup.FireEvent = 1; rc = bfup.UpLoad(url,filepath); } </script> // // JScriptではBFup Pro ActiveXイベントプロシージャは、次のように指定します。 // <SCRIPT FOR="オブジェクトID" EVENT="イベントプロシージャ名" LANGUAGE="JavaScript"> // </SCRIPT> // <SCRIPT FOR="bfup" EVENT="OnLog(log)" LANGUAGE="JavaScript"> status = log; </SCRIPT> <SCRIPT FOR="bfup" EVENT="OnProgress(msg)" LANGUAGE="JavaScript"> status = msg; </SCRIPT> <input type=button name=download value=DownLoad OnClick="ondownload()"> <input type=button name=upload value=UpLoad OnClick="onupload()"> </BODY></HTML>
<OBJECT ID="bfup" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="BFupp.CAB#version=n,n,n,n"> <PARAM NAME="AutoStart" VALUE="1"> <PARAM NAME="URL" VALUE="http://xxxxxx/bfup/fileup.asp"> <PARAM NAME="FilePath" VALUE="d:\data"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="upload"> </OBJECT>
<OBJECT ID="bfup" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" CODEBASE="BFupp.CAB#version=n,n,n,n"> <PARAM NAME="AutoStart" VALUE="1"> <PARAM NAME="AutoClose" VALUE="5"> <PARAM NAME="URL" VALUE="http://xxxxxx/bfup/fileup.asp"> <PARAM NAME="FilePath" VALUE="d:\data"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="upload"> </OBJECT>
<PARAM NAME="BackColor" VALUE="#ff00ff">表示しているHTMLページの背景色と同じにするにはTransParentパラメータを指定します。 HTMLのBODYタグのBGCOLORオプションと同じ色になります。
<PARAM NAME="TransParent" VALUE="1">
<PARAM NAME="Action" VALUE="open">セキュリティのためアプリケーションを起動する前に警告ダイアログが表示されますので、 アプリケーションを実行するかどうか選択できます。
VBScriptの例: <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Page Override Test</TITLE></HEAD> <BODY> <OBJECT ID="BFUP" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx""> <PARAM NAME="FilePath" VALUE="d:\work\abc.html"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="UpLoad"> <PARAM NAME="FireEvent" VALUE="1"> <PARAM NAME="URL" VALUE="http://xxxxxx/bfup/fileup.asp"> </OBJECT> <SCRIPT Language="VBScript"> Sub bfup_onComplete(result) document.SAVE.RESULT.value = BFUP.HTMLResult setTimeout "OverridePage()",10 End Sub Sub OverridePage() document.write document.SAVE.RESULT.value End Sub </SCRIPT> <FORM NAME=SAVE><INPUT TYPE="HIDDEN" NAME="RESULT"></FORM> </BODY></HTML> JScriptの例: <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Page Override Test</TITLE></HEAD> <BODY> <OBJECT ID="BFUP" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx""> <PARAM NAME="FilePath" VALUE="d:\work\abc.html"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="UpLoad"> <PARAM NAME="FireEvent" VALUE="1"> <PARAM NAME="URL" VALUE="http://xxxxxx/bfup/fileup.asp"> </OBJECT> <SCRIPT LANGUAGE="JScript"> function OverridePage() {document.write(document.SAVE.RESULT.value);} </SCRIPT> <SCRIPT FOR="BFUP" EVENT="OnComplete(data)" LANGUAGE="JScript"> var timeID = setTimeout("OverridePage()",10); document.SAVE.RESULT.value = BFUP.HTMLResult; </SCRIPT> <FORM NAME=SAVE><INPUT TYPE="HIDDEN" NAME="RESULT"></FORM> </BODY></HTML>注意:onCompleteイベント処理内ではBFup Proオブジェクトが実行中なので document.writeメソッドの実行はできません。
VBScriptの例: <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Submit Test</TITLE></HEAD> <BODY> <OBJECT ID="BFUP" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> <PARAM NAME="FilePath" VALUE="d:\work\abc.html"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="UpLoad"> <PARAM NAME="FireEvent" VALUE="1"> <PARAM NAME="URL" VALUE="http://xxxxx/bfup/fileup.asp"> </OBJECT> <SCRIPT Language="VBScript"> Sub bfup_onComplete(result) document.SAVE.RESULT.value = BFUP.HTMLResult setTimeout "DoSubmit()",10 End Sub Sub DoSubmit() document.POSTFORM.action="http://xxxxx/bfup/filepost.asp" document.POSTFORM.method="post" document.POSTFORM.PARA1.value="post para1" document.POSTFORM.PARA2.value="post para2" document.POSTFORM.submit() End Sub </SCRIPT> <FORM NAME="POSTFORM"> <INPUT TYPE="HIDDEN" VALUE="" NAME="PARA1"> <INPUT TYPE="HIDDEN" VALUE="" NAME="PARA2"> </FORM> <FORM NAME=SAVE><INPUT TYPE="HIDDEN" NAME="RESULT"></FORM> </BODY></HTML> JScriptの例: <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>BFup Submit Test</TITLE></HEAD> <BODY> <OBJECT ID="BFUP" CLASSID="CLSID:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> <PARAM NAME="FilePath" VALUE="d:\work\abc.html"> <PARAM NAME="TransParent" VALUE="1"> <PARAM NAME="Exec" VALUE="UpLoad"> <PARAM NAME="FireEvent" VALUE="1"> <PARAM NAME="URL" VALUE="http://xxxxx/bfup/fileup.asp"> </OBJECT> <SCRIPT LANGUAGE="JScript"> function DoSubmit() { document.POSTFORM.action="http://xxxxx/bfup/filepost.asp"; document.POSTFORM.method="post"; document.POSTFORM.PARA1.value="post para1"; document.POSTFORM.PARA2.value="post para2"; document.POSTFORM.submit(); } </SCRIPT> <SCRIPT FOR="BFUP" EVENT="OnComplete(data)" LANGUAGE="JScript"> var timeID = setTimeout("DoSubmit()",10); document.SAVE.RESULT.value = BFUP.HTMLResult; </SCRIPT> <FORM NAME=SAVE><INPUT TYPE="HIDDEN" NAME="RESULT"></FORM> <FORM NAME="POSTFORM"> <INPUT TYPE="HIDDEN" VALUE="" NAME="PARA1"> <INPUT TYPE="HIDDEN" VALUE="" NAME="PARA2"> </FORM> </BODY></HTML>
BFupProLib.IBFileUp bfup = new BFupProLib.BFupPro();
以下は、スライド表示中にBFup ActiveXダウンロード機能を実行するサンプルです。 このスライドが表示されて2秒後にダウンロードを自動開始します。 Actionプロパティによりダウンロード後にダウンロードしたファイルをオープンします。
Action="open" AutoStart=2 BackColor="#c0c0c0" BarColor="#0A246A" BarHeight=30 BarWidth=540 ButtonHeight=33 ButtonWidth=540 CancelCaption="In Progress..." Exec="DownLoad" FilePath="c:\temp" Height=13547 Hidden=22 Refresh=500 StartCaption="Click Me !!!" URL="http://webserver/data/download.asp" Width=2046
プロパティ設定例 ボタンのみを表示する例を以下に示します。 Action="open" BarHeight=15 BarWidth=366 ButtonHeight=33 ButtonWidth=140 CancelCaption="キャンセル" Exec="DownLoad" FilePath="c:\temp" Height=2143 Hidden=30 StartCaption="ダウンロード" URL="http://severs/data/download.asp" Width=2143
Dim bfup As BFupPro Set bfup = New BFupPro
Dim bfup As Object Set bfup = CreateObject("BFupPro") bfup.Debug bfup.Version
使用例 フォームのボタンが押されたらセルにBFup Pro ActiveX のバージョンを設定します。 Private Sub CommandButton1_Click() Dim bfup As BFupPro Set bfup = New BFupPro ActiveSheet.Cells(1, 1) = bfup.Version End Sub
プロパティ設定例 プログレスバーのみを表示する。 Action="open" BarColor="#F00000" BarHeight=34 BarStyle=1 BarWidth=300 Exec="DownLoad" FilePath="k:\bfwk" Hidden=23 Replace=1 URL="http://servers/data/my.xls"
Dim bfup As BFupPro Set bfup = New BFupPro
Dim bfup As Object Set bfup = CreateObject("BFupPro")
使用例 フォームのボタンが押されたらBFup Pro ActiveX のバージョンを表示します。 Private bfup As BFupPro Private Sub Command1_Click() Command1.Caption = bfup.Version End Sub Private Sub Form_Load() Set bfup = New BFupPro End Sub
void CBfupcDlg::OnOK() { m_BFup.Start(); }
#import "c:\\b21soft\\BFupp.tlb" no_namespace#import は、C++ ソース コードでタイプ ライブラリの内容を再構築する 2 つの ヘッダー ファイルを作成します。
BFupp.tlh ...... プライマリヘッダファイル BFupp.tli ...... セカンダリヘッダファイル使用例1 BFup Pro ActiveX のバージョンを表示します。
#include "stdafx.h" #import "c:\\b21soft\\BFupp.tlb" no_namespace int main(int argc, char* argv[]) { if (S_OK != CoInitialize(NULL)) // COMライブラリを初期化します return false; IBFileUpPtr pIBFileUp(__uuidof(BFupPro)); // スマートポインタを設定 _bstr_t retbstr = pIBFileUp->GetVersion(); MessageBox(NULL,retbstr,"",MB_OK); pIBFileUp = NULL; // オブジェクトの消去 CoUninitialize(); return 0; }使用例2 DownLoadメソッドを呼び出します。ShowDialogプロパティで進捗ダイアログを表示します。
#include "stdafx.h" #import "c:\\b21soft\\BFupp.tlb" no_namespace int main(int argc, char* argv[]) { if (S_OK != CoInitialize(NULL)) // COMライブラリを初期化します return false; IBFileUpPtr pIBFileUp(__uuidof(BFupPro)); // スマートポインタを設定 pIBFileUp->PutReplace(1); // Replaceプロパティ 置換設定 pIBFileUp->PutShowDialog(1); // ShowDialogプロパティ 左上設定 pIBFileUp->PutBarStyle(1); // BarStyleプロパティ スムーズ設定 pIBFileUp->PutBarColor(L"#3030e0"); // BarColorプロパティ 設定 _bstr_t url = "http://servers/data/good.jpg"; _bstr_t filepath = "c:\\temp"; pIBFileUp->DownLoad(url,filepath); // DownLoadメソッド呼び出し pIBFileUp = NULL; // オブジェクトの消去 CoUninitialize(); return 0; }使用例3 DownLoadメソッドを呼び出して、各イベントを受信します。
// Visual C++ イベントを受信するサンプル // #include "stdafx.h" #include <atlbase.h> CComModule _Module; #include <atlcom.h> #import "bfupp.tlb" no_namespace // イベントシンクID #define SINKID 0 // イベント DISPID #define DISPID_ONCOMPLETE 1 #define DISPID_ONLOG 2 #define DISPID_ONSTART 3 #define DISPID_ONCANCEL 4 #define DISPID_ONCLEAR 5 #define DISPID_ONPROGRESS 6 #define DISPID_ONCHANGED 7 // イベントシンクオブジェクト class BFSinkObj : public IDispEventImpl<SINKID,BFSinkObj> { public: BEGIN_SINK_MAP(BFSinkObj) SINK_ENTRY(SINKID,DISPID_ONPROGRESS,OnComplete) SINK_ENTRY(SINKID,DISPID_ONLOG,OnLog) SINK_ENTRY(SINKID,DISPID_ONSTART,OnStart) SINK_ENTRY(SINKID,DISPID_ONCANCEL,OnCancel) SINK_ENTRY(SINKID,DISPID_ONCLEAR,OnClear) SINK_ENTRY(SINKID,DISPID_ONPROGRESS,OnProgress) SINK_ENTRY(SINKID,DISPID_ONCHANGED,OnChanged) END_SINK_MAP() // イベントルーチン HRESULT _stdcall OnComplete(BSTR msg) { // イベントは、_stdcall _bstr_t data = msg; printf ("OnComplete !! %s\n",(const char*)data); return S_OK; } HRESULT _stdcall OnLog(BSTR log) { _bstr_t data = log; printf ("OnLog !! %s\n",(const char*)data); return S_OK; } HRESULT _stdcall OnStart() { printf ("OnStart !!\n"); return S_OK; } HRESULT _stdcall OnCancel() { printf ("OnCancel !!\n"); return S_OK; } HRESULT _stdcall OnClear() { printf ("OnClear !!\n"); return S_OK; } HRESULT _stdcall OnProgress(BSTR msg) { _bstr_t data = msg; printf ("OnProgress !!%s\n",(const char*)data); return S_OK; } HRESULT _stdcall OnChanged() { printf ("OnChanged !!\n"); return S_OK; } }; void com_assert(HRESULT result, char *msg) { if ( FAILED(result) ) { printf("error %d %s",result,msg); exit(1); } } int main(int argc, char* argv[]) { if (argc < 3) { printf("invalid arg"); return -1; } _bstr_t url = argv[1]; // 最初のパラメータは URL _bstr_t filepath = argv[2]; // 次はパス名 HRESULT hr = ::CoInitialize(NULL); // COM初期化処理 com_assert(hr,"com init failed"); _Module.Init(NULL, ::GetModuleHandle(NULL)); IBFileUpPtr pBFupObj(__uuidof(BFupPro)); // BFup オブジェクト取得 if (pBFupObj == NULL) { printf("bfup create failed"); return -1; } // シンクオブジェクト作成&接続 BFSinkObj *pBFSinkObj = new BFSinkObj; hr = AtlGetObjectSourceInterface(pBFupObj, &pBFSinkObj->m_libid, &pBFSinkObj->m_iid, &pBFSinkObj->m_wMajorVerNum, &pBFSinkObj->m_wMinorVerNum); com_assert(hr,"AtlGetObjectSourceInterface"); hr = pBFSinkObj->DispEventAdvise(pBFupObj, &pBFSinkObj->m_iid); com_assert(hr,"DispEventAdvise failed"); pBFupObj->PutReplace(1); // Replaceプロパティ=1 pBFupObj->PutFireEvent(1); // FireEventプロパティ=1 pBFupObj->DownLoad(url,filepath); // DownLoadメソッド呼び出し // シンクオブジェクト切断&消去 if (pBFSinkObj->m_dwEventCookie != 0xFEFEFEFE) pBFSinkObj->DispEventUnadvise(pBFupObj, &pBFSinkObj->m_iid); delete pBFSinkObj; pBFupObj = NULL; _Module.Term(); // COM終了処理 ::CoUninitialize(); return 0; }
【VBScript】
インスタンス作成 Set bfup = WScript.CreateObject("BFupPro"[,"BFup_"]) 解説 WscriptオブジェクトのCreateObjectメソッドでBFup Pro ActiveXのインスタンスを作成します。 WscriptオブジェクトのCreateObjectメソッドの第2パラメータは、イベントハンドラーの プリフィックス名を指定します。プリフィックス名は、アンダーラインで終了しなければなりません。 使用例 Set bfup = WScript.CreateObject("BFupPro","BFup_") bfup.FireEvent = 1 bfup.ShowDialog = 1 bfup.BarStyle = 1 bfup.BarColor = "#30a030" rc = bfup.DownLoad("http://server/test/data.html","c:\test1") Set bfup = Nothing WScript.Quit Sub BFup_OnProgress(msg) bfup.Debug msg End Sub
【JScript】
インスタンス作成 var bfup = new ActiveXObject("BFupPro"); 解説 JScript では、ActiveXObjectオブジェクトでBFup Pro ActiveXのインスタンスを作成します。 イベントハンドラーの設定は、WscriptオブジェクトのConnectObjectメソッドを使います。 使用例 var bfup = new ActiveXObject("BFupPro"); WScript.ConnectObject(bfup,"BFup_"); bfup.FireEvent = 1; bfup.ShowDialog = 1; rc = bfup.UpLoad("http://server/test/fileup.asp","c:\\test1"); delete bfup; function BFup_OnProgress(msg) { bfup.Debug(msg); }
Option Explicit On Option Strict On Module Module1 Sub Main() ' コマンドライン引数をアクセス Dim Args As String() = System.Environment.GetCommandLineArgs() If Args.Length < 2 Then Return End If Dim url As String = Args(1) Dim filepath As String = Args(2) Dim bfup As New BFupProLib.BFupPro ' BFup Proインスタンス作成 Dim oncomplete_handler As BFupProLib._IBFileUpEvents_OnCompleteEventHandler oncomplete_handler = AddressOf OnComplete ' イベント設定 AddHandler bfup.OnComplete, oncomplete_handler bfup.Replace = 1 bfup.FireEvent = 1 bfup.ShowDialog = 1 Dim rc As Long rc = bfup.DownLoad(url, filepath) bfup = Nothing Console.WriteLine("Done! " + rc.ToString()) Return End Sub Sub OnComplete(ByVal sdata As String) ' OnCompleteイベントルーチン Console.WriteLine("Complete " + sdata) End Sub End Module
using System; namespace ConsoleApp5 { class Class1 { [STAThread] static void Main(string[] args) { string url = args[0]; string filepath = args[1]; BFupProLib.BFupPro bfup = new BFupProLib.BFupPro(); // BFup Proインスタンス作成 BFupProLib._IBFileUpEvents_OnCompleteEventHandler oncomplete_handler = new BFupProLib._IBFileUpEvents_OnCompleteEventHandler(OnComplete); bfup.OnComplete += oncomplete_handler; // イベント設定 bfup.Replace = 1; bfup.FireEvent = 1; bfup.ShowDialog = 1; int rc = bfup.DownLoad(url,filepath); bfup = null; Console.WriteLine("Done! " + rc.ToString()); } static void OnComplete(string data) // OnCompleteイベントルーチン { Console.WriteLine("OnComplete " + data); } } }
regsvr32.exe で登録します。 regsvr32.exe c:\b21\BFuppx64.dll
64ビット版のスクリプトエンジンを使用します。 wscript.exe test.vbs cscript.exe test.vbs
動作プラットホームを"x64"に設定する必要があります。 BASP21 Proを参照する Visual Basic プロジェクト または C# プロジェクトのプラットフォーム ターゲットCPU プロパティに "x64" を設定してビルドします。
64ビット版のEdge上では、動作しません。
regsvr32.exe を使用して、32ビット版DLLを登録します。 regsvr32.exe c:\b21\BFupp.dll
32ビット版のスクリプトエンジンを使用します。 %Systemroot%\SysWOW64\wscript.exe test.vbs %Systemroot%\SysWOW64\cscript.exe test.vbs
動作プラットホームを"x86"に設定する必要があります。 BFup Proを参照する Visual Basic プロジェクト または C# プロジェクトのプラットフォーム ターゲットCPU プロパティに "x86" を設定してビルドします。
Edge(IEモード)で開いた場合、32ビット版のBFup Pro オブジェクトが動作します。