KBA(ver.0.01)リファレンス

by Hippo2000 (1999/1/20)


目次


はじめに

KBA.DLLをダウンロードしていただきありがとうございます。
まだまだ内容も不完全なら、ドキュメントも不完全なのでご迷惑をお掛けするかと思いますが。
一つよろしくお願いします。


オブジェクトの生成

KBA.DLLでは各アーカイブDLLに対応して以下のクラスが生成できます。

クラス名

対応するDLL

説    明

Manager

なし

全体のチェックを行うためのクラスです。

UNLHA

UNLHA32.DLL

LHA形式の書庫ファイルを操作するためのクラスです。

ZIP

UNZIP32.DLL
ZIP32J.DLL

ZIP形式の書庫ファイルを操作するためのクラスです。

UNARJ

UNARJ32.DLL

ARJ形式の書庫ファイルを操作するためのクラスです。

TAR

TAR32.DLL

TAR形式の書庫ファイルを操作するためのクラスです。

CAB

CAB32.DLL

CAB形式の書庫ファイルを操作するためのクラスです。

ISH

ISH32.DLL

ISH形式の書庫ファイルを操作するためのクラスです。

UNRAR

UNRAR32.DLL

RAR形式の書庫ファイルを操作するためのクラスです。

FTP

FTP32.DLL

FTPによりほかのサイトのファイルを操作するためのクラスです。

 

オブジェクトの作成 は以下のようにおこないます。

 Set oLha = CreateObject("KBA.クラス名")

たとえばUNLHAクラスのオブジェクトを生成するためには…

 Set oLha = CreateObject("KBA.UNLHA")

とします。

 


Managerクラスについて

このクラスはKBA自体のバージョンや他のクラスが使用可能であるかなどKBA全体を管理する
クラスです。

Managerクラスのメソッド、プロパティ

メソッド名

種類

説    明

呼び出し

Ver

P(r)

KBAのバージョンを返します。

 

ArcClass

M

指定されたクラスを作成します。
使用可能でない場合にはNothingを返します。

ArcClass(sClass as Variant) as Object

CabOk、FtpOk、IshOk、TarOk、UnarjOk、UnlhaOk、UnrarOk、UnzipOk、ZipOk

P(r)

対応するクラスが使用可能かをあらわします。

 

VerCab、VerFtp、VerIsh、VerTar、VerUnarj、VerUnlha、VerUnrar、VerUnzip、VerZip

P(r)

対応する各DLLのバージョンをあらわします。

 

 

 


メソッド・プロパティの一覧

Manager以外の各クラスでのメソッド、プロパティは各DLLで実現されている機能に基づいて
「基本操作系」と「ファイル情報取得系(OpenArc系)」の2種類に分けられます。

ISHクラスではOpenArc系のメソッド・プロパティには対応していません。

基本操作

基本操作系

メソッド名

種類

説    明

対応する
アーカイブDLL API

ArcCmd

M

コマンド文字列により各種の書庫操作を行います。

ArcCmdRes

P(r)

ArcCmdを実行した結果の文字列を表します。

 

CheckArchive

M

指定されたファイルが書庫ファイルとして正しいかをチェックします。

*CheckArchive

FileCount

M

書庫ファイルに格納されているファイルの総数を返します。

*GetFileCount

Ver

P(r)

DLLの現在のバージョンを返します。

*GetVersion

CursorInterval

P

DLLのカーソルインターバルを参照/設定します。

*GetCursorInterval、*SetCursorInterval

BackgroundMode

P

DLLのバックグラウンドモードを参照/設定します。

*GetBackground、*SetBackground

CursorMode

P

DLLのカーソルモードを参照/設定します

*GetCursorMode、*SetCursorMode

Running

P(r)

DLLが動作中であるかを返します。

*GetRunning

ConfigDialog

M

DLLの構成ダイアログを表示します。

*ConfigDialog

FunctionList

M

DLLで指定されたAPIが使用可能かを返します。

*QueryFunctionList

ファイル情報取得(OpenArc系)

メソッド名

種類

説    明

対応する
アーカイブDLL API

OpenArc

M

書庫ファイルをオープンし、格納されているファイルの情報が
取り出せるようにします。

*OpenArcchive

CloseArc

M

書庫ファイルをクローズします。

*CloseArchive

Filter

P(r)

検索対象となっているファイル名を示します

該当なし

FindFirst

M

書庫ファイルから指定されたファイル名にマッチする
先頭のファイルを検索します。

*FindFirst

FindNext

M

書庫ファイルから指定されているファイル名にマッチする
次のファイルを検索します。
※事前にFindFirstされている必要があります。

