home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2000 October
/
VPR0010A.BIN
/
OLS
/
UNRAR32005
/
unrar32005.lzh
/
UNRAR32.API
next >
Wrap
Text File
|
1998-04-03
|
35KB
|
1,083 lines
=====================================================================
UNRAR32.DLL Ver 0.05 API 説明ファイル
=======================================================================
-----------------------------------------------------------------------
int WINAPI Unrar(const HWND hWnd,LPCSTR szCmdLine,LPSTR szOutput,
const DWORD dwSize);
-----------------------------------------------------------------------
順序数 1
機能
解凍を行います。
引数
hWnd UNRAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。
UNRAR32.DLL は実行時にこのウィンドウに対して EnableWin-
dow() を実行しウィンドウの動作を抑制します。ウィンドウ
が存在しないコンソールアプリの場合や,指定する必要のな
い場合は NULL を渡します。
szCmdLine UNRAR32.DLL に渡すコマンド文字列。
szOutput UNRAR32.DLL が結果を返すためのバッファ。グローバルメモリー
等の場合はロックされている必要があります。
dwSize バッファのサイズ。結果が指定サイズを越える場合は、この
サイズに切り詰められます。
サイズが 1 以上であれば、常に最後に NUL 文字が付加されます。
戻り値
正常終了の時 0。
エラーが発生した場合 0 以外の数(エラー値 >= 0x8000:後述)。
また,解凍先に既にファイルがあるなどの理由で解凍をスキップ
した場合などはスキップされたファイルの数を返します。
-----------------------------------------------------------------------
BOOL WINAPI UnrarCheckArchive(LPCSTR szFileName,const int iMode);
-----------------------------------------------------------------------
順序数 12
機能
指定ファイルがサポートしているアーカイブファイルとして正しいかどうかを
返します。
引数
szFileName チェックすべきアーカイブファイルのファイル名。
iMode チェックモード。
CHECKARCHIVE_RAPID(0) 簡易モード。ヘッダのみチェックします。
CHECKARCHIVE_BASIC(1) 簡易モード。0 の場合と違ってこちらは完全な
ヘッダチェックをおこないます。
CHECKARCHIVE_FULLCRC 厳密モード。格納ファイルの CRC 等もチェック
(2) する。
戻り値
TRUE 正しいアーカイブファイルの時。
FALSE ファイルが不正の時。
-----------------------------------------------------------------------
BOOL WINAPI UnrarConfigDialog(const HWND hWnd,LPSTR szOptionBuffer,
const int iMode);
-----------------------------------------------------------------------
順序数 11
機能
解凍のオプション指定ダイアログの表示。Unrar() に渡すコマンドの
オプションを対話的に設定する必要がある時に呼び出してください。
引数
hWnd UNRAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。
szOptionBuffer ダイアログで設定したコマンドラインを格納します。
また、呼び出し時にパラメータを設定すればダイアログの
初期値となります。
必ず513バイト以上の大きさを用意してください。
iMode 圧縮/解凍のどちらに関する設定かの指定。
UNPACK_CONFIG_MODE(1) 解凍(復元)系のコマンド
戻り値
ERROR_ALREADY_RUNNING UNRAR32.DLL が既に実行中の時。
TRUE 設定が成功した時。
FALSE 設定が出来なかった(されなかった)時
または取消終了時。
その他
現在未実装です。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetVersion(VOID);
-----------------------------------------------------------------------
順序数 2
機能
UNRAR32.DLL の現在のバージョンを返します。
戻り値
現在のバージョン 30 -> Version 0.30
100 -> Version 1.00
その他
仕様変更などがあるかもしれませんので、かならずバージョンのチェック
をおこなってください。
-----------------------------------------------------------------------
BOOL WINAPI UnrarGetRunning(VOID);
-----------------------------------------------------------------------
順序数 10
機能
現在 UNRAR32.DLL が動作中か否かを得ます。
アプリケーション側は必ず圧縮/解凍等のファイルアクセスを伴うAPI
を実行する前には、これにより実行可能かをチェックする必要があります。
戻り値
TRUE 実行中です。
FALSE 実行中ではない(実行可能)。
-----------------------------------------------------------------------
BOOL WINAPI UnrarGetBackGroundMode(VOID);
-----------------------------------------------------------------------
順序数 5
機能
UNRAR32.DLL がバックグラウンドモードか否かを得ます。
戻り値
TRUE バックグラウンドモード。
FALSE 非バックグラウンドモード(CPUタイムを占有します)。
-----------------------------------------------------------------------
BOOL WINAPI UnrarSetBackGroundMode(const BOOL bBackGroundMode);
-----------------------------------------------------------------------
順序数 6
機能
UNRAR32.DLL のバックグラウンドモードを設定します。
バックグラウンドで実行しない方が圧縮/解凍の速度は早いですがその場
合タスクを専有します。
Win16、Win32s 以外の環境の場合は非バックグラウンドでも専有しません
ので、FALSE 設定で良いでしょう。
[UNRAR32.DLL]では値は保存しますが、動作に影響はありません。
引数
bBackGroundMode 設定するバックグラウンドモード。
TRUE バックグラウンドモード
FALSE 非バックグラウンドモード
戻り値
TRUE 正常終了(設定できた)。
FALSE 動作中で変更できなかった場合や、引数が間違いの場合。
-----------------------------------------------------------------------
BOOL WINAPI UnrarGetCursorMode(VOID);
-----------------------------------------------------------------------
順序数 7
機能
UNRAR32.DLL の動作中にカーソルを表示するモードか否かを得ます。
戻り値
TRUE カーソル表示モード。
FALSE カーソル非表示モード。
-----------------------------------------------------------------------
BOOL WINAPI UnrarSetCursorMode(const BOOL bCursorMode);
-----------------------------------------------------------------------
順序数 8
機能
UNRAR32.DLL の動作中にカーソルを表示するモードか否かを設定します。
[UNRAR32.DLL]では値は保存しますが、動作に影響はありません。
引数
bCursorMode 設定するカーソルモード。
TRUE カーソル表示モード。
FALSE カーソル非表示モード。
戻り値
TRUE 正常終了。
FALSE 動作中で変更できなかった場合や、引数が間違いの場合。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetCursorInterval(VOID);
-----------------------------------------------------------------------
順序数 3
機能
カーソルの回転速度を得ます。
戻り値
カーソルの回転速度(msec)
-----------------------------------------------------------------------
BOOL WINAPI UnrarSetCursorInterval(const WORD wInterval);
-----------------------------------------------------------------------
順序数 4
機能
カーソルの回転速度を設定します。
ただし、UNRAR32.DLL の動作中には変更できません。
[UNRAR32.DLL]では値は保存しますが、動作に影響はありません。
引数
wInterval カーソルの回転速度(msec)
デフォルトは 80 (msec) です。
戻り値
TRUE 正常終了の場合。
FALSE 動作中で変更できなかった場合。
-----------------------------------------------------------------------
int WINAPI UnrarGetArcFileInfo(LPSTR szFileName, MAININFO *lpMainInfo);
-----------------------------------------------------------------------
順序数 16
機能
格納されているファイルの情報を得ます。
[UNRAR32.DLL]では現在未実装です。
引数
szFileName 情報を取得すべきアーカイブファイルのファイル名。
lpMainInfo 情報を格納する構造体の変数のアドレス。
戻り値
正常終了時に0、異常時にはエラーコード(0以外)が返る。
-----------------------------------------------------------------------
int WINAPI UnrarGetFileCount(LPCSTR szArcFile);
-----------------------------------------------------------------------
順序数 17
機能
指定された書庫ファイルに格納されているファイル数を得ます。
引数
szArcFile 格納ファイル数を得たい書庫ファイル名。
戻り値
格納ファイル数を得る。エラーのときは -1 を返す。
その他
アーカイブファイルがマルチボリュームの場合は、指定されたボリュー
ムのみに格納されているファイル数を得ます。
-----------------------------------------------------------------------
BOOL WINAPI UnrarQueryFunctionList(const int iFunction);
-----------------------------------------------------------------------
順序数 18
機能
指定された API が UNRAR32.DLL で使用可能かどうかを得ます。
アプリケーション側は目的の機能(API)が有効であるかどうか、事前に
チェックするようにしてください。
引数
iFunction API を示す一意な数値。
具体的な数値については UNRAR32.H を参照して下さい。
戻り値
TRUE 使用可能。
FALSE 使用出来ない、または iFunction は無効な値。
-----------------------------------------------------------------------
HARC WINAPI UnrarOpenArchive(const HWND hWnd,LPCSTR szFileName,
const DWORD dwMode);
-----------------------------------------------------------------------
順序数 21
機能
指定ファイルが UNRAR32.DLL に有効な書庫ファイルかどうか調べ、
有効であればオープンし、一意の数値(ハンドル)を返します。
以後の書庫ファイルへのアクセスはこのハンドルでおこないます。
アクセスを終了する時は UnrarCloseArchive 関数を呼ばなければ
なりません。
[UNRAR32.DLL]では現在、dwMode は M_CHECK_ALL_PATH のみがサポ
ートされています。
引数
hWnd UNRAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。
szFileName 書庫ファイル名。
dwMode 処理モードを指定するフラグ。次の値を|(オア)で
組み合わせる。
M_INIT_FILE_USE ARCHIVER.INI の設定を利用する。
M_REGARDLESS_INIT_FILE ARCHIVER.INI の設定を無視する。
M_NOT_USE_TIME_STAMP タイムスタンプ検査を省略する。
M_EXTRACT_REPLACE_FILE 同名のファイルで且つファイルが
新しい場合に解凍する。
M_EXTRACT_NEW_FILE 解凍先にファイルが存在しない場合のみ
解凍する。
M_EXTRACT_UPDATE_FILE ファイルが存在しないか新しいときに
解凍する。
M_CHECK_ALL_PATH ファイル名の検索時に全パスを検索する。
"-s" と同じ。
M_CHECK_FILENAME_ONLY 検索時にファイル名のみを対象とする。
M_CHECK_PATH "-p1" と同様の検索方法を指定する。
M_CHECK_DISK_SIZE 解凍先のディスクの空き容量をチェックする。
M_REGARDLESS_DISK_SIZE 解凍先のディスクの空きをチェックしない。
M_USE_DRIVE_LETTER 格納ファイルのディレクトリ情報について
ドライブ名も利用する。
M_NOT_USE_DRIVE_LETTER 格納ファイルのドライブ名を無視する。
M_INQUIRE_DIRECTORY 新規ディレクトリ作成の確認を行う。
M_NOT_INQUIRE_DIRECTORY 新規ディレクトリ作成の確認を行わない。
M_INQUIRE_WRITE 上書き確認を行う。
M_NOT_INQUIRE_WRITE 上書き確認を行わない。
M_CHECK_READONLY 読み込み専用ファイルを読み飛ばす。
M_REGARDLESS_READONLY 解凍先に読み込み専用ファイルがあっても
解凍を行う。
M_REGARD_E_COMMAND 'E' コマンドと互換の解凍動作とする。
M_REGARD_X_COMMAND 'X' コマンドと互換の解凍動作とする。
M_ERROR_MESSAGE_ON エラー時にメッセージを表示する。
M_ERROR_MESSAGE_OFF エラー時にメッセージを表示しない。
M_BAR_WINDOW_ON 解凍状況ダイアログを表示する。
M_BAR_WINDOWS_OFF 解凍状況ダイアログを表示しない。
M_MAKE_INDEX_FILE 索引ファイルを作成する。
M_NOT_MAKE_INDEX_FILE 索引ファイルを作成しない。
戻り値
指定の書庫ファイルに対応したハンドル。エラー時は NULL を返します。
その他
同時に複数のハンドルを利用する事ができるかどうかは、各DLLに依存。
-----------------------------------------------------------------------
int WINAPI UnrarCloseArchive(HARC hArc);
-----------------------------------------------------------------------
順序数 22
機能
UnrarOpenArchive() で割り付けたハンドルを解放する。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
正常終了時に0、異常時にはエラーコード(0以外)が返る。
-----------------------------------------------------------------------
int WINAPI UnrarFindFirst(HARC hArc,
LPCSTR szWildName,LPINDIVIDUALINFO lpSubInfo);
-----------------------------------------------------------------------
順序数 23
機能
最初の格納ファイルの情報を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
szWildName 検索するファイル名の指定。ワイルドカード指定が
可能とする。
ファイル名はスペース区切りで複数指定が可能。
lpSubInfo 結果を返すための INDIVIDUALINFO 型の構造体へのポイ
ンタ。結果を必要としない場合は NULL を指定する事。
戻り値
0 正常終了。_lpSubInfo で指定された構造体に格納
ファイルの情報がセットされている。
-1 検索終了。
その他
アーカイブファイルがマルチボリュームの場合は、指定されたボリュー
ムのみに格納されているファイルの情報を得ます。
-----------------------------------------------------------------------
int WINAPI UnrarFindNext(HARC hArc,LPINDIVIDUALINFO lpSubInfo);
-----------------------------------------------------------------------
順序数 24
機能
直前の UnrarFindFirst() または UnrarFindNext() の次の格納ファイルの
情報を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
lpSubInfo 結果を返すための INDIVIDUALINFO 型の構造体へのポイ
ンタ。結果を必要としない場合は NULL を指定する事。
戻り値
0 正常終了。_lpSubInfo で指定された構造体に格納
ファイルの情報がセットされている。
-1 検索終了。
その他
アーカイブファイルがマルチボリュームの場合は、指定されたボリュー
ムのみに格納されているファイルの情報を得ます。
-----------------------------------------------------------------------
int WINAPI UnrarExtract(HARC hArc,LPCSTR szFileName,
LPCSTR szDirName, DWORD dwMode);
-----------------------------------------------------------------------
順序数 25
機能
指定されたファイルを解凍する。
[UNRAR32.DLL]では現在未実装です。
引数
hArc UnrarOpenArchive() で返されたハンドル。
szFileName 解凍するファイル名。
_dwMode で指定するモードにより意味が変わる。
szDirName 解凍先のディレクトリ。
最後を \ で終わる必要はない(あっても良い)。
dwMode UnrarOpenArchive() で指定可能なものの他に解凍モー
ドとして、次の値も指定出来る。
EXTRACT_FOUND_FILE 直前の UnrarFindFirst() 等で
マッチしたファイルを解凍。
EXTRACT_NAMED_FILE _szFileName で指定されたファイル
を解凍。
戻り値
正常終了時に0、異常時にはエラーコード(0以外)が返る。
-----------------------------------------------------------------------
int WINAPI UnrarAdd(HARC hArc,LPCSTR szFileName,DWORD dwMode);
-----------------------------------------------------------------------
順序数 26
機能
指定されたファイルを圧縮、現在位置に追加する。
現在位置が同一ファイル名で、且つ古い場合は置き換える。
[UNRAR32.DLL]では現在未実装です。
引数
hArc UnrarOpenArchive() で返されたハンドル。
szFileName 圧縮するファイル名。
_dwMode で指定するモードにより意味が変わる。
dwMode UnrarOpenArchive() で指定可能なものの他に圧縮モー
ドとして、次の値も指定出来る。
戻り値
正常終了時に0、異常時にはエラーコード(0以外)が返る。
-----------------------------------------------------------------------
int WINAPI UnrarMove(HARC hArc,LPCSTR szFileName,DWORD dwMode);
-----------------------------------------------------------------------
順序数 27
機能
[UNRAR32.DLL]では現在未実装です。
-----------------------------------------------------------------------
int WINAPI UnrarDelete(HARC hArc,LPCSTR szFileName,DWORD dwMode);
-----------------------------------------------------------------------
順序数 28
機能
[UNRAR32.DLL]では現在未実装です。
-----------------------------------------------------------------------
int WINAPI UnrarGetArcFileName(HARC hArc,LPCSTR lpBuffer,int nSize);
-----------------------------------------------------------------------
順序数 31
機能
書庫ファイル名を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
lpBuffer ファイル名を格納するバッファ。
nSize バッファのサイズ。
戻り値
正常終了時に0、異常時にはエラーコード(0以外)が返る。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetArcFileSize(HARC hArc);
-----------------------------------------------------------------------
順序数 32
機能
書庫ファイルのサイズを得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
書庫ファイルのサイズ。エラー時には -1 を返す。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetArcOriginalSize(HARC hArc);
-----------------------------------------------------------------------
順序数 33
機能
現時点までの検索(UnrarFindFirst() および UnrarFindNext() )に
マッチしたファイルの(解凍後の)サイズの合計を得る。
UnrarFindNext() の検索が終了した後では、書庫ファイル中の検索で
一致した全ファイルの合計値となる。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
合計サイズ。エラー時には -1 を返す。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetArcCompressedSize(HARC hArc);
-----------------------------------------------------------------------
順序数 34
機能
検索にマッチしたファイルの圧縮サイズの合計を得る。
その他詳細は UnrarGetArcOriginalSize() に準ずる。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
圧縮サイズの合計。エラー時には -1 を返す。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetArcRatio(HARC hArc);
-----------------------------------------------------------------------
順序数 35
機能
検索にマッチしたファイルの全体の圧縮率を得る。
その他詳細は UnrarGetArcOriginalSize() に準ずる。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
全体の圧縮率(パーミル)。エラー時には -1。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetArcDate(HARC hArc);
-----------------------------------------------------------------------
順序数 36
機能
書庫ファイルの日付を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
書庫ファイルの日付。エラー時には -1。
形式は MSDOS のタイムスタンプに準ずる。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetArcTime(HARC hArc);
-----------------------------------------------------------------------
順序数 37
機能
書庫ファイルの時刻を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
書庫ファイルの時刻。エラー時には -1。
形式は MSDOS のタイムスタンプに準ずる。
-----------------------------------------------------------------------
UINT WINAPI UnrarGetArcOSType(HARC hArc);
-----------------------------------------------------------------------
順序数 38
機能
書庫ファイル作成に使用されたOSの種類を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
OSの種類を示す数値。
0 : MS-DOS 1 : PRIMOS 2 : UNIX 3 : AMIGA
4 : MAC-OS 5 : OS/2 6 : APPLE GS 7 : ATARI ST
8 : NEXT 9 : VAX VMS 10: その他。
11: OS9 12: OS/68K 13: OS/386 14: HUMAN
15: CP/M 16: FLEX 17: Runser
18: VM CMS 19: Z SYSTEM 20: TOPS20 21: Windows NTFS
-1: エラー。
-----------------------------------------------------------------------
int WINAPI UnrarIsSFXFile(HARC hArc);
-----------------------------------------------------------------------
順序数 39
機能
書庫ファイルが自己解凍ファイルかどうかを調べる。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
0 通常の書庫ファイル。
1 自己解凍ファイル。
-1 エラー。
-----------------------------------------------------------------------
int WINAPI UnrarGetFileName(HARC hArc,LPCSTR lpBuffer,int nSize);
-----------------------------------------------------------------------
順序数 40
機能
格納ファイルのファイル名を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
lpBuffer ファイル名を格納するバッファ。
nSize バッファのサイズ。
戻り値
正常終了時には0が返され,_lpBuffer にファイル名が格納される。
その他
「格納ファイル」とは、直前の検索(UnrarFindFirst() または
UnrarFindNext() )にマッチしたファイルを示す。
以下の各APIでも同様。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetOriginalSize(HARC hArc);
-----------------------------------------------------------------------
順序数 41
機能
格納ファイルの(解凍後の)サイズを得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルのサイズ。エラー時は -1。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetCompressedSize(HARC harc);
-----------------------------------------------------------------------
順序数 42
機能
格納ファイルの圧縮サイズを得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルの圧縮サイズ。エラー時は -1。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetRatio(HARC hArc);
-----------------------------------------------------------------------
順序数 43
機能
格納ファイルの圧縮率を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルの圧縮率(パーミル)。エラー時は -1。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetDate(HARC hArc);
-----------------------------------------------------------------------
順序数 44
機能
格納ファイルの日付を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルの日付。エラー時は -1。
形式は MSDOS のタイムスタンプに準ずる。
-----------------------------------------------------------------------
WORD WINAPI UnrarGetTime(HARC hArc);
-----------------------------------------------------------------------
順序数 45
機能
格納ファイルの時刻を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルの時刻。エラー時は -1。
形式は MSDOS のタイムスタンプに準ずる。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetWriteTime(HARC _harc)
-----------------------------------------------------------------------
順序数 62
機能
格納ファイルの最終更新日時を得ます。
[UNRAR32.DLL]では現在未実装です。常に-1を返します。
戻り値
格納ファイルの UNIX 形式の UTC による更新日時。エラー時は -1。
注意
後述の UnrarGetCreateTime(),UnrarGetAccessTime() も同様だが,これ
らを保存するヘッダの仕様が正式決定していないので,なるべく使用を控
えること。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetCreateTime(HARC _harc)
-----------------------------------------------------------------------
順序数 63
機能
格納ファイルの作成日時を得ます。
[UNRAR32.DLL]では現在未実装です。常に-1を返します。
戻り値
格納ファイルの UNIX 形式の UTC による作成日時。エラー時は -1。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetAccessTime(HARC _harc)
-----------------------------------------------------------------------
順序数 64
機能
格納ファイルの参照日時を得ます。
[UNRAR32.DLL]では現在未実装です。常に-1を返します。
戻り値
格納ファイルの UNIX 形式の UTC による参照日時。エラー時は -1。
-----------------------------------------------------------------------
DWORD WINAPI UnrarGetCRC(HARC hArc);
-----------------------------------------------------------------------
順序数 46
機能
格納ファイルのチェックコード(CRCやチェックサム等)を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルのチェックコード。エラー時は -1。
-----------------------------------------------------------------------
int WINAPI UnrarGetAttribute(HARC hArc);
-----------------------------------------------------------------------
順序数 47
機能
格納ファイルの属性を得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
格納ファイルの属性。以下の各ビットをオア(|)接続したもの。
エラー時は -1。
0x01 FA_RDONLY 読み込み専用ファイル。
0x02 FA_HIDDEN 不可視属性ファイル。
0x04 FA_SYSTEM システムファイル。
0x08 FA_LABEL ボリュームラベル。
0x10 FA_DIREC ディレクトリ。
0x20 FA_ARCH 保存ビット。
-----------------------------------------------------------------------
UINT WINAPI UnrarGetOSType(HARC hArc);
-----------------------------------------------------------------------
順序数 48
機能
格納ファイルが作成されたOSを得る。
引数
hArc UnrarOpenArchive() で返されたハンドル。
戻り値
OSを示す数値。
詳細は UnrarGetArcOSType() を参照。
-----------------------------------------------------------------------
int WINAPI UnrarExtractMem(const HWND hWnd,LPCSTR szCmdLine,
LPBYTE szBuffer,const DWORD dwSize,time_t *lpTime,
LPWORD lpwAttr,LPDWORD lpdwWriteSize);
-----------------------------------------------------------------------
順序数
機能
メモリバッファへ解凍します。
[UNRAR32.DLL]では未実装です。常にFALSEを返します。
引数
hWnd UNRAR32.DLL を呼び出すアプリのウィンドウのハンドル。
UNRAR32.DLL は実行時にこのウィンドウに対して
EnableWindow() を実行しウィンドウの動作を抑制します。
ウィンドウが存在しないコンソールアプリの場合や,指定
する必要のない場合は NULL を渡します。
szCmdLine UNRAR32.DLL に渡すコマンドの文字列。Unrar() と同じもの
が指定できますが,コマンドは無視されます。
lpBuffer 展開イメージを格納するバッファ。
dwSize バッファのサイズ。UNRAR32.DLL が返す結果のサイズより指
定されたサイズが小さい場合は指定サイズまで出力されます。
lpTime 解凍されたファイルの UTC でのタイムスタンプを得ます。
必要ない場合は NULL を指定します。
lpwAttr 解凍されたファイルの属性を得ます。 必要ない場合は NULL
を指定します。
lpdwWriteSize 解凍の結果書き込まれたサイズを得ます。必要ない場合は
NULL を指定します。
戻り値
正常終了の時 0。
エラーが発生した場合 0 以外の数。
その他
API の性格上,書庫やファイル名にワイルドカードを使うのは無意味と思
われます。
-----------------------------------------------------------------------
int WINAPI UnrarCompressMem(const HWND hWnd,LPCSTR szCmdLine,
const LPBYTE szBuffer,const DWORD dwSize,
const time_t *lpTime,const LPWORD lpwAttr,
LPDWORD lpdwWriteSize);
-----------------------------------------------------------------------
順序数
機能
メモリバッファの内容を圧縮して書庫に格納します。
[UNRAR32.DLL]では未実装です。常に-1を返します。
引数
hWnd UNRAR32.DLL を呼び出すアプリのウィンドウのハンドル。
UNRAR32.DLL は実行時にこのウィンドウに対して
EnableWindow() を実行しウィンドウの動作を抑制します。
ウィンドウが存在しないコンソールアプリの場合や,指定
する必要のない場合は NULL を渡します。
szCmdLine UNRAR32.DLL に渡すコマンドの文字列。ファイル名として指
定したものが格納時の名前になります。
lpBuffer 圧縮するイメージを格納したバッファ。
dwSize イメージのサイズ。
lpTime 格納する時刻を UTC で指定します。NULL を指定すると圧縮
を行った時点の時刻が使用されます。
lpwAttr 格納する属性を指定します。NULL を指定すると FA_ARCH と
みなされます。
lpdwWriteSize 圧縮後のサイズを得ます。必要ないときは NULL を指定しま
す。
戻り値
正常終了の時 0。
エラーが発生した場合 0 以外の数。
その他
API の性格上,書庫やファイル名にワイルドカードを使うのは無意味と思
われます。
-----------------------------------------------------------------------
BOOL WINAPI UnrarSetOwnerWindow(HWND hWnd);
-----------------------------------------------------------------------
順序数 90
機能
UNRAR32.DLL のメッセージの送信先ウィンドウを設定します。
UNRAR32.DLL はここで指定されたウィンドウに解凍状況等を知らせる
メッセージを送信します。
メッセージの詳細については、下記「ウィンドウズ・メッセージ」を参照。
引数
hWnd オーナーウィンドウに指定するウィンドウのハンドル
戻り値
正常終了の場合 TRUE を返します。
動作中で変更できなかった場合や, 既にこの API で別のウィンドウが
設定されている場合には FALSE を返します。
-----------------------------------------------------------------------
BOOL WINAPI UnrarClearOwnerWindow(VOID);
-----------------------------------------------------------------------
順序数 91
機能
UnrarSetOwnerWindow() で設定したウィンドウの設定を解除します。
戻り値
正常終了の場合 TRUE を返します。
動作中で変更できなかった場合やには FALSE を返します。
-----------------------------------------------------------------------
BOOL WINAPI UnrarSetOwnerWindowEx(HWND hWnd,LPARCHIVERPROC lpArcProc)
-----------------------------------------------------------------------
順序数 92
機能
UNRAR32.DLL の解凍状況を受け取るためのコールバック関数の指定を行
います。lpArcProc に NULL を指定すると hWnd で指定したウィンドウ
に メッセージを送出します(UnrarSetOwnerWindow(hWnd)と同じ)。
戻り値
正常終了の場合 TRUE を返します。
動作中で変更できなかった場合や, 既にこの API で別のウィンドウが
設定されている場合には FALSE を返します。
-----------------------------------------------------------------------
BOOL WINAPI UnrarKillOwnerWindowEx(HWND hWnd)
-----------------------------------------------------------------------
順序数 93
機能
UnrarSetOwnerWindowEx() で設定したウィンドウの設定を解除します。
戻り値
正常終了の場合 TRUE を返します。
動作中で変更できなかった場合や指定した hWnd が現在の設定と一致
しない場合には FALSE を返します。
-----------------------------------------------------------------------
INDIVIDUALINFO の構造
-----------------------------------------------------------------------
構造体定義
typedef struct {
char szFileName[FNAME_MAX + 1];
UINT uFlag;
DWORD dwOriginalSize;
DWORD dwCompressedSize;
WORD wRatio;
WORD wDate;
WORD wTime;
DWORD dwCRC;
char szAttribute[5];
char szMode[8];
UINT uOSType;
} INDIVIDUALINFO;
メンバの説明
szFileName アーカイブファイル名。
uFlag 解凍やテストを行った場合,格納ファイル毎の
処理結果が返される。 コードは Unarj() が返
すものと同じ。その他の場合は0。
dwOriginalSize ファイルのサイズ。
dwCompressedSize 圧縮後のサイズ。
wRatio 圧縮率。ただし,パーミルで表してある。
wDate 格納ファイルの日付。
wTime 格納ファイルの時刻。
dwCRC 格納ファイルのチェックサム用 CRC。
szAttribute 格納ファイルの属性。LHA.DLL と同じ。
szMode 格納ファイルの格納モード。
uOSType このファイルの作成に使われたOS。
-----------------------------------------------------------------------
ウィンドウズ・メッセージ
-----------------------------------------------------------------------
●wm_arcextract
wm_arcextract
nMode = (int)wParam /* 通知モードを表す */
lpEis = (LPEXTRACTINGINFO)lParam /* 構造体を指すポインタ */
wm_arcextract メッセージは,UnrarSetOwnerWindow() で設定したウィンドウ
に UNRAR32.DLL から送られます。
このメッセージを受け取ることにより UNRAR32.DLL がこれから処理する格納ファ
イル名やファイルサイズ等を得ることができます。
nMode wParam の値です。UNRAR32.DLL の処理の状態を表します。
0 : 該当ファイルの処理を開始することを表します。
1 : 該当ファイルの展開中であることを表します。
2 : 処理を終え,lpEis のメモリを開放しようとしていることを表します。
lpEis lParam の値です。 ファイル名等を格納する EXTRACTINGINFO
構造体を指すポインタです。
戻り値
このメッセージを処理するアプリケーションは、FALSEを返さなければなりません。
FALSE 以外を返すことにより,UNRAR32.DLL の解凍処理を中止させることができます。
-----------------------------------------------------------------------
コールバック関数
-----------------------------------------------------------------------
UNRAR32.DLL の解凍状況に応じて、UnrarSetOwnerWindowEx() で設定したコールバック
関数が呼ばれます。
このコールバック関数に渡される引数により、UNRAR32.DLL がこれから処理する格納
ファイル名やファイルサイズ等を得ることができます。
typedef BOOL CALLBACK ARCHIVERPROC(HWND hWnd,UINT uMsg,
UINT nMode,LPEXTRACTINGINFOEX lpEis);
hWnd SetOwnerWindowEx で指定したウィンドウハンドルが渡され
ます。
uMsg 現在のところは wm_arcextract となります。
nMode wm_arcextract の wParam,つまり nMode と同じ意味です。
lpEis EXTRACTINGINFOEX 構造体へのポインタです。格納ファイルに
関する情報が得られます。
ARCHIVERPROC は UNRAR32.DLL に処理を継続させるときは TRUE、中止させるときは
FALSE を返さなければなりません。
-----------------------------------------------------------------------
EXTRACTINGINFO の構造
-----------------------------------------------------------------------
構造体定義
typedef struct {
char szSourceFileName[FNAME_MAX + 1];
char szDestFileName[FNAME_MAX + 1];
DWORD dwFileSize;
DWORD dwWriteSize;
} EXTRACTINGINFO
メンバの説明
szSourceFileName 処理を行う格納ファイル名。
szDestFileName 実際に書き込まれるパス名。
dwFileSize 格納ファイルのサイズ。
dwWriteSize 解凍処理で書き込んだサイズ。
------------------------------------------------------------------------
処理の流れ
------------------------------------------------------------------------
解凍される格納ファイルごとに次の1・2を繰り返す。
1.nMode 0 でメッセージを送出。ファイル名等を得られる。
2.nMode 1 でメッセージを送出。書き込みサイズが得られる。そのファイルに
ついての解凍処理が終了するまで,このメッセージを送出し続ける。
すべての処理が終了した時点で(解凍状況表示を消すタイミング),
3.nMode 2 でメッセージを送出。
-----------------------------------------------------------------------
API の返すエラーコード
-----------------------------------------------------------------------
■警告 :該当ファイルについての処理をスキップするだけで実行を中止する事
はない。
ERROR_DISK_SPACE
解凍する為のディスクの空きが足りません。
ERROR_READ_ONLY
解凍先のファイルはリードオンリーです。
ERROR_USER_SKIP
ユーザーによって解凍をスキップされました。
ERROR_UNKOWN_TYPE
格納ファイルの種類が MS-DOS で扱える形式(BINARY 及び TEXT)以外で
す。
ERROR_METHOD
UNRAR32.DLL で扱えない格納モードで格納されています。
ERROR_PASSWORD_FILE
格納ファイルにパスワードがかかっています。
ERROR_VERSION
格納ファイルが UNRAR32.DLL が対応していないバージョンの形式です。
ERROR_FILE_CRC
格納ファイルのチェックサムが合っていません。
ERROR_FILE_OPEN
解凍時にファイルを開けませんでした。
ERROR_MORE_FRESH
より新しいファイルが解凍先に存在しています。
ERROR_NOT_EXIST
ファイルは解凍先に存在していません。
ERROR_ALREADY_EXIT
ファイルが解凍先に既に存在しています。
ERROR_TOO_MANY_FILES
格納ファイル数が限界を越えている。処理は正常に行われているが,限界
を越えた部分については情報は得られていない。
■エラー :致命的なエラーでその時点で実行を中止する。
ERROR_DIRECTORY
ディレクトリが作成できません。
ERROR_CANNOT_WRITE
解凍中に書き込みエラーが生じました。
ERROR_HUFFMAN_CODE
アーカイブファイルのハフマンコードが壊れています。
ERROR_COMMENT_HEADER
アーカイブファイルのコメントヘッダが壊れています。
ERROR_HEADER_CRC
アーカイブファイルのヘッダのチェックサムが合っていません。
ERROR_HEADER_BROKEN
アーカイバファイルのヘッダが壊れています。
ERROR_ARCHIVE_FILE_OPEN
アーカイブファイルを開く事が出来ません。
ERROR_NOT_ARCHIVE_FILE
指定したファイルは、アーカイブファイルではありません。
ERROR_CANNOT_READ
アーカイブファイルの読み込み時に読み込みエラーが出ました。
ERROR_FILE_STYLE
指定されたファイルは、アーカイブファイルではありません。
ERROR_COMMAND_NAME
コマンド指定が間違っています。
ERROR_MORE_HEAP_MEMORY
作業用のためのヒープメモリが不足しています。
ERROR_ENOUGH_MEMORY
グローバルメモリが不足しています。
ERROR_ALREADY_RUNNING
既に別のプロセスから UNRAR32.DLL が呼ばれています。
-----------------------------------------------------------------------
注意
-----------------------------------------------------------------------
今後仕様変更される事があります。
=======================================================================