home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2003 August / VPR0308.ISO / OLS / ISH32037 / ish32037.lzh / ISH-API.H next >
C/C++ Source or Header  |  1995-06-06  |  9KB  |  242 lines

  1. //
  2. //  ish file converter (ish.dll) for Microsoft Windows
  3. //
  4. //---------------------------------------------------------------
  5. //       (C) Pekin
  6. //      Public Domain Software
  7. //
  8. //  1987.11.11          ken Miyazaki(ken)
  9. //  1987.11.28        O Imaizumi(Gigo)
  10. //  1987.12.05         Bug Fix
  11. //  1987.12.06         OS9Ext support.
  12. //  1988.01.31         V.1.11
  13. //  1988.02.06         for Human68K(Gigo)
  14. //  1988.05.10         for UNIX (kondo)
  15. //  1990.07.12         non-kana (keizo)
  16. //  1994.            for Microsoft Windows (nonki)
  17. //  1995.01            for Visual C and Error Code (asato)
  18. //  1995.02            /Y option (asato)
  19. //  1995.03.26        Fix Default Dir Bug (asato)
  20. //  1995.06.06      Fix Wildcard matching Bug(asato)
  21. //
  22. //  special thanks for M.ishizuka(ish)
  23. //---------------------------------------------------------------
  24. //
  25.  
  26. #ifndef ISH_DLL_H       
  27. #define ISH_DLL_H
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif  // __cplusplus
  32. //---------------------------------------------------------------
  33.  
  34. #define ISH_VERSION             35
  35.  
  36. /* WARNING */
  37. #define ERROR_DISK_SPACE        0x8005        // Diskの空きがありません(解凍時)
  38. #define ERROR_READ_ONLY            0x8006        // 解凍先のファイルがリードオンリー(Replaceできない)
  39. #define ERROR_USER_SKIP            0x8007        // ユーザーによって解凍をスキップされました
  40. #define ERROR_UNKOWN_TYPE        0x8008
  41. #define ERROR_METHOD            0x8009
  42. #define ERROR_PASSWORD_FILE        0x800A
  43. #define ERROR_VERSION            0x800B
  44. #define ERROR_FILE_CRC            0x800C        // エラー訂正不可
  45. #define ERROR_FILE_OPEN            0x800D        // 解凍時にファイルがオープンできない
  46. #define ERROR_MORE_FRESH        0x800E
  47. #define ERROR_NOT_EXIST            0x800F
  48. #define ERROR_ALREADY_EXIST        0x8010
  49.  
  50. #define ERROR_TOO_MANY_FILES    0x8011
  51.  
  52. /* ERROR */
  53. #define ERROR_DIRECTORY            0x8012
  54. #define ERROR_CANNOT_WRITE        0x8013
  55. #define ERROR_HUFFMAN_CODE        0x8014
  56. #define ERROR_COMMENT_HEADER    0x8015
  57. #define ERROR_HEADER_CRC        0x8016
  58. #define ERROR_HEADER_BROKEN        0x8017
  59. #define ERROR_ARCHIVE_FILE_OPEN    0x8018        // Headerがない
  60. #define ERROR_NOT_ARCHIVE_FILE    0x8019
  61. #define ERROR_CANNOT_READ        0x801A
  62. #define ERROR_FILE_STYLE        0x801B
  63. #define ERROR_COMMAND_NAME        0x801C
  64. #define ERROR_MORE_HEAP_MEMORY    0x801D
  65. #define ERROR_ENOUGH_MEMORY        0x801E
  66. #define ERROR_ALREADY_RUNNING    0x801F
  67. #define ERROR_USER_CANCEL        0x8020
  68.  
  69. #define ERROR_NOT_SUPPORT        0x8023
  70.  
  71. #define    ERROR_CANNOT_CREATE        0x8030        // ISHファイルが作成できません        
  72. #define    ERROR_CANNOT_OPEN        0x8031        // ファイルがオープンできない(作成時)
  73.  
  74. // --------------------------------------------------------------
  75. // Ish : Ishの処理を実行します。
  76. //                   
  77. //        hwnd        : ウインドウハンドル
  78. //        lpszCmdLine : コマンドライン
  79. //                    (restoreであればファイル名のみ、
  80. //                     storeであれば"/s ファイル名"でできます。)
  81. //
  82. //         ・復元/作成 共通のオプション
  83. //                /f=<dirname> : 解凍先ディレクトリを指定します
  84. //
  85. //         ・復元時のオプション
  86. //                /r : restore new file(s)
  87. //                /a : restore all file(s)
  88. //                /q : restore with question
  89. //
  90. //         ・作成時のオプション
  91. //
  92. //           ・作成モード
  93. //                /s : store a JIS8 format ish file
  94. //                   /s8: same as -s
  95. //                /ss: store a shift JIS format ish file  
  96. //                /s7: store a JIS7 format ish file
  97. //                /sn: store a shift JIS non-kana format ish file
  98. //
  99. //           ・対象OS
  100. //                /m : MS-DOS
  101. //                /u : UNIX
  102. //                /c : CP/M
  103. //                /9 : OS-9
  104. //                /? : other OS(s)
  105. //                /* : all OS(s)
  106. //
  107. //           ・エスケープシーケンスの使用
  108. //                /n : no ESC sequence in TITLE line      
  109. //                /e : ESC sequence in TITLE line
  110. //
  111. //           ・タイトルを書き込む行数
  112. //                /tn: title in n line
  113. //
  114. //             ・Decodeファイル指定(指定ファイルのみDecodeする)
  115. //                /Y <filename>
  116. //                複数指定の場合は、/Y <filename> /Y <filename> ...
  117. //                ワイルドカード指定(?, *)も可
  118. //
  119. //             ・追加出力(作成時のみ有効)
  120. //                /YA <filename>
  121. //                指定のファイルに追加出力する
  122. //                ただし、既に同じファイルがある場合に注意
  123. //
  124. // -------------------------------------------------------------
  125. //int WINAPI _export Ish(HWND hwnd, LPSTR lpszCmdLine, LPSTR lpszDir);
  126. int WINAPI _export Ish(HWND hwnd, LPSTR lpszCmdLine);
  127.  
  128. // --------------------------------------------------------------
  129. // IshGetVersion : ish.dllのバージョンを返します。
  130. //                   
  131. //    結果はintで戻します。例えば
  132. //        001はVer0.01
  133. //      100はVer1.00
  134. //    となります。
  135. // --------------------------------------------------------------
  136. int WINAPI _export IshGetVersion(void);
  137.  
  138. // --------------------------------------------------------------
  139. // IshGetRunning : ish.dllが動作中かを返します。
  140. //                   
  141. //    TRUEであれば、動作中なので使用できません。
  142. //      FALSEであれば、使用できます。
  143. // --------------------------------------------------------------
  144. BOOL WINAPI _export IshGetRunning(void);
  145.  
  146. // --------------------------------------------------------------
  147. // IshConfigDialog : ish.dllの環境設定ダイアログを表示します。
  148. //                   戻りはlpszOptにコマンドラインの形式で
  149. //                   返されます。
  150. //
  151. //    hwnd     : ウインドウハンドル
  152. //    lpszOpt : ダイアログで設定したコマンドラインを格納します。
  153. //            lpszOptは、必ず128バイト以上の大きさを用意してください。
  154. //            また、呼び出し時にパラメータを設定すればダイアログの初期
  155. //            値がそのパラメータになります。
  156. //            ""を渡せば、archive.iniに設定されたパラメータが初期値と
  157. //            なります。
  158. //  mode    : 復元(解凍)系のコマンドラインを設定する場合は
  159. //            UNPACK_CONFIG_MODEを、作成(圧縮)系のコマンドラインを
  160. //            設定する場合はPACK_CONFIG_MODEを設定してください。
  161. //  戻り値  : 設定を行った場合はTRUEを、キャンセルした場合はFALSEを
  162. //            戻します。
  163. //
  164. // --------------------------------------------------------------
  165. #define UNPACK_CONFIG_MODE    1
  166. #define PACK_CONFIG_MODE    2
  167.  
  168. BOOL WINAPI _export IshConfigDialog(HWND hwnd, LPSTR lpszOpt, int mode);
  169.  
  170. // --------------------------------------------------------------
  171. // IshCheckArchive : lpszFileNameで指定したファイルにishデータが
  172. //                   含まれているかを調べます。
  173. //                   ただし、現在の仕様ではファイルが存在すればTRUEを
  174. //                     返しています。
  175. // --------------------------------------------------------------
  176. BOOL WINAPI _export IshCheckArchive(LPSTR lpszFileName, int iMode);
  177.  
  178. // --------------------------------------------------------------
  179. // 以下の関数は未実装ですが、LHA.DLL等他のアーカイブDLLとの
  180. // 互換性のためにエントリだけ用意してあります。
  181. BOOL WINAPI _export IshGetBackGroundMode(void);
  182. BOOL WINAPI _export IshSetBackGroundMode(BOOL bBackGroundMode);
  183. BOOL WINAPI _export IshGetCursorMode(void);
  184. BOOL WINAPI _export IshSetCursorMode(BOOL bCursorMode);
  185. unsigned int WINAPI _export IshGetCursorInterval(void);
  186. BOOL WINAPI _export IshSetCursorInterval(unsigned int uInterval);
  187.  
  188. // --------------------------------------------------------------
  189. // IshEx : Ishの処理を実行します。
  190. //                   
  191. //  LHA.DLL互換のインターフェイスです。
  192. //    コマンドラインの指定は、Ish()と同じです。
  193. //  実行結果を、szOutputに返します。
  194. //                   
  195. //    lpszCmdLine : コマンドライン
  196. //                    (restoreであればファイル名のみ、
  197. //                     storeであれば"/s ファイル名"でできます。)
  198. //  lpszOutput   : 結果を返すバッファを指定します。
  199. //  wSize        : バッファのサイズを指定します。返す結果のサイズより小さい場合は
  200. //                 指定サイズまで返される。
  201. //  戻り値       : 正常終了の場合は0、エラーのときはエラーコード
  202. // -------------------------------------------------------------
  203. int WINAPI _export IshEx(LPSTR lpszCmdLine, LPSTR lpszOutput, WORD wSize);
  204.  
  205.  
  206. // --------------------------------------------------------------
  207. // IshListFile : lpszFileNameで指定したファイル内のishデータファイル
  208. //               一覧をszOutputで指定された領域に次の形式で返します。
  209. //               (1:,2:は含まれません。各行の末尾はLF(0Ah)となります。)
  210. // 1:
  211. // 2:Listing of Ish : <file名>
  212. // 3:
  213. // 4:
  214. // 5:  Name            Size      Date     Time    Type  Vol
  215. // 6:
  216. // 7:--------------  --------  -------- -------- ------ ---
  217. // 8:
  218. // 9:<file1>
  219. //10:                 1571168  94-12-05 17:19:36 MS-DOS 
  220. //11:<file2>
  221. //12:                 1571168  94-12-05 17:19:36 OTHER  
  222. //  :
  223. //  :......................................................
  224. //  :
  225. // n:--------------  --------  -------- -------- ------ ---
  226. //
  227. //    lpszFileName : ISHデータを含むファイル名を指定します。
  228. //  lpszOutput   : 結果を返すバッファを指定します。
  229. //  wSize        : バッファのサイズを指定します。返す結果のサイズより小さい場合は
  230. //                 指定サイズまで返される。
  231. //  戻り値       : 正常終了の場合は0、エラーのときはエラーコード
  232. //                 ISHデータが含まれない場合は、ERROR_NOT_ARCHIVE_FILEを返す。
  233. //  その他       : エラーメッセージは出力しない
  234. //---------------------------------------------------------------
  235. int WINAPI _export IshFileList(LPSTR lpszFileName, LPSTR lpszOutput, WORD wSize);
  236.  
  237. #ifdef __cplusplus
  238. }                       /* End of extern "C" { */
  239. #endif  // __cplusplus
  240.  
  241. #endif    // ISH_DLL_H
  242.