*FindNext

書庫ファイルの情報

ArcName

P(r)

OpenArcされている書庫ファイルの名前

*GetArcFileName

ArcFileLen

P(r)

OpenArcされている書庫ファイルの実際の大きさ

VBのFileLen関数

ArcFileDateTime

P(r)

OpenArcされている書庫ファイルの日時(ファイルシステム)

VBのFileDateTime関数

ArcDateTime

P(r)

OpenArcされている書庫ファイルの日時

*GetArcDate,
*GetArcTime

ArcGetAttr

P(r)

OpenArcされている書庫ファイルの属性

VBのFileAttr関数

ArcIsSFX

P(r)

OpenArcされている書庫ファイルが自己解凍形式であるか

*IsSFXFile

ArcOsType

P(r)

OpenArcされている書庫ファイル作成に使用されたOSの種類

*ArcOSType

FindFirst, FindNextでマッチしたファイル全体の合計情報
  
※すべての検索結果を取得した後にのみ有効になります

ArcOriginalSize

P(r)

FindFirst, FindNextで検索されたファイルの元の大きさの合計。

*GetArcOriginalSize

ArcCompressedSize

P(r)

FindFirst, FindNextで検索されたファイルの圧縮後の大きさの合計。

*GetArcCompressedSize

ArcRatio

P(r)

FindFirst, FindNextで検索されたファイルの合計の圧縮率。

*GetArcRatio

FindFirst, FindNextでマッチしたファイルの情報
  ※ FindFirst,FindNextでファイルが検索されている場合のみ有効になります

FileName

P(r)

格納されているファイルの名前

*GetFileName

OriginalSize

P(r)

       〃       元の大きさ

*GetOriginalSize

CompressedSize

P(r)

       〃       圧縮後の大きさ

*GetCompressedSize

Ratio

P(r)

       〃       圧縮率

*GetRatio

FileTime

P(r)

       〃       作成日時

*GetDate,
*GetTime

FileAttr

P(r)

       〃       属性(文字列)

*GetAttribute

FileAttrInt

P(r)

       〃       属性(数値)

個別情報から取得

FileMode

P(r)

       〃       モード

個別情報から取得

FileCRC

P(r)

       〃       CRC

*GetCRC

FileOSType

P(r)

       〃       OSの種類

*GetOSType

 

先頭に戻る


基本操作系のメソッド・プロパティ

ArcCmd

 

コマンド文字列により各種の書庫操作を行います。
Command(sCmd As Variant, Optional sRes As Variant, Optional hWndHome As Variant = 0) As LONG
処理結果(0:正常終了、0以外:エラー コード集 エラーコードを参照)

引数名

I/O

必須

説明

sCmd

I

各アーカイブDLLのコマンド文字列

 ※ ZIPクラスではZIP32J.DLLのコマンドが実行されます。
   ZIPクラスでUNZIPコマンドを実行するためには
   「/U コマンド文字列」としてください。

SRes

O

 

処理結果を格納するための文字列領域

hWndHome

I

 

UNLHA32.DLLを呼び出すアプリのウィンドウのハンドル

先頭に戻る


ArcCmdRes

  直前に実行されたArcCmdメソッドの処理結果を示します。

  ※ 結果文字列の最大長は32,000です。

 

先頭に戻る


CheckArchive

書庫ファイルとして正しいかどうかをチェックします。
CheckArchive(sArc As Variant, Optional lcMode As Variant = lhaCheck_Rapid) As Long
判定結果
   0以外:書庫ファイル(モードに8を設定した場合には、SFXタイプ)
   0:書庫ファイルではない

引数名

I/O

必須

説明

sArc

I

書庫ファイル

lcMode

I

 

チェックのモード(下の表を参照)

 

設定値

説  明

0

簡易モード

格納ファイルの CRC チェックは行わず,ヘッダのみチェックします。
このモードはFDD上の書庫ファイルで処理に時間が掛かるのを防ぐため最初から3つ目までの
ファイルヘッダについてのみチェックを行います。
また,ヘッダが見つからない場合はファイルの先頭
128K までヘッダの検索を行います。

簡易モード

0 の場合と違ってこちらは全てのファイルヘッダについてチェックします。

2

厳密モード

格納ファイルの CRC もチェックします。ただし,ファイルが書き込まれないだけで展開処理が
行われることになるので実行時間が長くなります。

ここから下は上記フラグと組み合わせて使います

4

破損ヘッダ無視

このフラグを指定すると,破損ヘッダやハフマンコード・エラーを無視して,
それ以降の格納ファイルへのアクセスが可能になります。

