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