これは、ASP(Active Server Pages) & WSH などで利用できる COM コンポーネントです


はじめに
バイナリデータをファイルに書き出すことが、WSH の標準機能だけでは困難な場合があります。
ADOStream オブジェクトを使う方法とかもありますが・・・
という事で、バイナリデータ(VARIANT 型/String 型の内部表現)をそのままファイルに書き出す、ファイルから読み出す COM (というか ActiveX DLL) です




使用方法
  1. sCOMmon.dll が必要ですので、ダウンロードして、sCOMmon.dll をシステム・ディレクトリ(%SystemRoot%\System32 {Win64 → %SystemRoot%\SysWOW64})にコピーしてください。
  2. ファイルをダウンロードします。
  3. ダウンロードしたファイルを解凍しします。
    (LHA は、吉崎栄泰氏が、著作権を所有)
  4. sBinFile.dll を任意のディレクトリにコピー。
  5. コピーされたディレクトリで、regsvr32.exe を実行して sBinFile.dll をレジストリに登録。
  6. (同梱されている regsvr32.bat を sBinFile.dll と同一ディレクトリにコピーして実行することでも可能。
  7. 以上で、
    VBScript,JScript,VisualBASIC にて、この COM コンポーネントを利用可能。



使い方(VBScript を例にして...)
基本的には
  1. オブジェクトを生成{CreateObject()}
  2. メソッド実行(16進数表記の文字列でファイルサイズが返りますので、後は自由に加工してください)
  3. オブジェクトを解放{Nothing キーワード}

ってな感じです。


CreateObject に渡す文字列
sBinFile.BinFile.1



アンインストール方法
RegSvr32 コマンドの /u オプションを用いて、sBinFile.dll をレジストリから削除するだけです。
必要がないようでしたら、sCOMmon.dll も削除してください。

免責など
著作権は保持します。
しかし、このソフトを使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについては、各自の責任において、自由にいじってくれてもいいです。

修正についての提案や、バグレポートなどは、メールにて受け付けています。


ソースコードについて
ReleaseMiniSize でコンパイルする時に、プリプロセッサ定義の「_ATL_MIN_CRT」を削除しました。


DownLoad(sBinFile.lzh as 72,371byte) (sBinFile.lzh.base64)
sBinFile.dll is 53,248byte(ver1.0.0.1)


変更履歴



COM メソッド一覧


WriteFileBin(ファイルパス、データ)
内容 ファイルパスを絶対パスとして第一引数に渡す(UNICODE文字列として解釈する[WSH では普通に文字列を指定すれば、内部表現 UNICODE なので無問題かと思う])

第二引数を BYTE 配列として取得して、それをファイルに追記/新規作成する

引数 第一引数 : 出力ファイル名(ファイルパス)(UNICODE として解釈します)
第二引数 : 出力データ(Byte配列として解釈します)
戻り値 なし


データ = ReadFileBin(ファイルパス)
内容 ファイルパスを絶対パスとして第一引数に渡す(UNICODE文字列として解釈する[WSH では普通に文字列を指定すれば、内部表現 UNICODE なので無問題かと思う])

返り値として、ファイルの内容が内部表現を Byte 配列とした VARIANT 型が返る

引数 第一引数 : 出力ファイル名(ファイルパス)(UNICODE として解釈します)
戻り値 ファイルの内容が内部表現を Byte 配列とした VARIANT 型が返る




エラー一覧
sError.h を参照
特に、エラー処理をしていない


4GB 以上について
ええ加減に、CreateFile() 関数を呼んで、WriteFile/ReadFile を呼んでいるのでどうなるか未定


mail to active@window.goukaku.com