8

自己解凍書庫

自己解凍書庫かどうかを確認。通常においては書庫と認識された場合にはTRUEを返しますが,
このフラグを指定すると,自己解凍書庫と認識された場合に自己解凍書庫の種類をあらわす
数値を返します。

16

書庫全体チェック

0を指定した場合に、ヘッダ検索をファイルのすべての領域について行いたい場合に指定します。

先頭に戻る


FileCount

書庫ファイルに格納されたファイルの数を返します。
FileCount(sArc As Variant) As Long
書庫ファイルに格納されたファイルの数
   −1:書庫ファイルがエラー

引数名

I/O

必須

説明

sArc

I

書庫ファイル

先頭に戻る


Ver

対応するアーカイブDLLのバージョンを示します。
Ver.1.27の場合は、1.27を返します。
先頭に戻る
 


CursorInterval

アーカイブDLLのカーソル回転速度(msec)の参照/設定をおこないます。
先頭に戻る


BackGroundMode

アーカイブDLLのバックグラウンドモードの参照/設定をおこないます。
バックグラウンドモードの場合は TRUE 、非バックグラウンドモードの場合は
FALSE です。
先頭に戻る
 


CursorMode

アーカイブDLLのカーソル表示モードの参照/設定をおこないます。
カーソル表示モードの場合は TRUE 、非表示モードの場合は FALSE です。
先頭に戻る


Running

アーカイブDLLが動作中かどうかを現わします。
先頭に戻る
 


ConfigDialog

対応するアーカイブDLLの構成情報ダイアログを表示します。
※ ZIPクラスでは圧縮はZIP32Jの、解凍はUNZIP32のダイアログを表示します。
ConfigDialog (sBuffer As Variant, iMode as Integer, Optional hWndHome As Variant = 0) As Integer
処理結果
 1:設定が完了、0:設定設定が出来なかった(取消など)

引数名

I/O

必須

説明

sBuffer

I/O

レジストリに書き込まれる内容と同様の動作を行う為のコマンド文字列

iMode

I

設定するモード

1:解凍時、2:圧縮時

hWndHome

I

 

DLLを呼び出すアプリのウィンドウのハンドル

 
先頭に戻る


FunctionList

対応するアーカイブDLLで指定された API が使用可能かどうかを返します。
FunctionList (iFunc As Variant) As Long
処理結果
 1:使用可能、0:使用できない

引数名

I/O

必須

説明

iFunc

I

APIをあらわす値

 
先頭に戻る


ファイル情報系のメソッド・プロパティ

OpenArc

書庫ファイルに格納されているファイルの情報を取り出すためのハンドルと書庫ファイルを結び付けます。
※ OpenArc系のメソッド、プロパティはISHクラスではサポートしていません。
OpenArc(sArc As Variant, Optional hWndHome As Variant = 0) As Boolean
処理結果
 True 正常、False:エラー

引数名

I/O

必須

説明

sArc

I

書庫ファイル

hWndHome

I

 

DLLを呼び出すアプリのウィンドウのハンドル

基本操作系のメソッド、プロパティを取得するとCloseArcされます。

 

先頭に戻る


CloseArc

OpenArcで結びつけたハンドルを解放します。
CloseArc()
なし
なし

 

先頭に戻る


Filter

(FindFirstにより)書庫ファイルから検索するように指定されているファイル名

 

先頭に戻る


FindFirst

書庫ファイルから指定された文字列に対応するファイルの先頭を検索する。
FindFirst(Optional sFilter As Variant) As Long
検索結果(0:ファイルを見つけた、-1:ファイルが見つからなかった)

引数名

I/O

必須

説明

sFilter

I

 

検索対象となるファイル
※ワイルドカード(*)が使用できます。

 

先頭に戻る


FindNext

FindFirst以降、書庫ファイルから指定された文字列に対応するファイルを検索する。
FindNext() As Long
検索結果(0:ファイルを見つけた、-1:ファイルが見つからなかった)
なし

 

先頭に戻る


ArcName

OpenArcされている書庫ファイルの名前

 

先頭に戻る


ArcFileLen

OpenArcされている書庫ファイルの大きさ(書庫ファイルそのもの)

 

先頭に戻る


ArcFileDateTime

OpenArcされている書庫ファイルの日付

 

先頭に戻る


ArcDateTime

OpenArcでオープンされている書庫ファイルの日付

 

先頭に戻る


ArcGetAttr

OpenArcされている書庫ファイルの属性(数値)
コード集 ファイル属性を参照
先頭に戻る


