[ホーム] [会社概要] [製品] [サポート]
[BFup Pro ActiveX] [FAQ] [アプリケーションガイド] [ユーザガイド] [リファレンス]

BFup Pro ActiveX ユーザガイド

BFup Pro ActiveX コントロールは、Microsoft プラットフォームで使える純国産の ユニバーサルコンポーネントです。 クライアントサイドからファイルのアップロード/ダウンロード処理を簡単に実現できます。 BFup Pro ActiveX の機能をActiveXコントロールコンテナ環境に追加することで 高度なアプリケーション開発ソリューションを提供します。
ここでは、それぞれのコンテナ環境でのBFup Pro ActiveXの使用方法を説明します。


■ ユーザインタフェース

BFup Pro ActiveX は、次の要素から構成されています。
項目説明
開始ボタン アップロードまたはダウンロード処理を開始します。 処理中はキャンセルボタンになります。 処理中にブラウザやアプリケーションを終了させるとキャンセルされます。
参照ボタン アップロードするファイルまたはフォルダを選択するために選択ダイアログを表示します。
表示するダイアログの種類はBrowseプロパティで初期値を設定できます。
InitialDirプロパティで初期フォルダを設定できます。
リストボックス アップロードするファイルが表示されます。ファイルをドロップすることもできます。
プログレスバー プログレスバーを表示します。
メッセージ行 ステータスや推定残り時間を表示します。
コンテクストメニュー BFup Pro ActiveXクライアントエリアで右クリックするとポップアップメニューを表示します。

以下は、Edgeでの表示例です。


これらの構成要素は、それぞれ選択して組み合わせて表示することができます。

開始ボタンとプログレスバーのみを表示した例。

BFup Pro ActiveX のクライアント領域で右クリックするとポップアップメニューを表示します。
項目説明
開始 アップロードまたはダウンロード処理を開始します。
キャンセル アップロードまたはダウンロード処理をキャンセルします。 ブラウザを終了させる方法でもキャンセルできます。実行中のみ表示。
クリア リストボックスをクリアします。
フォルダの選択 アップロードするフォルダやダウンロード先のフォルダをダイアログから選択できます。
ファイルの選択 アップロードするファイルやダウンロードする保存ファイル名をダイアログから選択できます。 アップロード時には複数ファイルを選択可能です。
プロパティ表示 プロパティ情報をメモ帳に書出します。 プロパティ情報を確認するときに使います。
ログ(メモ帳) ログ情報をメモ帳に出力を行うかどうか指示します。 テスト時に動作を出力するときに使います。
バージョン(情報) バージョン情報を表示します。

Langプロパティを使うとボタンラベルやメッセージを英語に変更できます。

■ Edge(IEモード)

ここではBFup Pro ActiveXコントロールを Web ページ内に配置する方法を説明します。
BFup Pro ActiveXコントロールは、Edge(IEモード)で動作します。
BFup Pro ActiveX は、OBJECTタグを使って Web ページに埋め込まれます。

BFup Pro ActiveXのメソッドおよびプロパティは、Edge(IEモード)がサポートするスクリプトから使うことができます。 スクリプトの記述には、Microsoft Visual Basic Scripting Edition (VBScript) と Microsoft の ECMAScript 言語である JScriptの 2 つの言語のいずれかを使います。
一つの Web ページ内で、異なる記述言語のスクリプトを混在させることも可能です。 ActiveX コントロールのスクリプトの詳細については、Microsoft Scripting の Web ページを参照してください。

ここでは次のトピックを説明します。

■ Edge内でIE専用ページを表示可能にする
「IEモード」は、Edge内でActiveXを実行可能にします。
BFup Pro ActiveXをEdgeで実行するには、以下の手順が必要です。

■レジストリを修正する方法
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タグでWebページに埋め込む
Edge上のクライアントスクリプトでBFup Pro ActiveX オブジェクトを使うには、 OBJECTタグを使って、BFup Pro ActiceXコントロールを埋め込みます。 BFup Pro ActiveXをリモートから自動インストールするにはCODEBASEパラメータにURLを記述します。
BFup Pro ActiveXのパッケージファイルであるBFupp.CAB(B21Soft, Inc.により署名済み) のでインストールも簡単です。 自動インストールの結果、BFup Pro ActiveX実装ファイル(BFupp.dll) が WindowsのDownloaded Program Filesフォルダにコピーされます。 その他の関連DLLファイルがWindowsのSystem(32)フォルダにコピーされることはありません。
<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のプロパティの詳細は、リファレンスを参照してください。

