home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2002 May / VPR0205A.ISO / OLS / BGA32034 / bga32034.lzh / Bga32Api.txt < prev    next >
Text File  |  2001-04-15  |  25KB  |  639 lines

  1. =======================================================================
  2.                Bga32.dll version 0.34 API 説明ファイル
  3.                                                               木村 利靖
  4.                                                        Toshinobu Kimura
  5. =======================================================================
  6.  
  7. このファイルは、BGA32.DLLでサポートされているAPIに関する説明ファイルです。
  8. アーカイバ DLL の API に準拠してありますが、すべての API をサポートしている
  9. わけではありません。
  10. 各 API について、以下のように分類されます。
  11.  
  12.     ◎...完全にサポート
  13.     ○...一部仕様を満たしていない
  14.  
  15. なお、記載していない API は現状では実装されていません。
  16.  
  17. =======================================================================
  18. LHA.DLL 互換 API
  19. =======================================================================
  20.  
  21. -----------------------------------------------------------------------
  22. ○ int WINAPI Bga( const HWND hWnd, LPCSTR pCmdLine,
  23.                    LPSTR pOutput, const DWORD dwSize );
  24. -----------------------------------------------------------------------
  25. 順序数  1
  26. 機能
  27.     圧縮/解凍を行います。
  28.  
  29. 引数
  30.     hWnd        BGA32.DLL を呼び出すアプリのウィンドウ・ハンドル。
  31.             BGA32.DLL は実行時にこのウィンドウに対して EnableWin-
  32.             dow() を実行しウィンドウの動作を抑制します。ウィンドウ
  33.             が存在しないコンソールアプリの場合や,指定する必要のな
  34.             い場合は NULL を渡します。
  35.     pCmdLine   BGA32.DLL に渡すコマンド文字列。
  36.     pOutput    BGA32.DLL が結果を返すためのバッファ。グローバルメモリ
  37.             等の場合はロックされている必要があります。
  38.             サイズに制限はありません。
  39.             ※現状では、無効です。バッファには何も返しません。
  40.     dwSize      バッファのサイズ。結果が指定サイズを越える場合は、この
  41.             サイズに切り詰められます。
  42.             結果がこのサイズより小さい場合は、最後に NULL 文字が
  43.             付加されます。(最低1文字のみが保証される)
  44.             バッファのサイズいっぱいの場合等、NULL 文字がどこにもない
  45.             可能性がある点に留意のこと。
  46.             ※現状では、無効です。
  47.  
  48. 戻り値
  49.   正常終了の時          0
  50.   エラーが発生した場合  0 以外の数(エラー値 >= 0x8000:後述)。
  51.  
  52.         なお、解凍先に既にファイルがあるなどの理由で解凍をスキップ
  53.         した場合でも 0 を返します。
  54.  
  55. -----------------------------------------------------------------------
  56. ◎ WORD WINAPI BgaGetVersion()
  57. -----------------------------------------------------------------------
  58. 順序数  2
  59. 機能
  60.     BGA32.DLL のバージョンを返します。
  61.  
  62. 戻り値
  63.     現在のバージョン     34 -> version 0.34
  64.                         100 -> version 1.00
  65.  
  66. その他
  67.     仕様変更等への対応を考慮して,バージョンのチェックを推奨します。
  68.  
  69. -----------------------------------------------------------------------
  70. ◎ BOOL WINAPI BgaGetRunning()
  71. -----------------------------------------------------------------------
  72. 順序数  10
  73. 機能
  74.     現在 BGA32.DLL が動作中かどうかを返します。
  75.  
  76. 戻り値
  77.     実行中であれば TRUE を返します。
  78.     実行中でなければ FALSE を返します。
  79.  
  80.  
  81. =======================================================================
  82. LHA.DLL 非互換 API
  83. =======================================================================
  84.  
  85. -----------------------------------------------------------------------
  86. ○ BOOL WINAPI BgaCheckArchive( LPCSTR pFileName, const int iMode )
  87. -----------------------------------------------------------------------
  88. 順序数  11
  89. 機能
  90.     指定ファイルが BGA32.DLL が扱える書庫かどうかを調査します。
  91.  
  92. 引数
  93.     pFileName   チェックすべき書庫のファイル名。
  94.     iMode       チェックモード。
  95.       CHECKARCHIVE_RAPID    簡易モード。最初から3つ目までのヘッダのみ
  96.                 チェックします。
  97.       CHECKARCHIVE_BASIC    簡易モード。すべてのファイルヘッダについて
  98.                 チェックします。
  99.  
  100.       現状、BGA32.DLL では他のチェックモードは指定できません。
  101.  
  102. 戻り値
  103.     FALSE      : ファイルが書庫ではないか、チェックモードが不正のとき
  104.     FALSE 以外 : .GZA / .BZA ファイルのとき
  105.                  ※ 現状では暫定で以下の値を返しています。
  106.                     1 : .GZA ファイルのとき
  107.                     2 : .BZA ファイルのとき
  108.  
  109. -----------------------------------------------------------------------
  110. ○ BOOL WINAPI BgaConfigDialog( const HWND hWnd, LPSTR pOption,
  111.                                 const int iMode )
  112. -----------------------------------------------------------------------
  113. 順序数  12
  114. 機能
  115.     コマンドラインでスイッチが指定されなかった場合の動作を既定します。
  116.     「個別ファイル名の変更[ -f ]」以外のすべてのスイッチを設定可能です。
  117.     ここで指定した設定とコマンドラインで指定されたスイッチを組み合わせた
  118.     結果で動作を決定します。
  119.     ただし、コマンドラインでの指定が優先されます。
  120.     設定は レジストリの Software\ArchiverDll\Bga32 以下に書き込まれます。
  121.  
  122. 引数
  123.     hWnd        BGA32.DLL を呼び出すアプリのウィンドウのハンドル。
  124.     pOption     レジストリに書き込まれる内容と同様の動作を行うコマンド
  125.                 文字列を得るためのバッファのポインタ。
  126.                 バッファサイズは 513 バイト以上確保してください。
  127.                 コマンド文字列を必要としない場合は NULL を指定してください。
  128.     iMode       展開時と格納時のどちらについてのものかを指定します。
  129.                 ただし、BGA32.DLL ではこの指定は無視されます。
  130.  
  131.                 UNPACK_CONFIG_MODE  1   展開時についてのスイッチを指定。
  132.                 PACK_CONFIG_MODE    2   格納時についてのスイッチを指定。
  133.  
  134. 戻り値
  135.     BGA32.DLL が既に実行中の時      ERROR_ALREADY_RUNNING
  136.     設定が成功した時                TRUE
  137.     キャンセル時                    FALSE
  138.  
  139. -----------------------------------------------------------------------
  140. ◎ int WINAPI BgaGetFileCount( LPCSTR pArcFile )
  141. -----------------------------------------------------------------------
  142. 順序数  17
  143. 機能
  144.     指定された書庫ファイルに格納されているファイル数を取得します。
  145.  
  146. 引数
  147.     pArcFile    格納ファイル数を得たい書庫ファイル名
  148.  
  149. 戻り値
  150.     >= 0    格納ファイル数
  151.     -1      エラー
  152.  
  153. その他
  154.     内部的には  CHECKARCHIVE_BASIC モードで BgaCheckArchive() を呼び
  155.     出しています。(^^;
  156.  
  157. -----------------------------------------------------------------------
  158. ○ BOOL WINAPI BgaQueryFunctionList( const int iFunction )
  159. -----------------------------------------------------------------------
  160. 順序数  18
  161. 機能
  162.     指定された API が使用可能かどうかを調べます。
  163.  
  164. 引数
  165.     iFunction   API を示す数値。具体的な数値については BGA32API.H を
  166.                 参照して下さい。
  167.  
  168. 戻り値
  169.     TRUE    API が使用可能
  170.     FALSE   API が使用不可、または iFunction が無効な値
  171.  
  172.  
  173. =======================================================================
  174. OpenArchive 系 API
  175. =======================================================================
  176.  
  177. -----------------------------------------------------------------------
  178. ○ HARC WINAPI BgaOpenArchive( const HWND hWnd, LPCSTR pFileName,
  179.                                const DWORD dwMode )
  180. -----------------------------------------------------------------------
  181. 順序数  21
  182. 機能
  183.     ハンドルと書庫ファイルを結び付けます。
  184.  
  185. 引数
  186.     hWnd        BGA32.DLL を呼び出すアプリのウィンドウのハンドル
  187.     pFileName   書庫ファイル名。書庫ファイル名はひとつだけ指定できます。
  188.     dwMode      BgaFindFirst() 等の処理のモード
  189.  
  190.             M_CHECK_ALL_PATH        ファイル名の検索時に全パスを検索する。
  191.             M_CHECK_FILENAME_ONLY   検索時にファイル名のみを対象とする。
  192.             0                       M_CHECK_FILENAME_ONLY と同等
  193.  
  194.             現状では他のモードはサポートしていません。
  195.  
  196. 戻り値
  197.     指定の書庫ファイルに対応したハンドル。エラー時は NULL を返します。
  198.  
  199. 注意
  200.     現バージョンでは,同時に複数のハンドルを利用する事はできません。(^^;
  201.  
  202. -----------------------------------------------------------------------
  203. ◎ int WINAPI BgaCloseArchive( HARC hArc )
  204. -----------------------------------------------------------------------
  205. 順序数  22
  206. 機能
  207.     BgaOpenArchive() で割り付けたハンドルを解放します。
  208.     BGA32.DLL では、DLL のアンロード時に自動的にハンドルを解放しません
  209.     ので、アクセス終了時にはかならずこの API を呼び出してください。
  210.  
  211. 引数
  212.     hArc        BgaOpenArchive() で返されたハンドル。
  213.  
  214. 戻り値
  215.     常に 0 を返します。
  216.  
  217. -----------------------------------------------------------------------
  218. ○ int WINAPI BgaFindFirst( HARC hArc, LPCSTR pWildName,
  219.                             LPINDIVIDUALINFO pSubInfo )
  220. -----------------------------------------------------------------------
  221. 順序数  23
  222. 機能
  223.     最初の格納ファイルの情報を取得します。
  224.  
  225. 引数
  226.     hArc        BgaOpenArchive() で返されたハンドル
  227.     pWildName   検索するファイル名。ファイル名はひとつだけ指定できます。
  228.     pSubInfo    結果を返すための INDIVIDUALINFO 型の構造体へのポインタ。
  229.                 結果を必要としない場合は NULL を指定できます。
  230.  
  231. 戻り値
  232.     0       正常終了。pSubInfo で指定された変数に格納ファイルの情報が
  233.             設定されます。
  234.     -1      検索終了。
  235.  
  236. -----------------------------------------------------------------------
  237. ○ int WINAPI BgaFindNext( HARC hArc, LPINDIVIDUALINFO pSubInfo )
  238. -----------------------------------------------------------------------
  239. 順序数  24
  240. 機能
  241.     2 番目以降の格納ファイルの情報を取得します。
  242.  
  243. 引数
  244.     hArc        UnlhaOpenArchive() で返されたハンドル。
  245.     pSubInfo    結果を返すための INDIVIDUALINFO 型の構造体へのポインタ。
  246.                 結果を必要としない場合は NULL を指定できます。
  247.  
  248. 戻り値
  249.     0       正常終了。pSubInfo で指定された変数に格納ファイルの情報が
  250.             設定されます。
  251.     -1      検索終了。
  252.  
  253. -----------------------------------------------------------------------
  254. ◎ DWORD WINAPI BgaGetArcOriginalSize( HARC hArc )
  255. -----------------------------------------------------------------------
  256. 順序数  33
  257. 機能
  258.     検索にマッチしたファイルのサイズの合計を得ます。BgaFindNext() を
  259.     呼び出した後でないと返却値に意味はありません。検索中の場合はそ
  260.     れまでにマッチしたファイルのサイズの合計となります。
  261.  
  262. 戻り値
  263.     合計サイズ。エラー時には -1 を返します。
  264.  
  265. -----------------------------------------------------------------------
  266. ◎ DWORD WINAPI BgaGetArcCompressedSize( HARC hArc )
  267. -----------------------------------------------------------------------
  268. 順序数  34
  269. 機能
  270.     検索にマッチしたファイルの圧縮サイズの合計を得ます。BgaFindNext() を
  271.     呼び出した後でないと返却値に意味はありません。検索中の場合はそ
  272.     れまでにマッチしたファイルのサイズの合計となります。
  273.  
  274.  
  275. 戻り値
  276.     圧縮サイズの合計。エラー時には -1 を返します。
  277.  
  278. -----------------------------------------------------------------------
  279. ◎ WORD WINAPI BgaGetArcRatio( HARC hArc )
  280. -----------------------------------------------------------------------
  281. 順序数  35
  282. 機能
  283.     検索にマッチしたファイルの全体の圧縮率を得ます。BgaFindNext() を
  284.     呼び出した後でないと返却値に意味はありません。検索中の場合はそ
  285.     れまでにマッチしたファイルでの圧縮率となります。
  286.  
  287.  
  288. 戻り値
  289.     パーミル (千分率) で現された圧縮率。エラー時には -1 を返します。
  290.  
  291. -----------------------------------------------------------------------
  292.     INDIVIDUALINFO の構造
  293. -----------------------------------------------------------------------
  294. 構造体定義
  295.  
  296.         typedef struct {
  297.             DWORD       dwOriginalSize;
  298.             DWORD       dwCompressedSize;
  299.             DWORD       dwCRC;
  300.             UINT        uFlag;
  301.             UINT        uOSType;
  302.             WORD        wRatio;
  303.             WORD        wDate;
  304.             WORD        wTime;
  305.             char        szFileName[FNAME_MAX32 + 1];
  306.             char        dummy1[3];
  307.             char        szAttribute[8];
  308.             char        szMode[8];
  309.         }INDIVIDUALINFO ;
  310.  
  311. メンバの説明
  312.     dwOriginalSize      ファイルのサイズ
  313.     dwCompressedSize    圧縮後のサイズ
  314.     dwCRC               BGA32.DLL では常に 0 です。
  315.     uFlag               BGA32.DLL では常に 0 です。
  316.     uOSType             BGA32.DLL では常に 0 です。
  317.     wRatio              パーミル (千分率) で表された圧縮率。
  318.     wDate               格納ファイルの更新日付
  319.                             struct {
  320.                             unsigned ft_day   : 5;
  321.                             unsigned ft_month : 4;
  322.                             unsigned ft_year  : 7;
  323.                             } _DosDate;
  324.                         ft_year に格納される値は 1980 年からの経過
  325.                         年数です。したがって,理論的には 2107 年ま
  326.                         で表現できることになります。
  327.     wTime               格納ファイルの更新時刻。
  328.                             struct {
  329.                             unsigned ft_tsec : 5;
  330.                             unsigned ft_min  : 6;
  331.                             unsigned ft_hour : 5;
  332.                             } _DosTime;
  333.                         ft_tsec  に格納される値が秒を 2 で割ったも
  334.                         のである点に注意してください。
  335.     szFileName          格納ファイル名
  336.     szAttribute         格納ファイルの属性
  337.     szMode              "-gzip-", "-bzip2-" または "-store-"( 無圧縮 )
  338.  
  339.  
  340. =======================================================================
  341. メッセージ系 API
  342. =======================================================================
  343.  
  344. -----------------------------------------------------------------------
  345. ◎ BOOL WINAPI BgaSetOwnerWindow( const HWND hWnd )
  346. -----------------------------------------------------------------------
  347. 順序数  90
  348. 機能
  349.     BGA32.DLL のメッセージの送信先ウィンドウを設定します。BGA32.DLL は
  350.     ここで指定されたウィンドウに wm_arcextract メッセージを送信します。
  351.  
  352. 戻り値
  353.     正常終了の場合 TRUE を返します。
  354.     既にこの API で別のウィンドウが設定されている場合には FALSE を返します。
  355.  
  356. -----------------------------------------------------------------------
  357. ◎ BOOL WINAPI BgaClearOwnerWindow()
  358. -----------------------------------------------------------------------
  359. 順序数  91
  360. 機能
  361.     BgaSetOwnerWindow() で設定したウィンドウの設定を解除します。
  362.  
  363. 戻り値
  364.     正常終了の場合 TRUE を返します。
  365.     エラーがあれば FALSE を返します。
  366.  
  367.  
  368. -----------------------------------------------------------------------
  369. wm_arcextract メッセージ
  370. -----------------------------------------------------------------------
  371. 機能
  372.     wm_arcextract メッセージを受け取ることにより、BGA32.DLL がこれから
  373.     処理する格納ファイルの情報を得ることができます。
  374.  
  375.     wm_arcextract メッセージを使用する場合には RegisterWindowMessage() で
  376.     システムに登録した上で使用してください。
  377.  
  378.  
  379.     wm_arcextract メッセージのパラメータ
  380.  
  381.         iMode = (int)wParam                     /* 通知モード */
  382.  
  383.             0 : 該当ファイルの処理を開始することを表します。
  384.             1 : 該当ファイルの処理中であることを表します。
  385.             2 : 処理を終了しようとしていることを表します。
  386.             3 : 該当書庫の処理を開始することを表します。
  387.                 szSourceFileName に書庫名が格納されます。
  388.  
  389.         pEis = (EXTRACTINGINFO FAR *)lParam     /* 構造体を指すポインタ */
  390.  
  391. 戻り値
  392.  
  393.     このメッセージを処理するアプリケーションは、0 を返さなければなりません。
  394.     反対に 0 以外を返すことにより、BGA32.DLL に処理を中止させられます。
  395.  
  396. -----------------------------------------------------------------------
  397. ◎ BOOL WINAPI BgaSetOwnerWindowEx( HWND hWnd, LPARCHIVERPROC pArcProc )
  398. -----------------------------------------------------------------------
  399. 順序数  51
  400. 機能
  401.     BGA32.DLL の処理状況を受け取るためのコールバック関数の指定を行います。
  402.     pArcProc に NULL を指定すると BgaSetOwnerWindow() と同等の処理を
  403.     行います。
  404.  
  405. 戻り値
  406.     正常終了の場合 TRUE を返します。
  407.     既にこの API で別のウィンドウが設定されている場合には FALSE を返します。
  408.  
  409. -----------------------------------------------------------------------
  410. ◎ BOOL WINAPI BgaKillOwnerWindowEx( HWND hWnd )
  411. -----------------------------------------------------------------------
  412. 順序数  52
  413. 機能
  414.     BgaSetOwnerWindowEx() で設定したウィンドウの設定を解除します。
  415.  
  416. 戻り値
  417.     正常終了の場合 TRUE を返します。
  418.     エラーがあれば FALSE を返します。
  419.  
  420. -----------------------------------------------------------------------
  421.     コールバック関数の定義
  422. -----------------------------------------------------------------------
  423.  
  424. typedef BOOL CALLBACK ARCHIVERPROC( HWND hWnd, UINT uMsg, UINT uState,
  425.                                     LPEXTRACTINGINFOEX pEis )
  426.  
  427.     hWnd    BgaSetOwnerWindowEx で指定したウィンドウハンドルが渡されます。
  428.     uMsg    現在のところは wm_arcextract となります。
  429.     uState  BGA32.DLL の状態を表す以下の値が格納されます。
  430.             ( wm_arcextract メッセージのパラメータ wParam と同義です )
  431.  
  432.         0 : 該当ファイルの処理を開始することを表します。
  433.         1 : 該当ファイルの処理中であることを表します。
  434.         2 : 処理を終了しようとしていることを表します。
  435.         3 : 該当書庫の処理を開始することを表します。
  436.             szSourceFileName に書庫名が格納されます。
  437.  
  438.     pEis    EXTRACTINGINFOEX 構造体へのポインタです。 格納ファイルに
  439.             関する情報が得られます。
  440.  
  441. 戻り値
  442.     ARCHIVERPROC は BGA32.DLL に処理を継続させるときは TRUE、
  443.     中止させるときは FALSE を返さなければなりません。
  444.     ※戻り値は wm_arcextract メッセージとは逆である点に注意してください。
  445.  
  446. -----------------------------------------------------------------------
  447.     EXTRACTINGINFO の構造
  448. -----------------------------------------------------------------------
  449. 構造体定義
  450.         typedef struct {
  451.             DWORD   dwFileSize;
  452.             DWORD   dwWriteSize;
  453.             char    szSourceFileName[FNAME32_MAX + 1];
  454.             char    dummy1[3];
  455.             char    szDestFileName[FNAME32_MAX + 1];
  456.             char    dummy[3];
  457.         }  EXTRACTINGINFO ;
  458.  
  459. メンバの説明
  460.     dwFileSize          格納ファイルのオリジナルサイズ
  461.     dwWriteSize         格納・展開処理で書き込んだサイズ
  462.     szSourceFileName    処理を行う格納ファイル名
  463.     szDestFileName      実際に書き込まれるパス名
  464.  
  465. -----------------------------------------------------------------------
  466.     EXTRACTINGINFOEX の構造
  467. -----------------------------------------------------------------------
  468. 構造体定義
  469.         typedef struct {
  470.                     EXTRACTINGINFO exinfo;
  471.             DWORD dwCompressedSize;
  472.             DWORD dwCRC;
  473.             UINT  uOSType;
  474.             WORD  wRatio;
  475.             WORD  wDate;
  476.             WORD  wTime;
  477.             char  szAttribute[8];
  478.             char  szMode[8];
  479.         } EXTRACTINGINFOEX;
  480.  
  481.     exinfo              EXTRACTINGINFO 構造体が格納されます。
  482.     dwCompressedSize    格納ファイルの圧縮サイズ。
  483.     dwCRC               BGA32.DLL では常に 0 です。
  484.     uOSType             BGA32.DLL では常に 0 です。
  485.     wRatio              パーミル (千分率) による格納ファイルの圧縮率。
  486.     wDate               格納ファイルの更新日付。
  487.                             struct {
  488.                             unsigned ft_day   : 5;
  489.                             unsigned ft_month : 4;
  490.                             unsigned ft_year  : 7;
  491.                             } _DosDate;
  492.                         ft_year に格納される値は 1980 年からの経過
  493.                         年数です。したがって,理論的には 2107 年ま
  494.                         で表現できることになります。
  495.     wTime               格納ファイルの更新時刻。
  496.                             struct {
  497.                             unsigned ft_tsec : 5;
  498.                             unsigned ft_min  : 6;
  499.                             unsigned ft_hour : 5;
  500.                             } _DosTime;
  501.                         ft_tsec  に格納される値が秒を 2 で割ったも
  502.                         のである点に注意してください。
  503.     szAttribute         格納ファイルの属性
  504.     szMode              "-gzip-" または "-bzip2-"
  505.  
  506. ------------------------------------------------------------------------
  507.     処理の流れ
  508. ------------------------------------------------------------------------
  509.  
  510. 1.iMode 3 でメッセージを送出。書庫名を得られる。
  511.  
  512. 2.iMode 0 でメッセージを送出。格納ファイル名等を得られる。
  513. 3.iMode 1 でメッセージを送出。書き込みサイズが得られる。
  514.     そのファイルについての処理が終了するまでこのメッセージを送出。
  515.  
  516.     すべての処理が終了した時点( 状況表示を消すタイミング )で、
  517. 4.iMode 2 でメッセージを送出。
  518.  
  519.  
  520. =======================================================================
  521. EnumMembersProc 系 API
  522. =======================================================================
  523.  
  524. -----------------------------------------------------------------------
  525. ○ BOOL WINAPI BgaSetEnumMembersProc( UNLHA_WND_ENUMMEMBPROC pEnumProc )
  526. -----------------------------------------------------------------------
  527. 順序数  99
  528. 機能
  529.     BGA32.DLL が呼び出すコールバック関数の登録を行います。
  530.  
  531. 引数
  532.     pEnumProc   BGA32.DLL が呼び出すコールバック関数へのポインタ。
  533.  
  534. 戻り値
  535.     正常に登録が行われた場合は TRUE を返します。
  536.     登録に失敗した場合は FALSE を返します。
  537.  
  538. -----------------------------------------------------------------------
  539. ◎ BOOL WINAPI BgaClearEnumMembersProc()
  540. -----------------------------------------------------------------------
  541. 順序数  100
  542. 機能
  543.     BgaSetEnumMembersProc() で行った関数の登録を解除します。
  544.  
  545. 戻り値
  546.     正常に解除が行われた場合は TRUE を返します。
  547.     解除に失敗した場合は FALSE を返します。
  548.  
  549. -----------------------------------------------------------------------
  550. BOOL CALLBACK UNLHA_WND_ENUMMEMBPROC( LPUNLHA_ENUM_MEMBER_INFO pInfo )
  551. -----------------------------------------------------------------------
  552. 機能
  553.     書庫の情報を受け取るための、アプリケーションで定義されたコールバック
  554.     関数です。
  555.     格納ファイル名等の指定を細かく行いたい場合などでの使用を本来の目
  556.     的としているため、Bga() で指定されたスイッチ等を反映して検索を
  557.     行った結果マッチしたものについてのみ、ここで指定したコールバック
  558.     関数が呼ばれる仕様となっています。
  559.  
  560. 引数
  561.     pInfo   書庫のメンバの情報を格納した構造体へのポインタ。この構造体の
  562.             情報を書き換えた上で TRUE を返すことで BGA32.DLL に処理を行わせる
  563.             ことができます。
  564.  
  565. 戻り値
  566.     TRUE    pInfo の情報に従って BGA32.DLL に処理を行わせます。
  567.     FALSE   BGA32.DLL に当該メンバの処理をスキップさせます。
  568.  
  569. -----------------------------------------------------------------------
  570.     UNLHA_ENUM_MEMBER_INFO の構造
  571. -----------------------------------------------------------------------
  572. 構造体定義
  573.     struct {
  574.     DWORD       dwStructSize;
  575.     UINT        uCommand;
  576.     DWORD       dwOriginalSize;
  577.     DWORD       dwCompressedSize;
  578.     DWORD       dwAttributes;
  579.     DWORD       dwCRC;
  580.     UINT        uOSType;
  581.     WORD        wRatio;
  582.     FILETIME    ftCreateTime;
  583.     FILETIME    ftAccessTime;
  584.     FILETIME    ftWriteTime;
  585.     char        szFileName[FNAME_MAX32 + 1];
  586.     char        dummy1[3];
  587.     char        szAddFileName[FNAME_MAX32 + 1];
  588.     char        dummy2[3];
  589.     } UNLHA_ENUM_MEMBER_INFO, *LPUNLHA_ENUM_MEMBER_INFO;
  590.  
  591. メンバの説明
  592.     dwStructSize        この構造体のサイズが格納されています。値を
  593.                         書き換えないでください。
  594.     uCommand            Bga() がどの命令を処理中かを示します。
  595.  
  596.                     UNLHA_RENAME_COMMAND    n 命令
  597.  
  598.                     現状では n 命令以外は対応していません。
  599.  
  600.     dwOriginalSize      現状は常に 0 です。
  601.     dwCompressedSize    現状は常に 0 です。
  602.     dwAttributes        現状は常に 0 です。
  603.     dwCRC               現状は常に 0 です。
  604.     uOSType             現状は常に 0 です。
  605.     wRatio              現状は常に 0 です。
  606.     ftCreateFile        現状は常に 0 です。
  607.     ftAccessTime        現状は常に 0 です。
  608.     ftWriteTime         現状は常に 0 です。
  609.     szFileName          変更するファイル名をパスを含めて指定します。
  610.     szAddFileName       現状は常に 0 です。
  611.  
  612.  
  613. =======================================================================
  614. API の返すエラーコード
  615. =======================================================================
  616.  
  617. ERROR_FILE_OPEN         ファイルを開けませんでした。
  618. ERROR_MAKEDIRECTORY     ディレクトリが作成できません。
  619. ERROR_CANNOT_WRITE      書き込みエラーが生じました。
  620. ERROR_HEADER_CRC        書庫のヘッダのチェックサムが合っていません。
  621. ERROR_ARC_FILE_OPEN     書庫を開く事が出来ません。
  622. ERROR_NOT_ARC_FILE      書庫のファイル名が指定されていません。
  623. ERROR_CANNOT_READ       ファイルの読み込み時にエラーが生じました。
  624. ERROR_FILE_STYLE        指定されたファイルは有効な書庫ではありません。
  625. ERROR_COMMAND_NAME      コマンド指定が間違っています。
  626. ERROR_MORE_HEAP_MEMORY  作業用のためのヒープメモリが不足しています。
  627. ERROR_ALREADY_RUNNING   既に BGA32.DLL が動作中です。
  628. ERROR_USER_CANCEL       ユーザーによって処理を中断されました。
  629. ERROR_TMP_OPEN          作業ファイルが作成できません。
  630. ERROR_ARC_READ_ONLY     書き込み専用属性の書庫に対する操作はできません。
  631. ERROR_NOT_FIND_ARC_FILE 指定されたディレクトリには書庫がありませんでした。
  632. ERROR_RESPONSE_READ     レスポンスファイルの読み込み時にエラーが生じました。
  633. ERROR_TMP_COPY          作業ファイルの書庫への書き戻しができませんでした。
  634. ERROR_NOT_FIND_FILE     ファイルが見つかりません。
  635. ERROR_GET_ATTRIBUTES    ファイル属性が取得できません。
  636. ERROR_GET_INFORMATION   ファイル情報が取得できません。
  637.  
  638. =======================================================================
  639.