by Hippo2000 (1999/1/20)
KBA.DLLをダウンロードしていただきありがとうございます。
まだまだ内容も不完全なら、ドキュメントも不完全なのでご迷惑をお掛けするかと思いますが。
一つよろしくお願いします。
KBA.DLLでは各アーカイブDLLに対応して以下のクラスが生成できます。
|
クラス名 |
対応するDLL |
説 明 |
|
Manager |
なし |
全体のチェックを行うためのクラスです。 |
|
UNLHA |
UNLHA32.DLL |
LHA形式の書庫ファイルを操作するためのクラスです。 |
|
ZIP |
UNZIP32.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")
とします。
このクラスはKBA自体のバージョンや他のクラスが使用可能であるかなどKBA全体を管理する
クラスです。
|
メソッド名 |
種類 |
説 明 |
呼び出し |
|
Ver |
P(r) |
KBAのバージョンを返します。 |
|
|
ArcClass |
M |
指定されたクラスを作成します。 |
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系のメソッド・プロパティには対応していません。
|
メソッド名 |
種類 |
説 明 |
対応する |
| 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 |
M |
書庫ファイルをオープンし、格納されているファイルの情報が |
*OpenArcchive |
| CloseArc |
M |
書庫ファイルをクローズします。 |
*CloseArchive |
| Filter |
P(r) |
検索対象となっているファイル名を示します |
該当なし |
| FindFirst |
M |
書庫ファイルから指定されたファイル名にマッチする |
*FindFirst |
| FindNext |
M |
書庫ファイルから指定されているファイル名にマッチする |
*FindNext |
|
書庫ファイルの情報 |
|||
| ArcName |
P(r) |
OpenArcされている書庫ファイルの名前 |
*GetArcFileName |
| ArcFileLen |
P(r) |
OpenArcされている書庫ファイルの実際の大きさ |
VBのFileLen関数 |
| ArcFileDateTime |
P(r) |
OpenArcされている書庫ファイルの日時(ファイルシステム) |
VBのFileDateTime関数 |
| ArcDateTime |
P(r) |
OpenArcされている書庫ファイルの日時 |
*GetArcDate, |
| 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でマッチしたファイルの情報 |
|||
| FileName |
P(r) |
格納されているファイルの名前 |
*GetFileName |
| OriginalSize |
P(r) |
〃 元の大きさ |
*GetOriginalSize |
| CompressedSize |
P(r) |
〃 圧縮後の大きさ |
*GetCompressedSize |
| Ratio |
P(r) |
〃 圧縮率 |
*GetRatio |
| FileTime |
P(r) |
〃 作成日時 |
*GetDate, |
| FileAttr |
P(r) |
〃 属性(文字列) |
*GetAttribute |
| FileAttrInt |
P(r) |
〃 属性(数値) |
個別情報から取得 |
| FileMode |
P(r) |
〃 モード |
個別情報から取得 |
| FileCRC |
P(r) |
〃 CRC |
*GetCRC |
| FileOSType |
P(r) |
〃 OSの種類 |
*GetOSType |
コマンド文字列により各種の書庫操作を行います。
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のコマンドが実行されます。 |
|
SRes |
O |
|
処理結果を格納するための文字列領域 |
|
hWndHome |
I |
|
UNLHA32.DLLを呼び出すアプリのウィンドウのハンドル |
直前に実行されたArcCmdメソッドの処理結果を示します。
※ 結果文字列の最大長は32,000です。
書庫ファイルとして正しいかどうかをチェックします。
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 までヘッダの検索を行います。 |
|
1 |
簡易モード |
0 の場合と違ってこちらは全てのファイルヘッダについてチェックします。 |
|
2 |
厳密モード |
格納ファイルの CRC もチェックします。ただし,ファイルが書き込まれないだけで展開処理が行われることになるので実行時間が長くなります。 |
|
ここから下は上記フラグと組み合わせて使います |
||
|
4 |
破損ヘッダ無視 |
このフラグを指定すると,破損ヘッダやハフマンコード・エラーを無視して, |
|
8 |
自己解凍書庫 |
自己解凍書庫かどうかを確認。通常においては書庫と認識された場合にはTRUEを返しますが, |
|
16 |
書庫全体チェック |
0を指定した場合に、ヘッダ検索をファイルのすべての領域について行いたい場合に指定します。 |
書庫ファイルに格納されたファイルの数を返します。
FileCount(sArc As Variant) As Long
書庫ファイルに格納されたファイルの数
−1:書庫ファイルがエラー
|
引数名 |
I/O |
必須 |
説明 |
|
sArc |
I |
○ |
書庫ファイル |
対応するアーカイブDLLのバージョンを示します。
Ver.1.27の場合は、1.27を返します。
- ZIPクラスではZIP32J.DLLのバージョンを返します。
UNZIP32.DLLのバージョンはVerUnZipプロパティで返します。
これはZIPクラスにのみ定義されています。
アーカイブDLLのカーソル回転速度(msec)の参照/設定をおこないます。
アーカイブDLLのバックグラウンドモードの参照/設定をおこないます。
バックグラウンドモードの場合は TRUE 、非バックグラウンドモードの場合は
FALSE です。
アーカイブDLLのカーソル表示モードの参照/設定をおこないます。
カーソル表示モードの場合は TRUE 、非表示モードの場合は FALSE です。
アーカイブDLLが動作中かどうかを現わします。
対応するアーカイブ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を呼び出すアプリのウィンドウのハンドル |
対応するアーカイブDLLで指定された API が使用可能かどうかを返します。
FunctionList (iFunc As Variant) As Long
処理結果
1:使用可能、0:使用できない
|
引数名 |
I/O |
必須 |
説明 |
|
iFunc |
I |
○ |
APIをあらわす値 |
書庫ファイルに格納されているファイルの情報を取り出すためのハンドルと書庫ファイルを結び付けます。
※ OpenArc系のメソッド、プロパティはISHクラスではサポートしていません。
OpenArc(sArc As Variant, Optional hWndHome As Variant = 0) As Boolean
処理結果
True 正常、False:エラー
|
引数名 |
I/O |
必須 |
説明 |
|
sArc |
I |
○ |
書庫ファイル |
|
hWndHome |
I |
|
DLLを呼び出すアプリのウィンドウのハンドル |
基本操作系のメソッド、プロパティを取得するとCloseArcされます。
OpenArcで結びつけたハンドルを解放します。
CloseArc()
なし
なし
(FindFirstにより)書庫ファイルから検索するように指定されているファイル名
書庫ファイルから指定された文字列に対応するファイルの先頭を検索する。
FindFirst(Optional sFilter As Variant) As Long
検索結果(0:ファイルを見つけた、-1:ファイルが見つからなかった)
|
引数名 |
I/O |
必須 |
説明 |
|
sFilter |
I |
|
検索対象となるファイル |
FindFirst以降、書庫ファイルから指定された文字列に対応するファイルを検索する。
FindNext() As Long
検索結果(0:ファイルを見つけた、-1:ファイルが見つからなかった)
なし
OpenArcされている書庫ファイルの名前
OpenArcされている書庫ファイルの大きさ(書庫ファイルそのもの)
OpenArcされている書庫ファイルの日付
OpenArcでオープンされている書庫ファイルの日付
OpenArcされている書庫ファイルの属性(数値)
コード集 ファイル属性を参照
OpenArcでオープンされている書庫ファイルが自己解凍形式かを示します。
エラーならば−1。 コード集 SFXタイプを参照
OpenArcでオープンされている書庫ファイルのOSの種類を示す数値。
エラーならば−1。 コード集 OSタイプを参照
(検索が終了した後にのみ有効)検索されたファイル全体の元の大きさ
(検索が終了した後にのみ有効)検索されたファイル全体の圧縮後の大きさ
(検索が終了した後にのみ有効)検索されたファイル全体の圧縮率
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの名前
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの元の大きさ
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの圧縮後の大きさ
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの圧縮率
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの日時
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの属性をあらわす文字列
(FindFirst、FindNextで検索され、対象となっている)格納ファイルの属性
コード集 ファイル属性を参照
(FindFirst、FindNextで検索され、対象となっている)ファイルのモード(実際には変換形式)
(FindFirst、FindNextで検索され、対象となっている)ファイルのチェックサム
(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& |
デバイスが見つかりません。 |
|
コード |
説明 |
|
−1 |
エラー |
|
0 |
MS-DOS |
|
0 |
MS-DOS |
|
2 |
UNIX |
|
4 |
MAC-OS |
|
5 |
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 |
アーカイブ (属性最後にバックアップした後で、変更されたファイル) |
|
コード |
説明 |
|
-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 |
電子メール
アドレスこのページに関する感想や提案などを
メールにてお送りください。