■ PARAMタグでプロパティ設定
Web ページ内でコントロールのプロパティを設計時に設定するには、 OBJECT タグの間に PARAM タグを追加します。
<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つのオブジェクトを埋め込んだ例を示します。

■ 独自のユーザインタフェース追加
標準で提供されるBFup Pro ActiveXユーザインタフェースとは別に、独自に、 ユーザー インタフェース要素を追加して使うことができます。 キーを押したり、その他の動作で、ユーザーが Web ページと対話できるようにすることができます。 次のコードで、ユーザーに応答できる 2 つのボタンが作成されます。
<INPUT TYPE="BUTTON" NAME="BTNSTART" VALUE="Start" OnClick="GoStart()">
<INPUT TYPE="BUTTON" NAME="BTNCANCEL" VALUE="Cancel" OnClick="GoCancel()">
ボタンの名前は、コード内でボタンを識別するために使われます。 ボタンの値 (VALUE) は、ボタンに表示されるラベルです。 OnClick 属性で、ボタンがクリックされたときにスクリプト コードのどの部分が 呼び出されるかを識別します。

■ VBScriptコード
BFup Pro ActiveXは、VBScriptからプロパティ設定・取得やメソッド呼出しを実行できます。 VBScript は VBA のサブセットです。VBScript は大文字と小文字を区別しません。 WebページでのVBScript使用例を示します。
<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コード
JScript は大文字と小文字を区別します。 リテラルの中で"\" 文字を使う場合は、C言語のように "\\" と2つ指定します。

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>
■ 自動起動
Webページが表示されると同時に処理を開始したい場合は、AutoStartプロパティを指定します。 パラメータの値は、開始までの待ち秒数です。
<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>
■ 自動Edgeウィンドウクローズ
処理完了時に自動的にEdgeのウィンドウをクローズするには、AutoCLoseプロパティを指定します。 パラメータの値は、処理完了時からクローズまでの待ち秒数です。 エラーが発生した場合は、クローズしません。
<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>
■ コントロールの背景色設定
背景色は、BackColorプロパティで指定します。
    <PARAM NAME="BackColor" VALUE="#ff00ff">
表示しているHTMLページの背景色と同じにするにはTransParentパラメータを指定します。 HTMLのBODYタグのBGCOLORオプションと同じ色になります。
    <PARAM NAME="TransParent" VALUE="1">
■ ダウンロード後の自動アプリケーション起動
ダウンロード後にファイルを関連付けられたアプリケーションで処理することができます。 Actionプロパティで実行したい処理を選択できます。 Excelファイルなどをダウンロードして開く処理も実行できます。
    <PARAM NAME="Action" VALUE="open">
セキュリティのためアプリケーションを起動する前に警告ダイアログが表示されますので、 アプリケーションを実行するかどうか選択できます。
■ アップロード後に受信HTMLでページを書換え
アップロード後に受信したHTMLテキストでページを書き換える方法を説明します。 以下の手順で実行します。 以下にVBScriptおよびJScriptのサンプルを示します。
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メソッドの実行はできません。
■ アップロード後にフォームのSubmitメソッド実行
アップロード後にフォームオブジェクトのSubmitメソッドを実行する方法を説明します。 以下の手順で実行します。 以下にVBScriptおよびJScriptのサンプルを示します。
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>

■ Visual Studio .Net

BFup Pro は、Visual Studio .Net 環境でCOMコンポーネントとして使用することができます。 ここではC#プロジェクトでのBFup Proオブジェクトの使用方法について説明します。 [新規作成]-[プロジェクト]で、[Visual C#プロジェクト]-[コンソールアプリケーション]を 選択してプロジェクトを作成します。


次に[プロジェクト]-[参照の追加]-[COM]で BFup Pro を選択して参照を追加します。


以下のようにBFup Proオブジェクトを作成して使用します。
BFupProLib.IBFileUp bfup =  new BFupProLib.BFupPro();



■ Visual Basic Application (VBA)

Visual Basic Application(VBA)環境では、次の方法でBFup Pro ActiveXコントロールを使えます。 VBA は、以下のアプリケーションなどでサポートされています。 PowerPoint スライド上でのBFup ActiveXコントロールのプロパティ設定の例を示します。



PowerPointスライドにコントロールを追加するには、 [表示]-[ツールバー]-[コントロール ツールボックス] でツールボックスを表示します。 ツールボックス上のコントロール選択アイコンをクリックします。追加するコントロール[BFupPro Class]をクリックし、配置する位置をマークします。



以下は、スライド表示中に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