ArcIsSFX

OpenArcでオープンされている書庫ファイルが自己解凍形式かを示します。
エラーならば−1。 コード集 SFXタイプを参照
先頭に戻る


ArcOSType

OpenArcでオープンされている書庫ファイルのOSの種類を示す数値。
エラーならば−1。 コード集 OSタイプを参照
 
先頭に戻る


ArcOriginalSize

(検索が終了した後にのみ有効)検索されたファイル全体の元の大きさ

 

先頭に戻る


ArcCompressedSize

(検索が終了した後にのみ有効)検索されたファイル全体の圧縮後の大きさ

 

先頭に戻る


ArcRatio

(検索が終了した後にのみ有効)検索されたファイル全体の圧縮率

 

先頭に戻る


FileName

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの名前

 

先頭に戻る


OriginalSize

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの元の大きさ
先頭に戻る


CompressedSize

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの圧縮後の大きさ
先頭に戻る


Ratio

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの圧縮率

 

先頭に戻る


FileTime

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの日時
先頭に戻る


FileAttr

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの属性をあらわす文字列
先頭に戻る


FileAttrInt

(FindFirst、FindNextで検索され、対象となっている)格納ファイルの属性
コード集 ファイル属性を参照
先頭に戻る


FileMode

(FindFirst、FindNextで検索され、対象となっている)ファイルのモード(実際には変換形式)
先頭に戻る


FileCRC

(FindFirst、FindNextで検索され、対象となっている)ファイルのチェックサム
先頭に戻る


FileOsType

(FindFirst、FindNextで検索され、対象となっている)ファイルのOSの種類
コード集 OSタイプを参照
エラーならば−1。
先頭に戻る


コード集

エラーコード

名称

説  明

ERROR_NOERROR

0

正常終了

■警告 :該当ファイルについての処理をスキップするだけで,基本的に実行を ' 中止することはありません。

ERROR_DISK_SPACE

&H8005&

ディスクの空きが足りません。

ERROR_READ_ONLY

&H8006&

展開先のファイルはリードオンリーです。

ERROR_USER_SKIP

&H8007&

ユーザーによって処理がスキップされました。

ERROR_UNKNOWN_TYPE

&H8008&

 

ERROR_METHOD

&H8009&

 

ERROR_PASSWORD_FILE

&H800A&

 

ERROR_VERSION

&H800B&

 

ERROR_FILE_CRC

&H800C&

格納ファイルのチェックサムが合っていません。

ERROR_FILE_OPEN

&H800D&

ファイルを開けませんでした

ERROR_MORE_FRESH

&H800E&

より新しいファイルが展開先に存在しています。

ERROR_NOT_EXIST

&H800F&

ファイルは展開先に存在していません。

ERROR_ALREADY_EXIST

&H8010&

ファイルは既に存在しています。

ERROR_TOO_MANY_FILES

&H8011&

 

■エラー :致命的なエラーでその時点で実行を中止します。

ERROR_MAKEDIRECTORY

&H8012&

ディレクトリが作成できません。

ERROR_CANNOT_WRITE

&H8013&

書き込みエラーが生じました。

ERROR_HUFFMAN_CODE

&H8014&

格納ファイルのハフマンコードが壊れています。

ERROR_COMMENT_HEADER

&H8015&

 

ERROR_HEADER_CRC

&H8016&

書庫のヘッダのチェックサムが合っていません。

ERROR_HEADER_BROKEN

&H8017&

書庫のヘッダが壊れています。

ERROR_ARC_FILE_OPEN

&H8018&

書庫を開く事が出来ません。

ERROR_NOT_ARC_FILE

&H8019&

書庫のファイル名が指定がされていません。

ERROR_CANNOT_READ

&H801A&

ファイルの読み込み時にエラーが生じました。

ERROR_FILE_STYLE

&H801B&

指定されたファイルは有効なLZH書庫ではありません。

ERROR_COMMAND_NAME

&H801C&

コマンド指定が間違っています。

ERROR_MORE_HEAP_MEMORY

&H801D&

作業用のためのヒープメモリが不足しています。

ERROR_ENOUGH_MEMORY

&H801E&

グローバルメモリが不足しています。

ERROR_ALREADY_RUNNING

&H801F&

既にUNLHA32.DLLが動作中です。

ERROR_USER_CANCEL

&H8020&

ユーザーによって展開を中断されました。

ERROR_HARC_ISNOT_OPENED

&H8021&

UnlhaOpenArchive() で書庫ファイルとハンドルを関連付ける前に
UnlhaFindFirst() 等のAPIを使用されました。