Excelのシートに貼り付けて使うには、[表示]-[ツールバー]-[コントロールツールボックス]で [コントロールの選択]アイコンをクリックします。
[BFupPro Class]にチェックを入れるとツールボックスにBFup Pro ActiveX が追加されます。

プロパティ設定例 ボタンのみを表示する例を以下に示します。 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

Excelのダイアログに貼り付けて使うには、[ツール]-[その他のコントロール]で[BFupPro Class]に チェックを入れるとツールボックスにBFup Pro ActiveX が追加されます。

事前バインディングでBFup Pro ActiveXを使用するには、[ツール]-[マクロ]-[Visual Basic Editor] で Visual Basic Editor プロジェクトを開きます。 [ツール]-[参照設定] ダイアログ ボックスの [参照可能なライブラリ ファイル] ボックスで [BFup Pro ActiveX Control] をチェックします。 BFup Pro ActiveXオブジェクトを参照するオブジェクト変数を宣言および初期化します。
Dim bfup As BFupPro
Set bfup = New BFupPro

オブジェクト型として宣言されるオブジェクト変数を CreateObject 関数で使用して、 実行時バインディングでオブジェクト変数を初期化する方法もあります。
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

■ Visual Basic 5.0/6.0

Visual Basic 5.0/6.0環境では、次の方法でBFup Pro ActiveXコントロールを使えます。
フォームに貼り付けて使う
フォームに貼り付けて使うには、[プロジェクト]-[コンポーネント]で[BFup Pro ActiveX Control]に チェックを入れるとツールボックスにBFup Pro ActiveX が追加されます。


プロパティ設定例
プログレスバーのみを表示する。
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"





貼り付けずに事前バインディング
事前バインディングを使用するには、[プロジェクト]-[参照設定] ダイアログ ボックスの [参照可能なライブラリ ファイル] ボックスで[BFup Pro ActiveX Control] をチェックします。 BFup Pro ActiveXオブジェクトを参照するオブジェクト変数を宣言および初期化します。
Dim bfup As BFupPro
Set bfup = New BFupPro
貼り付けずに実行時バインディング
オブジェクト型として宣言されるオブジェクト変数を CreateObject 関数で使用して、 実行時バインディングでオブジェクト変数を初期化する方法もあります。
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

■ Visual C++

Visual C++ 環境では、次の方法でBFup Pro ActiveXコントロールを使えます。
ダイアログに貼り付けて使う
MFC のダイアログプロジェクトで、[プロジェクト]-[プロジェクトへ追加]- [コンポーネントおよびコントロール] [Registered ACtiveX Controls]で BFupPro Class を選択して挿入ボタンを押します。


[クラスの確認]ダイアログで[OK]を押します。


コントロールボックスからBFupを選択してダイアログに貼り付けます。


[表示]-[Class Wizard]-[メンバ変数]-[コントロール]で貼り付けたBFupの ID を選択して、[変数の追加]でm_BFup を追加します。


OKボタンを押したとき、Startメソッドを呼び出すには、 ダイアログのOKボタンを選択して右クリックして[イベント]を選択します。 [BN_CLICKED]ハンドラーを選択して次のコードを追加します。
void CBfupcDlg::OnOK() 
{
    m_BFup.Start();
}



貼り付けずにスマートポインタを使う
BFup Pro ActiveXオブジェクトをダイナミックに作成して スマートポインタを使って アクセスする方法を説明します。 スマートポインタを使うにはタイプライブラリ(BFupp.tlb)を #import ディレクティブで指定します。 タイプ ライブラリの内容は COMインタフェースのC++ クラスに変換されます。
#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;
}

■ WSH(Windows Scripting Host)

WSH環境では、VBScript または JScript からBFup Pro ActiveX オブジェクトが使えます。 WSHで使用する場合は、ShowDialogプロパティを 使ってメソッドの進捗ダイアログを表示すると便利です。 進捗ダイアログダイアログは、次のように表示されます。

【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);
}

■ Visual Basic .NET

Visal Basic .NETのコンソールアプリケーションでイベントを受信するサンプルを 示します。
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

■ Visual C# .NET

Visal C# .NETのコンソールアプリケーションでイベントを受信するサンプルを 示します。
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); 
      }
    }
}

■ 64ビットアプリケーションでの使用方法

BFup Proオブジェクト(64ビット版DLL)を64ビットアプリケーションで使用する方法を説明します。

■ 64ビットWindows(WOW64)上での使用方法

BFup Proオブジェクト(32ビット版DLL)を64ビットWindows(WOW64環境)上で使用する方法を説明します。