ERROR_NOT_SEARCH_MODE

&H8022&

UnlhaFindFirst() を使用する前に UnlhaFindNext() が呼ばれた。
または,これらを呼び出す前に
UnlhaGetFileName() 等のAPIが呼ばれました。

ERROR_NOT_SUPPORT

&H8023&

UNLHA32.DLLでサポートされていないAPIが使用されました。

ERROR_TIME_STAMP

&H8024&

日付及び時間の指定形式が間違っています。

ERROR_TMP_OPEN

&H8025&

作業ファイルが作成できません。

ERROR_LONG_FILE_NAME

&H8026&

ディレクトリのパスが長すぎます。

ERROR_ARC_READ_ONLY

&H8027&

書き込み専用属性の書庫に対する操作はできません。

ERROR_SAME_NAME_FILE

&H8028&

すでに同じ名前のファイルが書庫に格納されています。

ERROR_NOT_FIND_ARC_FILE

&H8029&

指定されたディレクトリには書庫がありませんでした。

ERROR_RESPONSE_READ

&H802A&

レスポンスファイルの読み込み時にエラーが生じました。

ERROR_NOT_FILENAME

&H802B&

ファイル名の指定が必要です。

ERROR_TMP_COPY

&H802C&

作業ファイルの書庫への書き戻しができませんでした。

ERROR_EOF

&H802D&

書庫のデータが欠落しています。

ERROR_ADD_TO_LARC

&H802E&

このSFXへの書庫操作は行えません。

ERROR_TMP_BACK_SPACE

&H802F&

作業ファイルの書き戻しに必要なディスクの空きがありません。

ERROR_SHARING

&H8030&

ファイルへのアクセスが許可されていません。

ERROR_NOT_FIND_FILE

&H8031&

ファイルが見つかりません。

ERROR_LOG_FILE

&H8032&

ログファイルのエラーです。

ERROR_NO_DEVICE

&H8033&

デバイスが見つかりません。

 

OSタイプ

コード

説明

−1

エラー

MS-DOS

MS-DOS

UNIX

MAC-OS

OS/2

10

その他

11

OS9

12

OS/68K

13

OS/386

14

HUMAN

15

CP/M

16

FLEX

17

Runser

18

WindowsNT

19

Windows95

ファイル属性(数値)

コード

説明

0

通常ファイル

1

読取専用ファイル

2

隠しファイル

4

システムファイル

8

ボリューム・ラベル

16

フォルダ

32

アーカイブ (属性最後にバックアップした後で、変更されたファイル)

SFXタイプ

コード

説明

-1

エラー

0

自己解凍書庫(SFX)ではない

1

LHA'sSFX2.04 以降の small DosSFX

2

LHA'sSFX2.50 以降の small DosSFX

3

LHA'sSFX2.65 以降の small DosSFX

51

LHA'sSFX2.04 以降の large DosSFX

52

LHA'sSFX2.50 以降の large DosSFX

53

LHA'sSFX2.65 以降の large DosSFX

201

SFX by LARC

202

LHarc's SFX(small)

252

LHarc's SFX(large)

1001

'sSFX2.13.w16.1 以降の WinSFX

1002

'sSFX2.13.w16.2 以降の WinSFX

1003

LHA'sSFX2.13.w16.3 WinSFX

1011

.DLL独自の改良版 WinSFXM 2.50

1021

2.55.w16.4 以降

2001

'sSFX2.13.w32.1 以降の WinSFX32

2002

LHA'sSFX2.13.w32.3 WinSFX32

2011

.DLL独自の改良版 WinSFX32M

2012

2.50.w32.6 以降

2051

拡張メニューで作成されるLZHSFX 1.0.0.2 以降のWinSFX32

2052

拡張メニューで作成されるLZHSFX 1.1.0.0 以降のWinSFX32

2101

拡張メニューで作成されるLZHAUTO 0.0.0.2 以降のWinSFX32

2102

拡張メニューで作成されるLZHAUTO 1.0.0.0 以降のWinSFX32

2103

拡張メニューで作成されるLZHAUTO 1.1.0.0 以降のWinSFX32

3001

インストーラ

9901

できない DOS SFX

9911

できない Win16 SFX

9921

できない Win32 SFX

 


連絡先情報

電子メール アドレス
kawai@nippon-rad.co.jp

Web アドレス
http://homepage3.nifty.com/hippo2000

先頭に戻る


感想や意見

このページに関する感想や提案などをメールにてお送りください

先頭に戻る


著作権情報
このプログラム
最終更新日 : 1999/01/18.