home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2001 January / VPR0101B.BIN / APUPDATE / VC / TXC0621S / TXC0621S.LZH / _WZ.H < prev    next >
C/C++ Source or Header  |  2000-06-14  |  324KB  |  7,717 lines

  1. /*
  2.     TextX System defines
  3.         WZ EDITOR 4.0 / Pocket WZ EDITOR 2.0 / XZ for Linux
  4.         Start   1997年 7月22日
  5.         Refresh 1999年 9月25日
  6.         Refresh 2000年 2月 6日
  7.     
  8.     UNICODEを基本とする。ただしテキストバッファ処理はANSIを使う。
  9.     WinAPIはUNICODE版を呼び出す。
  10.     Win95用のANSI版は、UNICODE版のWinAPIが実装されてないので、
  11.     自分でUNICODE版WinAPIラッパ(関数名:WinAPIの末尾に"_W"を付ける)
  12.     を作成しこれを呼び出す
  13.         WindowsCE : UNICODE only
  14.         WindowsNT : UNICODE / ANSI(UNICODEに内部で変換している)
  15.         Windows95 : ANSI only
  16.         一番軽く動作したいWindowsCEがUNICODEなのと、将来的にはWindows98は
  17.         WindowsNTに吸収される様なので、UNICODEベースとした。
  18.     
  19.     UNIXではTX-Cと構造体バイナリを共有する場合に、ビットフィールドに注意。
  20.         WORD a:1;
  21.         WORD b;
  22.     のaは、gccではBYTEになる(TX-CではWORD)。DWORDも同様。
  23.     このため2000年2月20日から基本的に"BYTE a:1;"の様に記述することにした。
  24. */
  25.  
  26. #ifndef __WZ_H
  27. #define __WZ_H
  28. #define __TX_H
  29.  
  30. //{###構造体/定数/基本
  31.  
  32. //##基本
  33.  
  34. // 開発中?
  35. #if defined(_WIN32_WCE) || defined(WZ_RELEASE)
  36.     #define __DEV__            0    // CE用は常にリリース
  37. #else
  38.     #define __DEV__            1
  39.     #define __MEMORYDEBUG__    0    // malloc/freeチェックを行う?    //WZ4.00Bm 990929 
  40. #endif
  41. // α版/β版,製品評価版?
  42. #define __BETA__            0    // ベータ版特有機能。製品では外す
  43. #define __TRYAL__            0    // 試用評価版    //WZ4.00Be 990512 
  44. #define __TRYALBOOK__        0    // 本等に付ける評価版。__TRYAL__も1にすること。期間による試用期限がない。    //WZ4.00De 000613 
  45. // 汎用ライブラリとして使用?
  46. #if defined(GENERAL) || defined(TXC_DLL) || defined(SETUP) || defined(WZUP)
  47.     #undef    GENERAL
  48.     #define GENERAL            1
  49. #else
  50.     #undef    GENERAL
  51.     #define GENERAL            0
  52. #endif
  53. // その他
  54. #define __HARDCOPY__        0    // 画面ハードコピー機能を使う?
  55. #define __ERR__
  56. #ifndef __FLAT__
  57.     #define __FLAT__            // 32bitフラットメモリ
  58. #endif
  59. #define __BITFIELD_BORDER__        // ビットフィールドのBYTE/WORD/DWORD境界
  60.  
  61. //##ターゲットOS定義
  62.  
  63. // 【Windows95,98,NT,2000...版?】    (WINDOWSMT)
  64. #define WINDOWSMT            0
  65. // 【UNIX+XWindow版?】                (UNIX)
  66. #ifdef UNIX
  67.     #undef    UNIX
  68.     #define UNIX            1
  69. #else
  70.     #define UNIX            0
  71. #endif
  72. #define LINUX                0
  73. // 【WindowsCE版?】                    (WINDOWSCE)
  74. #define WINDOWSCE            0
  75. #define WINDOWSCE1            0
  76. #define WINDOWSCE2            0
  77. #define WINDOWSCE211        0
  78. // 【Palm-size PC版?】                (PSPC&&WINDOWSCE)
  79. #ifdef PSPC
  80.     #undef    PSPC
  81.     #define PSPC            1
  82. #else
  83.     #define PSPC            0
  84. #endif
  85. // define
  86. #if UNIX
  87.     #undef    LINUX
  88.     #define LINUX                1    // LINUX依存部分
  89.     #define WS_TITLEBAR            WS_OVERLAPPEDWINDOW
  90.     #define WS_EX_STANDARD        WS_EX_CLIENTEDGE    //WZ4.00Bl 990919 
  91.     #define WS_BORDER_STANDARD    0    //WZ4.00Bm 990927 
  92.     #define WS_HVSCROLL_UNIX    WS_HVSCROLL    //WZ4.00Bm 990928 
  93.     #define SHELLEXECUTEINFOW    SHELLEXECUTEINFO
  94.     #define MYSTATUSBAR            0
  95. #elif defined(_WIN32_WCE)    // この_WIN32_WCEはWINDOWSCEに変更しないこと
  96.     #undef    WINDOWSCE
  97.     #define WINDOWSCE            1
  98.     #undef    WINDOWSCE1
  99.     #undef    WINDOWSCE2
  100.     #if _WIN32_WCE >= 200
  101.         #define WINDOWSCE1        0
  102.         #define WINDOWSCE2        1    // WindowsCE2.0
  103.         #if _WIN32_WCE >= 211    //WZ4.00Be 990405 
  104.             #undef    WINDOWSCE211
  105.             #define WINDOWSCE211    1    // WindowsCE2.11
  106.             #define SWP_NOREDRAW    0    // SWP_NOREDRAWは定義されていない
  107.         #endif
  108.     #else
  109.         #define WINDOWSCE1        1
  110.         #define WINDOWSCE2        0
  111.     #endif
  112.     #define WS_TITLEBAR            WS_VISIBLE
  113.     #define WS_EX_STANDARD        0    //WZ4.00Bl 990919 
  114.     #define WS_BORDER_STANDARD    WS_BORDER    //WZ4.00Bm 990927 
  115.     #define WS_HVSCROLL_UNIX    0    //WZ4.00Bm 990928 
  116.     #define SHELLEXECUTEINFOW    SHELLEXECUTEINFO
  117.     #define MYSTATUSBAR            1
  118. #else
  119.     #undef  WINDOWSMT
  120.     #define WINDOWSMT            1
  121.     #define WS_TITLEBAR            WS_OVERLAPPEDWINDOW
  122.     #define WS_EX_STANDARD        (_fwin40 * WS_EX_CLIENTEDGE)    //WZ4.00Bl 990919 
  123.     #define WS_BORDER_STANDARD    (!_fwin40 * WS_BORDER)        //WZ4.00Bm 990927 
  124.     #define WS_HVSCROLL_UNIX    0    //WZ4.00Bm 990928 
  125.     #define MYSTATUSBAR            0
  126. #endif
  127. // other
  128. #define WS_HVSCROLL                (WS_HSCROLL|WS_VSCROLL)
  129. #if defined(ARM)    //WZ4.00Be 990418 for StrongARM+WindowsCE
  130.     #define memmove(d,s,c)    tymemmove(d,s,c);
  131.     void* tymemmove(void* dest,void* src,size_t n);
  132. #endif
  133.  
  134. //##WZ/PWZ基本定義
  135.  
  136. //WZ4.00Da 000206 __WZ__,__PWZ__,__XZ__は、それぞれWZ,PWZ,XZ以外では0に#defineするように変更。
  137. #define __WZ__            0        // WZ EDITOR  ?
  138. #define __PWZ__            0        // PWZ EDITOR ?
  139. #define __XZ__            0        // XZ EDITOR/XZ MAIL ?
  140. #define __PWZM__        0        // PWZ with Mailbase ?    //WZ4.00Da 000206 new
  141.  
  142. #if WINDOWSMT
  143.     #undef  __WZ__
  144.     #define __WZ__        0x4004    // __VERSION__ WZのバージョン番号
  145.                                 // 0x4000 WZ4.00
  146.                                 // 0x4001 WZ4.00A
  147.                                 // 0x4002 WZ4.00B/C
  148.                                 // 0x4004 WZ4.00D
  149. #endif
  150.  
  151. #if WINDOWSCE
  152.     #undef  __PWZ__
  153.     #define __PWZ__        0x2004    // __VERSION__ PWZのバージョン番号
  154.                                 // 0x2000 PWZ2.00/2.00A
  155.                                 // 0x2002 PWZ2.05
  156.                                 // 0x2003 PWZ2.06
  157.                                 // 0x2004 PWZ2.06A
  158.     #undef  __PWZM__
  159.     #define __PWZM__    (__DEV__)
  160. #endif
  161.  
  162. #if UNIX
  163.     #undef  __XZ__
  164.     #define __XZ__        0x0004    // __VERSION__ XZのバージョン情報
  165.                                 // 0x0004 XZα0.6
  166.                                 // 0x1000 XZ1.00
  167. #endif
  168.  
  169. #define __TXSTRUCT__    111        // __VERSION__ text,mailerなどの構造体のバージョン番号(WZ/PWZ/XZ共通)
  170.                                 //WZ4.00Ac 990206 101
  171.                                 //WZ4.00Ba 990304 102
  172.                                 //WZ4.00Bj 990823 103
  173.                                 //WZ4.00Bl 990909 104
  174.                                 //WZ4.00Bn 991007 105
  175.                                 //WZ4.00Bo 991011 106
  176.                                 //WZ4.00Bp 991014 107
  177.                                 //WZ4.00Ca 991023 108
  178.                                 //WZ4.00Da 000206 109
  179.                                 //WZ4.00Db 000210 110
  180.                                 //WZ4.00Dd 000526 111
  181.  
  182. // WZ4.00C/PWZ2.06以前のTX-Cプログラムとの互換性用の定義(POCKETWZのみEXE内で参照)
  183. #define POCKETWZ    WINDOWSCE        // Pocket版? WZ4ではない
  184. #define WZ4            (!WINDOWSCE)    // WZ4版? Pocketではない
  185. #define NEWWZ        1                // WZ1-3ではない。
  186. #define __WZ2__        0                // WZ2.0?
  187.  
  188. //##WZFUNC_xxx
  189. //WZ4.00Da 000206 renew
  190.  
  191. // 基本
  192. #ifdef WZFUNC_EMAIL
  193.     #define WZFUNC_EMAIL    1
  194. #else
  195.     #define WZFUNC_EMAIL    (WINDOWSMT|WINDOWSCE)
  196. #endif
  197. #define WZFUNC_TXC        (!__TRYAL__)
  198. #define WZFUNC_MAILBASE    (UNIX&&WZFUNC_EMAIL&&!__DEV__)
  199.         // MAILBASEの機能を提供?            //WZ4.00Da 000206 new
  200. #define WZFUNC_EDITOR    (!WZFUNC_MAILBASE)
  201.         // EDITORの機能を提供?                //WZ4.00Da 000206 new
  202.  
  203. // 設定関連
  204. #define WZFUNC_TEXTCFG        0
  205.         // 設定をテキストファイルで保持?
  206.         //WZ3.90N 981201 やはり1割のオーバヘッドがあるので、WZFUNC_TEXTCFGBINに変更した。
  207. #define WZFUNC_TEXTCFGBIN    ((WINDOWSMT|UNIX)&&WZFUNC_EDITOR)
  208.         //WZ3.90N 981201 new
  209.         // WZ終了時にバイナリ設定ファイルが更新されていて、!sh->fNoSaveConfigAsTextnなら、
  210.         // 設定内容をテキスト設定ファイルに出力
  211.         // WZ EDITORを開いたときに、バイナリ設定ファイルが存在しなければ、
  212.         // テキスト設定ファイルから設定を読み込む。
  213. #define TXCONFIGEXT_ASZ        1
  214.         //WZ4.00Da 000206 new
  215.         // DATAID_TXCONFIGEXTの形式を変更し、文字列は可変長で出力するようにして、
  216.         // 長い見出し文字列や先割り指定ができるようにした。
  217.  
  218. // 提供機能
  219. #define WZFUNC_PRINT    (WINDOWSMT)
  220.         // 印刷機能を提供?
  221. #define WZFUNC_PROP        (WZFUNC_EDITOR)
  222.         // プロポーショナルフォントを提供?
  223.         // 使わない場合はWZFUNC_PRINTも0にすること。
  224. #define WZFUNC_BITMAP    (WINDOWSMT&&WZFUNC_EDITOR)
  225.         // 図の表示機能を提供?
  226. #define WZFUNC_TMLHIGH    (WINDOWSMT&&WZFUNC_EDITOR)
  227.         // マルチフォント等高度なTML機能を提供?
  228. #define WZFUNC_NIFTY    (WINDOWSMT|WINDOWSCE)
  229.         // WZ NIFTY/TERMを提供? WZFUNC_EMAIL時のみ有効 //XZ0.2 990630
  230. #define WZFUNC_OLECLIP    (WINDOWSMT)
  231.         // OLEクリップボードを提供?
  232.         // ONにすると、TMLでコピーして他アプリにペーストしたとき素のテキストとしてペーストされる。
  233.         // OFFにすると、TMLタグが付いてペーストされる。
  234. #define WZFUNC_OLEDD    (WINDOWSMT)
  235.         // OLEドラッグアンドドロップを提供?
  236. #define WZFUNC_UIREFER    0
  237.         // 「最近参照した位置に移動」を提供?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  238. #define WZFUNC_CONV        (WINDOWSMT&&WZFUNC_EDITOR)
  239.         // ファイルコンバータ(WZ3のWZ文書ファイルの読込)機能を提供?
  240. #define WZFUNC_CONVERTTEXT (1)
  241.         // 「テキストの変換」機能を提供?        //WZ3.90K 981114 
  242. #define WZFUNC_TABBEAM    (WZFUNC_EDITOR)
  243.         // 「タブ桁揃え」機能を提供?            //WZ3.90K 981114 
  244.         // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  245. #define WZFUNC_HTMLHIGH    ((WINDOWSMT|UNIX)&&WZFUNC_EDITOR)
  246.         // タグのアトリビュート・縮小表示等、高度なHTML機能を提供?    //WZ4.00Ab 990117 
  247. #define WZFUNC_HEADLINECONVERT (1)
  248.         // 見出しの変換・見出しスタイルを提供?    //WZ4.00Ab 990118 
  249. #define WZFUNC_VERTICAL    (WINDOWSMT&&WZFUNC_EDITOR)
  250.         // 縦書きあり?    //XZ0.1 990525 
  251. #define WZFUNC_MEMOEDIT    (0)
  252.         // MEMOEDITモードを提供?            //WZ3.90L 981124 とりあえず使わない。
  253. #define WZFUNC_TMLPP    (__DEV__&&WZFUNC_EDITOR)
  254.         // TMLプリプロセッサ                //WZ4.00Db 000222 new
  255.  
  256. // 評価用の試作機能
  257. #define WZFUNC_EXSAMPLE    WINDOWSMT            //WZ4.00Dd 000611 new
  258.         // 試供機能の提供?
  259. #define WZFUNC_WRITING    WZFUNC_EXSAMPLE
  260.         // 原稿作成用の高度な機能を提供?    //WZ4.00Da 000206 new
  261.         // TXCONFIGEXT_ASZもTRUEのこと。
  262.  
  263. //##以上、RCでも有効
  264.  
  265. #ifndef RC_INVOKED
  266.  
  267. //##TX-Cの基本定義
  268.  
  269. #if __TXC__
  270.  
  271. // LPSTR等が<char>なので、漢字を扱うのが不便。
  272. // そこで<char=unsigned char>とする
  273. #pragma char=unsigned
  274.  
  275. #define VOID                void
  276. #define PASCAL              _pascal
  277. #define CDECL               _cdecl
  278. #define FAR
  279. #define NEAR
  280. typedef int                 BOOL;
  281. #define FALSE               0
  282. #define TRUE                1
  283. typedef unsigned char       BYTE;
  284. typedef unsigned short      WORD;
  285. typedef unsigned long       DWORD;
  286. typedef unsigned int        UINT;
  287. typedef signed long         LONG;
  288. typedef int                 INT;    //1.00F EXEのint型
  289.  
  290. #define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | (((DWORD)((WORD)(b))) << 16)))
  291. #define LOWORD(l)           ((WORD)(l))
  292. #define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
  293. #define LOBYTE(w)           ((BYTE)(w))
  294. #define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))
  295. #define max(a,b)            (((a) > (b)) ? (a) : (b))
  296. #define min(a,b)            (((a) < (b)) ? (a) : (b))
  297.  
  298. typedef UINT WPARAM;
  299. typedef LONG LPARAM;
  300. typedef LONG LRESULT;
  301. #define MAKELPARAM(low, high)   ((LPARAM)MAKELONG(low, high))
  302. #define MAKELRESULT(low, high)  ((LRESULT)MAKELONG(low, high))
  303.  
  304. #ifndef NULL
  305.     #define NULL                0
  306. #endif
  307.  
  308. typedef char NEAR*          PSTR;
  309. typedef char NEAR*          NPSTR;
  310. typedef char FAR*           LPSTR;
  311. typedef const char FAR*     LPCSTR;
  312.     // LPSTR,LPCSTRはsigned charで、日本語が扱いにくいので使わない
  313. typedef BYTE NEAR*          PBYTE;
  314. typedef BYTE FAR*           LPBYTE;
  315. typedef int NEAR*           PINT;
  316. typedef int FAR*            LPINT;
  317. typedef WORD NEAR*          PWORD;
  318. typedef WORD FAR*           LPWORD;
  319. typedef long NEAR*          PLONG;
  320. typedef long FAR*           LPLONG;
  321. typedef DWORD NEAR*         PDWORD;
  322. typedef DWORD FAR*          LPDWORD;
  323. typedef void NEAR*          PVOID;//1.00F
  324. typedef void FAR*           LPVOID;
  325.  
  326. typedef UINT size_t;
  327.  
  328. #define MAKELP(sel, off)    ((void FAR*)MAKELONG((off), (sel)))
  329. #define SELECTOROF(lp)      HIWORD(lp)
  330. #define OFFSETOF(lp)        LOWORD(lp)
  331. #define FIELDOFFSET(type, field)    ((int)(&((type NEAR*)1)->field)-1)
  332.  
  333. #ifdef STRICT
  334. typedef void *HANDLE;
  335. #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
  336. #else
  337. typedef PVOID HANDLE;
  338. #define DECLARE_HANDLE(name) typedef HANDLE name
  339. #endif
  340. typedef HANDLE *PHANDLE;
  341.  
  342. #define __stdcall _pascal
  343. #define __import
  344. #define WINAPI      __stdcall __import
  345. #define CALLBACK    __stdcall
  346. DECLARE_HANDLE(HWND);
  347. DECLARE_HANDLE(HMENU);
  348. typedef int HFILE;
  349. #define HFILE_ERROR ((HFILE)-1)
  350. DECLARE_HANDLE(HGLOBAL);
  351. DECLARE_HANDLE(HLOCAL);    //WCE1.01 980313 
  352. DECLARE_HANDLE(HINSTANCE);
  353. typedef HINSTANCE HMODULE;
  354. DECLARE_HANDLE(HBITMAP);
  355. DECLARE_HANDLE(HPEN);
  356. DECLARE_HANDLE(HBRUSH);
  357. DECLARE_HANDLE(HRGN);
  358. DECLARE_HANDLE(HPALETTE);
  359. DECLARE_HANDLE(HFONT);
  360. DECLARE_HANDLE(HICON);
  361. DECLARE_HANDLE(HDC);
  362. DECLARE_HANDLE(HTREEITEM);    //WZ4.00Ca 991128 new
  363. typedef HICON HCURSOR;
  364. typedef DWORD                COLORREF;
  365. typedef int (FAR WINAPI *FARPROC)();
  366. #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
  367. typedef struct tagRECT {
  368.     LONG left;
  369.     LONG top;
  370.     LONG right;
  371.     LONG bottom;
  372. } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
  373. typedef struct tagPOINT {//2.94 
  374.     LONG x;
  375.     LONG y;
  376. } POINT;
  377. typedef struct tagSIZE {//2.94 
  378.     LONG cx;
  379.     LONG cy;
  380. } SIZE;
  381.  
  382. // Virtual key codes
  383. #define VK_BACK             0x08    // [Backspace]
  384. #define VK_TAB              0x09    // [Tab]
  385. #define VK_CLEAR            0x0C    // 
  386. #define VK_RETURN           0x0D    // [Enter]
  387. #define VK_ESCAPE           0x1B    // [Esc]
  388. #define VK_PRIOR            0x21    // [PageUp]
  389. #define VK_NEXT             0x22    // [PageDown]
  390. #define VK_END              0x23    // [End]
  391. #define VK_HOME             0x24    // [Home]
  392. #define VK_LEFT             0x25    //
  393. #define VK_UP               0x26    //
  394. #define VK_RIGHT            0x27    //
  395. #define VK_DOWN             0x28    //
  396. #define VK_INSERT           0x2D    // [Ins]
  397. #define VK_DELETE           0x2E    // [Del]
  398. #define VK_HELP             0x2F    // [Help]
  399.  
  400. #define LF_FACESIZE            32
  401. #define IDOK                1
  402. #define IDCANCEL            2
  403. #define IDABORT                3
  404. #define IDRETRY                4
  405. #define IDIGNORE            5
  406. #define IDYES                6
  407. #define IDNO                7
  408.  
  409. // Windowsからコールバックされる関数
  410. #define TXCALLBACK    __stdcall
  411.  
  412. //WCE1.01 980313 
  413. typedef WORD                    WCHAR;
  414. typedef short                    SHORT;
  415. #define LPSECURITY_ATTRIBUTES    LPVOID
  416. typedef WORD*                    LPWSTR;
  417. typedef const WORD*                LPCWSTR;
  418. typedef struct _FILETIME {
  419.     DWORD dwLowDateTime;
  420.     DWORD dwHighDateTime;
  421. } FILETIME;
  422.  
  423. // for TXE Menu実現
  424. #define IDM_MAINMENU_TXE        30025    // _idm.hでも定義。
  425.  
  426. #endif    // __TXC__
  427.  
  428. //##基本定義
  429.  
  430. #define EXPORT __declspec(dllexport)
  431. //#define EXPORT extern "C" __declspec(dllexport)    // VC++でエラーになった
  432.  
  433. #if !UNIX||defined(__TXC__)    //XZ0.1 990524 staticのwcharの配列をL"abc"のようにして定義する場合はTWCHAR("abc")の様に記述する for UNIX
  434.     #define TWCHAR(quote)    L##quote
  435. #endif
  436.  
  437. typedef unsigned char    mchar;            // ShiftJIS char
  438. typedef WCHAR            wchar;            // UNICODE char
  439. typedef mchar*            pmchar;            //WCE1.01 980314 
  440. typedef BYTE            BBOOL;
  441. typedef long            TIME;
  442. typedef struct tagtx    tx;
  443. typedef struct tagtx    TX;
  444. typedef signed char        SIGNED_BYTE;
  445. typedef signed short    SIGNED_WORD;
  446. typedef signed long        SIGNED_DWORD;
  447. typedef WORD            TXCHAR;            // 漢字・CR+LFも含めた文字列
  448. typedef BYTE            FBOOL;            // 0か1のみのフラグ(WORD flag:1)と交換可
  449. typedef BYTE            CBOOL;            // ++,--するフラグ(WORD flag:2以上)と交換可
  450. typedef UINT IDM;                        // IDM_xxx    //WZ3.90I 981102 new 
  451. //WCE1.01 980224 TCHARは、Windowsで定義されている。WCHAR or char
  452. #ifdef UNICODE
  453.     typedef WCHAR                tchar;
  454.     #define vsprintf_W            wvsprintf
  455.     #define sprintf_W            wsprintf
  456.     #define tstrlen                wstrlen
  457.     #define tstrcpy                wstrcpy
  458.     #define tstricmp            wstricmp
  459.     #define tcchof                wcchof
  460.     #define tsprintf            wsprintf
  461.     #define tatol                watol
  462.     #define tstrchr                wstrchr
  463.     #define CreateFile_W        CreateFile
  464.     #define DeleteFile_W        DeleteFile
  465.     #define CreateFileMapping_W    CreateFileMapping
  466.     #define CreateMutex_W        CreateMutex
  467.     #define RemoveDirectory_W    RemoveDirectory
  468.     #define CreateDirectory_W    CreateDirectory
  469.     #define CopyFile_W            CopyFile
  470.     #define MoveFile_W            MoveFile
  471.     #define SetFileAttributes_W    SetFileAttributes
  472.     #define SetWindowText_W        SetWindowText
  473.     #define GetWindowText_W        GetWindowText
  474.     #define SetDlgItemText_W    SetDlgItemText
  475.     #define GetDlgItemText_W    GetDlgItemText
  476.     #define ListBox_AddString_W    ListBox_AddString
  477.     #define ListBox_FindStringExact_W    ListBox_FindStringExact
  478.     #define ComboBox_AddString_W ComboBox_AddString
  479.     #define FindFirstFile_W        FindFirstFile
  480.     #define FindNextFile_W        FindNextFile
  481.     #define CreateWindow_W        CreateWindow
  482.     #define CreateWindowEx_W    CreateWindowEx
  483.     #define RegisterClass_W        RegisterClass
  484.     #define GetClassName_W        GetClassName
  485.     #define DrawText_W            DrawText
  486.     #define ShellExecuteEx_W    ShellExecuteEx
  487.     #define LoadLibrary_W        LoadLibrary
  488.     #define SetFileAttributes_W    SetFileAttributes
  489. #else
  490.     typedef unsigned char        tchar;
  491.     #define vsprintf_A            wvsprintf
  492.     #define sprintf_A            wsprintf
  493.     #define tstrlen                strlen
  494.     #define tstrcpy                strcpy
  495.     #define tstricmp            stricmp
  496.     #define tcchof                cchof
  497.     #define tsprintf            wsprintf
  498.     #define tatol                atol
  499.     #define tstrchr                strchr
  500.     #define SetWindowText_A        SetWindowText
  501.     #define GetWindowText_A        GetWindowText
  502.     #define SetDlgItemText_A    SetDlgItemText
  503.     #define GetDlgItemText_A    GetDlgItemText
  504.     #define ListBox_AddString_A            ListBox_AddString
  505.     #define ListBox_FindStringExact_A    ListBox_FindStringExact
  506.     #define ComboBox_AddString_A        ComboBox_AddString
  507.     #define TextOut_A                    TextOut
  508.     #define DrawText_A                    DrawText
  509.     #define CreateFile_A                CreateFile
  510.     #define LoadLibrary_A        LoadLibrary
  511.     #define myGetProcAddress_A    GetProcAddress
  512. #endif
  513.  
  514. #define rectCx(r)    ((r)->right - (r)->left)
  515. #define rectCy(r)    ((r)->bottom - (r)->top)
  516. #define ScreenToClientRect(hwnd,rect)    MapWindowPoints(NULL,hwnd,(POINT*)(rect),2)
  517. #define ClientToScreenRect(hwnd,rect)    MapWindowPoints(hwnd,NULL,(POINT*)(rect),2)
  518. #define rectDec(r)    {(r)->left++;(r)->top++;(r)->right--;(r)->bottom--;}
  519. #define rectInc(r)    {(r)->left--;(r)->top--;(r)->right++;(r)->bottom++;}
  520.  
  521. #if WINDOWSCE
  522. //    #define _hbrushBtnFace        GetStockObject(WHITE_BRUSH)    //WZ4.00Ca 991228 
  523.     //WCE1.01 980315 CE2.0でもないみたい
  524.     #define LPtoDP(hdc,p,n)
  525.     #define DPtoLP(hdc,p,n)
  526.     //WZ4.00Ab 990112 
  527.     #if WINDOWSCE1    //WZ4.00Ac 990204 CE1.0でIDM_COPYができなかった。CE1.0ではLMEM_MOVEABLEが使えないみたい。
  528.         #define GMEM_MOVEABLE    LMEM_FIXED
  529.     #else
  530.         #define GMEM_MOVEABLE    LMEM_MOVEABLE
  531.     #endif
  532.     #define GMEM_FIXED        LMEM_FIXED    //WZ4.00Ac 990204 
  533.     #define GMEM_SHARE        0
  534.     #define GlobalLock        LocalLock
  535.     #define GlobalSize        LocalSize
  536.     #define GlobalUnlock    LocalUnlock
  537.     #define GlobalReAlloc    LocalReAlloc
  538.     #define GlobalAlloc        LocalAlloc
  539.     #define GlobalFree        LocalFree
  540.     #define MoveToEx(hdc,x,y,p)    MoveTo(hdc,x,y)
  541. #endif
  542. extern HPEN _hpenBtnShadow;        // Windowsシステム色のペン
  543. extern HPEN _hpenBtnShine;
  544. extern HPEN _hpenWindowFrame;
  545. extern HPEN _hpenBtnFace;
  546. extern HBRUSH _hbrushBtnFace;    // Windowsシステム色のブラシ
  547.  
  548. #define TEXTCHAR_UNICODE    0    // 0:TEXTBUFFはTC_SJIS/TC_SINGLEBYTE
  549.                                 // 1:TEXTBUFFはTC_UNICODE
  550. #define TB_EUC            UNIX    // TEXTBUFFはTC_EUCかどうか    //XZ0.1 990528 
  551.  
  552. #define CHAR_TAB    0x09    //
  553. #define CHAR_CR        0x0D    //
  554. #define CHAR_LF        0x0A    //
  555. #define CHAR_FF        0x0C    // 改ページは行を改めるが改段ではない
  556.                             // CHAR_LFとは異なる
  557. #define CHAR_EOF    0x1A    //
  558. #define CHAR_ESC    0x1B    //
  559. #define CHAR_CRLF    0x0D0AU    //
  560. #if TB_EUC
  561.     #define CHAR_JSPACE    0xA1A1    //WZ4.00Bj 990830 new
  562. #else
  563.     #define CHAR_JSPACE    0x8140    //WCE1.01 980504 全角空白
  564. #endif
  565. // EUC
  566. #define CHAR_EUC_KANA    0x8E    //XZ0.1 990528 
  567.  
  568. //WZ3.90N 981130 半角カナの定義
  569. // VC++で"/J"オプションを付けないと、'ー'は-80になってしまい、どうにもならない。
  570. //WZ3.90N 981130 この影響で、ーが半角に変換できなかった。
  571. #define CHAR_KANA_ONBIKI    0xB0    // 'ー'
  572. #define CHAR_KANA_NAKAGURO    0xA5    // '・'
  573. #define CHAR_KANA_DAKUTEN    0xDE    // '゙'
  574. #define CHAR_KANA_HANDAKUTEN 0xDF    // '゚'
  575.  
  576. #define _huge
  577. #define TXAPI
  578. #define TXAPIBASE
  579. #define TXCMD
  580. #define TXCMDBASE
  581. #define TXHIGH
  582. #define TXHIGH_COND            // 条件付きTXHIGH    //WZ3.90I 981029 new
  583. #define TXHIGH_THROUGH
  584. #define TXUI
  585. #define TXGAPED
  586. #define INTERNAL
  587.  
  588. #define __CCJAPAN__                // 日本語Cコンパイラ依存部分
  589. #define __BYTEORDERLOW__        // バイト順(low-high)に依存部分
  590. #define __SINGLETASK__            // シングルスレッド依存部分
  591. #define __ANSICODE__            // ANSI文字コード依存部分
  592. #define __X86__                    // x86依存部分
  593. #define __END__                    // 依存部分終了
  594.  
  595. #define beep()        MessageBeep(-1)
  596. #define waitms(ms)    Sleep(ms)    //WZ4.00Bg 990719 UNIXではwait()システムコールと重複するのでwaitms()に変更。
  597. #define beep2()        {waitms(500);beep();waitms(100);beep();waitms(500);}
  598.  
  599. #define CCHPATHNAME        260
  600. #define CCHFILENAME        260
  601.  
  602. #define cchof(str)    (sizeof(str) / sizeof(mchar))
  603.                             // mchar配列として定義した変数の要素数
  604.                             // (変数に格納できる文字数)を返す
  605. #define lchof(str)    ((sizeof(str) / sizeof(mchar))-1)
  606.                             // mchar配列として定義した変数の
  607.                             // 文字列の長さ(最後のNULLは除く)を返す
  608. #define wcchof(str)    (sizeof(str) / sizeof(wchar))
  609.                             // wchar配列として定義した変数の要素数
  610.                             // (変数に格納できる文字数)を返す
  611. #define wlchof(str)    ((sizeof(str) / sizeof(wchar))-1)
  612.                             // wchar配列として定義した変数の
  613.                             // 文字列の長さ(最後のNULLは除く)を返す
  614. #define cchtxstr(str)        CCHTXSTR
  615.                             // txstrに格納できる文字数+1を返す
  616.  
  617. #define divmod(n,v)    (((n) / (v)) + (((n) % (v)) != 0))
  618.                             // nをdで割った結果を返す
  619.                             // nがdで割り切れないときは+1して返す
  620.                             //WCE1.01 980226 new
  621. #define mysmall(a,b)        ((a) < (b) ? (a) : (b))
  622. #define mybig(a,b)            ((a) >= (b) ? (a) : (b))
  623. #define myabs(i)            ((i) < 0 ? -(i) : (i))            //WZ3.90J 981108 
  624. #define myminimum(n,min)    (((n) >= (min)) ? (n) : (min))    //WZ3.90N 981130 nがmin未満ならminを返す
  625.  
  626. // 基本型定義
  627. typedef DWORD    NLINE;    // 表示行番号
  628. typedef DWORD    NPARA;    // 論理行番号
  629. typedef WORD    NPAGE;    // ページ番号
  630. typedef UINT    IMEM;    // CPUネイティブのメモリアクセスインデックス型
  631. typedef DWORD    IFILE;    // テキストファイルインデックス
  632.                         // gap部を除いたテキストアドレス
  633.                         // TEXTCHAR単位
  634. typedef UINT    IBUFF;    // テキストバッファインデックス
  635.                         // gap部を含むテキストアドレス
  636.                         // TEXTCHAR単位
  637.  
  638. #define IBUFF_ERROR        ((IBUFF)0xFFFFFFFFU)
  639. #define IFILE_ERROR        0xFFFFFFFF    //WCE0.92 970918 
  640. #define DWORD_MAX        0xFFFFFFFF    //WZ3.90I 981029 DWORDの最大値
  641. #ifndef INT_MAX    //WZ4.00Bj 990831 ifndefチェックを追加
  642.     #define INT_MAX            0x7FFFFFFF    //WZ3.90I 981029 intの最大値
  643. #endif
  644.  
  645. // 文字数定義
  646. #define CCHLINE            512U    // 表示行一行の最大文字数
  647.                                 // (\0、禁則追い出し域も含む)
  648. #define CCHWORD            80        // 一般的な文字列の長さ
  649. #define CCHSWORD        40        // CCHWORDの半分
  650. #define CCHNAME            30        // 各種識別子
  651. #define CCHNUMBER        40        // ltoa最大バッファ使用数
  652. #define MINWIDTH        10U        // 最小折り返し幅
  653. #define MAXWIDTH (CCHLINE-11U)    // 最大折り返し幅(禁則域は除く)
  654. #define MAXTABSIZE      64        // 最大タブサイズ
  655. #define MAXMARK            5        // 最大マーク数
  656. #define CCHMARK            40        // マーク文字列
  657. #define CCHLPSTYLE        40        // 印刷スタイル名
  658. #define CCHSTYLENAME    40        // スタイル名    //WZ3.90I 981028 
  659. #define MAXREFERPOS        10        // 最大最近参照した位置
  660. #define CCHTXSTR        260        // txstrの文字数(CCHPATHNAMEと同じ)
  661. #if WINDOWSCE    //WZ4.00Dd 000526 識別子CCHSEARCHを新設
  662.     #define CCHSEARCH    CCHWORD    // 検索文字列のサイズ(最大CCHLINE程度)
  663. #else
  664.     #define CCHSEARCH    CCHTXSTR// 検索文字列のサイズ(最大CCHLINE程度)
  665.                                 //WZ4.00Dd 000526 (!PWZ)検索・置換文字列指定を80から260に拡大。
  666. #endif
  667.  
  668. typedef struct tagtxstr {
  669.     mchar szString[CCHTXSTR];
  670. } txstr;
  671. #if __TXC__
  672.     typedef txstr TXSTR;
  673. #else
  674.     typedef txstr* TXSTR;    //WZ4.00Ca 000215 LPVOIDから変更。
  675.     #define TXAPI_(n)    // TXAPI export number
  676.     #define _varyarg
  677. #endif
  678.  
  679. //##双方向リストサポート
  680. //WZ4.00Bm 990930 new (_windows.hの内容と共通)
  681.  
  682. #ifndef listd_itemadd
  683.  
  684. #define listd_itemadd(item,root)    \
  685.     if (root) {\
  686.         (item)->next = root;\
  687.         (root)->prev = item;\
  688.     }\
  689.     root = item
  690. #define listd_itemdel(item,root)    \
  691.     if ((item)->prev) {\
  692.         (item)->prev->next = (item)->next;\
  693.     } else {\
  694.         root = (item)->next;\
  695.     }\
  696.     if ((item)->next) {\
  697.         (item)->next->prev = (item)->prev;\
  698.     }
  699. #define listd_itempopup(item,root)    \
  700.     {\
  701.         listd_itemdel(item,root);\
  702.         item->prev = item->next = NULL;\
  703.         listd_itemadd(item,root);\
  704.     }
  705. #define listd2_itemadd(item,root,tail)    \
  706.     if (root) {\
  707.         (item)->next = root;\
  708.         (root)->prev = item;\
  709.     } else {\
  710.         tail = item;\
  711.     }\
  712.     root = item
  713. #define listd2_itemaddlast(item,root,tail)    \
  714.     if (root) {\
  715.         (tail)->next = item;\
  716.         (item)->prev = tail;\
  717.     } else {\
  718.         root = tail = item;\
  719.     }
  720. #define listd2_itemdel(item,root,tail)    \
  721.     if ((item)->prev) {\
  722.         (item)->prev->next = (item)->next;\
  723.     } else {\
  724.         root = (item)->next;\
  725.     }\
  726.     if ((item)->next) {\
  727.         (item)->next->prev = (item)->prev;\
  728.     } else {\
  729.         tail = (item)->prev;\
  730.     }
  731. #define listd2_itempopup(item,root,tail)    \
  732.     {\
  733.         listd2_itemdel(item,root,tail);\
  734.         item->prev = item->next = NULL;\
  735.         listd2_itemadd(item,root,tail);\
  736.     }
  737. #define listd2_itempopdown(item,root,tail)    \
  738.     {\
  739.         listd2_itemdel(item,root,tail);\
  740.         item->prev = item->next = NULL;\
  741.         listd2_itemaddlast(item,root,tail);\
  742.     }
  743.  
  744. #endif    // !listd_itemadd
  745.  
  746. //##クリップボードハンドル
  747.  
  748. typedef UINT HCLIP;                    //1.00H2 HWND->UINT //1.00F WORD->HWND
  749. #define HCLIP_ERROR        ((HCLIP)999)//2.00E HCLIP_NULLは廃止
  750. #define HCLIP_PRIVATE    ((HCLIP)0)    // プライベートテキストスタック(テキスト固有)
  751.                                     // WZ32はマルチタスクなので、HCLIP_TSは他のWZのタスク
  752.                                     // と干渉します。
  753.                                     // スタックにPushしてPopする前に
  754.                                     // 他のWZがスタックを操作してしまうかもしれません。
  755.                                     // HCLIP_PRIVATEは他のWZとのデータ交換には使えない
  756.                                     // 代わりに他のWZのタスクと干渉しません
  757.                                     // WZ3まではプロセス固有でしたが、WZ4からはテキスト固有になりました。
  758. #define HCLIP_TS        ((HCLIP)1)    // テキストスタック
  759. #define HCLIP_WIN        ((HCLIP)2)    // Windowsクリップボード
  760.                                     // ここでは0x00を含むバイナリデータは扱えない
  761.                                     // HCLIP_WORKxxxでは扱える
  762.  
  763. typedef struct tagCLIPITEM {
  764.     HGLOBAL hGlobal;        // データ
  765.     IFILE size;                // データサイズ(末尾の\0は除く)
  766.     int fClip;                // fClip
  767.     FBOOL fClipTxfEnable;    // データにTXFタグが入っている可能性がある?
  768.     struct tagCLIPITEM* prev;
  769.     struct tagCLIPITEM* next;
  770. } CLIPITEM;
  771.  
  772. //##汎用設定ファイル操作
  773.  
  774. //##拡大可能メモリブロック(汎用)
  775. //PWZ2BETA0.6 980621 new
  776. typedef struct {
  777.     LPBYTE pTop;
  778.     LPBYTE pCur;
  779.     DWORD sizeAlloc;
  780.     DWORD sizeExpand;
  781. } MEMBLOCK;
  782.  
  783. void memblockInit(MEMBLOCK* mb,int sizeAlloc,int sizeExpand);
  784. void memblockTerm(MEMBLOCK* mb);
  785. DWORD memblockGetSize(MEMBLOCK* mb);
  786. LPVOID memblockAdd(MEMBLOCK* mb,int sizeAdd);
  787. BOOL memblockAddEx(MEMBLOCK* mb,int sizeAdd);
  788. BOOL memblockCheckSize(MEMBLOCK* mb,UINT size);
  789. BOOL memblockAddMem(MEMBLOCK* mb,LPVOID pAdd,int sizeAdd);
  790. BOOL memblockAddString(MEMBLOCK* mb,mchar* szString);
  791. void memblockDelAll(MEMBLOCK* mb);
  792.  
  793. //##VirtualAlloc support(汎用)
  794. //WZ3.90J 981109 new
  795. //// 拡大可能メモリブロックはこれに置き換えるべき。
  796.  
  797. // VirtualAllocコンテキスト
  798. typedef struct {
  799.     LPBYTE pagetop;        // アドレス空間の先頭
  800.     LPBYTE pageend;        // アドレス空間の末尾
  801.     UINT pagesize;        // ページサイズ
  802.     LPBYTE p;            // 現在参照中の位置
  803.     LPBYTE pEnd;        // 領域の末尾
  804. } VALLOC;
  805.  
  806. BOOL vaInit(VALLOC* va,UINT kbMax);
  807. BOOL vaCheckAdd(VALLOC* va,UINT add);
  808. void vaFree(VALLOC* va);
  809.  
  810. //##パーティションウィンドウ
  811. //WZ3.90F 980815 
  812.  
  813. #if !WINDOWSCE
  814. #if !__TXC__
  815. wchar wszclassPartition[];
  816. #endif
  817. #define CX_PARTITION        6            // 幅    //WZ3.90O 981202 5->6
  818. // ウィンドウスタイル
  819. #define WSPB_SEPARATOR        0x0001L        // dialog box用セパレータ?
  820. #define WSPB_SMALLFONT        0x0002L        //2.99D 970330 小さいフォントを使う?
  821. #define WSPB_NOCLIENTEDGE    0x0004L        //WZ4.00Bl 990922 WS_EX_CLIENTEDGE対応。
  822. #if WINDOWSCE
  823.     #define WSPB_STD            WS_BORDER
  824.     #define CX_PARTITION_FLAT    CX_PARTITION
  825. #else
  826.     #define WSPB_STD            WSPB_NOCLIENTEDGE
  827.     #define CX_PARTITION_FLAT    (CX_PARTITION-2)    // WSPB_NOCLIENTEDGEの場合のCX
  828. #endif
  829. // メッセージ
  830. //        message                                        wParam        lParam    備考
  831. #define WMPB_SETRANGE            (WM_USER +  1)    //    min            max
  832. #define WMPB_GETRATE            (WM_USER +  2)    //    void        void
  833. #define WMPB_SETRATE            (WM_USER +  3)    //    rate        void
  834. #define WMPB_GETRANGE            (WM_USER +  4)    //    void        void    return:MAKELONG(min,max)    //WZ3.90J 981112 
  835. // 通知
  836. #if !__TXC__
  837. typedef struct {
  838.     NMHDR hdr;    //PWZ2BETA0.3 980523 hdrが先頭にないといけなかった
  839.         #define PARTITIONN_SETRANGE    10
  840.     int rate;    // 現在のレート
  841. } PARTITION_NOTIFY;
  842. #endif
  843. #endif    // !WINDOWSCE
  844.  
  845. //##ツールバー
  846.  
  847. #if !WINDOWSCE
  848. enum {ICONSET_STD=0,ICONSET_VIEW,ICONSET_WZ,ICONSET_FILE};
  849.  
  850. typedef struct tagTOOLBARITEM {    // ボタンコンテキスト
  851.     mchar szCaption[CCHWORD];        // TIPヘルプ
  852.     mchar szCmd[60];                //WZ3.90J 981108 コマンド名、マクロ名 for custmize
  853.     int idm;                        // コマンド番号
  854.     mchar szfilenameIcon[160];        // アイコンのファイル名
  855.                                     //WZ3.90J 981108 CCHWORDでは短すぎなので拡大
  856.     int iIcon;                        // szfilenameIconでの位置(0origin)
  857.     BYTE iconset;                    //WZ3.90J 981108 使用するアイコンビットマップセット
  858.     BYTE fLoadedEx:1;                // ICONSET_FILEの場合、ロードしたかどうか?
  859.     struct tagTOOLBARITEM* next;
  860. } TOOLBARITEM;
  861.  
  862. typedef struct {    // ツールバーコンテキスト
  863.     TOOLBARITEM* root;
  864.     HWND hwnd;
  865.     HWND hwndParent;
  866.     HWND hwndCBCB;                    // 検索ボックスウィンドウ
  867.     HWND hwndInfo;                    // 情報ボックスウィンドウ
  868.     HWND hwndLpSel;                    // 印刷スタイル選択ドロップダウンリストボックス
  869.     HWND hwndLpSet;                    // 印刷スタイル設定ボタン
  870.     struct tagKEY* key;                // チップヘルプにアクセスキーを表示するために使用。NULLでも可。    //WZ4.00Ca 991212 new
  871.     BYTE fIconView:1;                // VIEWアイコンがある
  872.     BYTE fIconWz:1;                    // WZ標準のアイコンがある
  873.     BYTE fIconEx:1;                    // STD,VIEW,WZ以外のアイコンがある
  874.     BYTE fSearchBox:1;                // 検索ボックスがある
  875.     BYTE fInfoBox:1;                // 情報ボックスがある
  876.     BYTE fPrintstyleBox:1;            //WZ3.90L 981117 印刷スタイル選択ボックスがある
  877. } TOOLBARCONTEXT;
  878.  
  879. HBITMAP toolbaritemLoadBitmap(TOOLBARITEM* item);
  880.  
  881. #endif
  882.  
  883. #if WINDOWSCE
  884.     #define toolbarSetEnableIdm(context,idm,f)
  885.     #define cmdbarSetEnableIdm(hwnd,idm,f)    SendMessage(hwnd,TB_SETSTATE,idm,f ? TBSTATE_ENABLED : 0)    //WZ4.00Ab 990124 
  886. #else
  887. TOOLBARCONTEXT* TXAPI_(548) toolbarOpen(HWND hwndParent,mchar* szApp,mchar* szName);
  888. void TXAPI_(549) toolbarProcWM_SIZE(TOOLBARCONTEXT* context,RECT* r);
  889. int TXAPI_(550) toolbarGetHeight(TOOLBARCONTEXT* context);
  890. BOOL TXAPI_(551) toolbarProcNotify(TOOLBARCONTEXT* context,LPARAM lParam);
  891. void TXAPI_(552) toolbarClose(TOOLBARCONTEXT* context);
  892. void TXAPI_(553) toolbarSetEnableIdm(TOOLBARCONTEXT* context,int idm,BOOL fEnable);
  893. BOOL TXAPI_(554) toolbarGetEnableIdm(TOOLBARCONTEXT* context,int idm);
  894. TOOLBARCONTEXT* TXAPI_(555) toolbarLoad(mchar* szApp,mchar* szName);
  895. TX* TXAPI_(556) toolbarOpenText(mchar* szApp,mchar* szName);
  896. int szidmToIdmEx(mchar* szidm,int lchidm);
  897. #endif
  898.  
  899. //##WZリストビュー
  900.  
  901. void listRegister(void);
  902.  
  903. //##ステータスバー
  904.  
  905. #define MAX_STATUSBAR_PANE    10
  906. typedef struct {
  907.     mchar sz[30];    // 表示内容
  908.     int cx;            // 幅(-1なら右端まで)
  909. } STATUSBAR_PANE;
  910. #define STATUSBAR_PANE_ALL            -1
  911. #define STATUSBAR_PANE_LOCATE        0
  912. #define STATUSBAR_PANE_2STROKE        1
  913. #define STATUSBAR_PANE_INSERT        2
  914. #define STATUSBAR_PANE_EDITED        3
  915. #define STATUSBAR_PANE_SELECTED        4
  916. #define STATUSBAR_PANE_FORMING        5    //WCE0.95 970923 整形中かどうかステータスバーに表示
  917. #define STATUSBAR_PANE_PAGINGMODE    6
  918. #define STATUSBAR_PANE_FILENAME        7    //WCE0.93 970919 ステータスバーにファイル名を表示
  919. void TXAPI_(1091) txStatusbarSetPaneString(TX* text,int ipane,mchar* sz);
  920. int statusbarGetCy(TX* text);
  921. void statusbarFlushDispInsert(TX* text);
  922. int statusbarPointToPane(TX* text,int x);
  923. void statusbarFlushDispSelect(TX* text);
  924. void statusbarPrint(TX* text,int ipane);
  925. int statusbarGetPaneWidth(HWND hwndStatusbarWin,mchar* szString);
  926. int statusbarSetSimple(HWND hwndStatusbarWin,BOOL fSimple);
  927. int statusbarGetHeight(HWND hwndStatusbarWin);
  928.  
  929. //##ファイル参照ダイアログ
  930.  
  931. typedef struct {
  932.     WORD fSaveAs:1;                // 「名前を付けて保存」ダイアログを表示。
  933.     WORD fSaveAsVz:1;            // VZライクの「名前を付けて保存」ダイアログ
  934.                                 // fSaveAsもTRUEにしてください。
  935.     WORD fSaveTo:1;                // 始めに指定したファイル名をできるだけ変化させない for 添付ファイルの保存先の指定
  936.                                 // fSaveAsもTRUEにしてください。
  937.     WORD fOpenVz:1;                // VZライクの「ファイルを開く」ダイアログ
  938.     WORD fModeSaveAs:1;            // modeSaveAsの選択を行う?
  939.     WORD fNoOverwriteConfirm:1;    // 上書き確認をしない
  940.     WORD fReadonly:1;            //WZ3.90I 981103 リードオンリーで開く?
  941.                                 //WZ3.90J 981111 ダイアログでの選択結果が返されます。
  942.     WORD fEnableIllegalChar:1;    //WZ4.00Aa 990109 ファイル名に*などの無効文字列を許す?
  943.     WORD fNoAddHist:1;            //WZ4.00Bj 990813 ヒストリに追加しない?
  944.     WORD fEnableFiler:1;        //WZ4.00Bn 991006 FILERを起動しても良い?
  945.     WORD fNoAfn:1;                //WZ4.00Dd 000526 ファイル名を自動決定しない?
  946.     WORD fReserved:5;
  947.     BYTE modeSaveAs;            // 「プレーンテキストへ変換」など。
  948.     BYTE reserved[10];
  949. } TXOFN_ARG;
  950.  
  951. BOOL TXAPI_(398) uiSelectFolderW(wchar wszfilename[CCHPATHNAME],wchar* wszCaption);
  952. BOOL TXAPI_(803) uiSelectFolder(mchar szfilename[CCHPATHNAME],mchar* szCaption);
  953. BOOL ofnSelectFolderW(wchar* wszfilename,wchar* wszCaption,TXOFN_ARG* arg);
  954. #if GENERAL
  955. BOOL ofnGetOpenFileNameW(wchar* wszfilename,wchar* wszCaption,TXOFN_ARG* arg);    //WZ4.00Bo 991011
  956. #endif
  957.  
  958. //##メモリ
  959.  
  960. LPVOID TXAPI_(880) memAlloc(DWORD size);
  961. LPVOID TXAPI_(881) memAllocZeroinit(DWORD size);
  962. void TXAPI_(882) memFree(LPVOID p);
  963. LPVOID TXAPI_(483) zmalloc(int size);
  964. LPVOID memResize(LPVOID p,DWORD size);
  965. LPVOID memdup(LPVOID p,UINT size);
  966. #if !__TXC__
  967.     #if __MEMORYDEBUG__
  968.         void _myfree(LPVOID p,mchar* szfile,int line);
  969.         #define free(p)    _myfree(p,__FILE__,__LINE__)
  970.     #else
  971.         void _myfree(LPVOID p);
  972.         #define free(p)    _myfree(p)
  973.     #endif
  974. #endif
  975. #if __MEMORYDEBUG__    //WZ4.00Bm 990929 for memory debug
  976.     LPVOID _mymalloc(int size,mchar* szfile,int line);
  977.     #define malloc(s)    _mymalloc(s,__FILE__,__LINE__)
  978.     LPVOID _zmalloc(int size,mchar* szfile,int line);
  979.     #define zmalloc(s)    _zmalloc(s,__FILE__,__LINE__)
  980.     mchar* _mystrdup(mchar* szstr,mchar* szfile,int line);
  981.     #define strdup(p)    _mystrdup(p,__FILE__,__LINE__)
  982.     LPVOID _myrealloc(LPVOID p,int size,mchar* szfile,int line);
  983.     #define realloc(p,s)    _myrealloc(p,s,__FILE__,__LINE__)
  984. #endif
  985. #if WINDOWSCE    // SH3,MIPSではBYTE境界はWORDアクセスできない
  986.     WORD lpReadWord(LPVOID p);
  987.     SIGNED_WORD lpReadSignedWord(LPVOID p);
  988.     void lpWriteWord(LPVOID p,WORD value);
  989.     DWORD lpReadDword(LPVOID p);
  990.     SIGNED_DWORD lpReadSignedDword(LPVOID p);
  991.     void lpWriteDword(LPVOID p,DWORD value);
  992. #else
  993.     #define lpReadWord(p)            (*((WORD*)(p)))
  994.     #define lpReadSignedWord(p)        (*((SIGNED_WORD*)(p)))
  995.     #define lpWriteWord(p,value)    (*((WORD*)(p)) = value)
  996.     #define lpReadDword(p)            (*((DWORD*)(p)))
  997.     #define lpReadSignedDword(p)    (*((SIGNED_DWORD*)(p)))
  998.     #define lpWriteDword(p,value)    (*((DWORD*)(p)) = value)
  999. #endif
  1000. #define lpReadByte(p)            (*((BYTE*)(p)))
  1001. #define lpWriteByte(p,value)    (*((BYTE*)(p)) = value)
  1002. #if UNIX
  1003. mchar* ty_memmem(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  1004.     #define memmem ty_memmem
  1005. #else
  1006. mchar* memmem(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  1007. #endif
  1008. mchar* memistr(mchar* src,int lchSrc,mchar* szfind);
  1009. mchar* memistrword(mchar* src,int lchSrc,mchar* szfind);
  1010. mchar* memstrwordLen(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  1011. mchar* memstrword(mchar* src,int lchSrc,mchar* szfind);
  1012. #define structClear(bodystruct)        (memset(&(bodystruct),0,sizeof(bodystruct)))
  1013.  
  1014. #if __TXC__
  1015. LPVOID _cdecl TXAPI_(124) memcpy(void *mem1,void *mem2,size_t size);
  1016.     // mem2のsizeブロックを、mem1にコピー
  1017.     // mem1とmem2が重複する場合の動作は未定義
  1018. LPVOID _cdecl TXAPI_(125) memmove(void *mem1,void *mem2,size_t size);
  1019.     // mem2のsizeブロックを、mem1にコピー
  1020.     // mem1とmem2が重複していても正確に動作
  1021. LPVOID _cdecl TXAPI_(126) memset(void *mem1,int c,size_t size);
  1022.     // mem1のsizeバイトを、バイトデータcで埋める。
  1023. int _cdecl TXAPI_(127) memcmp(void *mem1,void *mem2,size_t size);
  1024.     // 2つのメモリブロックの内容を比較
  1025.     // {返り値}mem1がmem2より小さい場合、負の値、
  1026.     // mem1がmem2と等しい場合、0、
  1027.     // mem1がmem2より大きい場合、正の値、を返す
  1028. LPVOID TXAPI_(128) memchr(LPVOID mem,int ch,size_t size);
  1029.     // メモリブロック:mem,サイズ:sizeからchを探す。見つかればポインタを返す
  1030.     // 見つからなければNULLを返す
  1031.     //2.00Bで追加
  1032. LPVOID _cdecl TXAPI_(129) malloc(DWORD size);
  1033.     // sizeバイトのメモリブロックを確保してポインタを返す
  1034. void _cdecl TXAPI_(130) free(LPVOID pmem);
  1035.     // mallocで確保したメモリブロックを解放する
  1036. LPVOID _cdecl TXAPI_(131) realloc(LPVOID pmem,DWORD size);
  1037.     // mallocで確保したメモリブロックのサイズを変更する
  1038. #endif    // __TXC__
  1039.  
  1040. //##文字
  1041.  
  1042. UINT ch_jis2sjis(UINT ch);
  1043. UINT ch_sjis2jis(UINT ch);
  1044. BOOL my_isXdigiti(int c);
  1045. int zentohanAlpha(mchar* p);
  1046. WORD TXAPI_(1012) pch_zen2han(mchar *p);
  1047. #if __TXC__
  1048. BOOL TXAPI_(791) isalnum(int c);
  1049. int  TXAPI_(792) toupper(int c);
  1050. int  TXAPI_(484) tolower(int c);
  1051. BOOL TXAPI_(793) isdigit(int c);
  1052. BOOL TXAPI_(794) isupper(int c);
  1053. BOOL TXAPI_(795) islower(int c);
  1054. BOOL TXAPI_(796) isalpha(int c);
  1055. BOOL TXAPI_(797) isspace(int c);
  1056. BOOL TXAPI_(798) iskanji(int c);
  1057. BOOL TXAPI_(799) iskanji2(int c);
  1058. BOOL TXAPI_(800) iskana(int c);
  1059. BOOL TXAPI_(801) isXdigit(int c);
  1060. BOOL TXAPI_(802) IschReturn(int c);
  1061. BOOL TXAPI_(974) IschWord(int c);
  1062. BOOL TXAPI_(1083) IschTagname(int c);
  1063. BOOL TXAPI_(1085) isXdigiti(int c);
  1064. #else
  1065. extern BYTE _matchword[256];        // __ANSYCODE__
  1066. extern BYTE _matchword2[256];        // __ANSYCODE__
  1067. #define MATCH_WORD        0x01
  1068. #define MATCH_KEYWORD    0x02    //WCE1.01 980202 new
  1069. #define MATCH_KANJI        0x04
  1070. #define MATCH_KANJI2    0x08
  1071. #define MATCH_KANA        0x10
  1072. #define MATCH_DIGIT        0x20
  1073. #define MATCH_UPPER        0x40
  1074. #define MATCH_LOWER        0x80
  1075. //
  1076. #define MATCH2_TXFTAG    0x01
  1077. #define MATCH2_TAGNAME    0x02    // タグ名,アトリビュート名
  1078. #define MATCH2_PARAEND    0x04
  1079. #define MATCH2_RETURN    0x08    //WCE1.01 980202 MATCH->MATCH2
  1080. #define MATCH2_SPACE    0x10    //WCE1.01 980224 
  1081. #define MATCH2_XDIGIT    0x20    //WCE1.01 980224 0-9,A-F
  1082. #define MATCH2_XDIGITI    0x40    //WZ3.90I 981004 0-9,A-F,a-f
  1083. //WCE1.01 980224 isXXX TEXTCHAR/UNICODE(2bytes)対応
  1084. #define IschWord(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_WORD))    // a-zA-Z0-9_$
  1085. #define IschKeyword(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_WORD|MATCH_KEYWORD)))    // MATCH_WORD + \    //WCE1.01 980202 
  1086. #define IschTxftag(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TXFTAG))    // /#!*
  1087. #define IschTagname(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME))    // a-zA-Z0-9_
  1088. #define h_IschTagname(c)    (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME)    // a-zA-Z0-9_
  1089. #define IschParaend(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_PARAEND))    // CHAR_LF,CHAR_EOF
  1090. //WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  1091. #ifndef __WZRAS__
  1092.     #undef isalnum
  1093.     #undef isdigit
  1094.     #undef isupper
  1095.     #undef islower
  1096.     #undef isalpha
  1097.     #undef isspace
  1098.     #if 1//PWZ2BETA0.4 980610 for マクロでもisalpha etcを使うので
  1099.         BOOL my_isalnum(int c);
  1100.         int  my_toupper(int c);
  1101.         int  my_tolower(int c);
  1102.         BOOL my_isdigit(int c);
  1103.         BOOL my_isupper(int c);
  1104.         BOOL my_islower(int c);
  1105.         BOOL my_isalpha(int c);
  1106.         BOOL my_isspace(int c);
  1107.         BOOL my_isspace_txc(int c);
  1108.         BOOL my_iskanji(int c);
  1109.         BOOL my_iskanji2(int c);
  1110.         BOOL my_iskana(int c);
  1111.         BOOL my_isXdigit(int c);
  1112.         BOOL my_IschReturn(int c);
  1113.         #define isalnum(c)    my_isalnum(c)
  1114.         #define toupper(c)    my_toupper(c)
  1115.         #define tolower(c)    my_tolower(c)    //PWZ2BETA0.4 980610 new
  1116.         #define isdigit(c)    my_isdigit(c)
  1117.         #define isupper(c)    my_isupper(c)
  1118.         #define islower(c)    my_islower(c)
  1119.         #define isalpha(c)    my_isalpha(c)
  1120.         #define isspace(c)    my_isspace(c)
  1121.         #define iskanji(c)    my_iskanji(c)
  1122.         #define iskanji2(c)    my_iskanji2(c)
  1123.         #define iskana(c)    my_iskana(c)
  1124.         #define isXdigit(c)    my_isXdigit(c)
  1125.         #define isXdigiti(c)    my_isXdigiti(c)    //WZ3.90I 981004 
  1126.         #define IschReturn(c)    my_IschReturn(c)
  1127.         #if !__TXC__
  1128.             //WZ4.00Ab 990203 new 高速版 (c>=0x100)の時には対応していない
  1129.             #define h_iskanji(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI)
  1130.             #define h_iskanji2(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI2)
  1131.             #define h_isspace(c)        (_matchword2[((BYTE)(c))] & MATCH2_SPACE)
  1132.         #endif
  1133.     #else
  1134.         #if WINDOWSCE
  1135.             BOOL isalnum(int c);
  1136.             int toupper(int c);
  1137.             BOOL isdigit(int c);
  1138.             BOOL isupper(int c);
  1139.             BOOL islower(int c);
  1140.             BOOL isalpha(int c);
  1141.             BOOL isspace(int c);
  1142.             BOOL iskanji(int c);
  1143.             BOOL iskanji2(int c);
  1144.             BOOL iskana(int c);
  1145.             BOOL isXdigit(int c);
  1146.             BOOL IschReturn(int c);
  1147.         #else
  1148.             #define isalnum(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_DIGIT|MATCH_UPPER|MATCH_LOWER)))
  1149.             #define toupper(c)        (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  1150.             #define isdigit(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  1151.             #define isupper(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_UPPER))
  1152.             #define islower(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER))
  1153.             #define isalpha(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_UPPER|MATCH_LOWER)))
  1154.             #define isspace(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_SPACE))
  1155.             #define iskanji(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI))
  1156.             #define iskanji2(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI2))
  1157.             #define iskana(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANA))
  1158.             #define isXdigit(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_XDIGIT))    //WCE1.01 980226 0-9,A-F
  1159.             #define IschReturn(c)    ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_RETURN))    // CHAR_CR,CHAR_LF,CHAR_FF,CHAR_EOF
  1160.         #endif
  1161.     #endif
  1162.     //
  1163.     #define toallower(c)        ((c) | 0x20)
  1164.     #define toalupper(c)        ((c) & 0xDF)
  1165.     #define intToXdigit(i)        (((i) >= 10) ? ((i) + 'A' - 10) : ((i) + '0'))    //WZ3.90I 981101 
  1166.     #define intToXdigitl(i)        (((i) >= 10) ? ((i) + 'a' - 10) : ((i) + '0'))    //XZ0.20 990708 
  1167.     #if 1//WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  1168.         #define wtoupper(c)            (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  1169.         #define wisdigit(c)            ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  1170.     #else
  1171.         #define wtoupper(c)            ((L'a' <= (c) && (c) <= L'z') ? (c - L'a' + L'A') : (c))
  1172.         #define wisdigit(c)            ((c) < 256 && _matchword[((BYTE)(c))] & MATCH_DIGIT)
  1173.     #endif
  1174. #endif
  1175. #endif    // __TXC__
  1176.  
  1177. #define xdigitToInt(ch)        (((ch) >= 'A') ? ((ch) - 'A' + 10) : ((ch) - '0'))
  1178. #define xdigitToIntI(ch)    ((toupper(ch) >= 'A') ? (toupper(ch) - 'A' + 10) : ((ch) - '0'))
  1179.  
  1180. #if TB_EUC
  1181.     #define txchIsKeisen(ch)    (0xA8A1 <= (ch) && (ch) <= 0xA8C0)    // JIS罫線素子か?
  1182.     #define txchIsKeisenClm(ch) (txchIsKeisen(ch) && ch != 0xA8A1 && ch != 0xA8AC)
  1183. #else
  1184.     #define txchIsKeisen(ch)    (0x849F <= (ch) && (ch) <= 0x84BE)    // JIS罫線素子か?
  1185.     #define txchIsKeisenClm(ch) (txchIsKeisen(ch) && ch != '─' && ch != '━')
  1186. #endif
  1187.  
  1188. //##パス文字列
  1189.  
  1190. BOOL TXAPI_(486) wpathSearchPathtext(wchar* wszpath);
  1191. BOOL TXAPI_(1115) wpathSearch(wchar* dst,wchar* szfilename,wchar* szpaths,wchar* szexts);
  1192. BOOL TXAPI_(487) wpathIsFull(wchar* wszpath);
  1193. BOOL TXAPI_(488) pathIsFull(mchar* szpath);
  1194. void TXAPI_(489) pathSetDir(mchar *path);
  1195. int TXAPI_(465) wispathsepa(wchar c);
  1196. int TXAPI_(476) ispathsepa(mchar c);
  1197. wchar* TXAPI_(490) TXAPIBASE wpathSetLong(wchar *path);
  1198. mchar* TXAPI_(852) pathSetLong(mchar* path);
  1199. BOOL wfilenameIsLocation(wchar* wszfilename);
  1200. BOOL TXAPI_(491) wpathFormDir(wchar* path);
  1201. BOOL TXAPI_(599) pathFormDir(mchar* path);
  1202. BOOL TXAPI_(492) wpathFormDirDos(wchar* path);
  1203. BOOL TXAPI_(1060) pathFormDirDos(mchar* path);
  1204. BOOL wpathParent(wchar wszfilename[CCHPATHNAME]);
  1205. BOOL TXAPI_(1122) wpathIsRoot(wchar wszfilename[CCHPATHNAME]);
  1206. BOOL wpathIsUnc(wchar* wszfilename);
  1207. BOOL wpathFlushUnc(wchar* wszfilename);
  1208. BOOL TXAPI_(493) TXAPIBASE wpathFormLong(wchar* path);
  1209. BOOL TXAPI_(506) TXAPIBASE pathFormLong(mchar *path);
  1210. wchar* TXAPI_(494) TXAPIBASE wpathGetFileName(wchar* path);
  1211. mchar* TXAPI_(510) TXAPIBASE pathGetFileName(mchar *path);
  1212. void TXAPI_(496) wpathFlush(wchar* szstr);
  1213. void TXAPI_(511) pathFlush(mchar* szstr);
  1214. void TXAPI_(892) pathFlushSepa(mchar* szstr,int ch);
  1215. wchar* TXAPI_(497) TXAPIBASE wpathSetFileName(wchar *path,wchar *filename);
  1216. mchar* TXAPI_(509) TXAPIBASE pathSetFileName(mchar *path,mchar *filename);
  1217. wchar* TXAPI_(498) TXAPIBASE wpathGetExt(wchar* path);
  1218. mchar* TXAPI_(507) TXAPIBASE pathGetExt(mchar *path);
  1219. wchar* TXAPI_(499) TXAPIBASE wpathSetExt(wchar *path,wchar *ext);
  1220. mchar* TXAPI_(508) TXAPIBASE pathSetExt(mchar *path,mchar *ext);
  1221. wchar* TXAPIBASE wpathAddExt(wchar* path,wchar* ext);
  1222. mchar* TXAPIBASE pathAddExt(mchar* path,mchar* ext);
  1223. BOOL TXAPI_(500) wpathIsExt(wchar* szfilename,wchar* szext);
  1224. BOOL TXAPI_(512) TXAPIBASE pathIsExt(mchar *path,mchar *ext);
  1225. BOOL TXAPI_(501) wpathIsWild(wchar *path);
  1226. BOOL TXAPI_(505) pathIsWild(mchar* path);
  1227. BOOL TXAPI_(502) wpathIsDirectory(wchar *path);
  1228. BOOL TXAPI_(894) pathIsDirectory(mchar* szpath);    //WZ4.00A 981229 
  1229. void TXAPI_(503) wpathSetDir(wchar *path);
  1230. wchar* TXAPI_(504) wpathSetFull(wchar* wszpath);
  1231. mchar* TXAPI_(851) pathSetFull(mchar* szpath);
  1232. mchar* TXAPI_(915) pathSepa(mchar* szstr);    //WZ4.00Bl 990914 pathSepaをTX-Cから使えるようにした。ユーザ要望。
  1233. int TXAPI wpathSetMode(wchar* wszfilename,wchar* wszbase,wchar* wszaddress,int mode);
  1234.     #define PATH_ABSOLUTEDRIVE    1    // ドライブ名付きの絶対パス
  1235.     #define PATH_ABSOLUTE        2    // ドライブ名なしの絶対パス
  1236.     #define PATH_URL            3
  1237.     #define PATH_RELATIVE        4
  1238. int TXAPI_(853) pathSetMode(mchar* szfilename,mchar* szbase,mchar* szaddress,int mode);
  1239. void TXAPI_(948) wpathSetDefault(wchar* wszfilename);
  1240. BOOL TXAPI_(977) wpathIsBackupfile(wchar* wszfilename);
  1241. BOOL TXAPI_(1128) wpathGetRoot(wchar* wsz);
  1242. BOOL TXAPI_(1130) pathmasksmatch(mchar* szname,mchar* szmasks);
  1243. #if !__TXC__
  1244. BOOL wpathSetFilenameUnique(wchar* wszfilename);
  1245. void TXAPI wpathSetRoot(wchar* wszfilename);
  1246. void TXAPI pathSetRoot(mchar* szfilename);
  1247. BOOL wpathIsCszFiletype(wchar* wszfilename,mchar* cszExt);
  1248. int TXAPI pathGetMode(mchar* szfilename);
  1249. int TXAPI wpathGetMode(wchar* wszfilename);
  1250. UINT wpathGetDriveType(wchar* wszpath);
  1251. void wpathGetWzFilename(wchar* wszfilename);
  1252. BOOL wpathIsBinaryFiletype(wchar* wszfilename);
  1253. int TXAPI pathCmp(mchar* szpath1,mchar* szpath2,int *plch);
  1254. int TXAPI pathCmpN(mchar* szpath1,mchar* szpath2,int lch,int *plch);
  1255. BOOL TXAPI pathGetRoot(mchar* sz);
  1256. BOOL wfilenameIsLocation(wchar* wszfilename);
  1257. int wpathIsMemoryCard(wchar* wszfilename);
  1258. mchar* wpathExtractRejectMask(wchar* wszpath,mchar* szReject,int cch);
  1259. #endif // !__TXC__
  1260.  
  1261. //##KERNEL拡張
  1262.  
  1263. //DDE
  1264. BOOL TXAPI_(829) ddeConnect(mchar* pszService, mchar* pszTopic);
  1265. BOOL TXAPI_(830) ddeDisconnect(void);
  1266. BOOL TXAPI_(831) ddeExecute(mchar* pszCmd);
  1267. BOOL TXAPI_(832) ddeExecuteEx(mchar* pszCmd,DWORD* dwResult);
  1268. BOOL TXAPI_(833) ddePoke(mchar* szItem,mchar* szData);
  1269. UINT TXAPI_(834) ddeGetLastError(void);
  1270. BOOL TXAPI_(835) ddeRequest(mchar* szItem,mchar** szData);
  1271. HWND TXAPI_(884) apSearchWindow(mchar* szCaption);
  1272. BOOL __ddeDelete(void);
  1273. //
  1274. BOOL TXAPI_(849) shellExecute(mchar* pszFile,mchar* pszOp);
  1275. BOOL TXAPI_(538) shellOpenW(wchar* szfilename);
  1276. typedef int SKEY;
  1277. SKEY TXAPI_(617) GetShiftKey(void);
  1278.     #define SKEY_SHIFT        0x01
  1279.     #define SKEY_CONTROL    0x02
  1280.     #define SKEY_ALT        0x04
  1281. int TXAPI GetWindowsPlatform(void);
  1282. LPBYTE TXAPI_(606) fileallocW(wchar* szfilename,DWORD* size);
  1283. DWORD TXAPI_(913) wpathGetDiskFreeSpace(wchar* wszpath);
  1284. //
  1285. #if !__TXC__
  1286. BOOL CreateDirectoryForce_W(wchar* wszpath,LPVOID lpsa);
  1287. BOOL RemoveDirectoryEx_W(wchar* wszfilename);
  1288. //
  1289. BOOL TXAPI CommandExec(mchar* szline);
  1290. BOOL WinExecEx_W(wchar* wszfilenameExe,wchar* wszCmdline);
  1291. //
  1292. BOOL wpathGetFfd(wchar* wszfilename,WIN32_FIND_DATAW* ffd);
  1293. BOOL mySHGetShortcutTarget(wchar* wszfilename,wchar* wsztarget,int cchTaraget);
  1294. BOOL wpathCreateDirectoryPath(wchar* wszfilename);
  1295. BOOL wpathGetFileTime(wchar* wszfilename,FILETIME* filetime);
  1296. #if UNIX
  1297. void sprintFilemask(mchar* szbuff,UINT st_mode);
  1298. #endif
  1299. #if !UNIX
  1300. BOOL GetFileInformation_W(wchar* wszfilename,BY_HANDLE_FILE_INFORMATION* info);
  1301. #endif
  1302. #if WINDOWSMT
  1303. DWORD GetShortPathName_W(wchar* wsz,wchar* wszShort,int cch);
  1304. #endif
  1305. #if WINDOWSCE
  1306.     #define GetCurrentTime()    GetTickCount()
  1307. #else
  1308.     enum {WINDOWS95=1,WINDOWSNT};
  1309.     extern BYTE _platform;
  1310.     extern DWORD _dwWindowsVertion;    //WZ3.90P 981205 
  1311. #endif
  1312. BOOL _tapiTerm(BOOL fAtExist);
  1313. #if UNIX
  1314.     #define sockwzNew()        TRUE
  1315.     #define sockwzDelete()    TRUE
  1316. #else
  1317.     BOOL sockwzNew(void);
  1318.     BOOL sockwzDelete(void);
  1319. #endif
  1320. //キーマウスフック
  1321. void keyhookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  1322. void keyhookEnd(void);
  1323. void keyhookTerm(void);
  1324. void mousehookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  1325. void mousehookEnd(void);
  1326. void mousehookTerm(void);
  1327. //スレッド
  1328. #if !UNIX
  1329.     #undef csEnter
  1330.     #undef csExit
  1331.     #define csEnter(cs)    EnterCriticalSection(cs)
  1332.     #define csExit(cs)    LeaveCriticalSection(cs)
  1333.     #define csInit(cs)    InitializeCriticalSection(cs)
  1334.     #define csTerm(cs)    DeleteCriticalSection(cs)
  1335.     extern CRITICAL_SECTION g_csCaret;
  1336. #endif
  1337. void filetimeAdd(FILETIME* ft,FILETIME* ftAdd);
  1338. BOOL SHCreateShortcut(wchar* wszShortcut,wchar* wsz);
  1339. #endif // !__TXC__
  1340.  
  1341. //##USER拡張
  1342.  
  1343. #define SFF        (UNIX)    //WZ4.00Bm 990927 システムフォントが固定ピッチ?
  1344.  
  1345. DWORD TXAPI_(850) myChooseColor(HWND hwndParent,COLORREF* rgbResult,mchar* sztitle);
  1346. BOOL TXAPI_(531) wndSetPosSize(HWND hwnd,int x,int y,int cx,int cy);
  1347. BOOL TXAPI_(532) wndSetPos(HWND hwnd,int x,int y);
  1348. void TXAPI_(533) wndSetTimer(HWND hwnd,UINT timerid,DWORD ms);
  1349. void TXAPI_(534) wndMoveFocus(HWND hwnd,BOOL fPrev);
  1350. LRESULT TXAPI_(459) SendMessageOther(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
  1351. BOOL TXAPI_(298) TXAPIBASE wndImeGetOpen(HWND hwnd);
  1352. void TXAPI_(299) TXAPIBASE wndImeSetOpen(HWND hwnd,BOOL fOpen);
  1353. int TXAPI_(528) ListBox_GetItemText_A(HWND hctrl,int index,mchar* szbuff,int cch);
  1354. int TXAPI_(529) ListBox_GetItemText_W(HWND hctrl,int index,wchar* szbuff,int cch);
  1355. BOOL ListBox_SetDeletedFromUndo(HWND hctrl,TX* text);
  1356. mchar* TXAPI ListBox_GetItemTextAlloc_A(HWND hctrl,int index);
  1357. void TXAPI_(393) GetWorkRect(RECT *r);
  1358. BOOL TXAPI_(535) EnableDlgItem(HWND hwnd,int id,BOOL fEnable);
  1359. BOOL TXAPI_(1086) EnableDlgItemEx(HWND hwnd,int id,BOOL fEnable,int idDefault);
  1360. BOOL TXAPI_(536) IsDlgItemTextEmpty(HWND hwndDlg,int idControl);
  1361. //Windowsアプリケーションコントロール
  1362. #if WINDOWSMT    //WZ4.00Ca 991203 WZ3で使えたapPostSysKey,apPostCtrlKey,apPostKeyを復活。ユーザ要望。
  1363. void TXAPI_(1101) apPostSysKey(int vk);    // フォーカスを持っているウィンドウに仮想キーvkをAltが同時に押されたとして送ります。
  1364. void TXAPI_(1102) apPostCtrlKey(int vk);// フォーカスを持っているウィンドウに仮想キーvkをCtrlが同時に押されたとして送ります。
  1365. void TXAPI_(1103) apPostKey(int vk);    // フォーカスを持っているウィンドウに仮想キーvkを送ります。
  1366. #endif    // WINDOWSMT
  1367. //window context(__TXC__でも使用)
  1368. #define hwndGetContext(hwnd)            ((LPVOID)GetWindowLong(hwnd,0))
  1369. #define hwndSetContext(hwnd,context)    SetWindowLong(hwnd,0,(LONG)context)
  1370. #define wndprocContext(hwnd,context,message,wParam,lParam)    \
  1371.         if (context == NULL && message != WM_CREATE) return DefWindowProc(hwnd,message,wParam,lParam);
  1372. #define hwndtextGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  1373. #define hwndbaseGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  1374. #define hwndtextIsTxwsText(hwnd)    (GetWindowLong(hwnd,GWL_STYLE) & TXWS_TEXT)
  1375. //
  1376. #if !__TXC__
  1377. BOOL TXAPI wndSetZorder(HWND hwnd,HWND hwndInsertAfter);
  1378. BOOL IsOwnered(HWND hwndParent,HWND hwnd);
  1379. BOOL wndSetSize(HWND hwnd,int cx,int cy);    //WZ4.00Bl 990912 #defineマクロから関数化
  1380. #if WINDOWSCE
  1381. BOOL IsIconic(HWND hwnd);
  1382. HWND GetDesktopWindow(void);
  1383. #endif
  1384. //
  1385. void myCheckMenuItem(HMENU hmenu,int idm,BOOL fCheck);
  1386. void myEnableMenuItem(HMENU hmenu,int idm,BOOL fEnable);
  1387. BOOL GetEnableMenuItem(HMENU hmenu,int idm);
  1388. void hmenubarDeleteShortcut(HMENU hmenuRoot);
  1389. void hmenuDeleteShortcut(HMENU hmenu);
  1390. #if !WINDOWSCE
  1391. HWND CommandBar_Create(HINSTANCE hInst, HWND hwndParent, int idCmdBar);
  1392. BOOL CommandBar_Show(HWND hwndCB, BOOL fShow);
  1393. int CommandBar_AddBitmap(HWND hwndCB, HINSTANCE hInst, int idBitmap,int iNumImages, int iImageWidth,int iImageHeight);
  1394. HWND CommandBar_InsertComboBox(HWND hwndCB, HINSTANCE hInstance,int  iWidth, UINT dwStyle,WORD idComboBox, WORD iButton);
  1395. BOOL CommandBar_InsertMenubar(HWND hwndCB, HINSTANCE hInst,WORD idMenu, WORD iButton);
  1396. HMENU CommandBar_GetMenu(HWND hwndCB, WORD iButton);
  1397. BOOL CommandBar_AddAdornments(HWND hwndCB,DWORD dwFlags,DWORD dwReserved);
  1398. int CommandBar_Height(HWND hwndCB);
  1399. void CommandBar_AddButtons(HWND hwndCB,int cbButtons,LPVOID lpButtons);
  1400. void CommandBar_AddToolTips(HWND hwndCB,int cbToolTips,LPVOID lpToolTipsStrings);
  1401. #endif
  1402. //
  1403. int TXAPI systemfontGetCx(void);
  1404. int TXAPI systemfontGetCy(void);
  1405. void hwndSetCenter(HWND hwndBase);
  1406. BOOL wndRePos(HWND hwnd);
  1407. BOOL TXAPI wndGetRect(HWND hwnd,RECT* r);
  1408. void rectReWork(RECT* r);
  1409. void strToRect(mchar* p,RECT* r);
  1410. BOOL rectCheck(RECT* r);
  1411. //intelli mouse
  1412. BOOL imouseGetEnable(void);
  1413. BOOL messageIsMouseWheel(UINT message);
  1414. BOOL imouseGetPageTurn(void);
  1415. int imouseGetScrollLines(WPARAM wParam);
  1416. //
  1417. #if WINDOWSCE
  1418.     UINT IsDlgButtonChecked(HWND hwnd,int idd);
  1419.     BOOL CheckDlgButton(HWND hwnd,int idd,UINT uCheck);
  1420.     BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  1421.     BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  1422.     #if WINDOWSCE1    //PWZ2BETA0.4 980530 
  1423.     HPEN CreatePen(int style,int nWidth,COLORREF rgb);
  1424.     #endif
  1425. #else
  1426.     extern int _cxSysChar;
  1427.     extern int _cySysChar;
  1428.     void InitSystemFontSize(HWND hwnd);
  1429. #endif
  1430. int GetSystemFontNo(void);
  1431. //
  1432. mchar* GetWindowTextAlloc_A(HWND hwnd);
  1433. #ifdef UNICODE
  1434. void ListBox_AddString_A(HWND hctrl,mchar* sz);
  1435. int ListBox_FindStringExact_A(HWND hctrl,int i,mchar* sz);
  1436. void ComboBox_AddString_A(HWND hctrl,mchar* sz);
  1437. int sprintf_A(LPSTR szDst,LPCSTR szFormat,...);
  1438. BOOL TextOut_A(HDC hdc,int x,int y,LPCSTR lpString,int lchString);
  1439. BOOL WINAPI SetWindowText_A(HWND hwnd,LPCSTR lpsz);
  1440. int WINAPI GetWindowText_A(HWND hwnd,LPSTR lpsz,int cchMax);
  1441. BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  1442. BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  1443. int DrawText_A(HDC hdc,LPCSTR szStr,int cchStr,LPRECT lprc,UINT wFormat);    //WZ4.00Ca 000102 new
  1444. #else
  1445. void ListBox_AddString_W(HWND hctrl,wchar* wsz);
  1446. int ListBox_FindStringExact_W(HWND hctrl,int i,wchar* wsz);
  1447. void ComboBox_AddString_W(HWND hctrl,wchar* wsz);
  1448. int sprintf_W(LPWSTR szDst,LPCWSTR szFormat,...);
  1449. int vsprintf_W(LPWSTR szDst,LPCWSTR szFormat,void** arg);
  1450. int GetWindowText_W(HWND hwnd,LPWSTR lpsz,int cchMax);
  1451. BOOL SetDlgItemText_W(HWND hwndDlg,int idControl,LPCWSTR lpsz);
  1452. int GetDlgItemText_W(HWND hwndDlg,int idControl,LPWSTR lpsz,int cchMax);
  1453. HWND CreateWindow_W(LPCWSTR lpszClassName,LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,HMENU hmenu,HANDLE hinst,LPVOID lpvParam);
  1454. HWND CreateWindowEx_W(DWORD dwExStyle,LPCWSTR lpszClassName,LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,HMENU hmenu,HANDLE hinst,LPVOID lpvParam);
  1455. ATOM RegisterClass_W(WNDCLASSW* lpwc);
  1456. int GetClassName_W(HWND hwnd,LPWSTR lpClassName,int cchClassName);
  1457. int DrawText_W(HDC hdc,LPCWSTR wszStr,int cchStr,LPRECT lprc,UINT wFormat);
  1458. #endif    // !UNICODE
  1459. #if UNIX
  1460.     #define ComboBox_GetEditBox(hctrl)    SendMessage(hctrl,CB_GETEDITBOX,0,0)
  1461. #else
  1462.     #define ComboBox_GetEditBox(hctrl)    GetWindow(hctrl,GW_CHILD)
  1463.     #define CS_XIME        0    // (UNIX用)IME入力が必要なウィンドウクラスであることを指定
  1464.     #define WS_XIME        0    // (UNIX用)IME入力が必要なウィンドウであることを指定
  1465. #endif
  1466. //
  1467. #if !WINDOWSCE1 && !UNIX
  1468.     BSTR ime98GetPhonetic(OLECHAR* wszKanji);
  1469. #endif
  1470. void hwndSetFontDefault(HWND hwnd);
  1471. BOOL hbitmapGetSize(HBITMAP hBitmap,SIZE* s);
  1472. BOOL iskanjifont(mchar *lfFaceName);
  1473. void TreeView_Hook(HWND hwnd);
  1474. int TreeView_GetItemNest(HWND hwnd,HTREEITEM tvitem);
  1475. #endif // !__TXC__
  1476.  
  1477. int TXAPI_(979) dtcx(int dtcx);
  1478. int TXAPI_(980) dtcy(int dtcy);
  1479. mchar* TXAPI_(1111) systemfontGetFaceName(void);
  1480. int    TXAPI_(1112) systemfontGetHeight(void);
  1481.  
  1482. #ifdef UNICODE
  1483. int TXAPI_(1117) vsprintf_A(LPSTR szDst,LPCSTR szFormat,void** arg);
  1484. #else
  1485. BOOL TXAPI_(978) SetWindowText_W(HWND hwnd,LPCWSTR lpsz);
  1486.     #if __TXC__
  1487.     HANDLE TXAPI_(1006) FindFirstFile_W(LPCWSTR wszpath,LPVOID ffd);
  1488.     HANDLE TXAPI_(1007) FindNextFile_W(HANDLE hFindFile,LPVOID ffd);
  1489.     #else
  1490.     HANDLE TXAPI_(1006) FindFirstFile_W(LPCWSTR wszpath,WIN32_FIND_DATAW* ffd);
  1491.     HANDLE TXAPI_(1007) FindNextFile_W(HANDLE hFindFile,WIN32_FIND_DATAW* ffd);
  1492.     #endif
  1493. #endif    // !UNICODE
  1494. #if __TXC__
  1495.     #if WINDOWSCE
  1496.         #define IsDlgButtonChecked(hwnd,idd)    SendMessage(GetDlgItem(hwnd,idd),BM_GETCHECK,0,0)
  1497.         #define CheckDlgButton(hwnd,idd,f)        SendMessage(GetDlgItem(hwnd,idd),BM_SETCHECK,f,0);
  1498.     #endif
  1499. HWND TXAPI_(111) CreateWindow_W(LPCWSTR lpszClassName,LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,HMENU hmenu,HANDLE hinst,LPVOID lpvParam);
  1500. HWND TXAPI_(1120) CreateWindowEx_W(DWORD dwExStyle,LPCWSTR lpszClassName,LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,HMENU hmenu,HANDLE hinst,LPVOID lpvParam);
  1501. WORD TXAPI_(816) RegisterClass_W(LPVOID lpwc);
  1502. int TXAPI_(926) sprintf_W(LPWSTR szDst,LPCWSTR szFormat,...);
  1503. #endif
  1504.  
  1505. //##GDI拡張
  1506.  
  1507. void myRectangle(HDC hdc,int left,int top,int right,int bottom);
  1508. void DrawXorBox(HDC hdc,RECT* r,HBRUSH hbrush);
  1509. int GetTextTurn(HDC hdc,tchar* sz,int lchSz,int cx);
  1510. int TXAPI_(761) pointsToMmtext(HDC hdc,int points);
  1511. int TXAPI_(762) pixelsToMcm(HDC hdc,int pixels);
  1512. int mmtextToPoints(HDC hdc,int mmtext);
  1513. int TXAPI_(763) mcmToPixels(HDC hdc,int mcm);
  1514. void TXAPI_(765) hdcDrawFrame(HDC hdc,RECT *r,UINT mode);
  1515.     // hdcのrに3次元で枠を描きます
  1516.     //   DF_BUTTON            ふくらんだボタン
  1517.     //   DF_PUSHEDBUTTON    へこんだボタン
  1518.     //   DF_INFO            ステータスバー内の枠
  1519.     //   DF_INFOWHITE        ステータスバー内の枠(中身白)
  1520.     //   DF_BORDER            境界線で枠
  1521.     //   DF_ROUNDBORDER        境界線で角が丸い枠
  1522.     //   DF_BUTTONSHADOW    ボタンの影
  1523.     //   DF_BUTTONFACE        ボタンベース色
  1524.     #define DF_PUSHEDBUTTON        0
  1525.     #define DF_BUTTON            1
  1526.     #define DF_BORDER            2
  1527.     #define DF_INFO                3
  1528.     #define DF_ROUNDBORDER        4
  1529.     #define DF_BUTTONSHADOW        5
  1530.     #define DF_BUTTONFACE        6
  1531.     #define DF_INFOWHITE        7
  1532.     #define DF_FILLBUTTONFACE    8    // 塗りつぶす    //WZ4.00Ca 991214 new
  1533.     enum {
  1534.         DF_FRAMEOUTSIDE=110,
  1535.         DF_FRAMEINSIDE,
  1536.         DF_FRAME,                // DF_FRAMEOUTSIDE+DF_FRAMEINSIDE    //WZ3.90O 981202 
  1537.     };
  1538. void TXAPI_(764) hdcSelectObjectDefault(HDC hdc);
  1539. //
  1540. #if !__TXC__
  1541. #if WINDOWSCE
  1542. void MoveTo(HDC hdc,int x,int y);
  1543. void LineTo(HDC hdc,int x,int y);
  1544. BOOL TextOut(HDC hdc,int x,int y,LPCTSTR lpString,int cbString);
  1545. #else
  1546.     #define MoveTo(hdc,x,y)    MoveToEx(hdc,x,y,NULL)
  1547. #endif
  1548. #endif // !__TXC__
  1549.  
  1550. //##メニュー操作
  1551.  
  1552. HMENU TXAPI_(387) menuNew(void);
  1553. void TXAPI_(388) wmenuStr(HMENU hmenu,wchar* szStr,int id);
  1554. void TXAPI_(810) menuStr(HMENU hmenu,mchar* sz,int id);
  1555. void TXAPI_(245) wmenuPopup(HMENU hmenu,wchar *szStr,HMENU hmenuPopup);
  1556. void TXAPI_(811) menuPopup(HMENU hmenu,mchar* sz,HMENU hmenuPopup);
  1557. void TXAPI_(389) menuSepa(HMENU hmenu);
  1558. void TXAPI_(390) menuDelete(HMENU hmenu);
  1559. BOOL TXAPI_(874) menuTx(HMENU hmenu,mchar* szCaption,mchar* szMacro);    //WZ3.90L 981122 TX-C互換
  1560. int TXAPI_(391) menuOpenEx(HMENU hmenu,UINT flag,int x,int y,HWND hwndParent);
  1561.     #define MENU_CMD        0x0001    // ウィンドウプロシジャを経由せず、コマンドを返す。
  1562.     #define MENU_CENTER        0x0002    // 画面中央に表示。x,yにはlcx,lcyを指定。
  1563.     #define MENU_MOUSE        0x0004    // マウス位置に表示。
  1564.     #define MENU_TXCUR        0x0008    // textのカーソル位置に表示。
  1565.     #define MENU_TRAY        0x0010    // タスクトレイの位置に表示。
  1566.     #define MENU_DELETE        0x0020    // オープン後にhmenuを削除する。
  1567.     #define MENU_GETPARENT    0x0040    // hwndParentに関わらずsysApGetFocusする。//WZ4.00Bk 990909 
  1568. // 以下、TX-Cからも利用可能
  1569. #define txHmenuSelect(text,hmenu)    menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_TXCUR,0,0,text->hwndtext)
  1570. #define txHmenuOpenKey(text,hmenu)    menuOpenEx(hmenu,MENU_TXCUR,0,0,text->hwndbase)    //WZ4.00A 981229 new hwndtextを渡すのは×、hwndbaseが○
  1571. #define menuSelectMouse(hmenu)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_MOUSE,0,0,NULL)
  1572. #define menuOpenMouse(hmenu)        menuOpenEx(hmenu,MENU_MOUSE,0,0,NULL)
  1573. #define menuOpenXY(hmenu,x,y)        menuOpenEx(hmenu,0,x,y,NULL)
  1574. // 以下、内部用
  1575. #define menuSelectXY(hmenu,x,y)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE,x,y,NULL)
  1576. #define menuOpenCenter(hmenu,lx,ly)    menuOpenEx(hmenu,MENU_CENTER,lx,ly,NULL)
  1577. #define menuOpenTray(hmenu,hwnd)    menuOpenEx(hmenu,MENU_TRAY,0,0,hwnd)
  1578. HMENU menuLoadMouseR(mchar* szApp,mchar* szName);
  1579. HMENU TXAPI_(956) menuLoad(mchar* szApp,mchar* szName);
  1580. HMENU TXAPI_(1119) menubarLoad(mchar* szApp,mchar* szName);
  1581. void TXAPI_(559) menuFlushAccesskey(HMENU hmenu,struct tagKEY* key);
  1582.  
  1583. //##キー/IDM操作
  1584.  
  1585. #define CCHKEY                20    // キーボードのキー表記を文字列で表した時の最大長
  1586. #define TXVK_MAX_2STROKE    10    // 2ストロークキーMAX
  1587.  
  1588. typedef int WZKEY;
  1589. typedef WORD WZCMD;
  1590.  
  1591. #define TXVK_NULL        0x00    // NULL
  1592. #define TXVK_ASCIITOP    0x01    // ASCII(0x40)
  1593. #define TXVK_ASCIIBASEEND 0x20    // ASCII(0x5F)
  1594. #define TXVK_ASCIIEND    0x26    // ASCII(0x5F) + 6
  1595.                                 //WZ3.90I 981103 +6 : '-'など、他のキーも使えるようにした。
  1596. #define TXVK_NUMTOP        0x27    // 数字先頭'0'
  1597. #define TXVK_NUMEND        0x30    // 数字末尾'9'
  1598. #define TXVK_CONTROLTOP    0x31    // コントロールコード先頭
  1599. #define TXVK_NEXT        0x31
  1600. #define TXVK_PRIOR        0x32
  1601. #define TXVK_INSERT        0x33
  1602. #define TXVK_DELETE        0x34
  1603. #define TXVK_UP            0x35
  1604. #define TXVK_LEFT        0x36
  1605. #define TXVK_RIGHT        0x37
  1606. #define TXVK_DOWN        0x38
  1607. #define TXVK_HOME        0x39
  1608. #define TXVK_END        0x3A
  1609. #define TXVK_ESCAPE        0x3B
  1610. #define TXVK_TAB        0x3C
  1611. #define TXVK_BACK        0x3D
  1612. #define TXVK_RETURN        0x3E
  1613. #define TXVK_SPACE        0x3F
  1614. #define TXVK_MOUSEL        0x40
  1615. #define TXVK_MOUSEL2    0x41
  1616. #define TXVK_MOUSEL3    0x42
  1617. #define TXVK_MOUSEL4    0x43
  1618. #define TXVK_MOUSER        0x44
  1619. #define TXVK_F1            0x45
  1620. #define TXVK_F15        (TXVK_F1 + 15 - 1)
  1621. #define TXVK_CONTROLEND    TXVK_F15// コントロールコードこれまで
  1622. #define TXVK_SIZE        (TXVK_CONTROLEND + 1)
  1623. #define TXVK_ADD_SHIFT                (TXVK_SIZE * 1)
  1624. #define TXVK_ADD_CONTROL            (TXVK_SIZE * 2)
  1625. #define TXVK_ADD_SHIFTCONTROL        (TXVK_SIZE * 3)
  1626. #define TXVK_ADD_MENU                (TXVK_SIZE * 4)
  1627. #define TXVK_ADD_SHIFTMENU            (TXVK_SIZE * 5)
  1628. #define TXVK_ADD_CONTROLMENU        (TXVK_SIZE * 6)
  1629. #define TXVK_ADD_SHIFTCONTROLMENU    (TXVK_SIZE * 7)
  1630. #define TXVK2_ASCII20    0x01    //WZ4.00Ca 991212 
  1631. #define TXVK2_ASCII5F    0x40    //WZ4.00Ca 991212 
  1632. #define TXVK2_CTRLA        0x41    //WZ4.00Ca 991212 
  1633. #define TXVK2_CTRLZ        0x5A    //WZ4.00Ca 991212 
  1634. #define TXVK_ADD_2STROKE(i)            (TXVK_SIZE * 8 + (TXVK2_CTRLZ + 1) * (i))
  1635.  
  1636. typedef struct {
  1637.     FBOOL fInUse;            // 使用中
  1638.     mchar szPre[CCHKEY];
  1639.     int lchPre;
  1640. } PREKEY;
  1641.  
  1642. enum {
  1643.     FKEY_NORMAL=0,FKEY_SHIFT,FKEY_CTRL,FKEY_SHIFTCTRL,FKEY_N,
  1644. };
  1645. #define FKEY_SIZE        13    // 登録できる文字数+1
  1646. #define FKEY_NKEY        12    // 最大キー数
  1647.  
  1648. typedef struct tagKEY {
  1649. // 2ストロークキー
  1650.     int nPre;    // 使用中の数
  1651.     PREKEY tPre[TXVK_MAX_2STROKE];
  1652. // キーに割り当てられたコマンド
  1653.     WZCMD tWzcmd[TXVK_ADD_2STROKE(TXVK_MAX_2STROKE)];
  1654. #if !WINDOWSCE
  1655. // ファンクションキー表示内容    //WZ3.90I 981107 
  1656. //WZ4.00Bl 990909 ファンクションキー表示バッファが足りなかったので拡大。
  1657.     #define CCH_CSZFKEY    (FKEY_NKEY*(FKEY_SIZE+3))    //WZ4.00Bl 990909 
  1658.     mchar tcszFkey[FKEY_N][CCH_CSZFKEY];    // タブ区切りcsz
  1659. #endif
  1660. // 設定
  1661.     HWND hwnd;        // このキー入力がなされるウィンドウ    //WZ4.00Ca 991212 
  1662.     UINT message;    // hwndへの通知メッセージ番号    //WZ4.00Ca 991212 
  1663.         #define KEYN_2STROKE_CLEAR    1
  1664.         #define KEYN_2STROKE_SET    2
  1665. // 現在の内部情報
  1666.     IDM f2Stroke;        // 2ストローク中
  1667.     BYTE fImeWasOn:1;    // 2ストローク中はIMEをoffするので、以前の状態を保持
  1668.     BYTE f2Stroked:1;    // 2ストロークが終わった    //WZ4.00Dd 000531 
  1669. // keyProcMessageの結果
  1670.     IDM idm;            // 実行するIDM。なければ0
  1671.     BYTE nRepeat;        // リピート数
  1672. } KEY;
  1673.  
  1674. typedef struct {
  1675.     BYTE lch;
  1676.     mchar *sz;
  1677.     WORD idm;
  1678. } SZCMDTOWZCMD;
  1679. extern SZCMDTOWZCMD _tSzcmdToWzcmd[];
  1680.  
  1681. // key
  1682. KEY* TXAPI_(560) keyNew(void);
  1683. void TXAPI_(561) keyDelete(KEY* key);
  1684. BOOL TXAPI_(562) keySetIdm(KEY* key,mchar* szKey,int idm);
  1685. void TXAPI_(563) keyClear(KEY* key);
  1686. BOOL TXAPI_(564) keyProcMessage(KEY* key,UINT message,WPARAM wParam,LPARAM lParam);
  1687. BOOL TXAPI_(565) keyLoad(KEY* key,mchar* szApp,mchar* szName);
  1688. BOOL TXAPI_(622) keyIdmToSzkey(KEY* key,WZCMD wzcmd,mchar szstr[CCHWORD]);
  1689. mchar* TXAPI_(403) keyWzkeyToSzkey(KEY* key,WZKEY wzkey,mchar szkey[CCHKEY]);
  1690. // idm
  1691. int    TXAPI_(825) idmRegister(void);    //WZ3.90I 981027 new
  1692. mchar* TXAPI_(557) idmToString(int idm,mchar szCmd[CCHWORD]);
  1693. IDM    TXAPI_(558) idmFromString(mchar* szIdm);
  1694.  
  1695. //##パス検索(GREP)
  1696.  
  1697. typedef struct tagFOLDER_WALK {
  1698.     BBOOL fSearchSubFolder;            // サブフォルダも検索
  1699.     BBOOL fNoSearchWindows;            // Windowsフォルダは検索しない
  1700.     BBOOL fNoSearchBinaryFiletype;    // バイナリ拡張子のファイルは検索しない
  1701.     BBOOL fNoSearchBigFile;            // 巨大なファイルは検索しない
  1702.     int (*appProc)(LPVOID appContext,wchar* wszfilename);
  1703.     LPVOID appContext;                // appProcに渡すクライアント定義コンテキスト
  1704.     BYTE fTXC:1;                    //WZ4.00Ca 991130 TX-Cからの利用?
  1705. // appProc用
  1706.     BOOL fAborted;                    // 中止する
  1707. // 内部用
  1708.     wchar wszPath[CCHPATHNAME];        // 検索パス
  1709.     mchar szReject[CCHPATHNAME];    //WZ4.00Bj 990823 除外用
  1710. } FOLDER_WALK;
  1711. int TXAPI_(1067) folderWalk(FOLDER_WALK* walk,wchar* wszPath);
  1712.  
  1713. //##ディレクトリ操作
  1714. //WZ4.00Ca 991023 new
  1715.  
  1716. typedef struct {
  1717.     BYTE fIgnoreReadonly:1;        // ReadOnly属性を無視
  1718.     BYTE fSilent:1;                // メッセージを出さない
  1719.     BYTE fConfirmOverwrite:1;    // 上書き時に確認する?
  1720.     BYTE fNoStopOnError:1;        // エラーが起きても続行する?(未完成)
  1721. // 状況レポート
  1722.     int (*appProc)(LPVOID appContext,wchar* wszFrom,wchar* wszTo);
  1723.     LPVOID appContext;            // appProcに渡すクライアント定義コンテキスト
  1724. // result
  1725.     BYTE fBreaked:1;            // コピー/削除が中止された?
  1726. } DIRECTORY_ARG;
  1727.  
  1728. BOOL TXAPI_(1123) directoryRemove_W(wchar* wszfilename,DIRECTORY_ARG* arg);    //WZ4.00Ca 991023 new
  1729. BOOL TXAPI_(1124) directoryCopy_W(wchar* wszfilename,wchar* wszdst,DIRECTORY_ARG* arg);    //WZ4.00Ca 991023 new
  1730.  
  1731. //##ファイル入出力
  1732.  
  1733. #define FILEHANDLE_ERROR    ((HANDLE)0xFFFFFFFF)    // replace HFILE_ERROR
  1734.                                                     // 0じゃない!
  1735. #define SEEK_SET        0
  1736. #define SEEK_CUR        1
  1737. #define SEEK_END        2
  1738.  
  1739. #define _llseekTop(hf)            _llseek(hf,0,SEEK_SET)
  1740. #define _llseekSet(hf,ifile)    _llseek(hf,ifile,SEEK_SET)
  1741. #define _llseekEnd(hf)            _llseek(hf,0,SEEK_END)
  1742. #define _llseekCur(hf)            _llseek(hf,0,SEEK_CUR)
  1743.  
  1744. #if WINDOWSCE
  1745.     //WZ4.00Bl 990915 !WINDOWSCEのTX-Cでは、_lread/_lwrite/_llseekは#include <windows.h>して使用し_wz.hでは定義しない。そうしないと#include <windows.h>したときにエラーになる。
  1746.     UINT TXAPI_(451) _lread(HANDLE hfile,LPVOID lpBuffer,UINT cbRead);
  1747.     UINT TXAPI_(452) _lwrite(HANDLE hfile,LPVOID lpBuffer,UINT cbWrite);
  1748.     LONG TXAPI_(453) _llseek(HANDLE hfile,LONG lOffset,int nOrigin);
  1749. #endif
  1750. BOOL TXAPI_(454) _lreduce(HANDLE hf,IFILE cbReduce);
  1751. BOOL TXAPI_(455) fileIsReadonlyW(wchar* szfilename);
  1752. BOOL TXAPI_(456) TXAPIBASE fileIsExistW(wchar *_szfilename);
  1753. BOOL TXAPI_(457) TXAPIBASE fileIsExist(mchar *szfilename);
  1754. BOOL TXAPI_(458) filetimeFromFileNameW(FILETIME* filetime,wchar* szfilename);
  1755. // open/close
  1756. #define FILE_SHARE_READWRITE    (FILE_SHARE_READ|FILE_SHARE_WRITE)
  1757. HANDLE TXAPI_(1096) _lopenex(wchar* wszfilename,DWORD fdwAccess,DWORD fdwShareMode);
  1758. HANDLE TXAPI_(1097) _lopenex_A(mchar* szfilename,DWORD fdwAccess,DWORD fdwShareMode);
  1759. HANDLE TXAPI_(1098) _lcreatex(wchar* wszfilename,DWORD fdwShareMode);
  1760. HANDLE TXAPI_(1099) _lcreatex_A(mchar* szfilename,DWORD fdwShareMode);
  1761. void TXAPI_(1100) _lcloseex(HANDLE hfile);
  1762.  
  1763. #if !__TXC__
  1764. BOOL _lreadPara(HANDLE hf,mchar* buff,int cch);
  1765. BOOL _lreadParaContent(HANDLE hf,mchar* buff,int cch);
  1766. BOOL _llseekLf(HANDLE hf);
  1767. #define _lclose(h)    _lcloseex(h)
  1768. BOOL _lwriteString(HANDLE hf,mchar* szstr);
  1769. BOOL _lwriteStringWtoA(HANDLE hf,wchar* wszstr);
  1770. BOOL _lwriteStringInt(HANDLE hf,int num);
  1771. BOOL _lwriteStringReturn(HANDLE hf,mchar* szstr);
  1772. BOOL _lwriteStringSpace(HANDLE hf,mchar* szstr);
  1773. BOOL _lwritef(HANDLE hf,mchar* szformat,...);
  1774. BOOL _lwriteReturn(HANDLE hf);
  1775. BOOL _lwriteFromFile(HANDLE hf,HANDLE hfSrc,IFILE size);
  1776. BOOL hfLastIsReturn(HANDLE hf);
  1777. BOOL hfLastSetReturn(HANDLE hf);
  1778. HANDLE _lopenAlways(wchar* wszfilename,DWORD fdwShareMode);
  1779. HANDLE _lcreatexNew(wchar* wszfilename,DWORD fdwShareMode);
  1780. #ifdef UNICODE
  1781. HANDLE CreateFile_A(LPCSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  1782. HANDLE LoadLibrary_A(mchar* szfilename);
  1783. FARPROC myGetProcAddress_A(HINSTANCE hinstance,mchar* szFunction);
  1784. #else
  1785. HANDLE CreateFile_W(LPCWSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  1786. BOOL CopyFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst,BOOL fFailIfExists);
  1787. BOOL MoveFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst);
  1788. BOOL DeleteFile_W(LPCWSTR lpszFileName);
  1789. BOOL SetFileAttributes_W(LPCWSTR lpszFileName,DWORD dwFileAttributes);
  1790. BOOL RemoveDirectory_W(LPCWSTR wszDir);
  1791. BOOL CreateDirectory_W(LPCWSTR lpszPath,LPSECURITY_ATTRIBUTES lpsa);
  1792. HANDLE CreateFileMapping_W(HANDLE hFile,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCWSTR lpszMapName);
  1793. HANDLE CreateMutex_W(LPSECURITY_ATTRIBUTES lpsa,BOOL fInitialOwner,LPCWSTR lpszMutexName);
  1794. #if !UNIX && !__TXC__
  1795. BOOL ShellExecuteEx_W(SHELLEXECUTEINFOW* info);
  1796. #endif
  1797. HANDLE LoadLibrary_W(wchar* wszfilename);
  1798. #endif
  1799. #endif // !__TXC__
  1800.  
  1801. //##文字列
  1802.  
  1803. int TXAPI_(297) strsize(mchar* szstr);
  1804. int _cdecl TXAPI_(99) sprintf(mchar* szdst,mchar* szformat,...);
  1805. int TXAPI_(460) formstr(mchar *str);
  1806. #ifndef __OLECPP__
  1807. mchar* TXAPI_(986) itoa(int value,mchar* string,int radix);
  1808. #endif
  1809. mchar* itoaZ(int value,mchar* string,int radix);
  1810. int TXAPI_(100) wstrtostr(wchar* src,int lchSrc,mchar* dst,int cchDst);
  1811. int TXAPI_(101) strtowstr(mchar* src,int lchSrc,wchar* dst,int sizeDst);
  1812. int TXAPI_(888) strtowstrsz(mchar* src,int lchSrc,wchar* dst,int cchDst);
  1813. int TXAPI_(889) wstrtostrsz(wchar* src,int lchSrc,mchar* dst,int cchDst);
  1814. int TXAPI_(886) pathtowpath(mchar* szpath,wchar* wszpath);
  1815. int TXAPI_(887) wpathtopath(wchar* wszpath,mchar* szpath);
  1816. wchar* TXAPI_(102) TXAPIBASE wstrcpylen(wchar *dst,wchar *src,int len);
  1817. wchar* TXAPI_(103) wstrcpylenmax(wchar *dst,wchar *src,int len,int lcxmax);
  1818. wchar * TXAPI_(104) wstrcpymax(wchar *szdst,wchar *szsrc,int lchmax);
  1819. int TXAPI_(461) formstrex(mchar *str,BOOL fCurWestern);
  1820. int strread(mchar* sz,TXCHAR* ch,IBUFF len);
  1821. wchar* wstristr(wchar* str1,wchar* str2);
  1822. void TXAPI_(1005) strToFiletime(mchar* p,int len,FILETIME* filetime,int dHourAdd);
  1823. #if !__TXC__
  1824. mchar* strSkipRe(mchar* p,int* pnRe);
  1825. int strlensize(mchar *szstr);
  1826. void sprintfAfnEx(mchar* szdst,mchar* szAf,TX* text,BOOL fSkipTopClm);
  1827. void wi10toa(int value,wchar* buff);
  1828. long watoi10(wchar* buff);
  1829. mchar* TXAPIBASE strGetWordTopLch(mchar* szStr,int lch);
  1830. int yearAdjust2000(int year);
  1831. int atoi2(mchar* p);
  1832. int atoiLen(mchar* p,int len);
  1833. IBUFF SearchParaTop(LPBYTE buff,IMEM off,IMEM _size);
  1834. IBUFF SearchParaTopEx(LPBYTE buff,IMEM off,IMEM size,IBUFF ibuffAtError);
  1835. IBUFF SearchCharTop(LPBYTE buff,IBUFF off,IBUFF _size);
  1836. IBUFF SearchParaEnd(LPBYTE buff,IMEM off,IMEM _size);
  1837. mchar* TXAPI strnext(mchar* szstr);
  1838. BOOL issepastr(mchar* str);
  1839. mchar* sepastrGetIndexStr(mchar* str,int i,int* pLch);
  1840. mchar* csstrGetInclude(mchar* csstr,int size,mchar* szName);
  1841. mchar* strGetTailSpacePrev(mchar* sz,mchar* szEnd);
  1842. void strDeleteTailSpace(mchar* sz);
  1843. void strDeleteTailSpaceTab(mchar* sz);
  1844. #if WINDOWSCE||UNIX
  1845. mchar* strnset(mchar* s,int ch,size_t n);
  1846. mchar* strupr(mchar* s);
  1847. mchar* strlwr(mchar* s);
  1848. #endif
  1849. void sprintDate(mchar* szdst);
  1850. void sprintfDate(mchar szdst[CCHWORD],mchar* szDateFormat,TX* text);
  1851. void sprintFiletime(mchar* szbuff,FILETIME* filetime);
  1852. void sprintFiletimeDate(mchar* szbuff,FILETIME* filetime);
  1853. void sprintFiletimeTime(mchar* szbuff,FILETIME* filetime);
  1854. void sprintSizeKB(mchar* szbuff,IFILE size);
  1855. void sprintSizePrim(mchar* szbuff,UINT size);
  1856. #if UNIX    //XZ0.1 990516 標準ライブラリのwcsXXXはint*なので使用できない。
  1857.     wchar* wstrcpy(wchar* dst,wchar* src);
  1858.     int wstrcmp(wchar* sz1,wchar* sz2);
  1859.     int wstrlen(wchar *str);
  1860.     wchar* wstrcat(wchar* dst,wchar* src);
  1861.     wchar* wstrstr(wchar* sz1,wchar* sz2);
  1862.     int wstrncmp(wchar* sz1,wchar* sz2,int lch);
  1863. #else
  1864.     #if WINDOWSCE
  1865.         //WZ4.00Ac 990206 A-60でpermanentを含むマクロがコンパイル&実行できない。permanentinitのwcscpyでハングするので、wstrcpyを自分で実装した。
  1866.         wchar* wstrcpy(wchar* dst,wchar* src);
  1867. //        #define wstrcpy        wcscpy
  1868.     #else
  1869.         #define wstrcpy        wcscpy
  1870.     #endif
  1871.     #define wstrlen        wcslen
  1872.     #define wstrcat        wcscat
  1873.     #define wstrstr        wcsstr    //3.90H 980910 
  1874.     #ifdef _WIN32_WCE_EMULATION
  1875.         int wstrcmp(wchar* sz1,wchar* sz2);
  1876.     #else
  1877.         #define wstrcmp        wcscmp
  1878.     #endif
  1879. #endif
  1880. #endif    // __TXC__
  1881. // for ANSI(!UNICODE) version
  1882. mchar* TXAPI_(904) strdupW(wchar* wsz);
  1883. wchar* TXAPI_(905) wstrdupA(mchar* sz);
  1884. wchar* wstrdupLenA(mchar* sz,int lch);
  1885. wchar* wstrset(wchar* dst,int ch,int lch);
  1886. // safety strcpy op.
  1887. // szdstがmcharの配列の場合のみ使用可能。mcharへのポインタの場合は不可能
  1888. #define sstrcpy(szdst,szsrc)            strcpymax(szdst,szsrc,cchof(szdst))
  1889. #define wsstrcpy(szdst,szsrc)            wstrcpymax(szdst,szsrc,wcchof(szdst))
  1890. #define sstrcpylen(szdst,szsrc,lch)        strcpylenmax(szdst,szsrc,lch,cchof(szdst))
  1891. #define wsstrcpylen(szdst,szsrc,lch)    wstrcpylenmax(szdst,szsrc,lch,wcchof(szdst))
  1892. #define sstrcat(szdst,szsrc)            strcpymax(szdst + strlen(szdst),szsrc,cchof(szdst) - strlen(szdst))
  1893. #define wsstrcat(szdst,szsrc)            wstrcpymax(szdst + wstrlen(szdst),szsrc,wcchof(szdst) - wstrlen(szdst))
  1894. #define strcatmax(szdst,szsrc,cch)        strcpymax(szdst + strlen(szdst),szsrc,cch - strlen(szdst))
  1895. #define strcatlenmax(szdst,szsrc,lch,cch) strcpylenmax(szdst + strlen(szdst),szsrc,lch,cch - strlen(szdst))    //WZ3.90M 981129 
  1896. #define wstrcatmax(szdst,szsrc,cch)        wstrcpymax(szdst + wstrlen(szdst),szsrc,cch - wstrlen(szdst))
  1897. #define sstrcatlen(szdst,szsrc,lch)        strcpylenmax(szdst + strlen(szdst),szsrc,lch,cchof(szdst) - strlen(szdst))
  1898. #define wsstrcatlen(szdst,szsrc,lch)    wstrcpylenmax(szdst + wstrlen(szdst),szsrc,lch,wcchof(szdst) - wstrlen(szdst))
  1899. #define wstrsize(szstr)                    ((wstrlen(szstr) + 1) * sizeof(wchar))
  1900. #define wstrlensize(szstr)                (wstrlen(szstr) * sizeof(wchar))
  1901. mchar * TXAPI_(462) strcpymax(mchar *szdst,mchar *szsrc,int lchmax);
  1902. BOOL TXAPI_(463) TXAPIBASE txchIsKanji(TXCHAR c);
  1903. BOOL TXAPI_(464) TXAPIBASE txchIsReturn(TXCHAR c);    // 0x0D0A,0x0A,0x1A
  1904. BOOL txchIsSubtitleIllegal(TXCHAR ch);
  1905. #ifndef __WZRAS__
  1906.     #define txchIsAlpha(c)    (c < 256 && isalpha(c))    //WCE1.01 971229 new
  1907.     #define txchIsAlnum(c)    (c < 256 && isalnum(c))    //WCE1.01 971229 new
  1908.     #define txchIsDigit(c)    (c < 256 && isdigit(c))    //WCE1.01 971229 new
  1909. #endif
  1910. wchar* wstrdup(wchar* wszstr);
  1911. wchar* wszConnectAlloc(wchar* wsz1,wchar* wsz2);
  1912. mchar* szConnectAlloc(mchar* sz1,mchar* sz2);
  1913. #if !__OLECPP__ && !UNIX && !__MEMORYDEBUG__
  1914. mchar* TXAPI_(1062) strdup(mchar* szstr);
  1915. #endif
  1916. mchar* TXAPI_(910) strdupLen(mchar* str,int lch);
  1917. mchar* stristrword(mchar *szstr,mchar *szfind);
  1918. mchar* strchrs(mchar *str1,mchar *chrs);
  1919. mchar* strchrlast(mchar *str,WORD c);
  1920. mchar* strchrex(mchar* p,int ch);
  1921. wchar* wstrchrex(wchar* p,int ch);
  1922. BOOL strisidi(mchar* szstr,mchar* szId);
  1923. // 標準のstrstr/strchr/strichrはTXCHARに対応してないので、
  1924. // __strstr/__strchr/__strichrとは動作が異なるので、overrideする
  1925. mchar* __strstr(mchar *str1,mchar *str2);
  1926. #define strstr    __strstr
  1927. mchar* __strchr(mchar *str1,WORD c);
  1928. #define strchr __strchr
  1929. mchar* __strichr(mchar *str1,WORD c);
  1930. #define strichr __strichr
  1931. mchar* __stristr(mchar *str1,mchar *str2);    //WCE1.01B 980615 
  1932. #define stristr __stristr    //WCE1.01B 980615 
  1933. mchar* strchrex(mchar* p,int ch);
  1934. wchar* wstrchrex(wchar* p,int ch);
  1935. mchar* strchrtail(mchar* p,int ch);
  1936. wchar* wstrchrtail(wchar* p,int ch);
  1937. BOOL strismsgheader(mchar* sz);
  1938. mchar* TXAPIBASE strGetNextWordTop(mchar* szStr);
  1939. mchar * TXAPI_(477) TXAPIBASE strGetWordTop(mchar* szStr);
  1940. int TXAPI_(478) TXAPIBASE strGetWordLen(mchar* szStr);
  1941. mchar* TXAPI_(845) strGetWord(mchar* szbuff,mchar* szstr);
  1942. int TXAPI strGetLineLen(mchar* szStr);
  1943. int strGetQuoteLen(mchar* szStr);
  1944. mchar * TXAPI_(479) TXAPIBASE strcpylen(mchar *dst,mchar *src,int len);
  1945. mchar * TXAPI_(480) strcpylenmax(mchar *dst,mchar *src,int len,int lcxmax);
  1946. #ifndef __OLECPP__
  1947. int TXAPI_(481) stricmp(mchar* sz1,mchar* sz2);
  1948. int TXAPI_(482) strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  1949. #endif
  1950. mchar* sjis_strupr(mchar* s);
  1951. int sjis_strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  1952. mchar * TXAPI_(485) strGetLast(mchar *szstr);
  1953. mchar* TXAPI strGetLastAscii(mchar* szstr);
  1954. int strisidi(mchar* szstr,mchar* szId);
  1955. wchar* TXAPI_(466) wstrGetLast(wchar* szstr);
  1956. int TXAPI_(467) wstricmp(wchar* sz1,wchar* sz2);
  1957. int wstrncmp(wchar* sz1,wchar* sz2,int lch);
  1958. int TXAPI_(468) wstrnicmp(wchar* sz1,wchar* sz2,int lch);
  1959. wchar* TXAPI_(469) wstrchr(wchar* sz,int c);
  1960. wchar* TXAPI_(470) TXAPIBASE wstrGetWordTop(wchar *szStr);
  1961. int TXAPI_(471) TXAPIBASE wstrGetWordLen(wchar* szStr);
  1962. mchar* TXAPIBASE szwordtop(mchar* sz);
  1963. int TXAPIBASE szwordlen(mchar* sz);
  1964. #define watoi(sz)    watol(sz)
  1965. long TXAPI_(472) watol(wchar* sz);
  1966. UINT TXAPI_(473) formcharex(mchar* str,UINT offset);
  1967. int TXAPI_(474) hextoint(mchar *szhex);
  1968. int TXAPI_(475) _hextoint(int c);
  1969.  
  1970. #if __TXC__
  1971. int _cdecl TXAPI_(105) strlen(mchar *str);
  1972. pmchar _cdecl TXAPI_(106) strcpy(mchar *str1,mchar *str2);
  1973. pmchar _cdecl TXAPI_(107) strncpy(mchar *str1,mchar *str2,size_t len);
  1974. pmchar _cdecl TXAPI_(108) strcat(mchar *str1,mchar *str2);
  1975. pmchar _cdecl TXAPI_(109) strnset(mchar *str,int ch,size_t len);
  1976. int _cdecl TXAPI_(110) strcmp(mchar *str1,mchar *str2);
  1977. int _cdecl TXAPI_(112) strncmp(mchar *str1,mchar *str2,size_t len);
  1978. pmchar _cdecl TXAPI_(114) strstr(mchar *str1,mchar *str2);
  1979. pmchar _cdecl TXAPI_(115) stristr(mchar *str1,mchar *str2);
  1980. pmchar _cdecl TXAPI_(116) stristrword(mchar *str1,mchar *str2);
  1981. pmchar _cdecl TXAPI_(117) strchr(mchar *str1,WORD c);
  1982. pmchar _cdecl TXAPI_(118) strichr(mchar *str1,WORD c);
  1983. pmchar _cdecl TXAPI_(119) strchrs(mchar *str1,mchar *found);
  1984. pmchar _cdecl TXAPI_(120) strupr(mchar *str);
  1985. pmchar _cdecl TXAPI_(121) strlwr(mchar *str);
  1986. long _cdecl TXAPI_(122) atoi(const mchar *str);
  1987. void TXAPI_(123) vsprintf(mchar *szdst,mchar *_format,void *pparam);
  1988. // unicode string
  1989. int _cdecl TXAPI_(775) wstrlen(wchar *str);
  1990. wchar* _cdecl TXAPI_(776) wstrcpy(wchar *str1,wchar *str2);
  1991. wchar* _cdecl TXAPI_(777) wstrcat(wchar *str1,wchar *str2);
  1992. int _cdecl TXAPI_(778) wstrcmp(wchar *str1,wchar *str2);
  1993. #endif    // __TXC__
  1994.  
  1995. //##タブカンマ区切り文字列
  1996.  
  1997. #if !__TXC__
  1998. int cvszGetWordLen(mchar* csz);
  1999. mchar* cvszGetWordTop(mchar* csz);
  2000. mchar* cszGetWordTop(mchar* csz);
  2001. int cszGetWordLen(mchar* csz);
  2002. mchar* cszFindNosensecase(mchar* csz,mchar* sz);
  2003. BOOL cszItemDel(mchar* csz,mchar* sz);
  2004. mchar* cszItemAddAlloc(mchar* csz0,mchar* sz);
  2005. mchar* csszGetInclude(mchar* cssz,mchar* szName);
  2006. mchar* csszGetWordTop(mchar* csz);
  2007. int csszGetWordLen(mchar* cssz);
  2008. int clmsToTclm(mchar* szClms,mchar* tClm,int cchClm,int iClm,int maxClm);
  2009. mchar* clmsFromTclmAlloc(mchar* tClm,int cchClm,int iClm,int maxClm,mchar* szFirstClm);
  2010. #endif // !__TXC__
  2011.  
  2012. //{###TEXT/WZ構造体
  2013.  
  2014. //##テキストバッファ基本定義
  2015.  
  2016. #define TEXTBUFFSIZE    16384U            //1.00F (IBUFF) -> U , 65536U-16U -> 65520U
  2017.     // テキストバッファの初期サイズ
  2018.     // 16の倍数であること。
  2019.     // これはあくまで確保するサイズ。
  2020.     // バッファに入っているテキストデータのバイト数は、
  2021.     // text->sizebuffに入っている。
  2022.     // WINDOWSCEはメモリが少ないので少な目に確保
  2023. #define MAXPARASIZE        8192U            //1.00F (IBUFF) -> U
  2024.     // 論理行の最大サイズの目安
  2025.     // これを越える論理行も何ら問題なく編集できる
  2026. #define STDGAPSIZE        2048U            //1.00F (IBUFF) -> U
  2027.     // 最低2048、最大8192程度
  2028. #define TEXTBUFFSIZE_MARGIN        8U        // WINDOWSCE
  2029.     // EOF追加,ターミネータのため、8bytes余計に取る
  2030.     // 最低3バイト余計に取らないといけない
  2031.     // 追加EOF1バイト分と、ターミネータ2+1バイト分(+1:WCE)
  2032.  
  2033. #define TC_SJIS            0        // ShiftJIS (1byte or 2bytes)
  2034.                                 // 拡張ASCIIコード(欧文文字:0x80-0xFF)は
  2035.                                 // iskanjiと重なるコードは0x80を追加して
  2036.                                 // 2bytesで表現する。
  2037.                                 // (!TEXTCHAR_UNICODE時のみ)
  2038. #define TC_SINGLEBYTE    1        // 1バイト文字(ASCII+拡張ASCII)
  2039.                                 // 日本語は使えない
  2040.                                 // (!TEXTCHAR_UNICODE時のみ)
  2041. #define TC_UNICODE        2        // UNICODE(all 2bytes)
  2042.                                 // UNICODEで定義された16bitで表現できる文字が
  2043.                                 // 使用可能
  2044.                                 // (TEXTCHAR_UNICODE時のみ)
  2045. #define TC_EUC            3        // EUC    //XZ0.1 990528 
  2046.  
  2047. #if TB_EUC
  2048.     #define iseuc(c)        (c & 0x80)    // cがEUCの1バイト目かどうか返す
  2049.     #define tbiskanji(c)    iseuc(c)    // 半角カナの場合もTRUE
  2050.     #define tbisideo(c)    (iseuc(c) && c != CHAR_EUC_KANA)    // 半角カナは除く
  2051.     #define h_tbiskanji(c)    iseuc(c)
  2052.     #define h_tbiskanji2(c)    iseuc(c)
  2053.     #define tbkanjisize(p)    eucGetCharSize(p)
  2054.     #define txchIsJspace(ch)    (ch == 0xA1A1)    //XZ0.1 990613 new
  2055. #else
  2056.     #define tbiskanji(c)    iskanji(c)
  2057.     #define tbisideo(c)        iskanji(c)
  2058.     #define h_tbiskanji(c)    h_iskanji(c)
  2059.     #define h_tbiskanji2(c)    h_iskanji2(c)
  2060.     #define tbkanjisize(p)    2
  2061.     #define txchIsJspace(ch)    (ch == 0x8140)    //XZ0.1 990613 new
  2062. #endif
  2063.  
  2064. #if UNIX
  2065.     #define CHAR_CMDLINESW        '-'
  2066.     #define CHAR_TXE_CMDLINESW    '='
  2067.     #define CHAR_PATH_SEPA        '/'        //WZ4.00Bj 990814 
  2068. #else
  2069.     #define CHAR_CMDLINESW        '/'
  2070.     #define CHAR_TXE_CMDLINESW    '-'
  2071.     #define CHAR_PATH_SEPA        '\\'    //WZ4.00Bj 990814 
  2072. #endif
  2073.  
  2074. #if TEXTCHAR_UNICODE
  2075.     typedef unsigned short TEXTCHAR;    // textbuff char set is UNICODE
  2076.     #define TEXTSTR(quote)            L##quote
  2077.     #define textvsprintf            vsprintf_W
  2078.     #define textsprintf                sprintf_W
  2079.     #define textstrlen                wstrlen
  2080.     #define textstrcpy                wstrcpy
  2081.     #define textstrcpylen            wstrcpylen
  2082.     #define textstricmp                wstricmp
  2083.     #define textcchof                wcchof
  2084.     #define textsprintf                sprintf_W
  2085.     #define textatol                watol
  2086.     #define textstrchr                wstrchr
  2087.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,(n)*2)
  2088.     #define textstrnicmp(s1,s2,n)    wstrnicmp(s1,s2,n)
  2089.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,(n)*2)
  2090.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,(n)*2)
  2091.     #define textmemmove(s1,s2,n)    memmove(s1,s2,(n)*2)
  2092.     #define textitoa(n,s,r)            itow(n,s,r)
  2093.     #define textstrcpylenmax        wstrcpylenmax
  2094. #else
  2095.     typedef unsigned char TEXTCHAR;        // textbuff char set is ShiftJIS(ANSI)
  2096.     #define TEXTSTR(quote)            quote
  2097.     #define textvsprintf            vsprintf_A
  2098.     #define textsprintf                sprintf_A
  2099.     #define textstrlen                strlen
  2100.     #define textstrcpy                strcpy
  2101.     #define textstrcpylen            strcpylen
  2102.     #define textstricmp                stricmp
  2103.     #define textcchof                cchof
  2104.     #define textsprintf                sprintf_A
  2105.     #define textatol                atol
  2106.     #define textstrchr                strchr
  2107.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,n)
  2108.     #define textstrnicmp(s1,s2,n)    strnicmp(s1,s2,n)
  2109.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,n)
  2110.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,n)
  2111.     #define textmemmove(s1,s2,n)    memmove(s1,s2,n)
  2112.     #define textmemchr(s,c,n)        memchr(s,c,n)
  2113.     #define textitoa(n,s,r)            itoa(n,s,r)
  2114.     #define textstrcpylenmax        strcpylenmax
  2115. #endif
  2116.  
  2117. //##TXF定義
  2118. // 詳しくは"txf.txt"を参照。
  2119. // TXF_PARA_xxx : 段落先頭のみに存在。段落属性を表す。
  2120. // 971106 start
  2121.  
  2122. #define CHAR_TXF            0x1F    // TXF_xxxが続く
  2123.                                     // この後にタグ名、アトリビュートが続く。
  2124.                                     // タグにはバイナリデータは使わない。0x00や0x0Dなどが入ると混乱するため。
  2125. #define CHAR_TXFEND            0x1E    // タグの終わり
  2126. #define CHAR_ATRDELI        0x1D    // 一つのアトリビュートの終わり
  2127. //// CHAR_TXF,CHAR_TXFEND,CHAR_ATRDELIのコードはまだ確定していない
  2128. //// ESCシーケンスなどとの整合性を調べる
  2129. //// 問題が少なそうなコードとして0x08(BS),0x0B(VT),0x18(CAN)も候補
  2130. // CHAR_TXFの直後に置く
  2131. #define CHAR_TXFTAG_END        '/'        // 閉タグ
  2132. #define CHAR_TXFTAG_CHAR    '*'        // 文字タグ
  2133. #define CHAR_TXFTAG_PARA    '#'        // 段落タグ
  2134.                                     // CHAR_TXFTAG_SINGLEが続くと、改行操作で次行に引き継がない
  2135. #define CHAR_TXFTAG_SINGLE    '!'        // 単独タグ
  2136. // 文字数
  2137. #define CCHTAG                30        // タグ名の最大文字数+1
  2138. #define CCHTXFTAG            500        // アトリビュートも含めて最大文字数+1
  2139.  
  2140. // タグが閉じているか調べる時のコンテキスト
  2141. typedef struct tagTAGNEST {
  2142.     BYTE lchTag;
  2143.     TEXTCHAR szTag[CCHTAG];    // タグ名 アトリビュートは除く
  2144.     TEXTCHAR* pTag;            //WCE1.01 980308 タグアドレス
  2145.     TEXTCHAR* szAtr;        // malloced
  2146.                             // for tagnestNext
  2147.     SIGNED_BYTE nNest;        // 現在のネストレベル
  2148.     FBOOL fParaTag;            // 段落タグ?
  2149.     DWORD lParam;            // ユーザデータ
  2150.     FBOOL fPreTagIsTop;        // (ユーザデータ)直前のタグが開タグだった?
  2151.     FBOOL fClearTag;        // タグのクリア?
  2152.                             //WCE1.01 980308 for for tagnestNext
  2153.     int nTag;                // 現在までのタグ数
  2154.     struct tagTAGNEST* prev;
  2155.     struct tagTAGNEST* next;
  2156. } TAGNEST;
  2157.  
  2158. // タグ解析コンテキスト
  2159. typedef struct {
  2160.     BYTE lchTag;
  2161.     TEXTCHAR szTag[CCHTAG];
  2162.     BOOL fSingle;        // 単独タグか?
  2163.     BOOL fPara;            // 段落タグか?
  2164.     BOOL fParaSingle;    // 段落単独タグか?
  2165.     BOOL fEnd;            // 閉タグか?
  2166.     BOOL fChar;            // 文字タグか?
  2167.     BOOL fUser;            // ユーザ定義タグか?
  2168. } TAGANA;
  2169.  
  2170. // for "TD" atr analyze
  2171. typedef struct {
  2172.     int width;
  2173.     BOOL fWidthAuto;
  2174.     int lineTop;    // default:CELLLINE_LINE
  2175.     int lineLeft;    // default:CELLLINE_LINE
  2176.     int lineBottom;    // default:CELLLINE_NULL
  2177.     int align;        // default:CELLALIGN_LEFT
  2178.     int xbase;        // default:0
  2179. } CELLATR;
  2180. // atr align
  2181. #define CELLALIGN_LEFT        0    // 左揃え
  2182. #define CELLALIGN_CENTER    1    // 中央揃え
  2183. #define CELLALIGN_RIGHT        2    // 右揃え
  2184. // atr line
  2185. #define CELLLINE_NULL        0    // 線なし
  2186. #define CELLLINE_LINE        1    // 実線
  2187. #define CELLLINE_BOLD        2    // 太線
  2188. #define CELLLINE_CONNECT    3    // 連結
  2189.  
  2190. // for "IMG" atr analyze
  2191. typedef struct {
  2192.     wchar wszfilename[CCHPATHNAME];
  2193.     int modeDisp    ;        // 表示モード
  2194.         #define IMGDISP_WYSIWYG        0    // (default)画面上のサイズと同じサイズで印刷
  2195.         #define IMGDISP_TEXTRATE    1    // テキストの横幅に対するパーセンテージで印刷
  2196.         #define IMGDISP_RATE        2    // 図のサイズをパーセンテージで拡大/縮小して印刷
  2197.     int rate;                // (default=100)パーセンテージ
  2198.     BBOOL fAbsolutePath;    //WZ3.90I 981106 絶対パス?
  2199. #ifdef WINVER
  2200.     BITMAPFILEHEADER* dib;    // (default=NULL)埋め込みの場合はそのDIBデータ(malloced)
  2201. #else
  2202.     LPVOID dib;
  2203. #endif
  2204. } IMGATR;
  2205.  
  2206. // for "BEAM" atr analyze
  2207. typedef struct {
  2208.     int lx;                // lx
  2209.     BOOL fSpace;        // 余白数を指定する
  2210.     int nSpace;            // fSpaceの場合、このBEAMで空ける余白数
  2211. } BEAMATR;
  2212.  
  2213. // 図
  2214. #if !__TXC__
  2215. typedef struct tagIMGSET {
  2216.     wchar wszfilename[CCHPATHNAME];
  2217.     FBOOL fHeadAlloced;
  2218.     #if !UNIX
  2219.     BITMAPFILEHEADER* head;
  2220.     BITMAPINFOHEADER* info;
  2221.     BITMAPINFO* bitmapinfo;
  2222.     #endif
  2223.     LPBYTE bitmap;
  2224.     struct tagIMGSET* prev;    // for Cache link
  2225.     struct tagIMGSET* next;    // for Cache link
  2226. } IMGSET;
  2227.  
  2228. BOOL imgCreateDIB(IMGSET* img,int cx,int cy,int bits);
  2229. BOOL imgSave(IMGSET* img,BOOL fCreateAlways);
  2230. void imgFreeContents(IMGSET* img);
  2231. #endif
  2232.  
  2233. // リンクヒストリ
  2234. typedef struct {
  2235.     #define MAX_LINKHIST    100
  2236.     IFILE tAdr[MAX_LINKHIST];
  2237.     int n;
  2238.     int index;
  2239. } LINKHIST;
  2240.  
  2241. //##paraatr/見出し
  2242. //WCE1.01 980205 new    //WZ4.00Bl 990920 全面変更。
  2243. // この情報はキャッシュ的に用いること。必ずあると仮定して依存してはいけない。
  2244.  
  2245. typedef struct {
  2246.     IFILE paratop1;    // 段落先頭ifile+1(0:無効)
  2247. // 段落内のBEAMタブ桁情報(PARAATR_TEXT_BEAMTABは廃止してこれに統合した)
  2248.     WORD* tlxTab;
  2249.     int allocTab;    // アロケートした要素数
  2250. // 数KBを越える長い段落の折り返し計算キャッシュ(GplCache)
  2251.     IBUFF* tibuff;
  2252.     UINT paraoff;    // 現在tibuffに格納されている中で最大のparatopからのoffsetを保持
  2253.     int nCache;        // 現在の要素数
  2254.     int allocCache;    // アロケートした要素数
  2255. } PARAATREX;    //WZ4.00Bl 990918 new
  2256.  
  2257. enum {
  2258.     CPARA_NORMAL=1,
  2259.     CPARA_DIVMUL,CPARA_MULDIV,
  2260.     CPARA_IF_0,CPARA_IF_1,CPARA_IF_A,CPARA_ELSE,CPARA_ENDIF,
  2261.     CPARA_USER1_TOP,CPARA_USER1_END,
  2262.     CPARA_USER2_TOP,CPARA_USER2_END,
  2263. };
  2264.  
  2265. #if !WINDOWSCE
  2266. #pragma pack(push,1)    //WZ4.00Bl 990918 メモリ節約
  2267. #endif
  2268. typedef struct {
  2269.     PARAATREX* pex;            // 拡張情報                //WZ4.00Bl 990918 
  2270.     IFILE len;                // 段落の長さ(0:不明)    //WZ4.00Bl 990920 
  2271.     WORD fEdited:1;            // 編集が加えられた?
  2272.     WORD nline:6;            // この段落の表示行数(0:不明,PARA_NLINE_BIG:多すぎるのでカウントを中止した for 長大段落)
  2273.         #define PARA_NLINE_BIG    63
  2274.     WORD cpara:4;            // この段落の色分け属性(広範囲色分け用)(0:不明)
  2275.     WORD fCparaElif:1;        // "elif"の段落か?
  2276.     WORD reserved:4;
  2277. } PARAATR;
  2278. #if !WINDOWSCE
  2279. #pragma pack(pop)
  2280. #endif
  2281.  
  2282. #define MAX_NEST_CPARA    10
  2283.  
  2284. typedef struct {
  2285.     PARAATR* buff;            // PARAATR buff
  2286.     NPARA cur0;                // gap start
  2287.     NPARA cur;                // gap end + 1
  2288.     NPARA size;                // buff size
  2289.     BYTE fPsbOK:1;            // EOFまで数え終わり、数え直す必要はない?
  2290.     BYTE fPsbSetNlineall:1;    // PSBによってtext->nlineAllがセットされた?
  2291.     BYTE fPsbCountedAll:1;    // すべての段落をカウントし終えた?
  2292.     BYTE fPsbOnProc:1;        // 計算処理中?
  2293.     BYTE fNoSetGplCashe:2;    // 一時的にGplキャッシュに追加しない?
  2294.     NPARA nparaTopLast;        // paratop1を保持している最終段落
  2295.     NPARA nparaCparaLast;    // tCparaCond/nestCparaキャッシュを保持しているnpara
  2296.     BYTE tCparaCond[MAX_NEST_CPARA];
  2297.         #define CPARA_1        0x01    // 条件TRUE?
  2298.         #define CPARA_A        0x02    // #elseで反転しない?
  2299.     BYTE nestCpara;            // 
  2300. } PARAATR_CONTEXT;
  2301.  
  2302. #define HEADLINE_N        6        // 見出し数
  2303. #define CCHHEADLINE    CCHWORD        // 見出しの最大長さ    //WZ4.00Bj 990824 CCHSWORDから拡大 for 正規表現
  2304.  
  2305. typedef struct {
  2306.     mchar sz[CCHHEADLINE];
  2307.     BYTE lch;                    // 見出し文字列の長さ(無効な場合もあるので注意)
  2308.     BBOOL fDelete;
  2309.     BBOOL fCfunc;                // C関数定義を見出しとする?
  2310.     struct tagRE_CONTEXT* re;    // 正規表現見出しの場合は、!=NULL
  2311. } HEADLINE;
  2312.  
  2313. typedef struct {
  2314.     HEADLINE t[HEADLINE_N];
  2315. } HEADLINE_SET;
  2316.  
  2317. #if !TXCONFIGEXT_ASZ
  2318. void cszToHeadline(mchar* csz,HEADLINE_SET* head);
  2319. mchar* cszFromHeadlineAlloc(HEADLINE_SET* head);
  2320. #endif
  2321.  
  2322. //##先割り原稿(評価中)(WZFUNC_WRITING用)
  2323.  
  2324. typedef struct {
  2325.     NLINE* tNline;    // [npara]のnline数
  2326.     UINT size;        // tNlineのアロケートn
  2327.     UINT npara;        // tNline[npara]まで有効。
  2328.     NLINE nlineCur;    // 内部用
  2329. } PLT_CONTEXT;
  2330.  
  2331. void txPltFree(TX* text);
  2332. NLINE txPltGetNline(TX* text,IBUFF ibuff,NPARA npara);
  2333.  
  2334. //##TX用ウィンドウメッセージ
  2335. // ユーザが間違えてWM_TXUSER以下を使った場合でも影響が出にくい様に800-900番台を使用
  2336.  
  2337. // 700-719:イベント・フック
  2338. #define WM_TXEVENT                (WM_USER+700)    //    id            arg        WZ3.90I 981024 
  2339.     // textから自分自身(text->hwndtext)へのイベント通知
  2340.     #define TXEVENT_INPUT        1    // IMEを介さないキーボードからの入力。arg:挿入される文字列
  2341.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  2342.     #define TXEVENT_INPUTIME    2    // IMEからの入力。arg:挿入される文字列
  2343.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  2344.     #define TXEVENT_OPEN        3    // (fFrameのみ)オープンされた
  2345.     #define TXEVENT_OPENED        4    // (fFrameのみ)オープン後
  2346.     #define TXEVENT_SAVE        5    // (fFrameのみ)保存前。arg:ファイル名
  2347.     #define TXEVENT_SAVED        6    // (fFrameのみ)保存後。arg:ファイル名
  2348.     #define TXEVENT_CLOSE        7    // (fFrameのみ)閉じる前
  2349.     #define TXEVENT_IDMEXEC        10    // IDMの実行前。arg:idm
  2350.                                     // txSetHookWndproctextResultを使って1を返すとIDMの処理を行わない
  2351.     //WZ4.00Cb 000117 TXEVENT_2STROKE廃止
  2352.     #define TXEVENT_JUMPLINK    12    // リンク先へジャンプ
  2353.                                     // arg:リンク先
  2354.     #define TXEVENT_JUMPURL        13    // URL/E-Mailへジャンプ
  2355.                                     // arg:ジャンプ先
  2356.     #define TXEVENT_CURSORMOVE    14    //WZ4.00Aa 990109 new
  2357.                                     // ユーザ操作でカーソル位置が変化した可能性がある
  2358.     #define TXEVENT_IDMEXECED    15    // IDMの実行後。arg:idm。    //WZ4.00Ab 990112 new
  2359. // 720-739: TXE用。アプリケーションで、アプリケーションに送られたキーのキャプチャーetc用
  2360. #define WM_TX_KEYDOWN            (WM_USER+720)    //    vk            hwnd
  2361.                                                 // キーをキャプチャーするかどうか返す
  2362. #define WM_TX_SYSKEYDOWN        (WM_USER+721)    //    vk            hwnd
  2363.                                                 // キーをキャプチャーするかどうか返す
  2364. #define WM_TX_LBUTTONDBLCLK        (WM_USER+722)    //    vk            hwnd
  2365.                                                 // キーをキャプチャーするかどうか返す
  2366. #define WM_TX_CHAR                (WM_USER+723)    //    vk            hwnd
  2367.                                                 // キーをキャプチャーするかどうか返す
  2368.                                                 //PWZ2BETA0.3A 980526 new
  2369. #define WM_TX_GET                (WM_USER+724)    //WZ4.00Db 000304 new
  2370.     #define TXGET_STATUSBAR        1
  2371. // 740-759: ダイアログウィンドウプロシジャ専用。wndprocText/Baseには無関係
  2372. #define WM_TXDIALOG_WRITEITEM    (WM_USER+740)    //    id            0
  2373. #define WM_TXDIALOG_PAGECHANGED    (WM_USER+741)    //    iPage        0
  2374. #define WM_TXDIALOG_WIZNEXT        (WM_USER+742)    //    iPage        0
  2375.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  2376. #define WM_TXDIALOG_WIZBACK        (WM_USER+743)    //    iPage        0
  2377.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  2378. #define WM_TXDIALOG_NOTIFY        (WM_USER+744)    //    id            arg
  2379.     #define TXDLGN_REFERED        100    // dialogControlIDによる参照が行われた。arg = idd。
  2380.     #define TXDLGN_PSN_APPLY    101    // プロパティシートでOKされた。arg = iPage    返り値(OKできないなら-1)を返すこと    //WZ4.00Ab 990119 new
  2381. // 800-829: WZ内部用
  2382. #define WM_TXIDLEEXEC            (WM_USER+800)    //    id            lParam
  2383.                                                 // アイドル時に実行する内部動作 for wndprocBase
  2384.                                                 // IDLE_XXX
  2385.     #define IDLE_FIRST            100    // wndprocBase
  2386.     #define IDLE_REG            101    // wndprocBase
  2387.     #define IDLE_EXECFIND        102    // wndprocText
  2388.     #define IDLE_FLUSHWINDOW    103    // wndprocBase
  2389.     #define IDLE_CHECKFILETIME    104    // wndprocBase    //WZ4.00A 981227 
  2390.     #define IDLE_EXECREPLACESA    105    // wndprocBase    //WZ4.00Bl 990916 
  2391. #define WM_TXDRAGDROP            (WM_USER+801)    //    TXDD_xxx    arg
  2392.                                                 //WZ3.90I 981103 for D&D
  2393.     #define TXDD_START        1    // 開始
  2394.     #define TXDD_DROP        2    // ドロップ            arg = TXDD_DROP_ARG*
  2395.         typedef struct {
  2396.             HGLOBAL hGlobal;
  2397.             TX* text;            // !=NULLならtextのデータを挿入
  2398.         } TXDD_DROP_ARG;
  2399.     #define TXDD_DRAGOVER    3    // ドロップ先指定中    arg = MAKELONG(x,y)
  2400.     #define TXDD_SETDISP    4    // txSetDispする
  2401.     #define TXDD_ACTIVATE    5    // SetForegroundWindowする
  2402. #define WM_TXEMACS_TXCMD        (WM_USER+802)    //WZ4.00A 981230 new
  2403. #define WM_TXHTML_TXCMDPOST        (WM_USER+803)    //WZ4.00A 981230 new emacsライクキー定義でHTML編集ができるようにした。両者でWM_TXUSERを使っていてバッティングしていた。
  2404. #define WM_WKLBUTTON3            (WM_USER+804)    //WZ4.00Bl 990909 
  2405. #define WM_WKLBUTTON4            (WM_USER+805)    //WZ4.00Bl 990909 
  2406. #define WM_TXKEYN                (WM_USER+806)    //WZ4.00Ca 991212 
  2407. #define WM_TXCEVENT                (WM_USER+807)    //WZ4.00Db 000215 
  2408.     #define TXCEVENT_PRMSAVE1    1    // sh->szModuleで、__prmSaveされた
  2409.     #define TXCEVENT_PRMSAVE2    2    // sh->szModuleで、__prmSaveされた
  2410. // 830-849: WZ MAIL EDITOR専用
  2411. #define WM_MAILEDITN_CLOSE        (WM_USER+830)    //    id            fEnglish
  2412.                                                 //WZ3.90G 980902 fEnglish:英文
  2413. #define WM_MAILEDITN_SAVE        (WM_USER+831)    //    id            ヘッダ部分のサイズ
  2414. // 850-899: wndprocBase専用。他インスタンスのWZ窓の操作用/PostMessage用
  2415. #define WM_TXGETEDIT            (WM_USER+850)    //    0            0
  2416. #define WM_TXUISAVE                (WM_USER+851)    //    0            0
  2417. #define WM_TXQUIT                (WM_USER+852)    //    0            0
  2418. #define WM_TXSETACTIVE            (WM_USER+853)
  2419. #define WM_TXSETWINDOWLIST        (WM_USER+854)    //    hctrl        TXSWL_LPARAM
  2420.     enum {TXSWL_HISTMENU,TXSWL_WINDOWLIST,TXSWL_PRJ};
  2421.     typedef struct {
  2422.         UINT id:8;            // 0オリジン、番号指定
  2423.         UINT mode:2;        // モード
  2424.         UINT iMenuPos:8;    // InsertMenuに渡す挿入場所
  2425.         UINT fCur:1;        // この項目はカレント?
  2426.     } TXSWL_LPARAM;
  2427. #define WM_TXKEYMACROCONTINUE    (WM_USER+855)    //    0            0
  2428. #define WM_TXNEXTPARA            (WM_USER+856)    //    0            0
  2429. #define WM_TXSETUNDISP            (WM_USER+857)    //    fSetUndisp
  2430. #define WM_TXJUMPADDRESS        (WM_USER+858)    //    0            address
  2431. #define WM_TXJUMPFILEEND        (WM_USER+859)    //    void        void
  2432.                                                 //WZ3.90I 981023 new
  2433. #define WM_TXSPLITPARA            (WM_USER+860)    //    void        void
  2434.                                                 //WZ3.90I 981023 new
  2435.                                                 // カーソル位置の前文字が改行でなければ改行を挿入。
  2436. #define WM_TXCLOSEEVERY            (WM_USER+861)    //    fForce        0        WCE0.99
  2437. #define WM_TXQUERYCLOSE            (WM_USER+862)    //    0            0    // フックを可能にすることも兼ねている
  2438. #define WM_TXWNDSETPOSSIZE        (WM_USER+863)    //    x,y            cx,cy    //WZ4.00A 981227 
  2439. // 900-949: WM_TERM_xxx,WM_MAIL_xxx
  2440. // 950-990: WM_OUTLINE_xxx
  2441. #define SBLISTN_FLUSHLIST        (WM_USER+996)
  2442. #define SBLISTN_FLUSHCONTENT    (WM_USER+997)
  2443. #define SBLISTN_SET                (WM_USER+998)
  2444. #define SBLISTN_ADD                (WM_USER+999)
  2445. // 1000: for user macro
  2446. #define WM_TXUSER                (WM_USER+1000)    // これ以下、user用
  2447.  
  2448. //##WM_NOTIFY/WM_TIMER/WM_COPYDATA/IDM
  2449. // text->hwndtextから親ウィンドウへの通知
  2450. //WZ3.90I 981026 WM_TXNOTIFYを廃止し、WM_NOTIFYによる通知に変更。
  2451.  
  2452. //WM_NOTIFY
  2453. #if UNIX&&defined(__TXC__)
  2454. typedef struct {
  2455.     HWND hwndFrom;
  2456.     int code;
  2457.     int idFrom;
  2458. } NMHDR;    //// まだ仮定義
  2459. #endif
  2460. #if defined(WINVER) || UNIX    // NMHDRが定義されている場合のみ
  2461. typedef struct {
  2462.     NMHDR hdr;    // hdrが先頭
  2463. } TXNOTIFY;
  2464. #endif
  2465. #define TXN_CHANGENPARA        1    // ユーザ操作でy座標が変化した
  2466. #define TXN_CHANGEX            2    // ユーザ操作でx座標が変化した(未完成)
  2467. #define TXN_IDMEXECPRE        3    //WCE1.01 980421 idmExec前か、文字挿入前
  2468. #define TXN_IDMEXECPOST        4    //WCE1.01 980421 idmExec後か、文字挿入後
  2469.  
  2470. //WM_TIMER id
  2471. #define WM_TIMER_TXSCROLLMOUSE    900
  2472. #define WM_TIMER_TXAUTOSAVE        901
  2473. #define WM_TIMER_TXFLUSHTABLE    902                //WCE1.01 971222 
  2474. #define WM_TIMER_TXFLUSHDISPBOX    903                //WCE1.01 980209 
  2475. #define WM_TIMER_TXBRINKCURSOR    904                //WCE1.01 980409 
  2476. #define WM_TIMER_TXDRAGCHECK    905                //WZ3.90G 980827 new
  2477. #define WM_TIMER_TXCLICKACTIVE    906                //WZ3.90I 981104 
  2478. #define WM_TIMER_TXFLUSHDETAIL    907                //WZ3.90I 981106 
  2479. #define WM_TIMER_TXAUTOSCROLL    908                //WZ3.90J 981110 
  2480. #define WM_TIMER_TXFLUSHBEAMTAB    909                //WZ3.90L 981115 
  2481. #define WM_TIMER_HISTSAVE        910                //WZ4.00Bj 990808 for PWZ
  2482. #define WM_TIMER_SCROLLBARPROP    911                //WZ4.00Bl 990920 for プロポーショナルスクロールバー
  2483. #define WM_TIMER_TXUSER            1000            // これ以下、user用
  2484.  
  2485. //WM_COPYDATA id
  2486. // ユーザが間違えてWM_COPYDATA_TXUSER以下を使った場合でも影響が出にくい様に900番台を使用
  2487. #define WM_COPYDATA_CMPFILENAME        901        // CD_BOOL    //WZ4.00Bp 991014 仕様変更
  2488.     typedef struct {
  2489.         wchar wszfilename[CCHPATHNAME];
  2490.         wchar wszShort[CCHPATHNAME];    // 短い名前がある場合は、その名前。
  2491.     } CMPFILENAMEARG;    //WZ4.00Bp 991014 new
  2492. #define WM_COPYDATA_CMDLINE            902        // 
  2493. #define WM_COPYDATA_CMPBUFF            903        //WCE1.01 980202 
  2494.                                             // マッチしたバイト数+1を返す
  2495. #define WM_COPYDATA_ACCOUNT            904        // ACCOUNT受け渡し
  2496. #define WM_COPYDATA_INSERT            905        // 挿入する    //WZ3.90I 981023 
  2497. //#define WM_COPYDATA_CMPFILEID        906        //WZ4.00Bj 990825 new    //WZ4.00Bp 991014 廃止
  2498. #define WM_COPYDATA_GETFILENAME        907        //WZ4.00Bl 990908 new
  2499. #define WM_COPYDATA_FORK            908        //WZ4.00Bl 990914 new
  2500. #define WM_COPYDATA_TXUSER            1000    // これ以下、user用
  2501. // WM_COPYDATAは返り値0は返しちゃいけないみたいなので...
  2502. #define CD_TRUE        2
  2503. #define CD_FALSE    1
  2504.  
  2505. //IDM(id menu)
  2506. #define IDM_TXUSER                1000        // これ以下、30000までuser用
  2507.  
  2508. //##検索
  2509.  
  2510. typedef DWORD SEARCHMODE;        //1.92 検索モード
  2511.  
  2512. #define SEARCH_FORWARD            0x00000000L    // テキスト末尾方向へ検索(デフォルト)
  2513. #define SEARCH_PREV                0x00000001L    // テキスト先頭方向へ検索
  2514. #define SEARCH_AREA                0x00000002L    // 範囲内のみ検索する
  2515. #define SEARCH_NOESC            0x00000004L    // 検索文字列中の'\'の特別な意味を消して検索
  2516. #define SEARCH_CUR                0x00000008L    // カーソル位置の文字から検索
  2517.                                             // 以前は、置換時、前方検索時は
  2518.                                             // 無効でしたが、1.99Aから
  2519.                                             // 有効になりました。
  2520. #define SEARCH_SELECT            0x00000010L    // 見つけた文字列を選択する(置換時は無効)
  2521. #define SEARCH_ALL                0x00000020L    // テキスト全体で検索(置換時のみ)
  2522. #define SEARCH_PARATOP            0x00000040L    //1.00H2 論理行頭のみ検索
  2523. #define SEARCH_NOSENSECASE        0x00000080L    // 大文字・小文字を区別しない
  2524. #define SEARCH_NOSENSEZENHAN    0x00000100L    // 全角/半角文字を区別しない
  2525. #define SEARCH_WORD                0x00000200L    // ワードサーチ
  2526. #define SEARCH_RE                0x00000400L    // 正規表現による検索(text->modeReで動作が変わる)
  2527.                                             // 正規表現による検索では、SEARCH_NOESC,
  2528.                                             // SEARCH_NOSYMBOL,SEARCH_WORD,SEARCH_NOSENSEZENHANの指定は無効
  2529.                                             // SEARCH_NOSENSECASEはOK
  2530. #define REPLACE_CONFIRM            0x00000800L    // 置換確認を行う(置換時のみ)
  2531. #define REPLACE_ONCE            0x00001000L    //1.96 最初の1つだけ置換
  2532. #define SEARCH_NOSYMBOL            0x00002000L    //2.98 970309 テキストの改行や空白や記号を無視して検索
  2533. #define SEARCH_NOSELECT            0x00004000L    // 検索で見つけた文字列の選択を行わない
  2534. #define SEARCH_ALLTEXT            0x00008000L    //1.01A オープン中の全てのテキストを対象として検索
  2535.                                             // (検索するtextが裏テキストの場合は無効)(内部用)
  2536. #define SEARCH_PARA1            0x00010000L    //PWZ2BETA0.5 980617 現在の段落内のみ検索する
  2537.                                             // TXHIGH時には対応しない
  2538. #define SEARCH_REWZ                0x00020400L    //WZ3.90H 980908 正規表現による検索。必ずWZ標準で検索
  2539. #define SEARCH_REVWXW            0x00040400L    //WZ3.90H 980908 正規表現による検索。必ずVWXW互換で検索
  2540. #define SEARCH_REVWXWEX            0x00080400L    //WZ3.90H 980908 正規表現による検索。必ず拡張VWXW互換で検索
  2541. /*    //WZ3.90H 980908 廃止。SEARCHMODEは32bitしかないので、関係ないものは割り当てない
  2542. #define GREP_BACKUP                0x01000000L    //2.92 バックアップファイル内も検索(WZ Grepのみ)
  2543. #define REPLACE_CONFIRMMODAL    0x02000000L    //2.92 REPLACE_CONFIRMをモーダルで実行
  2544. #define SEARCH_NEXTTEXT            0x04000000L    //2.00B WZ.EXE内部用
  2545. #define SEARCH_OLDDIALOG        0x08000000L    // search.c
  2546. #define SEARCH_REPLACE            0x10000000L    // search.c
  2547. #define SEARCH_DIALOGCOMPACT    0x20000000L    //2.97 970225 search.c
  2548. #define GREP_DIRECTORY            0x20000000L    // サブディレクトリ内も検索(WZ Grepのみ)
  2549. #define SEARCH_DIALOGSLIST        0x40000000L    //2.97 970225 search.c
  2550. #define GREP_BINARY                0x40000000L    // バイナリファイル内も検索(WZ Grepのみ)
  2551. */
  2552.  
  2553. // 正規表現用追加検索モード
  2554. typedef DWORD SEARCHRE;
  2555. #define SEARCHRE_NOTOPPARA        0x00000001L    // メモリブロックの先頭は段落先頭でない
  2556. #define SEARCHRE_NOTOPWORD        0x00000002L    // メモリブロックの先頭は単語先頭でない
  2557. #define SEARCHRE_NOENDPARA        0x00000004L    // メモリブロックの末尾は段落末尾でない
  2558. #define SEARCHRE_NOENDWORD        0x00000008L    // メモリブロックの末尾は単語末尾でない
  2559. #define SEARCHRE_VWXW            0x00000010L    // VWXWとできるだけ互換性を持つモード
  2560. #define SEARCHRE_VWXWEX            0x00000020L    // VWXWの拡張表現を使用。SEARCHRE_VWXWのときだけ指定すること。
  2561. #define SEARCHRE_BINARY            0x00000040L    // バイナリ検索
  2562. #define SEARCHRE_TXF            0x00000080L    // CHAR_TXFを特別扱い?
  2563.  
  2564. typedef struct {
  2565.     BOOL fWord;
  2566.     BOOL fSenseCase;
  2567.     BOOL fSearchNoSymbol;
  2568.     BOOL fFuzzy;
  2569.     BOOL fPrev;
  2570.     BOOL fAll;
  2571.     BOOL fArea;
  2572.     BOOL fReplaceConfirm;
  2573.     BOOL fRe;        //WZ3.90G 980905 
  2574.     BOOL fNoEsc;    //WZ4.00Bl 990908 
  2575.     BOOL fAllText;    //WZ4.00Bl 990916 
  2576. // 以下、SEARCHMODEに関係ない
  2577.     BOOL fSearchSet;
  2578.     BOOL fOpenTempWindow;    //WZ3.90H 980914 
  2579.     BOOL fReplace;            //WZ3.90H 980914 
  2580.     int mode;                //WZ3.90J 981112 基本/曖昧/単語/正規
  2581.         #define SEARCHOPT_DIALOG_NEW    1
  2582.     TX* text;
  2583. } SEARCHOPT;
  2584.  
  2585. typedef struct {
  2586.     mchar szfind[CCHSEARCH];
  2587.     mchar szreplace[CCHSEARCH];
  2588.     SEARCHMODE searchmode;
  2589. } SEARCH_PACKET;        //WZ3.90H 980910 new
  2590.  
  2591. typedef struct {
  2592.     TX* text;
  2593.     TX* textExpandTag;            //WZ3.90L 981123 NULL以外ならfExpandTag時にこちらに展開する。
  2594.     int cbFind;
  2595.     int nReplace;
  2596.     SEARCHMODE searchmode;        //WZ3.90H 980907 
  2597.     mchar* szreplace0;            //WZ3.90H 980907 オリジナルのszreplace
  2598.     mchar szreplace[CCHTXSTR];    //WZ3.90H 980907 置換文字列の'\'対応
  2599.                                 //WZ3.90L 981123 CCHWORD->CCHTXSTRに拡大
  2600.     int lchReplace;
  2601.     BOOL fExistTag;                //WZ3.90H 980907 正規表現置換でタグ指定がある?
  2602.         #define RETAG_EXIST        0x01
  2603.         #define RETAG_FIND        0x02    // $+
  2604.         #define RETAG_FINDPREV    0x04    // $`
  2605.         #define RETAG_FINDNEXT    0x08    // $'
  2606.     IFILE cliptop;                //WZ3.90H 980908 for 範囲内の確認置換
  2607.                                 //WZ3.90H 980908 範囲内の置換で確認がONだと1回しか置換されなかった
  2608. } TXSEARCH_CONTEXT;    //WZ3.90L 981123 検索置換実行時コンテキスト
  2609. BOOL rcReplaceInit(TXSEARCH_CONTEXT* rc,BOOL fExpandTag);
  2610.  
  2611. //##コマンドライン解析
  2612.  
  2613. typedef struct tagWZMAILEDITORFLAGS {
  2614.     DWORD modeMailAddress:2;    //WCE1.01 980409 アドレス帳モード
  2615.         #define MODEMAILADDRESS_EMAIL    0
  2616.         #define MODEMAILADDRESS_NIFTY    1
  2617.     DWORD category:3;            //PWZ2BETA0.3 980522 種類
  2618.         #define MAILEDIT_MAIL        0    // メール
  2619.         #define MAILEDIT_MESSAGE    1    // メッセージ
  2620.         #define MAILEDIT_NOTE        2    // WZ NOTE
  2621.     DWORD categoryMailbox:3;    //PWZ2BETA0.3 980522 
  2622.                                 // MAILBOX_INTERNET etc
  2623.     DWORD charset:3;            //WZ3.90M 981129 旧fEnglish
  2624.     DWORD fSendButton:1;        //WZ4.00Bj 990812 「送信」ボタンを付ける?
  2625.     DWORD fDispToCc:1;            //WZ4.00Bo 991011 ToとCcを表示?
  2626.     DWORD reserved:19;            //WZ4.00Bj 990812 合計が32bitになってなかったので修正
  2627. } WZMAILEDITORFLAGS;    //PWZ2BETA0.3 980510 
  2628. typedef struct {
  2629.     BOOL fNeedCreateInstance;    // このコマンドラインの実行には、
  2630.                                 // 新しいインスタンスを生成する必要がある
  2631.     wchar wszfilename[CCHPATHNAME];    // 編集ファイル名
  2632.                                 // 複数指定の場合は、先頭に指定されたファイル名
  2633.                                 // 後続のファイル名は無視される
  2634.     wchar wszMacro[CCHWORD];    // オープン後、このマクロを実行
  2635.     wchar wszExt[CCHNAME];        // この拡張子をデフォルトで付ける
  2636.     wchar wszMacroFork[CCHPATHNAME];
  2637.                                 // WZ Editorではなく、Filerなど
  2638.                                 // PWZ apを起動
  2639.     mchar szPluginMacro[CCHWORD];//WZ4.00Ca 991203 このプラグインマクロを組み込む(標準のプラグインは組み込まれない)。
  2640.     mchar szFind[CCHSEARCH];        // 検索文字列
  2641.     mchar szcfg[CCHSTYLENAME];    //WZ3.90J 981112 使用する設定名
  2642. #if WZFUNC_PRINT
  2643.     mchar szlpstyle[CCHLPSTYLE];//WZ4.00Bj 990830 印刷スタイル名
  2644. #endif
  2645.     int nCmdShow;                // nCmdShow
  2646. __BITFIELD_BORDER__
  2647.     WORD fViewer:1;                // viewモードで起動
  2648.     WORD fMulti:1;                // 複数のファイル名が指定されている
  2649.     WORD fSingleFileName:1;        // コマンドラインに空白を含むファイル名をそのまま指定
  2650.                                 // このオプション指定は、ファイル名の指定の前に行なうこと
  2651.     WORD fNoCheckDuplicate:1;    // 多重化でもなく、二重化でもなく、
  2652.                                 // ファイルを複数窓でオープンする
  2653.     WORD fNoAddHist:1;            // 起動時にファイル名をヒストリに追加しない
  2654.     WORD fNoTextPathSearch:1;    // テキストファイルのパス検索をしない
  2655.     WORD fNoProfile:1;            // txOpenTextでプロファイルを参照しない
  2656.     WORD fNoProfileJump:1;        // txOpenTextでプロファイルによるジャンプをしない?    //WZ4.00Bl 990922 
  2657.     WORD fClipPaste:1;            //PWZ2BETA0.3 980512 起動後にペーストする
  2658.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  2659.     WORD fNoPluginMacro:1;        //WZ4.00Ca 991201 プラグインマクロを組み込まない?
  2660.     WORD fReload:1;                //PWZ2BETA0.4 980607 既に起動されているときは、再読み込みする
  2661.     WORD fTags:1;                //PWZ2BETA0.4 980612 タグファイルとして開く
  2662.     WORD fOpenMulti:1;            //WZ3.90H 980915 もし既にオープンされていたら多重化する。
  2663.     WORD fKcOpenAuto:1;            //WZ4.00Bl 990915 漢字コードを自動判別?
  2664.     WORD fKcOpen:1;                //WZ3.90H 980927 kcOpenの漢字コードで開く
  2665. __BITFIELD_BORDER__
  2666.     WORD kcOpen:3;                //WZ3.90H 980927 
  2667.     WORD fPrjOpen:1;            //WZ3.90I 981030 プロジェクトを開く?
  2668.     WORD fSetWindowPos:1;        //WZ3.90I 981030 ウィンドウ位置を指定?
  2669.     WORD fDuptext:1;            //WZ3.90I 981103 2重化?
  2670.     WORD fOpenQuit:1;            //WZ3.90I 981103 ファイルオープンダイアログを出して終了
  2671.     WORD fJumpAddress:1;        //WZ3.90L 981123 adrJumpにジャンプ?
  2672.     WORD fJumpAnchor:1;            //WZ4.00Ca 991208 adrJumpのアンカーにジャンプ?
  2673.     WORD fIDM_UINEW:1;            //WZ3.90N 981202 IDM_UINEWする?
  2674.     WORD fNeedCreateWindow:1;    //WZ4.00Ab 990204 このコマンドラインの実行には新しいウィンドウを作成する必要がある
  2675.                                 // 空テキスト上からの実行の場合でも、空テキストはそのままで、新しいウィンドウを作成する必要がある
  2676.     WORD fLpPrint:1;            //WZ4.00Bj 990830 印刷する?ダイアログを表示
  2677.     WORD fLpPrintExec:1;        //WZ4.00Bj 990830 印刷する?直ちに実行。
  2678.     WORD fMailEditorForked:1;    //WZ4.00Ca 991126 内部用
  2679.     HWND ehHwnd;                // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  2680.     HWND ehHwndBase;            // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  2681.     BYTE ehTarget;                //WZ3.90I 981031 ehTarget
  2682.     NPARA nparaJump;            // ジャンプ先(0:指定なし)
  2683.     int offset1Jump;            // ジャンプ先のバイトオフセット+1(0:指定なし)
  2684.     int fJumpLy;                // 't':lyを0に
  2685.                                 // 'c':lyを中央に
  2686.                                 // n:lyをn-1に
  2687.     IFILE adrJump;                //WZ3.90L 981123 ジャンプ先アドレス
  2688.     FBOOL fUiReg;                // レジストリメンテ?
  2689.     WORD igene1;                //WCE1.01 980201 (gene1 - 1)の世代を開く
  2690.     HWND hwndMailer;            //WCE1.01 980327 メーラのhwnd
  2691.     WORD idMail;                //WCE1.01 980327 このメールのID
  2692.     BYTE modeMail;                //WCE1.01 980327 モード
  2693.     WZMAILEDITORFLAGS mailflags;//PWZ2BETA0.3 980522 
  2694.     RECT rect;                    //WZ3.90I 981030 ウィンドウ位置(fSetWindowPos時に有効)
  2695. } CMDLINECONTEXT;
  2696.  
  2697. BOOL cmdlineAnalyzeW(CMDLINECONTEXT* cc,wchar* szcmdline,int nCmdShow);
  2698. void cmdlineDeleteOneFilenameW(wchar* szcmdline);
  2699. void SendMessageCmdline(HWND hwnd,wchar* wszcmdline);
  2700.  
  2701. typedef struct {
  2702.     HWND hwnd;                //  fAlreadyOpen : 既にオープンされていたテキストのhwndbase
  2703.                             // !fAlreadyOpen : オープンしたテキストのhwndbase
  2704.     TX* text;                // オープンしたtext(同一プロセスWZの場合)
  2705.                             // fAlreadyOpenで、同一プロセスWZなら、
  2706.                             // 既にオープンされているtext
  2707.     FBOOL fAlreadyOpen;        // 既にオープンされていた
  2708.                             //WZ4.00Bl 990916 スペルミス修正fAlrearyOpen->fAlreadyOpen
  2709.     FBOOL fWzexec;            // WZを起動した
  2710.     BYTE reserved[32];
  2711. } TXFORKRESULT;
  2712.  
  2713. //##印刷/FONTSET
  2714.  
  2715. // 標準の文字の高さ
  2716. #if WINDOWSCE
  2717.     #if WINDOWSCE2
  2718.         #define lfHeightDefault            10
  2719.         #define lfHeightDialogDefault    10
  2720.     #else
  2721.         #define lfHeightDefault            8
  2722.         #define lfHeightDialogDefault    8
  2723.     #endif
  2724. #else
  2725.         #define lfHeightDefault            12
  2726.         #define lfHeightDialogDefault    9
  2727. #endif
  2728.  
  2729. #define CXY_LPREVIEW_FRAMEBASE        4
  2730.  
  2731. // ユーザフォントセット定義    //WZ4.00Bl 990920 new
  2732. #define USERFONTSET_N    3    //WZ4.00Bl 990919 ユーザ定義できる数。
  2733. typedef struct {
  2734.     mchar lfFaceName[LF_FACESIZE];
  2735.     mchar lfFaceName2[LF_FACESIZE];
  2736.     mchar szHeight2[5];    // lfFaceName2のサイズ
  2737.                         // 0:標準、+n,-n:増減、n%:比率指定
  2738.     BBOOL fFont2_5C;    // 文字コード5C(\)にhfont2を用いる?        //WZ4.00Bl 990920 
  2739.     BYTE reserved[40];    // 拡張用
  2740. } USERFONTSET;
  2741.  
  2742. typedef struct tagFONTSET {
  2743. BYTE configTop;
  2744. // ユーザ指定 - LOGFONTに影響する部分、CACHEのタグとして使用
  2745.     mchar lfFaceName[LF_FACESIZE];
  2746.     int lfHeight;
  2747.     FBOOL lfItalic;        // イタリック?
  2748.     FBOOL lfUnderline;    // アンダーライン?
  2749.     FBOOL lfStrikeOut;    // 打ち消し線?
  2750.     WORD lfWeight;        //WCE1.01 980302 太字も使える様に
  2751.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  2752. // ユーザ指定 - LOGFONTに影響しない部分、CACHEのタグとしては使用しない
  2753.     FBOOL lfEuro;        // SJIS中の欧文処理をする?
  2754.     WORD lfSup;            // 上付き表示する?
  2755.                         // しない場合は0
  2756.                         // する場合は基準フォントのcyAscent
  2757. BYTE configEnd;
  2758. // 内部情報
  2759.     HFONT hfont;
  2760.     HFONT hfont2;        // フォント2(半角英字表示に用いる)(通常はなし)    //WZ4.00Bl 990919 
  2761.     int cxChar;            // 文字幅
  2762.     int cyChar;            // 文字の高さ
  2763.     int cyAscent;        // 文字のベースラインより下の部分の高さ
  2764.     int cyDescent;        // 文字のベースラインより下の部分の高さ
  2765.     int tcyAscent[2];    // hfont2がある場合、hfont,hfont2それぞれのAscent    //WZ4.00Bl 990920 
  2766.     int tcyDescent[2];    // hfont2がある場合、hfont,hfont2それぞれのDescent    //WZ4.00Bl 990920 
  2767.     int cxCharKanji;    // 漢字の文字幅(fKanji時のみ)
  2768.     #if TB_EUC
  2769.     int cxCharKana;        // カナの文字幅(fKanji時のみ)
  2770.     #endif
  2771.     int lfHeightIme;    // IMEに渡す用    //WZ4.00Bn 991005 
  2772.     FBOOL fProp;        // プロポーショナルフォント?
  2773.                         // 漢字は固定ピッチとして扱う
  2774.                         // ひらがな、カタカナをプロポーショナルとする
  2775.     FBOOL fKanji;        // TRUE:漢字を含むフォント(ShiftJIS)、FALSE:漢字を含まないフォント(文字コード0-255まで)
  2776.     CBOOL fLock;        //WZ3.90O 981203 キャッシュアウトされないようにロックされている?
  2777.     FBOOL fFont2_5C;    // 文字コード5C(\)にhfont2を用いる?        //WZ4.00Bl 990920 
  2778.     WORD* tcxChar;        // fPropの場合、文字幅の配列
  2779.     struct tagFONTSET* prev;    // for Cache link
  2780.     struct tagFONTSET* next;    // for Cache link
  2781. } FONTSET;
  2782.  
  2783. enum {FRAME_NONE,FRAME_LINE,FRAME_DOUBLELINE};
  2784. typedef struct {
  2785.     mchar lfFaceName[LF_FACESIZE];
  2786.     int lfHeight;        // フォントの高さ(perHeight != 0ならperHeightに従う)
  2787.     WORD perHeight;        // !=0なら、フォント高さを本文フォント基準の%で指定
  2788.     FBOOL lfItalic;        // イタリック?
  2789.     FBOOL lfUnderline;    // アンダーライン?
  2790.     WORD lfWeight;        // 太字
  2791.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  2792.     BYTE modeAlign;        // 配置
  2793.                         // (ALIGN_NONE,ALIGN_LEFT,ALIGN_CENTER,ALIGN_RIGHT)
  2794.     WORD perNline;        // 行どり(%)
  2795.     COLORREF rgbColor;    // 文字の色
  2796.     BYTE modeFrameLeft;    // 枠線のなし/あり
  2797.     BYTE modeFrameTop;
  2798.     BYTE modeFrameRight;
  2799.     BYTE modeFrameBottom;
  2800.         #define pointToDpt(pt)    (pt * 10)
  2801.     WORD dptFrameLeft;    // 枠線の太さ(0.1ポイント単位)
  2802.     WORD dptFrameTop;
  2803.     WORD dptFrameRight;
  2804.     WORD dptFrameBottom;
  2805.     BYTE perFrameAmi;    // 枠線の網掛け(%)
  2806. } HEADLINESTYLE;    // 見出しスタイル
  2807.  
  2808. typedef struct {
  2809. BYTE configTop;
  2810. // 以下、ユーザ設定
  2811. // configEndまでバイナリ出力
  2812. // dm:プリンタオプション
  2813. // twips:1/1440inch = 0.01764mm  (最大32767twipsまでであることに注意)
  2814. // mcm:0.1mm
  2815. //     設定値はmcmで持つ。twipsで持って、ダイアログ設定時にmcmに変換すると
  2816. //     割り算の誤差によってダイアログで何も変更しないでOKしても設定値が変わった。
  2817. // lpx:プリンタピクセル座標
  2818.     // プリンタ
  2819.     SIGNED_WORD dmPaperSize;        // 用紙サイズ
  2820.     SIGNED_WORD dmOrientation;        // 用紙の向き
  2821.     SIGNED_WORD dmScale;            // スケーリング(100=等倍)(未完成)
  2822.     SIGNED_WORD dmScaleFont;        // フォント(本文と見出し)と図のスケーリング(100=等倍)
  2823.     SIGNED_WORD dmDefaultSource;    // 用紙供給元
  2824.     SIGNED_WORD dmTTOption;            // TrueTypeフォントの印刷方法
  2825.     SIGNED_WORD dmPrintQuality;        // 印字品質(マイナス値の場合もある)
  2826.     BBOOL fPrinterName;                // プリンタ名を指定するか
  2827.     mchar szPrinterName[CCHWORD];    // プリンタ名
  2828.     // 余白
  2829.     SIGNED_WORD mcmMarginTop;        // 上余白
  2830.     SIGNED_WORD mcmMarginLeft;        // 左余白
  2831.     SIGNED_WORD mcmMarginBottom;    // 下余白
  2832.     SIGNED_WORD mcmMarginRight;        // 右余白
  2833.     SIGNED_WORD mcmPaperWidth;        // 用紙サイズ
  2834.     SIGNED_WORD mcmPaperHeight;        // 用紙サイズ
  2835.     SIGNED_WORD mcmCharInt;            // 字間(未完成)
  2836.     SIGNED_WORD mcmLineInt;            // 行間
  2837.     SIGNED_WORD mcmClmInt;            // 段組間の空白
  2838.     BBOOL fMarginSymmetry;            // 左右ページでマージンを対称に
  2839.     BBOOL fLineInt;                    // 行間を指定?
  2840.     // 文字数・行数
  2841.     BYTE modeLcxLcy;                // 文字数・行数の指定方法
  2842.         #define MODELCXLCY_TEXT        0    // 文書の設定を使用
  2843.         #define MODELCXLCY_SPECIFY    1    // 指定
  2844.         #define MODELCXLCY_PAPER    2    // 用紙サイズから自動計算
  2845.     SIGNED_WORD lcx;                // 文字数
  2846.     SIGNED_WORD lcy;                // 行数
  2847.     SIGNED_WORD nClm;                // 段組数
  2848.     BYTE modeVertical;                // 縦書き/横書き    //WZ3.90O 981204 
  2849.     // ヘッダ・フッタ
  2850.     SIGNED_WORD mcmMarginHeader;    // ヘッダ上余白
  2851.     SIGNED_WORD mcmMarginFooter;    // フッタ下余白
  2852.     BBOOL fHeader;                    // ヘッダを印刷
  2853.     BBOOL fFooter;                    // フッタを印刷
  2854.     BBOOL fSpecifyHeader2;            // 偶数ページのヘッダ/フッタを指定する?
  2855.     BBOOL fHeaderSymmetry;            // 左右ページでヘッダフッタを対称に
  2856.     mchar szHeader[CCHWORD];        // ヘッダ文字列
  2857.     mchar szFooter[CCHWORD];        // フッタ文字列
  2858.     mchar szHeader2[CCHWORD];        // 偶数ページのヘッダ文字列
  2859.     mchar szFooter2[CCHWORD];        // 偶数ページのフッタ文字列
  2860.     mchar lfHeaderFaceName[LF_FACESIZE];// ヘッダのフォント名
  2861.     SIGNED_BYTE lfHeaderHeight;            // ヘッダのフォントサイズ
  2862.     // フォント
  2863.     BBOOL fUsePrintFontstyle;        // TRUE        本文、見出しをLPRINTのフォントで印刷
  2864.                                     // FALSE    文書の設定のフォントで印刷
  2865.     mchar lfFaceName[LF_FACESIZE];    // フォント名
  2866.     SIGNED_BYTE lfHeight;            // フォントサイズ
  2867.     // その他
  2868.     BBOOL fDispLineNo;                // 行番号を印刷?
  2869.     BBOOL f2pages;                    // 袋とじ?
  2870.     mchar szTemplateHeader[CCHWORD];// レターヘッダ用テンプレート
  2871.     mchar szTemplateFooter[CCHWORD];// レターフッタ用テンプレート
  2872.     BBOOL fColor;                    //WZ3.90H 980926 カラー印刷を行う?
  2873.     BYTE charatr;                    //WZ4.00Bo 991012 文字装飾(太字,下線,斜体)の印刷を行う?
  2874.         // Bold   mask:0x01(COLORING_BOLD)
  2875.         // Under  mask:0x02(COLORING_UNDER)
  2876.         // Italic mask:0x08(COLORING_ITALIC)
  2877.     // スタイル
  2878.     BBOOL fUseHeadlineStyle;        //WZ3.90I 981103 見出しのスタイルを使うか?
  2879.     HEADLINESTYLE tHeadlineStyle[HEADLINE_N];    //WZ3.90I 981030 見出しのスタイル
  2880. BYTE configEnd;
  2881. // 以下、内部情報。設定ファイルには出力しない
  2882.     mchar szstyle[CCHWORD];    // スタイル名
  2883.     TX* text;
  2884.     HANDLE hDevNames;        // デバイス名
  2885.     HANDLE hDevMode;        // デバイスモード
  2886.     int cbDevMode;            // sizeof DEVMODE
  2887.     CBOOL fHoldDev;            //WZ3.90O 981203 txLpFlushPreviewでhDevNames,hDevModeを保持?
  2888.     mchar szPrinterNameDefault[CCHWORD];//WZ3.90P 981206 現在の通常のプリンタ名
  2889.                                     // 空ならWindowsから通常のプリンタ名を取得
  2890.                                     // 空でなければ印刷ダイアログで選ばれたプリンタ名。
  2891.                                     // これをszPrinterNameよりも優先して使用し、印刷ダイアログでのプリンタの切り替えをサポート。
  2892.     // 各種サイズ
  2893.     SIGNED_DWORD logPixelsX;        // 1インチあたりのデバイスピクセル数 X
  2894.     SIGNED_DWORD logPixelsY;        // 1インチあたりのデバイスピクセル数 Y
  2895.     SIGNED_WORD lpxMarginTop;        // 上余白
  2896.     SIGNED_WORD lpxMarginLeft;        // 左余白
  2897.     SIGNED_WORD lpxMarginBottom;    // 下余白
  2898.     SIGNED_WORD lpxMarginRight;        // 右余白
  2899.     SIGNED_WORD lpxMarginLeftAdd;    // 縦書き & 袋とじ印刷用
  2900.     SIGNED_WORD lpxMarginHeader;    // ヘッダ上余白
  2901.     SIGNED_WORD lpxMarginFooter;    // ヘッダ下余白
  2902.     SIGNED_WORD lpxPaperWidth;        // 用紙幅(用紙の向きdmOrientationの影響は受けない)
  2903.     SIGNED_WORD lpxPaperHeight;        // 用紙サイズ(用紙の向きdmOrientationの影響は受けない)
  2904.     SIGNED_WORD lpxLineInt;            // 行間
  2905.     SIGNED_WORD lpxCharInt;            // 字間(未完成)
  2906.     SIGNED_WORD lpxClmInt;            // 段組間の空白
  2907.     SIGNED_WORD lpcxClm;            // 1段の幅
  2908.     SIGNED_WORD lpcxClient;            // 紙のサイズ(左右マージンの分も含む)
  2909.                                     // 用紙の向きが縦なら、lpxPaperWidthと同じ
  2910.                                     // 用紙の向きが横なら、lpxPaperHeightと同じ
  2911.     SIGNED_WORD lpcyClient;            // 紙のサイズ(上下マージンの分も含む)
  2912.                                     // 用紙の向きが縦なら、lpxPaperHeightと同じ
  2913.                                     // 用紙の向きが横なら、lpxPaperWidthと同じ
  2914.     // 印刷可能域
  2915.     SIGNED_WORD mcmMarginMinTop;    // 印刷マージンの最小値
  2916.     SIGNED_WORD mcmMarginMinLeft;
  2917.     SIGNED_WORD mcmMarginMinBottom;
  2918.     SIGNED_WORD mcmMarginMinRight;
  2919.     SIGNED_WORD lpxOffsetX;            //WZ3.90H 980926 
  2920.     SIGNED_WORD lpxOffsetY;            //WZ3.90H 980926 
  2921.     SIGNED_WORD lpxMarginMinRight;    //WZ3.90I 981014 for 縦書き
  2922.     // HDC
  2923.     HDC hdc;                // プリンタデバイスコンテキスト
  2924.     HDC hic;                // プリンタ情報コンテキスト
  2925.     int fGetHdc;            // GetHdcカウンタ
  2926.     int fGetHic;            // GetHicカウンタ
  2927.     BBOOL fNoPrinter;        //WZ3.90N 981130 プリンタがない。この場合hdc,hicは画面のDCになる
  2928.     // 印刷中ワーク
  2929.     int fPrint;                // 印刷モードフラグカウンタ
  2930.     NPARA npara;            // 印刷モードに入ったときのnpara
  2931.     IFILE ich;                // ich
  2932.     int ly;                    // ly
  2933.     SIGNED_WORD xbase;        // xbase
  2934.     WORD nSpaceTop;            // 
  2935.     WORD cySpace;            // 
  2936.     IFILE adr0;
  2937.     NPAGE npageStart;        // 印刷開始ページ
  2938.     NPAGE npageEnd;            // 印刷終了ページ
  2939.     NPAGE npageAll;            // 全ページ
  2940.     FILETIME time;            // 印刷開始時間
  2941.     BBOOL flpPreview;
  2942.     IFILE lpAdr0;            // 印刷プレビュー中に印刷した場合の位置保持
  2943.     FBOOL fVertical;        //WZ3.90O 981204 
  2944.     // プレビュー
  2945.     BYTE fNoViewportOrg;    // ViewportOrgを変更しない?
  2946.     int xViewportOrg;        // 原点X
  2947.     int yViewportOrg;        // 原点Y
  2948.     SIGNED_WORD cxWindow;    // hwndtextの幅
  2949.     SIGNED_WORD cyWindow;    // hwndtextの高さ
  2950.     // 設定保存しない、印刷時の設定
  2951.     BBOOL fNpagenum;        // 開始ページのページ番号を指定?
  2952.     NPAGE npagenum;            // 開始ページのページ番号
  2953.     BYTE modePrintPage;        // 0:全てのページを印刷,1:奇数ページを印刷,2:偶数ページを印刷
  2954.     BBOOL fLpSelect;        // 選択範囲を印刷?
  2955.     int nCopy;                // 部数
  2956.                             // プリンタが複数部数をサポートしている場合は1
  2957.     BBOOL fCollate;            // 部単位で印刷
  2958.                             // プリンタがサポートしている場合はFALSE
  2959.     // 範囲内の印刷
  2960.     BBOOL fLpClip;            // 範囲内の印刷モード中?
  2961.     IFILE adrClipEnd;        // 範囲の末尾アドレス
  2962.     int fClip0;
  2963.     IFILE cliptop0;
  2964.     IFILE texttopClip0;
  2965.     IFILE adrClip0;
  2966.     int lyClip0;
  2967.     NLINE nlineClip;        // 範囲先頭のnline
  2968.     NPARA nparaClip;        // 範囲先頭のnpara
  2969.     // 内部ワーク
  2970.     FBOOL fInsideSetupLcxLcyLineint;
  2971.     struct tagDIALOG* hd;
  2972.     BYTE errorLpstyle;        //WZ3.90H 980926 lpSetupLcxLcyLineintでのエラー
  2973.         #define ERROR_LPSTYLE_LCX            1
  2974.         #define ERROR_LPSTYLE_LCY            2
  2975.         #define ERROR_LPSTYLE_MARGIN_LEFT    3
  2976.         #define ERROR_LPSTYLE_MARGIN_TOP    4
  2977.         #define ERROR_LPSTYLE_MARGIN_RIGHT    5
  2978.         #define ERROR_LPSTYLE_MARGIN_BOTTOM    6
  2979.         #define ERROR_LPSTYLE_MARGIN_HEADER    7
  2980.         #define ERROR_LPSTYLE_MARGIN_FOOTER    8
  2981.         #define ERROR_LPSTYLE_LINEINT        9
  2982.         #define ERROR_LPSTYLE_NOPRINTER        10
  2983.     BYTE errorLpstyle0;        //WZ3.90H 980926 前回の表示
  2984.     CBOOL fHeadlinestylePreview;    //WZ3.90I 981030 見出しスタイルのプレビュー用?
  2985. } LPRINT;
  2986.  
  2987. //ページ
  2988. #define NPAGE_MAX    9999
  2989. typedef struct {
  2990.     IFILE ifilePagetop;        // ページ先頭のIFILE
  2991.     WORD lcy;                // ページ内の表示行数
  2992.     WORD yAdd;                //WCE1.01 980301 カラム2段目以降に付加したy
  2993.                             // 0 <= y <= yAddは1段組である
  2994.     BYTE nClm;                // このページの最大段組数
  2995. } PAGEATR;
  2996.  
  2997. // for 印刷プレビュー
  2998. // 現在ページ内の各行の情報
  2999. // 印刷プレビュー時もlyをメインに使うことにする
  3000. // 試しにyをメインで使ったら大変だった
  3001. #define LINE_N        1000    //WZ4.00Bj 990831 1頁に最大で印刷できる行数を500から1000行に拡大。588行で印刷したい方が居た。
  3002. typedef struct {
  3003.     WORD y;            // 行のy座標(nSpaceTopは含まない)
  3004.                     // 段組の場合は通しy座標。cyLineを取得するためにも使用
  3005.     BYTE iClm;        // この行の段番号(0:左端)
  3006.                     // gls_nClmとは異なる
  3007.     WORD off;        // curscreenからのオフセット
  3008.     BYTE fLF:1;        // 改行の行?
  3009.     BYTE gls_iHeadline;    //WZ3.90H 980924 
  3010.     WORD gls_cyChar;    //WZ3.90H 980924 
  3011.     WORD gls_cyAscent;    //WZ3.90H 980924 
  3012.     WORD gls_cyDescent;    //WZ3.90H 980924 
  3013.     WORD gls_yFootnote;    //WZ3.90H 980924 
  3014. } LINEATR;
  3015.  
  3016. typedef struct {
  3017.     NPARA npara;
  3018.     IFILE offset;    // 段落先頭からのオフセット
  3019.     WORD size;        // 行の長さ
  3020.     LINEATR lineatr;// lineatr
  3021.     WORD cy;        // cyLine
  3022. } LINESIZE_ENTRY;    //WZ3.90H 980919 
  3023.  
  3024. typedef struct {
  3025.     NPARA nparaTop;        // lsc内の最小npara
  3026.     NPARA nparaEnd;        // lsc内の最大npara
  3027.     int n;                // エントリ数
  3028.     LINESIZE_ENTRY* lsc;
  3029. } LINESIZE_ENTRY_ROOT;    //WZ3.90H 980919 
  3030.  
  3031. //##多重化
  3032.  
  3033. #if !WINDOWSCE
  3034.  
  3035. typedef struct tagMT {
  3036.     HWND hwndbase;
  3037.     HWND hwndtext;
  3038.     HWND hwndOutline;
  3039.     HWND hwndOutlinePartition;    //WZ4.00Bj 990824 
  3040.     FBOOL fOutlineHide;
  3041.     FBOOL fOutlineSplited;
  3042.     HWND hwndCBCB;            // コマンドバーコンボボックス
  3043.     HWND hwndStatusbar;        // ステータスバー
  3044.     HWND hwndFunctionbar;    // ファンクションキー
  3045.     HWND hwndRuler;            // ルーラー
  3046.     TOOLBARCONTEXT* toolbar;
  3047.     STATUSBAR_PANE* tStatusbarPane;
  3048.     IFILE adr;
  3049.     int ly;
  3050.     WORD idMt;                // ID
  3051.     struct tagMT* prev;
  3052.     struct tagMT* next;
  3053. } MT;
  3054.  
  3055. #if 0
  3056. typedef struct {
  3057. // backup text
  3058.     TX* text;
  3059.     HWND hwndtext;
  3060.     RECT rHwndtext;
  3061.     IFILE adr;
  3062.     int ly;
  3063.     BOOL fClip;
  3064.     IFILE cliptop;
  3065.     DWORD nEdit;
  3066.     HWND hwndOutline;
  3067.     FBOOL fOutlineHide;
  3068.     FBOOL fOutlineSplited;
  3069.     BOOL fOutlineSplitWindow;
  3070. // dialog item
  3071.     HWND hwndDialog;
  3072.     BBOOL fOutline;
  3073. // work
  3074.     CBOOL fRedraw;
  3075.     FBOOL fFirst;
  3076.     SEARCHOPT* opt;
  3077. } TXMULTI_CONTEXT;
  3078. #endif
  3079.  
  3080. typedef struct {    // 前回の一時ウィンドウのコンテキスト
  3081.     IFILE adr;
  3082.     int ly;
  3083.     BBOOL fOutline;
  3084.     RECT rectTempWindow;
  3085. } TXMULTI_CONTEXT_TEMP;
  3086.  
  3087. #endif
  3088.  
  3089. //##HTML
  3090.  
  3091. typedef struct {    //WZ3.90I 981029 
  3092.     HBITMAP hbitmapBr;        // <BR>のビットマップ
  3093.     HBITMAP hbitmapP;        // <P>のビットマップ
  3094.     HBITMAP hbitmap_P;        // </P>のビットマップ
  3095.     HBITMAP hbitmapTr;        // <TR>のビットマップ
  3096.     HBITMAP hbitmap_Tr;        // </TR>のビットマップ
  3097.     HBITMAP hbitmapTd;        // <TD>のビットマップ
  3098.     HBITMAP hbitmap_Td;        // </TD>のビットマップ
  3099.     HBITMAP hbitmapInline;    // <インラインコンテナ>のビットマップ
  3100.     HBITMAP hbitmap_Inline;    // </インラインコンテナ>のビットマップ
  3101.     HBITMAP hbitmapControlblock;    // <コントロールコンテナ>のビットマップ
  3102.     HBITMAP hbitmap_Controlblock;    // </コントロールコンテナ>のビットマップ
  3103.     HBITMAP hbitmapSingle;    // <IMG,シングルエレメント>のビットマップ
  3104.     HBITMAP hbitmapItem;    // <アイテムエレメント>のビットマップ
  3105.     HBITMAP hbitmap_Item;    // </アイテムエレメント>のビットマップ
  3106.     HBITMAP hbitmapBlock;    // <ブロックコンテナ>のビットマップ
  3107.     HBITMAP hbitmap_Block;    // </ブロックコンテナ>のビットマップ
  3108.     TX* textcfgTag;            // "htmltag.cfg"の内容
  3109.     IFILE adr0;                //WZ3.90O 981203 
  3110. } HTMLATR;
  3111.  
  3112. typedef enum {
  3113.     VALIGN_NONE,VALIGN_TOP,VALIGN_CENTER,VALIGN_BOTTOM
  3114. } VALIGN;
  3115.  
  3116. //##ウィンドウプロシジャーのフック
  3117. //WZ3.90I 981026 多重フックができるようにした。これができないとマクロがつくれない。
  3118.  
  3119. typedef DWORD HOOKRESULT;
  3120. #define HOOK_CONTINUE    0
  3121. #define HOOK_CAPTURE    1
  3122. #define HOOK_ERROR        2
  3123. typedef HOOKRESULT (CALLBACK *WNDTEXTHOOKPROC)(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  3124.  
  3125. #define txSetHookWndproctextResult(text,result)    (text->resultWndtextHook = result)
  3126. #define txSetHookWndprocbaseResult(text,result)    (text->resultWndbaseHook = result)
  3127.  
  3128. typedef struct tagTXWNDHOOK {
  3129.     BYTE fTxpcode:1;        // TX-PCODEからのフック
  3130.     WNDTEXTHOOKPROC lpHook;    // フックプロシジャ
  3131.     struct tagTXWNDHOOK* prev;
  3132.     struct tagTXWNDHOOK* next;
  3133. } TXWNDHOOK;
  3134.  
  3135. //##その他のサブ構造体
  3136.  
  3137. typedef struct {
  3138.     int ly;            //
  3139.     NPARA npara;    //
  3140.     IFILE address;    //
  3141.     IFILE ich;        //
  3142. } UNDISPCONTEXT;
  3143. #define UNDISPCONTEXT_N    5
  3144. // 裏テキストなど、fUndispがマイナス値の場合もある。
  3145. #define txGetUndispContextPre(text)    \
  3146.     ((1 <= text->fUndisp && text->fUndisp <= UNDISPCONTEXT_N) ? &text->tUndispContext[text->fUndisp - 1] : NULL)
  3147.  
  3148. typedef struct {
  3149.     SIGNED_BYTE fPacking;    // for クライアント動作チェック
  3150.     IFILE adrPackTop;        // pack開始時text->pundo
  3151.     WORD nPacked;            // packされたコマンド数
  3152. } UNDOPACK_CONTEXT;
  3153.  
  3154. #define TXWS_SZCLASS    L"txText"
  3155. #define TXWS_SZCLASSA    "txText"
  3156. #define TXWS_TEXT            0x0001L        // TEXT構造体をアロケートする
  3157.                                         // すなわちWZコントロールであることを示す
  3158. #define TXWS_OPENTEXT        0x0002L        // いきなりtxOpenTextする
  3159. #define TXWS_ENABLEUNDO        0x0008L        // undo可
  3160. #define TXWS_TEXTINHERIT    0x0080L        // textを丸ごと(text contextそのものを)引き継ぐ
  3161.  
  3162. #define WzBox_GetTx(hwnd)    ((LPVOID)GetWindowLong(hwnd,0))
  3163. extern WCHAR wszclassBase[];
  3164. extern WCHAR wszclassText[];
  3165. extern wchar wszclassWzicon[];
  3166. #if __TXC__
  3167.     #define _fwin40    TRUE
  3168. #else
  3169.     #if WINDOWSCE
  3170.         #define _fwin2k    (FALSE)    //WZ4.00Cc 000124 
  3171.     #else
  3172.     extern BOOL _fwin40;
  3173.     extern BOOL _fwin2k;        //WZ4.00Cc 000124 
  3174.     #endif
  3175. #endif
  3176.  
  3177. typedef struct {
  3178.     //WCE 970819 
  3179.     BYTE lcxIndent;                // インデント数(0-255)
  3180.         #define LCXINDENT_MAX    255
  3181.     //WCE 970817 custmize
  3182.     int lchSymbol;                // 行頭文字のバイト数
  3183.     mchar szSymbol[CCHSWORD];    // 行頭文字
  3184.     //
  3185. BYTE articleTop;
  3186.     mchar szArticle[CCHSWORD];    // 見出し文字列
  3187.     SIGNED_WORD lchArticle;        // 0なら無効
  3188.     SIGNED_WORD cxArticle;
  3189.     WORD fArticleNum:1;            // szArticleは番号付きか?
  3190.     WORD fArticleSub:1;            // szArticleは小見出しか?
  3191.     WORD fArticleJnumber:1;        // szArticleは全角番号付きか?
  3192.     WORD fReserved:13;
  3193.     SIGNED_WORD nArticle;        // 先頭番号(0なら番号指定なし)
  3194.     SIGNED_WORD ichNum;            // szArticleの番号のオフセット
  3195.                                 // -1なら番号なし
  3196.     SIGNED_WORD lchNum;            // szArticleの番号の長さ
  3197. BYTE articleEnd;
  3198.     //WCE 970817 custmize
  3199.     SIGNED_WORD lcxSpace;        // szArticleと本文の間の余白
  3200.     // PARAATR custmize
  3201.     BYTE width;                    // 折り返し幅
  3202.     BYTE modeAlign:3;            // 文字揃え
  3203.         // align(3bit)
  3204.         #define ALIGN_NONE        0    // なし
  3205.         #define ALIGN_LEFT        1    // 左揃え
  3206.         #define ALIGN_CENTER    2    // 中央寄せ
  3207.         #define ALIGN_RIGHT        3    // 右揃え
  3208.     BYTE fApfScenarioSerifu:2;    //PWZ2BETA0.5 980617 せりふ段落かどうか?
  3209.                                 // 改行付きに変換中の場合は2になる
  3210. } PARAFORM_ARTICLE;
  3211.  
  3212. // size = 4bytes fixed
  3213. // 記号のうち、"、'、“”、‘’は変換しない
  3214. typedef struct {
  3215.     WORD fJkataToKana:1;    // 全角カタカナ->半角カナ
  3216.     WORD fJkanaToKana:1;    // 全角ひらがな・カタカナ->半角カナ
  3217.     WORD fJankToAnk:1;        // 全角ANK->半角ANK
  3218.     WORD fJalphabetToAnk:1;    // 全角アルファベット->半角ANK
  3219.     WORD fJnumberToAnk:1;    // 全角数字->半角ANK
  3220.     WORD fJkigouToAnk:1;    // 全角記号->半角ANK
  3221.     WORD fJspaceToAnk:1;    // 全角空白->半角ANK
  3222.     WORD fKanaToJhira:1;    // 半角カナ->全角ひらがな
  3223.     WORD fKanaToJkata:1;    // 半角カナ->全角カタカナ
  3224.     WORD fAnkToJank:1;        // 半角ANK->全角ANK
  3225.     WORD fAlphabetToJank:1;    // 半角アルファベット->全角ANK
  3226.     WORD fNumberToJank:1;    // 半角数字->全角ANK
  3227.     WORD fKigouToJank:1;    // 半角記号->全角ANK
  3228.     WORD fSpaceToJank:1;    // 半角空白->全角ANK
  3229.     WORD fJhiraToKana:1;    // 全角ひらがな->半角カナ
  3230.     WORD reserved:1;
  3231. __BITFIELD_BORDER__
  3232.     WORD fAc:1;                // オートコレクト
  3233.     WORD fJbraceToBrace:1;    // 「」を[]へ変換
  3234.     WORD fZenHanKanaAll:1;    // (独立フラグ)全角ひらがな・カタカナ<->半角カナですべて変換    //WZ3.90N 981130 
  3235.                             // これと一緒にfJkataToKanaなども指定してください。
  3236.     WORD reserved2:13;
  3237. } CHARCONVERT;
  3238.  
  3239. // for CHARCONVERT ui
  3240. typedef struct {
  3241.     BOOL fAutoCollect;
  3242.     BOOL fJbraceToBrace;
  3243.     int modeKata;
  3244.     int modeHira;
  3245.     int modeAlphabet;
  3246.     int modeNumber;
  3247.     int modeSpace;
  3248.     int modeKigou;
  3249. } CCCONTEXT;
  3250.  
  3251. // 段落体裁解析用
  3252. typedef struct {
  3253.     BYTE align;
  3254.     BYTE headline;
  3255.     SIGNED_BYTE indent;
  3256.     BYTE nClm;        //WZ3.90I 981106 0:標準
  3257.     DWORD anchor;    //WZ3.90L 981117 アンカー(0:なし)
  3258.     mchar szTag[CCHTXFTAG];
  3259.     BBOOL fPP;        //WZ4.00Db 000222 プリプロセッサ段落?
  3260. } CONTEXT_PARAPROPERTY;
  3261.  
  3262. #define LCX_CLMGAP        5    //WCE0.95 970923 
  3263.  
  3264. // 文字装飾解析用
  3265. typedef struct {
  3266.     BBOOL fBold;
  3267.     BBOOL fUnderline;
  3268.     BBOOL fItalic;
  3269.     BBOOL fIndex;
  3270.     BBOOL fSup;
  3271.     BBOOL fSub;
  3272.     BBOOL fDots;    //WZ3.90I 981030 
  3273.     int cxRate;
  3274.     DWORD anchor;                //WZ3.90L 981117 ジャンプ先のアンカー番号(0:なし)
  3275.     mchar szAnchor[CCHWORD];    //WZ3.90L 981117 ジャンプ先のアンカー
  3276.     FONTSET fontset;
  3277.     mchar szTag[CCHTXFTAG];
  3278. } CONTEXT_CHARPROPERTY;
  3279.  
  3280. typedef struct {
  3281.     LPBYTE pBuff;    // バッファ
  3282.                     // BYTE:cchName , mchar*:szName , WORD cchContent , LPVOID content
  3283.                     // 末尾はcchName = 0
  3284.     int sizeBuff;    // pBuffの現在のサイズ
  3285.     int sizeExpand;    // pBuffを拡大するとき、少なくともこの分のサイズで拡大
  3286. } VAR;
  3287. void varDelete(VAR* var);
  3288. VAR* varNew(int sizeInit,int sizeExpand);
  3289. BOOL varSetString(VAR* var,mchar* szName,mchar* szContent);
  3290. mchar* varReadString(VAR* var,mchar* szName,mchar* szDefault);
  3291.  
  3292. typedef struct tagTXCTEXTVAR {
  3293.     mchar szModule[CCHWORD];
  3294.     FILETIME filetime;        // for バージョンチェック
  3295.     LPBYTE pTextvar;
  3296.     struct tagTXCTEXTVAR* prev;
  3297.     struct tagTXCTEXTVAR* next;
  3298. } TXCTEXTVAR;
  3299.  
  3300. //インクリメンタルサーチ用
  3301. //WZ4.00Ca 991212 new
  3302.  
  3303. typedef struct {
  3304.     mchar szIsearch[CCHSEARCH];
  3305.     mchar szIsearch0[CCHSEARCH];
  3306.     SEARCHMODE Isearchmode;
  3307.     BYTE fIsearching:1;
  3308.     BYTE fIsearchWrapped:1;
  3309.     BYTE fIsearchLastFail:1;
  3310.     IFILE adrIsearch;
  3311.     IFILE adrIsearch0;
  3312. } TX_ISEARCH;
  3313.  
  3314. //##TEXT(テキストコンテキスト)
  3315.  
  3316. struct tagtx {
  3317. // 以下、[変更可]まで、変更してはいけません。
  3318. // テキストが破壊されるおそれがあります。
  3319.     WORD sizeStruct;
  3320.     // textbuff
  3321.     TEXTCHAR* buff;            // テキストバッファ
  3322.     wchar wszfilename[CCHPATHNAME];
  3323.                             // ファイル名(UNICODE)
  3324.                             // 新規のときは、wszfilename[0] == 0
  3325.     mchar szfilename[CCHPATHNAME];
  3326.                             //PWZ2BETA0.4 980604 new
  3327.                             // ファイル名(SJIS)
  3328.                             // 新規のときは、szfilename[0] == 0
  3329.                             // szfilenameはマクロ用。
  3330.                             // wszfilenameがマスターである。
  3331.     IBUFF sizebuff;            // テキストバッファの現在のサイズ
  3332.     // new textbuff pointer
  3333.     IFILE curgap;            // gapの先頭
  3334.                             // fHigh時は、無効&不定
  3335.     IBUFF curpara;            // カレント段落の先頭。(gapの末尾+1)に等しい。
  3336.                             // fHigh時は、無効&不定
  3337.     // textbuff pointer
  3338.     IBUFF cur;                // カーソル位置のテキストバッファオフセット
  3339.                             // fHigh時は、(gapの末尾+1)と等しい。
  3340.     IBUFF cur0;                // curと同じ。
  3341.                             // fHigh時は、(gapの先頭)と等しい。
  3342.     IBUFF cury;                // カーソル表示行の先頭
  3343.                             // (cury >= curpara)である。
  3344.                             // fHigh時は、無効&不定
  3345.     IBUFF curysize;            // 表示行のサイズ
  3346.                             // fHigh時は、無効&不定
  3347.     IBUFF curscreen;        // 画面先頭のテキストバッファオフセット
  3348.                             // IBUFF_ERRORのときは内容無効
  3349.                             // fHigh時は、無効&不定
  3350.     IBUFF ibuff;            //WZ3.90J 981110 任意使用可
  3351.     // view mode
  3352.     FBOOL fEditViewMode;    // 現在、view mode ?
  3353.                             // fSemiViewModeも見てください。
  3354.                             // あるいはtxGetViewmodeで調べるのが良いです。
  3355.     FBOOL fSemiViewMode;    // セミViewMode
  3356.     // textfile
  3357.     HANDLE hf;                // ファイルハンドル
  3358.     IFILE sizefileReal;        // ファイルサイズ(txatrを含む実際のサイズ)
  3359.     IFILE sizefile;            // ファイルサイズ(テキストデータの分のみ)
  3360.     IFILE sizeload;            // ファイルから読み込んだバイト数
  3361.     BBOOL fOpen;            // Openされている?
  3362.     BBOOL fQuit;            //PWZ2BETA0.3 980510 txQuit中?
  3363.     BBOOL fReadAll;            // ファイルを読み終えた
  3364.     BBOOL fAddEof;            // textbuffにEOFを追加した?
  3365.                             // ファイル末尾がEOFの場合はFALSE。
  3366.                             // ファイル末尾がEOFでなければTRUE。
  3367.     FILETIME timeFile;        // ファイルの日付
  3368.     FILETIME timeFile0;        //1.97 前回チェックしたときのファイルのタイムスタンプ
  3369.     BYTE crOpen;            // オープン時の改行コードの形式
  3370.         #define RETURNCODE_CRLF    0    //1.95 'D'から変更
  3371.         #define RETURNCODE_CR    1    //1.95 'M'から変更
  3372.         #define RETURNCODE_LF    2    //1.95 'U'から変更
  3373.         #define RETURNCODE_UNKNOWN    98    //WZ4.00Bl 990913 不明(internal)
  3374.         #define RETURNCODE_THROUGH    99    //XZ0.1 990614 そのまま(internal)
  3375.     BYTE crSave;            // 保存するときの改行コード
  3376.     BYTE kcOpen;            //1.95 オープン時のファイルの文字コード
  3377.         #define KC_SJIS            0
  3378.         #define KC_JIS            1
  3379.         #define KC_EUC            2
  3380.         #define KC_UNICODE        3
  3381.         #define KC_UNICODEBETA    4    // ヘッダなしのUNICODEファイル
  3382.         #if TB_EUC
  3383.             #define KC_DEFAULT    KC_EUC    //XZ0.1 990530 new
  3384.         #else
  3385.             #define KC_DEFAULT    KC_SJIS    //XZ0.1 990530 new
  3386.         #endif
  3387.         // 内部コード
  3388.         #define KC_INTERNAL_TOP    100
  3389.         #define KC_EUC_SJIS        100    // EUC or SJIS
  3390.         #define KC_ASCII        101    // no kanji
  3391.         #define kcIsUnicode(kc)    (kc == KC_UNICODEBETA || kc == KC_UNICODE)
  3392.     BYTE kcSave;            //1.95 保存するときの文字コード
  3393.     // textbox capture
  3394.     HWND ehHwnd;            // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  3395.     HWND ehHwndBase;        // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  3396.     BYTE fEhHwndUndisp:2;    // ehHwndをUndisp中?
  3397.     BYTE ehTarget;            // キャプチャ対象のアプリケーション
  3398.         #define EHTARGET_VC4        10    // VC++ 4.2/VC++ 5.0(テキストの取得の対応。書出しはできない)
  3399.         #define EHTARGET_MSMAIL4    11    // Outlook Express 4.71(IE4.0付属)
  3400.     // WZ MAIL EDITOR
  3401.     struct tagMAILEDIT* mailedit;    //WCE1.01 980327 WZ MAIL EDITOR ?
  3402.                             // 真なら、RFC822のヘッダも付いていることになる。
  3403.     // 行編集の取消
  3404.     TEXTCHAR* buffUndopara;    // 行バッファ
  3405.     IBUFF sizebuffUndopara;    // バッファサイズ
  3406.     IBUFF lchUndopara;        // バッファ内の文字数
  3407.     BBOOL fUndoparaEffect;    //WCE1.01 980124 バッファに有効なデータがある?
  3408.     CBOOL fUndoparaing;        // Undopara中。再入防止フラグ
  3409.     CBOOL fNoUndoparaPrepare;//2.98 970307 txUndoparaPrepareしない?
  3410.     // instance information
  3411.     HANDLE hInstance;        // インスタンスハンドル
  3412.     HANDLE hInstanceParent;    //2.90 親モジュールのインスタンスハンドル
  3413.     wchar* wszCmdLine;        // コマンドライン(malloced)
  3414.     // window
  3415.     HWND hwndbase;            // ベースウィンドウ(with menubar)のハンドル
  3416.                             // text->fFrameのtextのみセットされる。
  3417.                             // WZ Controlや裏テキストではNULL
  3418.     HWND hwndtext;            // テキストウィンドウのハンドル
  3419.                             // 裏テキストではNULL
  3420.     HWND hwndCB;            // コマンドバー
  3421.     HWND hwndCBCB;            // コマンドバーコンボボックス
  3422.     HWND hwndStatusbar;        // ステータスバー
  3423.                             // MYSTATUSBARでコモンコントロール/独自になる。
  3424.     HWND hwndRuler;            // ルーラー
  3425. #if !WINDOWSCE
  3426.     TOOLBARCONTEXT* toolbar;//WZ3.90E 980806 ツールバー(コモンコントロール)
  3427.     RECT rectWindowClosed;    // DestroyWindow(text->hwndbase)したときの位置
  3428.     HWND hwndFunctionbar;    //WZ3.90I 981107 ファンクションキー
  3429. #endif
  3430.     STATUSBAR_PANE* tStatusbarPane;
  3431.     int cxClient;            // hwndTextのサイズ(ピクセル単位)
  3432.                             // 印刷時は右マージンの分を除く紙のサイズ(lpx)
  3433.     int cyClient;            // hwndTextのサイズ(ピクセル単位)
  3434.                             // 印刷時は下マージンの分を除く紙のサイズ(lpx)
  3435.     int cxBase;                // テキスト表示開始位置
  3436.     int cxCaretNow;            // 現在画面に表示しているキャレットの幅
  3437.     int cyCaretNow;            // 現在画面に表示しているキャレットの高さ
  3438.     int nOpenDC;
  3439.     int xCaret;                //WCE1.01 980409 
  3440.     // display/printer
  3441.     int cxWidth;            //1.00F テキストの横幅(ディスプレイドット座標)
  3442.     int cxWidthWhole;        //2.96 970206 テキストの横幅(ディスプレイ座標)
  3443.                             // 1段組の場合はcxWidthと同じ。
  3444.                             // n段組の場合は、1段目の左端からn段目の右端までの幅
  3445.     int lx;                    // カーソルX座標 (文字座標)
  3446.                             // lfProp時は、近似値(text->x / text->cxChar)
  3447.     int lx0;                // 縦移動時に使用
  3448.     int x;                    // カーソルX座標 (ドット座標)
  3449.     int x0;                    // 縦移動時に使用
  3450.     int xAlign;                //WCE1.01 971116 センタリング、右寄せ
  3451.     int cxCursor;            //WCE1.01 980223 カーソルの幅
  3452.     FBOOL fNoAddAlign;        //WCE1.01 971117 offsetFromCx,cxFromOffsetでxAlignを加えない?
  3453.     int xbase;                // basex
  3454.     int cxCharMax;            // 1文字の最大幅
  3455.     int ly;                    // カーソルy座標
  3456.     int lyUnder;            // アンダーラインy座標(非表示中は-1)
  3457.     int lyAtMinimized;        // 最小化したときのly    //WZ3.90M 981128 
  3458.     int hideUnder;            // fListboxのフォーカス表示がHideされているか?
  3459.     int lcySmupper;            // 現在のスクロールマージンTopY
  3460.     int lcySmlower;            // 現在のスクロールマージンTailY
  3461.     FBOOL fAddSmlower;        //WCE0.92 970918 最下行に半端行を表示している?
  3462.     int lcywindow;            // 表示行数(syTop,syTailの分も含む)
  3463.                             // 印刷プレビュー、印刷時は動的に変化します
  3464.                             // 0になることはない。必ず1以上になる
  3465.                             // 行の内容が全て表示できる分の値に設定されます。
  3466.                             // 但し、1に設定されている時は必ずしもこの通りではありません
  3467.                             // 必ずLINE_Nより5程度少なくなる
  3468.     int lcywindowClm;        //WCE0.95 970923 1段の表示行数
  3469.     int xCell;                //WCE1.01 971221 for fTxf 表
  3470.     int xCellSepa;            //WCE1.01 971221 for fTxf 表
  3471.     int lxCell;                //WCE1.01 971221 for fTxf 表
  3472.     int lcxCell;            //WCE1.01 971221 for fTxf 表
  3473.     BYTE CelllineTop;        //WCE1.01 971221 for fTxf 表 直前のセルのlineTop
  3474.     BYTE CelllineBottom;    //WCE1.01 971221 for fTxf 表 直前のセルのlineBottom
  3475.     FBOOL fCellExist;        // 「表がある段落は折り返しなし」に使用
  3476.     BBOOL fCellFlushing;    //WCE1.01 971226 表の幅計算中?
  3477.                             // 2:Undisp中?
  3478.     FBOOL fWestern;            //WCE1.01 980224 欧文表示
  3479.                             // 1バイト文字(ASCII+拡張ASCII)
  3480.                             // !TEXTCHAR_UNICODE時のみ有効
  3481.     //
  3482.     HDC hdc;
  3483.         #define HDC_PAINT    999    // WM_PAINTで確保したHDC
  3484.     HDC hdcMem;
  3485.     HDC hdcPrinter;            // これがNULLでなければ、このhdcに出力する
  3486.     // キー定義
  3487. //    KEY* key;                // キー定義
  3488.     mchar *tszfkey;            // ファンクションキーの文字列
  3489.                             // size = FKEY_N * FKEY_NKEY * FKEY_SIZE
  3490. // ツールバー
  3491. //    TXTOOLBAR *ttxtoolbar;    // ツールバーデータ
  3492.     int ntoolbar;            // ttxtoolbarの数
  3493.     HBITMAP hbitmapToolbar;    // ツールバービットマップ
  3494.     int cxToolbar;
  3495.     int cyToolbar;
  3496.     // for display
  3497.     HFONT hfont;            // フォントハンドル
  3498.                             // fontsetBase->hfontのコピー
  3499.     HFONT hfont2;            // fontsetBase->hfont2のコピー    //WZ4.00Bl 990920 
  3500.     BYTE fSelectFont2;        // hfont2をSelectObject中?        //WZ4.00Bl 990920 
  3501.     HFONT hfontSearch;        //WZ3.90K 981112 欧文編集時の検索ダイアログ、検索ボックス用のフォントハンドル
  3502.     //WCE1.01 980222 マルチフォント、プロポーショナルフォントサポート
  3503.     FONTSET* fontset;        // カレントfontset
  3504.     FONTSET* fontsetBase;    // 本文のfontset
  3505.                             // 常に開きっぱなし
  3506.     FONTSET* fontsetCache;    // fontsetのキャッシュ
  3507.     //WCE1.01 980225 図の表示・印刷サポート
  3508. #if __TXC__
  3509.     LPVOID txbitmapCache;    // IMGキャッシュ
  3510. #else
  3511.     IMGSET* txbitmapCache;    // IMGキャッシュ
  3512. #endif
  3513.     //
  3514.     HBRUSH hbrushBack;        // WZのブラシ
  3515.     HBRUSH hbrushText;        // WZのブラシ
  3516.     HBRUSH hbrushBlock;        // 範囲選択時、反転表示用
  3517. #if !WINDOWSCE
  3518.     HBRUSH hbrushImeBack;    //WZ3.90O 981202 
  3519.     HBRUSH hbrushImeHiBack;    //WZ3.90O 981202 
  3520. #endif
  3521.     HPEN hpenUnderline;        // アンダーライン
  3522.     HPEN hpenNline;            // WZのペン
  3523.     HPEN hpenText;
  3524.     HPEN hpenBack;            // WZのペン
  3525.     HBITMAP hbitmapLf;        // LF記号のビットマップ
  3526.     HBITMAP hbitmapTab;        // TAB記号のビットマップ
  3527.     HBITMAP hbitmapEof;        // EOF記号のビットマップ
  3528.     HBITMAP hbitmapSpace;    // 全角空白のビットマップ
  3529.     HBITMAP hbitmapBeta;    // ベタのビットマップ
  3530.     HBITMAP hbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップ
  3531.     LPVOID pbitmapLf;        // LF記号のビットマップデータ
  3532.     LPVOID pbitmapTab;        // TAB記号のビットマップデータ
  3533.     LPVOID pbitmapEof;        // EOF記号のビットマップデータ
  3534.     LPVOID pbitmapSpace;    // 全角空白のビットマップデータ
  3535.     LPVOID pbitmapBeta;        // ベタのビットマップデータ
  3536.     LPVOID pbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップデータ
  3537. #if WINDOWSCE
  3538.     HBRUSH hbrushPendot;    // WINDOWSCEにはPS_DOTがないのでBRUSHで作る
  3539.     LPVOID pbrushPendot;    // PS_DOTのメモリデータ
  3540. #else
  3541.     HPEN hpenPendot;
  3542. #endif
  3543.     SIGNED_BYTE color;        // 現在設定中の色コード
  3544.     COLORREF rgb;            // 現在表示中の色RGB
  3545.     BYTE fColorReverse:1;    // 反転表示中?
  3546.     BYTE fColorIme:1;        //WZ3.90O 981202 IME変換文字描画中?
  3547.     // GetLineSize/DispLineコンテキスト
  3548.     //WCE1.01 980216 GetLineSizeの処理結果
  3549.     BYTE gls_iHeadline;        // 見出しコード
  3550.     WORD gls_cyChar;        // 行の高さ(行間を除く)
  3551.     WORD gls_cyAscent;        // 行のベースラインより上の部分の高さ
  3552.     WORD gls_cyDescent;        // 行のベースラインより下の部分の高さ
  3553.     WORD gls_cyLine;        // 行の高さ(行間を含む)
  3554.     BYTE gls_nClm;            //WCE1.01 980301 この段落の段組数
  3555.                             // 通常はtext->nClmだが、<CLM>タグで段組数が指定されている場合に対応
  3556.     WORD gls_yFootnote;        //WCE1.01 980302 ページ内脚注表示位置(cyClientベース)
  3557.     WORD gls_cxCursor;        // LSOP_OFFSET_TO_X,LSOP_X_TO_OFFSET時のx位置の文字幅
  3558. //##TEXT - 現在の内部情報
  3559.     mchar* szexedir;        //WZ3.90I 981027 WZEDITOR.EXEの存在するパスが入っています。
  3560.                             // "a:\wz\"や"b:\"のように入っています。
  3561.                             // マクロからは、次の様にして、WZ.EXEと同じディレクトリにあるファイルの
  3562.                             // フルパスを得ることができます
  3563.                             //         text->szexedir + "myfile"
  3564.     FBOOL fTXWS_TEXT;        // TXWS_TEXTのtext?
  3565.     FBOOL fFrame;            // 表テキスト?
  3566.                             // 裏テキスト、WZコントロールのtextの場合はFALSE
  3567.     FBOOL fReadOnly;        // 修正はできるがセーブできない。
  3568.     FBOOL fCurWestern;        // 現在のカーソル行が欧文フォントかどうか示す。
  3569.                             // txDispCursorでフラッシュされるので、いつも必ずしも
  3570.                             // 正しいとは限らない。
  3571.     int idmPrev;            // 前回実行したidmコマンド        //WZ4.00Ca 991119 new
  3572. __BITFIELD_BORDER__
  3573.     WORD wtmIdmPrevD:11;    // idmExec用 前回実行idmコマンドから経過した時間(max2047) //WZ4.00Ca 991126 new
  3574.     WORD nRepeatKey:4;        // idmExec用 キーリピート数(max15) //WZ4.00Ca 991126 new
  3575. __BITFIELD_BORDER__
  3576.     WORD nSameIdm:8;        // 特定idmコマンドのリピート    //WZ4.00Ca 991119 new
  3577.     WORD nrepeat:8;            // 特定idmコマンドのリピート    //WZ4.00Ca 991119 new
  3578. __BITFIELD_BORDER__
  3579.     WORD fNoApfExitAtNparaChange:1;    // idmExec用            //WZ4.00Ca 991119 new
  3580.     WORD fNoCheckEdit:1;    // idmExec用                    //WZ4.00Ca 991119 new
  3581.     WORD fReopenInternaling:1;// txReopenInternal中?
  3582.     WORD fShared:1;            // WZプロセス間で共有されているtext?
  3583.                             // WINDOWSCE
  3584.     WORD fNoFlushBaseDisp:2;// txFlushBaseでtxDispAllしない
  3585.     WORD fFlushBaseDisped:1;// fNoFlushBaseDisp中にtxDispAllがあった
  3586.     WORD fEnableUndo:1;
  3587.     WORD fNewFile:2;        // 新規ファイル?(1か2なら真なので注意)
  3588.     WORD fOpenLockedFile:1;    // 排他制御がかかっているファイルを開いた
  3589.     WORD fDispEofed:1;        // 最後に表示を行ったときにEOFを表示した?
  3590.     WORD fHaveFocusLine:1;  // フォーカスラインを持っている?
  3591.     WORD fNoCaret:1;        // キャレットを表示しない
  3592.     WORD fOriginalCaret:1;    //WCE1.01 980409 独自のキャレットを表示
  3593.                             // 普通のキャレットは主スレッドしか対応しないが、
  3594.                             // これはマルチスレッド対応。
  3595. __BITFIELD_BORDER__
  3596.     WORD fMouseJumpx:2;        // txJumpXで文字の中心を基準とする
  3597.     WORD nlineByPage:1;        // dummy
  3598.     WORD lpy:1;                // dummy
  3599.     WORD fNoFlushSelectNow:1;//txFlushSelectNowしない
  3600.     WORD fDestorying:1;        // textを破棄中?
  3601.     WORD fStatprintfing:1;    // statprintfが表示されている状態?
  3602.     WORD fUndispLinenum:2;    // 行番号を表示しない
  3603.     DWORD FlushCuryResult;    // 内部ワーク
  3604.     BBOOL fNomoveBase;        // 画面の横スクロールをしない(text->basexを動かさない)
  3605. __BITFIELD_BORDER__
  3606.     WORD ftxuiSaveNamed:1;    // txuiSaveで名前を付けたときにONになり、txuiSaveを抜けるとOFFになる
  3607.     WORD fSaveCanceled:1;    // (text->lasterror == TXERROR_SAVECANCELED)
  3608.     WORD fInsideIsClose:1;    // ehHwndでtxuiIsClose()中
  3609.     WORD fClipMouseStart:1;    // マウスによる範囲選択開始時?
  3610.     WORD fCursorSeted:1;    // WINDOWSCE カーソルが変更されている
  3611.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  3612.     WORD fReplaceCanceled:1;// 直前のReplaceがキャンセルされた?
  3613.     WORD fGetDownAble:2;    //WZ3.90H 980923 現在txGetDownAble中?
  3614.     WORD fPageChanged:1;    //WZ3.90H 980923 txBuffNextLineN/txBuffPrevLineNでページを越えた
  3615.     WORD fError:1;            //WZ3.90H 980925 エラー状態
  3616.     WORD fNoInitScrollBar:2;//WZ3.90I 981030 _InitScrollBarしない。
  3617.     WORD fPageScrollBarV:2;    //WZ3.90I 981030 印刷プレビュー時に縦スクロールバーをページ内のプロポーショナルスクロールバーにする?
  3618. __BITFIELD_BORDER__
  3619.     WORD fGetXAlign:2;        //WZ3.90I 981106 
  3620.     WORD fAutoScrolling:1;    //WZ3.90J 981110 自動スクロール中?
  3621.     WORD fAutoScrollPause:1;//WZ3.90J 981110 自動スクロール一時停止中?
  3622.     WORD fAutoScrollPrev:1;    //WZ3.90L 981125 自動スクロール前方向中?
  3623.     WORD fApfuBeamtabFlush:1;//WZ3.90L 981115 タブ桁揃えフラッシュ中?
  3624.     WORD fLpFlushPreviewing:1;//WZ3.90L 981117 
  3625.     WORD fIdmExecing:3;        //WZ4.00Aa 990107 //WZ4.00Ac 990207 ネストする場合があるので1bitでは足りなかった
  3626.     WORD fUserInserting:2;    //WZ4.00Bn 991007 
  3627.     WORD fNoPushDeleteString:2;    //WZ4.00Aa 990107 削除バッファに入れない?
  3628.     WORD fPushDeleteString:2;    //WZ4.00Bj 990825 txDeleteParaで削除した分も削除バッファに入れる?
  3629. __BITFIELD_BORDER__
  3630.     WORD fSaving:2;            //WZ4.00Ab 990202 保存中?
  3631.     WORD fSaveAsDoing:1;    //WZ4.00Ab 990202 txuiSaveAs中?
  3632.     WORD fEndSessioning:1;    //WZ4.00Ac 990205 WM_QUERYENDSESSION中?
  3633.     WORD fHistAddAtSave:1;    //WZ4.00Ac 990206 txSave時にhistAddし、このフラグをクリア?
  3634.     WORD fWindowClosedMax:1;//WZ4.00Ad 990211 DestroyWindow(text->hwndbase)したとき最大化されていたかどうか?
  3635.     WORD fByMouse:1;        //WZ4.00Bl 990909 マウスによるコマンド実行時かどうか?
  3636.     WORD fNetnewsList:1;    //WZ4.00Bl 990916 for SPEAK
  3637.     WORD fQueryBigEdited:1;    //WZ4.00Bl 990918 
  3638.     WORD fResultXtoOffset:1;//WZ4.00Bl 990918 
  3639.     WORD fNoFreeCursorXtoOffset:1;    //WZ4.00Ca 000104 
  3640.     WORD fOpenFrame:1;        //WZ4.00Ca 991203 フレームウィンドウを開き終えた?
  3641.     WORD fOnDeletePrev:2;    //WZ4.00Bp 991014 
  3642.     CBOOL fBusy;            //WCE1.01 980203 
  3643.     FBOOL fDispLineEdit;    // 変更行の表示を行う?    //WCE1.01 980205 変更行の表示
  3644.     PARAATR_CONTEXT paraatr;//WZ4.00Bl 990920 paraatrtextcontextから名称変更。
  3645.     PLT_CONTEXT* plt;        //WZ4.00Da 000206 先割り原稿
  3646.     // binary
  3647.     FBOOL fBinedit;            // バイナリ編集(16進表示バイナリエディタ)モード?
  3648.                             // ファイルをバイナリとして読み込む
  3649.                             // ファイル末尾のEOFをEOFコードとしてはみなさなず、text->buffロード時に必ずEOFを加える
  3650.                             // fBinaryもTRUEにセットすること。
  3651.                             // fBinedit時は、curparaはcuryと同じになり段落先頭を示さなくなる。
  3652.                             // また、nparaはnlineと同等になる。
  3653.     CBOOL fBinary;            // 全角文字を半角2文字として扱う
  3654.                             // !fBineditなら、ファイルはテキストファイルとして読み込む
  3655.                             // fBineditの場合は、fBinaryもTRUE。
  3656.     CBOOL fNoJumpChartop;    //WZ3.90P 981206 txJumpAddress,txJumpAddressNearで、アドレスが文字の先頭でない場合、文字の先頭ではなく、指定されたアドレスにジャンプ。
  3657. #if WZFUNC_MEMOEDIT    //WZ3.90L 981124 メモモード
  3658.     BYTE fMemoedit:1;                // メモ編集モード?
  3659.     struct tagMEMOEDIT* memoedit;    // メモ編集コンテキスト
  3660. #endif
  3661.     // undo
  3662.     TX* ttextUndo;            // undoバッファ textUndo[0],textUndo[1]が有効
  3663.     UNDOPACK_CONTEXT undopack[2];
  3664.     mchar* szGeneComment;    //WCE1.01 980201 世代管理:次の世代のコメント
  3665.     FBOOL fTextUndoInited;    // textUndo inited?
  3666.     FBOOL fUndoing;            // アンドゥとリドゥの区別
  3667.     FBOOL fUndoView;        // undoバッファのビューモード
  3668.     FBOOL fUndoExec;        // undo()中かどうか
  3669.     FBOOL fUndoResetTexttop;//PWZ2BETA0.3 980511 undo中にtexttopを0にしたか?
  3670.     HWND hwndUndo;            // 
  3671.     BBOOL fGene;            // 世代管理テキスト?
  3672.     FBOOL fGeneWalking;        // 世代管理テキストを作成中?    //WZ4.00Bl 990921 
  3673.     BYTE fNoUndoAdd;        // 0以外ならundoAddされない
  3674.     BYTE adrTextUndoTop;    // undoバッファのヘッダ長
  3675.     BYTE uc;                // UC
  3676.     FBOOL fUndoFindCellFlush;//WCE1.01 971226 
  3677.     SIGNED_WORD igene;        //WCE1.01 980201 現在の世代
  3678.     FBOOL fNoGeneDelete;    //WCE1.01 980206 
  3679.     BBOOL fUndoOverflowed;    //WZ4.00Bj 990825 
  3680.     // autosave
  3681.     int nAutoSaveCmdNow;    // 前回のオートセーブから現在までに実行された編集コマンド数
  3682.     BBOOL fAutoSaving;        // autosave中?
  3683.     BBOOL fAutoSaveValidTimer;    // 自動保存実行タイマセット中?
  3684.     //
  3685.     CMDLINECONTEXT* pcc;    // fFrameのみコマンドラインコンテキスト
  3686.                             // このオブジェクトはdeleteしてはいけないが、
  3687.                             // pcc=NULLにしてもいい
  3688.     DWORD nEdit;            // 編集が行われた回数をカウントしています
  3689.     IFILE adrLastEdit;        //WZ4.00Bj 990824 最後に編集した位置
  3690.     BYTE fNoCountNedit;        // nEditをカウントアップしない?
  3691.     BYTE fNoReduceGap;        // テキストバッファの縮小を一時的にしない
  3692.     // キー入力
  3693.     mchar key2;                // 2ストロークキー入力用.1ストローク目のキーコード
  3694.     FBOOL fTranslated;        //WCE1.00.1 970926 WM_KEYDOWN/SYSKEYDOWNの後にWM_CHAR/SYSCHARが来る?
  3695. //    FBOOL fKeyD;            // 次のWM_CHAR/WM_SYSCHARを無視?
  3696.     UINT idmLast;            //WZ3.90I 981102 最後にキーから実行したIDMコマンド
  3697.     TX_ISEARCH* isearch;    //WZ4.00Ca 991212 インクリメンタルサーチのコンテキスト(NULLの場合あり)(emacswzは廃止)
  3698.     BYTE lastfocus;            //WZ4.00A 981229 最後にSETFOCUSされた部位
  3699.         #define FOCUS_OUTLINE        1
  3700.         #define FOCUS_MAILTO        100    //WZ4.00Bj 990812 
  3701.         #define FOCUS_MAILCC        101    //WZ4.00Bj 990812 
  3702.         #define FOCUS_MAILSUBJECT    102    //WZ4.00Bj 990812 
  3703.         #define FOCUS_ISMAILEDIT(l)    (100<=l)    //WZ4.00Bj 990812 
  3704.     // 本文フォントの情報
  3705.     int cxChar;                // 文字幅
  3706.     int cxLetter;            // 字間をふくむ文字幅
  3707.     int cyChar;                // 文字高さ
  3708.     int cyLine;                // 行高さ
  3709.     FBOOL lfEditProp;        // プロポーショナルか?
  3710.     //
  3711.     BBOOL fUndispSelect;    // 範囲選択を表示しない
  3712.     SEARCHMODE searchmode;    // 現在の検索オプション
  3713.     int nCmdShow;            // 現在のtext->hwndbaseのShowWindowモード
  3714.     int fHigh;                // Highspeed flag
  3715.                             // カーソル位置(cury,curysize)の計算をしない。
  3716.                             // nparaは計算します。for 編集した行の強調表示
  3717.                             // nlineは計算しないのでズレます。
  3718.                             // <使用要注意>
  3719.                             // txSetHighで開始してください。
  3720.                             // 直接このフラグを操作しないでください。
  3721.                             // TXHIGHのAPIのみ使えます。
  3722.                             // それ以外のAPIは使えません。
  3723.                             // 使った場合の動作は保証しません。
  3724.                             // できるだけチェックをして回避していますが、
  3725.                             // テキストを破壊する恐れもあります。
  3726.                             // <使用後>
  3727.                             // txResetHighかtxResetHighFlagを使ってください。
  3728.     int lyHigh;                // txSetHigh()時、ly保存
  3729.     UINT nEditHigh;            // txSetHigh()時、nEdit保存。for paraatr
  3730.     UNDISPCONTEXT tUndispContext[UNDISPCONTEXT_N];
  3731.     int fUndisp;            // 非表示フラグ
  3732.     int fUndraw;            //2.00B 非描画フラグ
  3733.                             // fUndispだと描画しないだけでなく各種
  3734.                             // 計算なども行わないが、このフラグは単に
  3735.                             // 描画を行わない
  3736.     HCURSOR hcursor;        // マウス砂時計表示時、元の形状
  3737.     BBOOL fUndispCursor;    // txDispCursor/txDispLocateの処理をしない
  3738.                             // txDeletePara etc のちらつきをなくすため、
  3739.     BBOOL fNoCursor;        // マウス形状を変更しない
  3740.     FBOOL fCursorBold;        // カーソル位置強調?
  3741.     NPARA fUndispNpara;        // 0以外にすると、その段落のみ描画を行わない
  3742.     NPARA fUndispExceptNpara;// (内部用)0以外にすると、その段落以外の描画を行わない
  3743.     // scroll by scrollbar
  3744.     BBOOL fScrollSB;        // スクロールバーでスクロール中
  3745.     BBOOL fInvalidLySB;        // lySBは無効?    //WZ4.00Bl 990921 
  3746.                             // lySB=-1の時に無効の仕様だったが、スクロールすると増減されてしまい、問題があった。
  3747.     int lySB;                // カーソル位置(fInvalidLySBなら無効)
  3748.     // scrollbarによるスクロール開始時の情報
  3749.     NLINE nlineSB;            // npara/nline
  3750.     NLINE nparaSB;            // npara    //WZ3.90L 981123 
  3751.     IFILE adrSB;            // カーソル位置
  3752.     int lxSB;                // lx
  3753.     int cxCaretSB;            // カーソルの幅
  3754.     int fClipSB;            // fClip
  3755.                             // 途中でtxSelectXXXが実行されたときはリセットする
  3756.                             // そうしないと、以前はtxFlushSelectNowで、
  3757.                             // fScrollSBならスクロール開始時の情報を範囲選択エリアとして
  3758.                             // 返していたが、選択モードを変更したときに、
  3759.                             // そのモードの情報が返されず、テキスト<->高速モード変換で
  3760.                             // テキストが破壊されることがあった。
  3761.                             // txSelectAllしてコピーし、テキストを全削除してペースト
  3762.                             // すると元に戻らなかった
  3763.     SIGNED_WORD xSB;        // SB開始時x
  3764.     TXCHAR chSB;            // カーソル位置の文字    //WZ4.00Bl 990913 
  3765.     IFILE mark[MAXMARK];    // マーク
  3766.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.91 970910 最近参照した位置
  3767.     BYTE iAdrRefer;            // tAdrRefer参照ポインタ
  3768.     BBOOL fEdit;            // 編集された?
  3769.     BBOOL fEdit0;            // for txDoCaption
  3770.     BBOOL fEditable;        // 修正できる?
  3771.                             // txOpenTextでデフォルト値設定
  3772.                             // fEditViewModeならFALSE、そうでなければTRUE
  3773.     BBOOL fOverWrite;        // 上書きモード?
  3774.     DWORD sizefileMax;        // 0のときはファイルをすべて読み込む
  3775.                             // 1以上のときは、そのサイズまでしかファイルを読み込まない
  3776.                             // for preview
  3777.     NLINE npara;            // text->curの論理行番号
  3778.                             // nparaは高速/詳細モードでは大変重要な役割
  3779.                             // (段落書式indexとなる)を果たすので、
  3780.                             // 必ず正確な値にしておかないといけない。
  3781.     NLINE nline;            // 表示-行番号(fLineDが真の時しか数えない)
  3782.                             // fLineDが偽の時は、不定
  3783.                             //2.93 fCountNlineが真なら、常に数える
  3784.     BYTE fCountNline;        //2.93 !fLineDでもnlineのカウントをする
  3785.     BYTE fCountNpara;        //2.96A 970213 fHighでeditmode=0でもnparaのカウントをする
  3786.                             // カウントがされないときもあります。
  3787.     BYTE lyScreenEndResult;    //2.98 970307 Disp(DISP_GETCURSCREENEND)のly結果
  3788.     NLINE nlineAll;            //WZ3.90I 981004 これが0以外でfLineDならばプロポーショナルスクロールバーを表示する
  3789.     WORD cxVH;                //WZ3.90I 981015 !=0なら縦中横の表示中
  3790.     //WCE1.01 980216 ページ数 印刷時・プレビュー時のみ使用
  3791.     NPAGE npage;            // カーソル行のページ番号(1origin)
  3792.     PAGEATR* tPageatr;        // ページ情報
  3793.                             // tPageatr[text->npage]までが有効。
  3794.                             // ifilePagetopだけはtPageatr[text->npage+1]まで有効。
  3795.     LINEATR* tLineatr;        // 表示行情報
  3796.     LINESIZE_ENTRY_ROOT* ttLsc[2];//WZ3.90H 980919 
  3797.     NPARA nparaLsc;                //WZ3.90H 980921 対象のnpara
  3798.     // clip
  3799.     int fClip;                        // 範囲選択モード
  3800.         #define CLIP_NONE        0    // 範囲選択されてない
  3801.         // 基本範囲選択
  3802.         #define CLIP_CHAR        10    // 文字単位
  3803.         #define CLIP_LINE        11    // 表示行単位
  3804.         #define CLIP_PARA        12    // 論理行単位
  3805.         #define CLIP_BOX        13    // 箱形
  3806.         #define CLIP_WORD        14    // 単語
  3807.         #define CLIP_SENTENCE    15    // 文
  3808.         // すべてを選択
  3809.         #define CLIP_ALL        20
  3810.         // txSelectGetMode,txSelectEx用
  3811.         #define CLIP_LINECUR    31
  3812.         #define CLIP_PARACUR    32
  3813.         // txSelectEx用
  3814.         #define CLIP_VZ            40
  3815.         #define CLIP_WZ            41
  3816.         #define CLIP_SEARCH        42
  3817.         #define CLIP_MOUSE        43
  3818.         // 内部用
  3819.         #define CLIP_PARA1        90    // 1論理行
  3820.         #define CLIP_DELSTRPREV    91    // BSによる文字列削除
  3821.         #define CLIP_DELSTRNEXT    92    // DELによる文字列削除
  3822.         // txClipCopyEx用
  3823.         #define CLIP_COPYPARA1    100    // カーソル論理行をコピー
  3824.     //2.95 970125 ビットフィールド化
  3825.     FBOOL fClipMouse;        // マウスによる範囲選択?(fClipが0のときはFALSEであること)
  3826. __BITFIELD_BORDER__
  3827.     WORD fClipVz:1;            // VZ clip?
  3828.     WORD fClipWz:1;            // WZ clip?
  3829.                             // 最初に横に動かせば文字単位
  3830.                             // 下に動かせば論理行単位
  3831.     WORD fClipCur:1;        // (WZ内部用)
  3832.                             // CLIP_PARA/CLIP_LINE時にカーソル位置も範囲に含めるか?
  3833.     WORD fClipSearch:1;        // 検索による範囲選択?
  3834.     WORD fClipPasteJump:1;    // 最後のtxPasteで、ペーストした分カーソルを移動した?
  3835.     WORD fDispUnderClip:1;    // 選択開始時fDispUnder
  3836.     WORD fKeyVkShift:2;        // for キーボードマクロ時ms shiftキー範囲選択
  3837.                             // 0:実際のVK_SHIFTの押し下げ状態に従う
  3838.                             // 1:SHIFTは押されていないとみなす
  3839.                             // 2:SHIFTは押されているとみなす
  3840.     WORD fClipReserved:8;
  3841. __BITFIELD_BORDER__
  3842.     int lxClip;                // 範囲選択開始時lx
  3843.     int lyClip;                // 範囲選択開始時ly
  3844.     NPARA nparaClip;        // 範囲選択開始時npara
  3845.     NLINE nlineClip;        // 範囲選択開始時nline
  3846.     IFILE cliptop;            // 範囲選択開始位置
  3847.                             // 行単位の場合は行頭からになるので、
  3848.                             // clipcur0とは必ずしも一致しない
  3849.                             // Insert/Deleteでもズレないよう補正する
  3850.     IFILE clipcur0;            // 範囲選択開始時のカーソル位置のアドレス
  3851.                             // Insert/Deleteでズレるが問題ない
  3852.     IFILE cliptoppara;        // 範囲選択開始時の論理行頭のアドレス
  3853.                             // 必ずしも正確な値ではない
  3854.                             // Insert/Deleteでズレるが問題ない
  3855.     IFILE cliptopparatail;    // 範囲選択開始時の次の論理行頭のアドレス
  3856.                             // 必ずしも正確な値ではない
  3857.                             // Insert/Deleteでズレるが問題ない
  3858.     IBUFF clipend;            // ClipParaワーク
  3859.     BYTE modeFreeCursorClip;// 選択開始時modeFreeCursor
  3860.     IFILE cliptoptail;        // 範囲選択開始時の次の単語/文/行の先頭アドレス
  3861.     IFILE cliptopnow;        // 正確な選択開始アドレス(cliptopがベース)
  3862.     IFILE clipendnow;        // 正確な選択Tailアドレス(txGetAddressがベース)
  3863.     int xClip;                // 範囲選択開始時x
  3864.     BYTE fNoScrollLinenum:2;// 行番号をスクロールしない
  3865.     BYTE fNoHistCopy:1;        // HIST_COPYに出力しない    //WZ4.00Db 000312 
  3866.     IFILE clippastetop;        // 最後にペーストした時のペースト開始アドレス
  3867.     IFILE clippasteend;        // ペースト終了アドレス
  3868.     int xClipMouse;            //WZ3.90I 981105 マウスでの箱型選択、D&D用。選択終了時のx座標。
  3869.     //WZ3.90I 981104 D&D
  3870. __BITFIELD_BORDER__
  3871.     WORD fClipDrag:1;        // drag&drop-cut&paste
  3872.                             // 途中でtxSelectXXXが実行されたときはリセットする
  3873.     WORD fClipDragCaret:1;    //WZ3.90I 981107 ドロップターゲットカーソルモード中?
  3874.     WORD fOriginalCaret0:2;    // 保存用
  3875.     WORD fDispUnder0:2;        // 保存用
  3876.     WORD reservedCD:10;
  3877. __BITFIELD_BORDER__
  3878.     IFILE ifileDrop;        //WZ3.90I 981104 ドロップされた位置
  3879.     int lyDrop;                //WZ3.90I 981104 
  3880.     // ime
  3881.     //WZ3.90H 980928 IME描画を全面変更
  3882.     WORD sizeImeCompstr;    // 挿入した変換中文字列のバイト数
  3883.     int xCompstrEnd;        // 変換中文字列の表示の最終行の右端の座標
  3884.                             // (cxBase,xbase含む)
  3885.     int xImecurCompstr;        // IMEのカーソル位置 x(cxBase,xbaseは除く)
  3886.     int yImecurCursor;        // IMEのカーソル位置 y(yBaseは除く)
  3887. #if !UNIX
  3888.     HRGN hrgnCompstrDraw;    // 変換中文字列を描画したhrgn
  3889. #endif
  3890.     BYTE fCompstrDrawing:2;    //WZ3.90H 980928 描画中?
  3891.     BYTE fImeCursorIme:1;    // カーソル位置(IMEの描画)で変換中?    //WZ4.00Aa 990110
  3892.     BYTE fImeOnInactive:1;    //WZ4.00Bl 990913 WA_INACTIVE時にIMEがONだった?    //WZ4.00Bl 990913 
  3893.     FBOOL fImeCompstr;        // カーソル位置(WZの描画)で変換中?(インライン変換は除く)
  3894. #if !WINDOWSCE
  3895.     //WZ3.90H 980913 一時ウィンドウ
  3896.     #if 0    //WZ3.90H 980915 多重化がうまく実装できたので、少々難のあった一時ウィンドウは廃止
  3897.     TXMULTI_CONTEXT* multi;            // 一時ウィンドウあり?
  3898.     #endif
  3899.     TXMULTI_CONTEXT_TEMP* multi0;    // 前回の多重化/一時ウィンドウのコンテキスト
  3900.     //WZ3.90H 980915 多重化
  3901.     MT* mt;                    // 多重化
  3902.     WORD idMt;                // 表ウィンドウのID
  3903.     WORD idMtMax;            // 今までの最大値のID
  3904.     BYTE fMtRedraw:2;        // 
  3905.     BYTE fMtOpening:1;        // 起動中
  3906. #endif
  3907.     // 最近入力した文字列
  3908.     mchar szInserted[30];    // 現在入力中の文字列
  3909.     BYTE lchInserted;        // szInserted内の文字数
  3910.     // 自動整形
  3911.     FBOOL fApfing;            // 自動整形中?
  3912.     FBOOL fApf;                // 自動整形を行う?
  3913.     BYTE fApfUndisp:2;        // Undisp nest
  3914.     BYTE modeApfIndentSpace;// lcxIndentのmodeSpace
  3915.     BYTE fApfSpaceJspace:1; // lchSpaceは全角空白か?
  3916.     BYTE fApfNakaguroAsArticleForce:1;// 一時的に"・"を"■"と同様に扱う
  3917.     BYTE fApfValidAutoFormat:1;    // 一時的に行頭の"・","1."を調べる
  3918.     BYTE fApfNameSymbol:1;    // 一時的に"名前>"を整形するか?    //WZ4.00Ca 991120 new
  3919.                             // 常にこれを整形するのはやりすぎなので、
  3920.                             // 指定されたときだけ整形する
  3921.     NPARA nparaApf;            // 自動整形中のnpara
  3922.     PARAFORM_ARTICLE apf;
  3923.     IFILE adrApfCurscreen;
  3924.     int lx0Apf;
  3925.     int x0Apf;
  3926.     NLINE nline0Apf;        //WCE0.95 970923 
  3927.     // 見出し文字列
  3928.     HEADLINE* tHeadline;        // on demand alloc    //WZ4.00Bj 990823 
  3929.     //WZ4.00Bj 990823 tpHeadline,tlchHeadline,head,lchHeadlineContent,offsetHeadlineContent廃止。
  3930.     //WZ3.90K 981113  tszHeadline廃止
  3931.     // アウトライン
  3932.     HWND hwndOutline;
  3933.     #if !WINDOWSCE
  3934.     HWND hwndOutlinePartition;    //WZ4.00Bj 990824 
  3935.     BYTE rateOutline;            //WZ4.00Bj 990824 
  3936.     WORD cxHwndbase0;            //WZ4.00Bj 990824 for fOutlineSplitExtend
  3937.     #endif
  3938.     FBOOL fOutlineHide;
  3939.     FBOOL fOutlineSplited;    //WCE1.01 980204 
  3940.     CBOOL fOutlineNoJump;    //WCE1.01 980204 
  3941.     // caret
  3942.     FBOOL fHaveCaret;        // キャレットを持っている?
  3943.     CBOOL fUndispCaret;        //WCE 970902 HideCaretしてもカーソルが消えないことがあるので、
  3944.                             // 位置を動かして強制的にカーソルを画面から除くために使用
  3945.     POINT pointCaret;        //WCE 970902 
  3946.     // keyword
  3947.     struct tagKeywordContext* keyword;    //WZ4.00Aa 990108 new。txKeyword,fKeywordNoSenseCaseは廃止。
  3948.     // 変数
  3949.     BYTE fTxfVarConfig:1;    //PWZ2BETA0.3 980519 設定中なので、内容が空なら代わりに指示文字列を表示
  3950.     VAR* var;                //PWZ2BETA0.3 980519 
  3951.     // TX-C
  3952.     TXCTEXTVAR* textvarRoot;//PWZ2BETA0.4 980602 for TEXTVAR
  3953.     // link
  3954.     LINKHIST* linkhist;        //WZ3.90L 981117 リンク移動ヒストリ
  3955.     // テキストの変換
  3956.     struct tagContextConverttext* converttext;    //WZ4.00Ac 990206 テキストの変換の設定を覚えるようにした
  3957.     BYTE ctDst:4;
  3958. //##TEXT - 現在の内部設定
  3959.     FBOOL fSilent;            //WCE0.94 970922 1行が長すぎるなどの警告を出さない
  3960.     FBOOL fKcAuto;            //WCE0.93 970919 漢字コード自動変換する?
  3961.                             // text->fFrameは設定によりセットされます。
  3962.                             // それ以外のtextはFALSEになってます。
  3963.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  3964.     FBOOL fCrAuto;            //WZ3.90J 981109 改行コード自動判別する?
  3965.                             // text->fFrameは設定によりセットされます。
  3966.                             // それ以外のtextはFALSEになってます。
  3967.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  3968.     BBOOL fDispControlSpace;// 制御コードを半角空白で表示(折り返しも対応)
  3969.                             // 改行なども半角空白で表示
  3970.     int width;                // 折り返し幅
  3971.     BYTE nClm;                //WCE1.01 980216 段数
  3972.     WORD cySpace;            //WCE1.01 980307 行間
  3973.     BYTE fNoMarkCur;        // txMarkCurしない? (++,--)を使う
  3974.                             // txMarkNow/txJumpMarkNow 専用
  3975.     IFILE mark0;            //WCE1.01 971222 txMarkNow時にオリジナルのmark[0]の値を保存
  3976.     FBOOL fDebug;
  3977.     FBOOL fReadMode;        // 閲覧モード
  3978. __BITFIELD_BORDER__
  3979.     WORD fNoConfig:1;        // txSetFileNameで設定データをロードしない
  3980.                             //参考:txInitTextで、"標準"の設定がロードされます
  3981.     WORD fNoProfile:1;        // txOpenTextでプロファイルを参照しない
  3982.     WORD fPreview:1;        // プレビュー用
  3983.                             // 表示中にキー入力を監視し、キー入力があれば
  3984.                             // 表示処理を中断して応答性を上げる
  3985.     WORD fTxAllocText:1;    // txAllocTextでアロケートされたtext
  3986.     WORD fUndispWmpaint:1;    // WM_PAINTで描画しない?
  3987.     WORD fFilelist:1;        //WZ4.00Ac 990207 FILELISTウィンドウ?
  3988.     WORD fFilepreview:1;    //WZ4.00Ac 990207 ファイルプレビューウィンドウ?
  3989.     WORD fMemo:1;            // メモテキストウィンドウ?
  3990.     WORD fGrep:1;            // Grep結果一覧ウィンドウ?
  3991.     WORD fHelp:1;            // ヘルプテキストウィンドウ?
  3992.     WORD fContexthelp:1;    // コンテキストヘルプテキスト?    //WZ4.00Bo 991011 new
  3993.     WORD fMailPreview:1;    //PWZ2BETA0.3 980509 メールプレビューアー
  3994.     WORD fMailTemplate:1;    //PWZ2BETA0.3 980520 メールテンプレート
  3995.     WORD fTML:1;            //PWZ2BETA0.3 980511 TMLヘッダあり、すなわちTMLファイル?
  3996.                             // これがONならRFC822形式のヘッダがあるということになる。
  3997. #if 1//WZ3.90G 980903 デフォルトではAlt+M etc を処理しないように変更 for WZテキストボックスを使いやすく。
  3998.     WORD fUseDefaultAltKey:1;//WZ3.90G 980903 Alt+M etc を処理する
  3999. #else
  4000.     WORD fNoSyskeydown:1;    //PWZ2BETA0.3 980519 Alt+M etc を処理しない
  4001. #endif
  4002.     WORD fTags:1;            //PWZ2BETA0.4 980612 タグファイル?
  4003. __BITFIELD_BORDER__
  4004.     WORD fNoFlushWindow:1;    //WZ3.90J 981109 txFlushWindowをしない?
  4005.     WORD fClickActive:1;    //WZ3.90I 981103 
  4006.     WORD fOnCheckJumpX:2;    //WZ3.90I 981104 
  4007.     WORD modeFileShare:2;    //WZ3.90H 980925 
  4008.                             // 0のときはsh->modeFileShareに従う。
  4009.                             // FILESHARE_DENY_WRITE,FILESHARE_EXCLUSIVEのときは、
  4010.                             // sh->modeFileShareに関わらず、排他制御を行う。裏テキストも行う。
  4011.                             // 直接変更せず、txSetFileShareを使うこと。
  4012.     WORD fNoBuffReduceAuto:2;//WZ3.90O 981204 自動のtxBuffReduceをしない
  4013.     WORD fHeadlineOutline:1;//WZ4.00Bj 990810 見出しのみのテキスト(見出し番号は段落先頭の1文字)
  4014.     WORD fDispMail:1;        //WZ4.00Bl 990913 MAIL PREVIEW/MAIL EDITOR用の色分け?
  4015.     WORD fDispRuby:1;        //WZ4.00Bl 990919 通常編集時にルビを表示する?
  4016.     WORD fPccExt:1;            //WZ4.00Db 000210 txGetFileExtWでpcc->wszExtを優先する?
  4017.     BBOOL fConfigtext;        //WCE1.01 980301 テキスト埋め込みの設定あり?
  4018.     WORD dlgcode;            // TXWS_TEXTのWM_GETDLGCODE処理コード
  4019.                             // default:DLGC_WANTALLKEYS
  4020.     BBOOL fNoImeControl;    // IMEの制御をしない
  4021.                             // BBOOLに拡大
  4022.     KEY* key;                // 現在のキー配列
  4023.                             // text->fFrame/fTXWS_TEXTのみセットされる
  4024.                             // 裏テキストではNULL
  4025. #if 0//WZ3.90H 980927 SHAREに移動した
  4026.     BYTE pagingmode;        // ページングモード('S','C','P',' ')
  4027. #endif
  4028.     WORD nSpaceTop;            // 上端を空けるドット数
  4029.                             //WCE1.01 980305 BYTE->WORD 印刷時は上マージン
  4030.     BBOOL fListbox;            // リストボックスモード?
  4031.         #define TXLB_SIZEATR        2    // 行アトリビュートバイト数(1.00C)
  4032.         // リストボックスモード時の行アトリビュート1バイト目
  4033.             #define TXLB_NORMAL        ' '    // ノーマル
  4034.             #define TXLB_SELECT        '*'    // 選択されたファイル
  4035.         // リストボックスモード時の行アトリビュート2バイト目(1.00C)
  4036.             //    色コードを指定する
  4037.             //    '1'-'5'を指定するとrgbComment-rgbPreprocessor色で表示
  4038.             //    それ以外はテキスト色で表示
  4039.     int nListboxSelect;            //WCE0.94 970921 選択中の数
  4040.     BYTE fListboxSelCur:1;        // カーソル行を選択表示する?
  4041.     BYTE fDispEofFull:1;        // EOF行はlcxmaskを無視して表示?
  4042.     BYTE fScrolled:1;            // 最後のtxDispFlushでスクロールした?
  4043.     BYTE fCustdataAutoFree:1;    // txCloseでcustdataをfreeしNULLにセットする?
  4044.     LPVOID custdata;            // マクロユーザデータ
  4045.     int lcxmask;                // 左からlcxmask文字は表示しない
  4046.                                 // lcxmaskに満たない行は、マスクしない
  4047.     BYTE iLastJumpMark;            // uiMarkで最後にジャンプしたマーク番号
  4048.     DWORD abAdjustGauIncrease;    //WCE0.91 970915 AdjustGapでテキストバッファサイズを拡大するときに
  4049.                                 // このサイズずつ拡大する。0を指定するとデフォルトで拡大する
  4050.     // txMsghdr
  4051.     BYTE fTextcfg:1;        //WZ3.90I 981027 テキスト設定ファイル?
  4052.     BYTE fTextcfgOnConfigRead:1;//WZ3.90I 981106 fTextcfgでconfigRead時?
  4053.     BYTE fMsghdrLiteral:2;    //WZ3.90I 981027 txMsghdrXXXでszHeaderの末尾の':'を省略する。
  4054.     BYTE fMsghdrSetAdd:2;    //WZ3.90N 981202 txMsghdrSetで常に追加する。
  4055.     IBUFF ibuffMsghdrCache;    //WZ3.90I 981027 txMsghdrGet高速化用キャッシュ
  4056.     // wndprocのフック
  4057.     TXWNDHOOK* rootWndtextHook;    //WZ3.90I 981026 
  4058.     TXWNDHOOK* rootWndbaseHook;    //WZ3.90I 981026 
  4059.     LRESULT resultWndtextHook;    //WZ3.90I 981024 標準値は0
  4060.     LRESULT resultWndbaseHook;    //WZ3.90I 981024 標準値は0
  4061.     // walk
  4062.     IFILE curwalkstart;
  4063.     int lywalkstart;
  4064.     FBOOL fwalkselectjump;
  4065.     FBOOL fAutoSaveForce;        // !fFrameでもオートセーブを行う?
  4066.     FBOOL fWalking;                //WZ4.00A 981229 
  4067.     HWND hwndAutoSaveProxy;        // 裏テキストの自動保存のためのもの
  4068.                                 // 代理WM_TIMER_TXAUTOSAVE受け取りhwnd
  4069.                                 // NULLならhwndtextを使用
  4070.     // apfu
  4071.     CBOOL fApfuShiftEnter;        // 自動段落体裁 Shift+Enter中?
  4072.     CBOOL fParaIchCountTabOne;    //WCE1.01 980115 txGetParaIch/txJumpParaIchで連続するTABを一文字として数える?
  4073.     CBOOL fParaIchCountTxfNone;    //WCE1.01 980308 txGetParaIch/txJumpParaIchで文字でないCHAR_TXFを数えない
  4074.     // txf
  4075.     TAGNEST* tagnest;            // root
  4076.     TAGNEST* tagnestNext;        // 文字挿入時に付加するタグ
  4077.     FBOOL fTagnestNextClear;    //WCE1.01 980308 次の文字挿入時に
  4078.                                 // 文字装飾をクリアして文字を挿入する。
  4079.     IFILE adrInsertPre;            //WCE1.01 980308 
  4080.     CBOOL fTxfDirect;            // txRight etcでCHAR_TXFを直接一文字として扱うか?
  4081.                                 // 普段は0にしておくこと
  4082.     FBOOL fGetCharBytes;        // txGetCharBytesモード?
  4083.     IFILE texttop;                //WCE1.01 980228 テキストの先頭IFILE
  4084.     IFILE ifileTmlBody;            //WZ3.90H 980923 TMLの本文先頭IFILE
  4085.                                 // 通常はtexttopと等しい
  4086.                                 // 範囲内印刷時はtexttopを範囲の先頭にセットするので、
  4087.                                 // この場合に、ifileTmlBody <= texttopにセットされる。
  4088.     // 罫線
  4089.     FBOOL fTableKeisen;            // 内部用 罫線表mode?
  4090.     FBOOL fTableProperty;        // 表のプロパティダイアログ表示中
  4091.     // disp
  4092.     FBOOL fDispParse;            // 構文解析による字句の色分け表示を行う?
  4093.     FBOOL fDispColoring;        // 構文解析以外の色分け表示を行う?    //WZ4.00Ab 990202 new
  4094.     // 箱型選択
  4095.     DWORD wtmBoxDisped;
  4096.     FBOOL fBoxDispNeed;
  4097.     // 印刷
  4098.     LPRINT* lp;                    // 印刷情報コンテキスト
  4099.     mchar szlpstyle[CCHLPSTYLE];// 印刷スタイル名
  4100.     int pvRate;                    // 印刷プレビューの表示レート(1-2000)
  4101.                                 //WZ3.90H 980928 %だと1きざみが大きすぎるので‰に変更
  4102.     int pvRate0;                //WZ3.90H 980921 for 元に戻す
  4103.     IFILE adrFlushDispDetail;    //WZ3.90I 981106 
  4104.     BYTE flpPreview:1;            // 印刷プレビュー中?
  4105.     BYTE fDispDetail:1;            //WZ3.90I 981106 詳細表示?これがTRUEなら、flpPreviewもTRUEであること。
  4106.     BYTE fFlushDispDetail:1;    //WZ3.90I 981106
  4107.     // html
  4108.     BBOOL fHtmlDispReduceTag;    //WZ3.90I 981027 HTMLのタグの縮小表示
  4109.     BBOOL fHtmlDispReduceAmp;    //WZ3.90I 981027 HTMLの文字参照の縮小表示
  4110.     BBOOL fHtmlTableTml;        //WZ3.90I 981027 表を解釈中?
  4111.     CBOOL fHtmlTmlConverting;    //WZ3.90O 981203 TML<->HTML変換中?
  4112.     HTMLATR* htmlatr;                //WZ3.90I 981029 
  4113. //##TEXT - TMLファイルの埋め込み設定専用
  4114. //通常ファイルでは使用頻度が低いし、それにしては設定サイズが大きいため。
  4115.     //PWZ2BETA0.3 980514 「名前を付けて保存」の初期値
  4116.     mchar szFilenameSaveAs[CCHWORD];    // 拡張子まで指定した場合はその名前で保存
  4117.                                         // "*.拡張子"の場合はファイル名はそのままで
  4118.     BYTE modeSaveAs;
  4119.         #define MODE_SAVEAS_THROUGH        0        // そのまま
  4120.         #define MODE_SAVEAS_PLAINTEXT    1        // プレーンテキストに変換して保存
  4121.         #define MODE_SAVEAS_LFTEXT        2        // 改行付きテキストに変換して保存
  4122.         #define MODE_SAVEAS_WORD        3        //PWZ2BETA0.5 980614 ワープロ用テキストに変換して保存
  4123.         #define MODE_SAVEAS_LFTEXT_TEMPLATE    99    // for WZ MAIL TEMPLATE
  4124. //##TEXT - 現在のユーザ設定(ファイルに保存されない)
  4125.     mchar szcfg[CCHSTYLENAME];    //WZ3.90I 981028 現在使用している設定の名前
  4126.                                 //WZ3.90I 981028 同じ拡張子で異なる設定を利用可能にした。
  4127.                                 // 空なら、拡張子の設定を使用
  4128.     BBOOL fAppendEof;            // EOFコードを付加するかどうか?
  4129.                                 //WZ3.90J 981110 WZ3.0とは意味が異なる。
  4130.                                 // 0:そのまま
  4131.                                 // 1:付加する
  4132.                                 // 2:EOFを取り除く
  4133.     BYTE nlineHeader;            // ページ数計算に入れないヘッダ行数
  4134.     BBOOL fDispFull;            //WZ3.90J 981109 全画面表示?
  4135. //##TEXT - 拡張子毎の文字列の設定(個別に設定ファイルに保存される)(順序変更可)
  4136. //WZ4.00Da 000206 new
  4137. //すべてALLOCED。NULLの場合あり。
  4138. #if TXCONFIGEXT_ASZ
  4139.     mchar* aszHeadline1;        // (TML埋込)見出し1
  4140.     mchar* aszHeadline2;        // (TML埋込)見出し2
  4141.     mchar* aszHeadline3;        // (TML埋込)見出し3
  4142.     mchar* aszHeadline4;        // (TML埋込)見出し4
  4143.     mchar* aszHeadline5;        // (TML埋込)見出し5
  4144.     mchar* aszHeadline6;        // (TML埋込)見出し6
  4145.     mchar* aszPlt;                // (TML埋込)先割り原稿の設定(WZFUNC_WRITING用)
  4146. #endif    // TXCONFIGEXT_ASZ
  4147. //##TEXT - 拡張子毎の設定(設定ファイルに保存される)(順序変更不可。追加のみ可)
  4148.     int configExtGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  4149.                                 // アライメントが変わることがあるのを防止
  4150. BYTE configExtTop;                // 0:未初期化,1:初期化済み
  4151.     WORD configWidth;            // (TML埋込)折り返し幅
  4152.     int height;                    // (TML埋込)1ページの行数
  4153.     SIGNED_WORD tabsize;        // (TML埋込)タブカラム数
  4154.     BBOOL fSetWidthByWindow;    // (TML埋込)ウィンドウの幅に合わせて、表示カラム数を自動設定する
  4155.     int cyConfigSpace;            // (TML埋込)行間
  4156.                                 //WCE1.01 980307 cySpace -> cyConfigSpace
  4157.     BBOOL fDispUnder;            // アンダーライン表示
  4158.     BBOOL fDispTab;                // TABの表示
  4159.     BBOOL fDispJspace;            // 全角スペースの表示
  4160.     BBOOL fDispLf;                // CR の表示
  4161.     BBOOL fDispEof;                // EOFの表示
  4162.     BBOOL fDispLine;            // 行番号表示
  4163.     BBOOL fLineD;                // 表示行モード(1)/論理行モード(0)
  4164.                                 // 通し番号表示行(2)    //WZ4.00Bl 990913 
  4165.     SIGNED_WORD modeImeAtOpen;    // オープン時のIME制御
  4166.         #define ISF_NONE    0
  4167.         #define ISF_OFF        1
  4168.         #define ISF_ON        2
  4169.         #define ISF_ONKANA    3
  4170.     BBOOL modeFreeCursor;        // フリーカーソル OFF(0),ON(1),VZ(2)
  4171.     BBOOL fTabToSpace;            // [TAB]でスペースコードを入力
  4172.     BBOOL modeAutoIndent;        // オートインデント
  4173.         #define AUTOINDENT_NONE        0    // しない
  4174.         #define AUTOINDENT_EXEC        1    // する
  4175.         #define AUTOINDENT_JSPACE    2    // 全角スペースもする
  4176.     BBOOL fJkinsoku;            // (TML埋込)禁則
  4177.         //2.93 禁則を改良
  4178.         #define KINSOKU_OUT_HANG    1    // 追い出し、句読点ぶら下げ
  4179.         #define KINSOKU_OUT            2    // 追い出し、句読点追い出し
  4180.         #define KINSOKU_IN_HANG        3    // 追い込み、句読点も追い込み
  4181.     SIGNED_BYTE lfHeight;        // (TML埋込)フォントサイズ
  4182.     BBOOL fScrollBarV;            // 縦スクロールバー
  4183.     BYTE widthApf;                // 自動整形標準折り返し幅
  4184.     BYTE fConfigApf;            // 自動整形ON?
  4185.     BYTE indentApf;                // 自動整形インデント単位
  4186.     CHARCONVERT charconvert;    // オートコレクト
  4187.     BBOOL fAfn;                    // ファイル名の自動決定
  4188.     mchar szAfn[CCHSWORD];        // 自動決定の方法
  4189.     BYTE nConfigClm;            // (TML埋込)段数
  4190.                                 //WCE1.01 980216 nClm->nConfigClm
  4191. #if !TXCONFIGEXT_ASZ
  4192.     mchar cszHeadline[CCHWORD];    // (TML埋込)見出し文字列
  4193.                                 // TAB区切りカラム文字列
  4194. #endif
  4195.     BBOOL modeApfu;                // 体裁認識 (PWZ1.0の段落体裁の自動認識と同じ)
  4196.         #define APFU_ON            1
  4197.         #define APFU_ARTICLESUB    2
  4198.     BBOOL fWordlap;                //WCE0.91 970911 (TML埋込)英字禁則
  4199.     BBOOL fDispStatusbar;        //WCE0.91 970911 ステータスバー
  4200.     BYTE fDispHeadlineBold;        //WCE0.91 970912 見出しを太字で表示
  4201.         //WCE1.01 980119
  4202.         // Bold  mask:0x01(COLORING_BOLD)
  4203.         // Under mask:0x02(COLORING_UNDER)
  4204.         // Color mask:0x04(COLORING_COLOR)
  4205.         #define COLORING_NONE                0
  4206.         #define COLORING_BOLD                1
  4207.         #define COLORING_UNDER                2
  4208.         #define COLORING_BOLDUNDER            3
  4209.         #define COLORING_COLOR                4
  4210.         #define COLORING_COLOR_BOLD            5
  4211.         #define COLORING_COLOR_UNDER        6
  4212.         #define COLORING_COLOR_BOLDUNDER    7
  4213.         #define COLORING_ITALIC                8    //WZ4.00Bo 991012 new (LPRINTのみ)
  4214.     mchar lfFaceName[LF_FACESIZE];//WCE0.91 970912 (TML埋込)フォント名の指定
  4215.     BBOOL fMyFont;                //WCE0.91 970912 自分専用のフォントを使用?
  4216.     BBOOL lfBold;                //WCE0.91 970912 太字で表示
  4217.     BBOOL fDispRuler;            //WCE0.91 970912 ルーラー表示
  4218.     BYTE nGageRuler;            //WCE0.91 970912 ルーラーゲージ単位(10 か 8)
  4219.     BBOOL fDispControl;            //WCE0.91 970913 制御コードを表示?(折り返しも対応)
  4220.     BBOOL fSubtitleApf;            //WCE0.91 970914 自動整形小見出有効
  4221.     BBOOL modeAcfu;                //WCE0.92 970918 自動文字体裁 認識
  4222.     BBOOL fOpenReadmode;        //WCE0.94 970921 閲覧モードで開く
  4223.     BBOOL fOutlineSplitWindow;    //WCE1.01 980312 アウトライン浮動しない?
  4224.     BYTE lcxOutlineWindow;        //WCE1.01 980312 アウトラインウィンドウの幅
  4225.     FBOOL fTxf;                    //WCE1.01 971106 TRUE:タグを非表示、FALSE:タグを表示
  4226.     FBOOL fTxfEnable;            //WCE1.01 980113 CHAR_TXFを特別に扱う?
  4227.     BYTE modeKeisen;            //WCE1.01 980116 罫線モード
  4228.     //WCE1.01 980119 headline
  4229.     COLORREF rgbHeadline;                // 見出しの色
  4230.     //WCE1.01 980119 keyword
  4231.     BYTE fDispKeyword;                    // COLORING_xxx
  4232.     wchar wszfilenameKeyword[CCHNAME];    // キーワードファイル名
  4233.     mchar szKeyword[30];                // 即席キーワード指定
  4234.     COLORREF rgbKeyword;                // キーワードの色
  4235.     //WCE1.01 980119 検索文字列の色分け
  4236.     BYTE fDispFind;                // 検索後に検索文字列を色分け?
  4237.     COLORREF rgbFind;            // その色
  4238.     //WCE1.01 980126 
  4239.     BBOOL fWidthInfinity;        // 折り返しなし?
  4240.                                 ////WCE1.01 980126  nlineのカウントなど、もっと最適化できる。
  4241.     BBOOL fApfu2;                // 「タブ体裁」?
  4242.     //WCE1.01 980201 世代管理
  4243.     BBOOL fUnlimitUndoBuff;        // アンドゥバッファサイズを制限しない?
  4244.     WORD kbGeneBuffMax;            // 世代管理保持の最大サイズ(KB)
  4245.     BBOOL fGeneEnable;            // 世代管理を行う?
  4246.     //WCE1.01 980202 色分け
  4247.     BBOOL fDispComment;            // コメントを色分け?
  4248.     COLORREF rgbComment;        // コメントの色
  4249.     BBOOL fDispString;            // 文字列を色分け?
  4250.     COLORREF rgbString;            // 文字列の色
  4251.     BBOOL fDispConst;            // 定数を色分け?
  4252.     COLORREF rgbConst;            // 定数
  4253.     BBOOL fDispPreprocessor;    // プリプロセッサを色分け?
  4254.                                 // 2なら、#if/else/endifも条件で色分け    //WZ4.00Bl 990921 
  4255.     COLORREF rgbPreprocessor;    // プリプロセッサ
  4256.     BBOOL fDispTag;                // タグを色分け?
  4257.     COLORREF rgbTag;            // タグ
  4258.     COLORREF rgbHottext;        // リンク
  4259.     BYTE filekind;                // ファイルの種類
  4260.         #define TEXT_PLAIN        0    // プレーンテキスト
  4261.         #define TEXT_APFU        1    // 体裁認識テキスト
  4262.         #define TEXT_DOCUMENT    2    // タブ体裁テキスト
  4263.         #define TEXT_WZ            3    // TML文書
  4264.         #define TEXT_HTML        4    // HTML文書
  4265.         #define TEXT_XML        5    // XML文書
  4266.         #define TEXT_TEXT        6    // 任意のテキスト
  4267.         #define TEXT_PROGRAM    7    // プログラムファイル(ワーク)
  4268.         //
  4269.         #define TEXT_C            100    // Cプログラム
  4270.         #define TEXT_PASCAL        101    // pascalプログラム
  4271.         #define TEXT_FORTRAN    102    // fortranプログラム
  4272.         #define TEXT_SCRIPT        103    // スクリプトプログラム
  4273.         #define TEXT_ASM        104    // アセンブラプログラム
  4274.         #define TEXT_BASIC        105    // BASICプログラム
  4275.     BBOOL fDispURL;                // URLの色分け?
  4276.     BBOOL fApfArticleSpace;        //WCE1.01 980206 自動整形で、箇条書きの後に余白を空ける?
  4277.                                 // TXF、体裁認識の箇条書きの体裁と合わせるために付けた
  4278.     mchar szEditor[CCHNAME];    //WCE1.01 980209 エディタ名
  4279.     BBOOL fNoDispHeadlineString;//WCE1.01 980212 見出しを表示しない?
  4280.     BBOOL fApfuTab;                //WCE1.01 980217 段落先頭のタブを字下げとみなす?
  4281.     BBOOL fHeadlineStringStd;    //PWZ2BETA0.3 980509 標準の見出し文字列を使用?
  4282.     BBOOL fDispQuote;            //PWZ2BETA0.3A 980526 引用を色分け?
  4283.     COLORREF rgbQuote;            //PWZ2BETA0.3A 980526 引用の色
  4284.     BBOOL fApfJspaceIndentTop;    //PWZ2BETA0.3A 980526 自動整形で、全角空白は行頭の字下げとみなす?
  4285.     BBOOL fApfScenario;            //PWZ2BETA0.5 980617 シナリオ整形を行う?
  4286.     BYTE lcxScenarioSerifuIndent;//PWZ2BETA0.5 980618 せりふの2行目のインデント数
  4287.                                 // 0を指定すると標準値(2)になります。
  4288.     //WZ3.90E 980804 
  4289.     BYTE modeWs;                // ウィンドウサイズモード
  4290.         #define WS_PAGE            0    // ページサイズで指定
  4291.         #define WS_MAX            1    // 最大化
  4292.         #define WS_DESTEXT        2    // 中身を指定
  4293.     WORD lcxWindowDefault;        // ウィンドウの幅
  4294.     WORD lcyWindowDefault;        // 高さ
  4295.     FBOOL fVertical;            //WZ3.90I 981013 (TML埋込)縦書き?
  4296.     BBOOL fVH;                    //WZ3.90I 981015 縦中横?
  4297.     BBOOL fPageTurn;            //WZ3.90I 981015 ページめくりモード?
  4298.     BBOOL fDispToolbar;            // ツールバー表示        実効値はtxGetDispToolbar()
  4299.     BBOOL fDispFunctionKey;        //WZ3.90I 981107 ファンクションキーの表示
  4300.     BBOOL fDispTitlebar;        //WZ3.90J 981109 タイトルバーを表示?
  4301.     BBOOL fDispMenubar;            //WZ3.90J 981109 メニューバーを表示?
  4302. #if !WINDOWSCE
  4303.     // 外部ヘルプ
  4304.     #define HELP_N    2
  4305.     mchar tszhelp[HELP_N][CCHWORD];
  4306. #endif
  4307.     BYTE modeConvertSpaceAtSave;    //WZ3.90J 981109 保存時にタブをスペースに変換
  4308.                         // 0:変換しない
  4309.                         // 1:tab->spc
  4310.                         // 2:spc->tab
  4311.     BYTE modeConvertKanaAtSave;        //WZ3.90J 981109 保存時のカタカナの変換
  4312.                         // 0:変換しない
  4313.                         // 1:半角->全角
  4314.                         // 2:全角->半角
  4315.     BBOOL fDeleteTailSpaceAtSave;    //WZ3.90J 981109 保存時に行末の空白を除去
  4316.     BBOOL fConfigBinedit;        //WZ3.90J 981109 バイナリ編集を開始
  4317.     BBOOL fAutoFormat;            //WZ3.90J 981109 オートフォーマット
  4318.     BYTE cxSpace;                //WZ3.90J 981109 字間
  4319.     BBOOL fDispRightMargin;        //WZ3.90J 981109 右マージンの表示
  4320.     BBOOL fApfuBeamtab;            //WZ3.90K 981114 段落先頭以外のタブを桁揃えする?
  4321.     BBOOL fScrollBarH;            // 横スクロールバー
  4322.                                 //WZ4.00A 981227 横スクロールバーの設定が保存されてなかった。txcマクロの再コンパイル必要。
  4323.         #define SCROLLBAR_OFF    0
  4324.         #define SCROLLBAR_ON    1
  4325.         #define SCROLLBAR_AUTO    2    //2.99D 970329 2:自動を追加
  4326.     BBOOL fOutlineDispHeadstr;    //WZ4.00Bj 990824 
  4327. #if !WINDOWSCE
  4328.     mchar szlpstyleStd[CCHLPSTYLE];    //WZ4.00Bj 990830 標準の印刷スタイル名
  4329.     mchar szToolbar[CCHNAME];        //WZ4.00Bl 990909 ツールバーの名前
  4330.     mchar szMenu[CCHNAME];            //WZ4.00Bl 990909 メニューバー
  4331.     mchar szMenuMouseR[CCHNAME];    //WZ4.00Bl 990909 マウス右クリックメニュー
  4332.     mchar szMenuMouseRClip[CCHNAME];//WZ4.00Bl 990909 選択時のマウス右クリックメニュー
  4333. #endif
  4334.     SEARCHMODE searchmodeInit;    //WZ4.00Bl 990908 検索モード
  4335.     BYTE lcxLinenum;            //WZ4.00Bl 990916 行番号の表示桁数(0=標準)
  4336. #if WINDOWSCE
  4337.     mchar cszCondition[CCHSWORD];    //WZ4.00Bl 990922 #if色分け条件 ,で区切って複数指定可
  4338. #else
  4339.     mchar cszCondition[CCHWORD];    //WZ4.00Bl 990922 #if色分け条件 ,で区切って複数指定可
  4340. #endif
  4341.     BBOOL fApfuBeamtabInfinity;    //WZ4.00Bl 990923 桁揃えタブの行は折り返ししない?
  4342.     BBOOL fPlt;                    //WZ4.00Da 000206 (TML埋込)先割り原稿(WZFUNC_WRITING用)(評価中)
  4343. BYTE configExtEnd;
  4344. //##TEXT - 共通設定(設定ファイルに保存される)(順序変更不可。追加のみ可)
  4345.     int configShareGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  4346.                                 // アライメントが変わることがあるのを防止
  4347. BYTE configShareTop;            // 0:未初期化,1:初期化済み
  4348.     BBOOL fUndoContinue;        // 連続アンドゥ
  4349.                                 // カーソルを移動しないで行った
  4350.                                 // 挿入・削除・BSを一回の操作で一括アンドゥ
  4351.     BBOOL fJumpCursorCenter;    // ジャンプ後カーソルを画面の中央へ
  4352.     BYTE modeDispSearch;        // WINDOWSCE
  4353.         #define DISPSEARCH_STANDARD    0    // 標準(modeEditorによって異なる)
  4354.         #define DISPSEARCH_NORMAL    1    // 通常表示
  4355.         #define DISPSEARCH_REVERSE    2    // 反転表示
  4356.         #define DISPSEARCH_SELECT    3    // 選択
  4357.     BBOOL fSpaceLeft;            // 左端を空ける
  4358.     BYTE modeEditor;            // キー配列
  4359.         #define ME_WIN        0
  4360.         #define ME_VZ        1
  4361.         #define ME_MI        2
  4362.         #define ME_EMACS    3    //PWZ2BETA0.5 980617 new
  4363.     SIGNED_WORD nCursorFaceInsert;    // カーソル形状 (挿入)
  4364.     SIGNED_WORD nCursorFaceWrite;    // カーソル形状 (上書)
  4365.         #define CURSORFACE_STANDARD    0    // 標準(modeEditorによって異なる)
  4366.                                         // WINDOWSCE
  4367.         #define CURSORFACE_WINDOWS    1    // Windows標準
  4368.         #define CURSORFACE_FULL        2    // フル
  4369.         #define CURSORFACE_HALF        3    // 縦半分
  4370.         #define CURSORFACE_HALFHALF    4    // 縦1/4
  4371.         #define CURSORFACE_UNDERBAR    5    // アンダーバー
  4372.     BBOOL fJumpTxPasteEnd;        // VZ - ブロックペースト後カーソル位置更新
  4373.     BBOOL fSearchTitle;            // VZ - タイトルサーチモード有効
  4374.     WORD kbUndoBuffMax;            // アンドゥバッファの最大サイズ(KB)
  4375.     BYTE modeImeComposition;    // 変換中文字列の表示方法
  4376.         #define IMECOMP_WINDOW        0    // 変換ウィンドウで表示
  4377.         #define IMECOMP_CURSOR        1    // カーソル位置に表示
  4378.         #define IMECOMP_CURSORIME    2    // IMEの描画でカーソル位置に表示    //WZ4.00Aa 990110 new
  4379.         #define IMECOMP_INLINE        3    // インラインに表示(未完成)    //WZ4.00Aa 990110 2->3
  4380.     COLORREF rgbText;            // 通常のテキスト
  4381.     COLORREF rgbBack;            // 背景
  4382.     COLORREF rgbBlockText;        // ブロック内の文字色
  4383.     COLORREF rgbBlock;            // ブロック
  4384.     COLORREF rgbNline;            // 行番号
  4385.     COLORREF rgbUnderline;        // アンダーライン
  4386.     COLORREF rgbControl;        // 制御文字の色
  4387.     COLORREF rgbURL;            // URLの色
  4388.     BBOOL fUseMenuKey;            // @<英字キー>,@[特殊キー] 入力可
  4389.     BYTE modeTagJump;            // タグジャンプオプション
  4390.         #define TAGJUMP_STD    0    // 標準
  4391.         #define TAGJUMP_VZ    1    // VZのタグジャンプも認識
  4392.     // 自動保存
  4393.     BBOOL fAutoSave;            // オートセーブを行う?
  4394.     BYTE autosaveMode;            //WCE 970902 WZ3.0とは実際値が違う
  4395.         #define AUTOSAVE_BACKUP            0
  4396.         #define AUTOSAVE_OVERWRITE        1
  4397.     BYTE autosaveAtQuit;
  4398.         #define AUTOSAVE_QUIT_NONE        0
  4399.         #define AUTOSAVE_QUIT_DELETE    1
  4400.         #define AUTOSAVE_QUIT_BACKUP    2
  4401.     BYTE autosaveAtOpen;        //WCE 970902 WZ3.0とは実際値が違う
  4402.         #define AUTOSAVE_OPEN_NONE            0
  4403.         #define AUTOSAVE_OPEN_MESSAGE        1
  4404.         #define AUTOSAVE_OPEN_UIATTENTION    2
  4405.         #define AUTOSAVE_OPEN_UIBACKUP        3
  4406.         #define AUTOSAVE_OPEN_UIREPLACE        4
  4407.         #define AUTOSAVE_OPEN_REPLACE        5
  4408.         #define AUTOSAVE_OPEN_UIBACKUPFORCE    6    //WZ3.90J 981108 new
  4409.     WORD nAutoSaveCmd;            // 編集コマンド数
  4410.     WORD secAutoSaveWait;        // 待ち時間
  4411.     //
  4412.     BBOOL fCursorMoveBySB;        //WCE0.92 970918 スクロールバーでカーソル移動?
  4413.     BYTE modeKeyClip;            // SHIFT+矢印での選択モード
  4414.         #define MC_CUA    0        // Windows準拠
  4415.         #define MC_WZ    1        // 開始方向感応
  4416.         #define MC_VZ    2        // 方向感応(VZライク)
  4417.     BYTE modeMouseClip;            // マウスでの選択モード
  4418.     BBOOL modeUseTextstack;        //WCE0.93 970920 テキストスタックを使うか?
  4419.         #define TEXTSTACK_OFF        0
  4420.         #define TEXTSTACK_ON        1
  4421.         #define TEXTSTACK_ON_AT_VZ    2
  4422.     SIGNED_BYTE nDispFileHist;    //WCE1.01 980203 メニューヒストリ表示数(0..70)
  4423.     BBOOL fNoClmMove;            //WCE1.01 980312 ←→で段の移動をしない
  4424.     BYTE modeRe;                //WZ3.90H 980908 正規表現の動作モード
  4425.         #define MODERE_WZ        0
  4426.         #define MODERE_VWXW        1
  4427.         #define MODERE_VWXWEX    2
  4428.     BBOOL fDispPathFull;        //WZ3.90I 981103 ファイル名をフルパスで表示?
  4429.     BBOOL fClipboardNoSelect;    //WZ3.90I 981103 選択されてないときもコピー、カットする?
  4430.     BBOOL fHalfPage;            //WZ3.90I 981103 PAGEUP/PAGEDOWN半画面?
  4431.     BBOOL fSetLocateByMouseFocus; //WZ3.90I 981103 アクティブ時に、クリック位置に移動する
  4432.     BBOOL fOutlineSplitLeft;    //WZ3.90I 981103 アウトラインを左側に表示?
  4433.     BBOOL fDispCharcode;        //WZ3.90J 981107 文字コードの表示?
  4434. #if !WINDOWSCE
  4435.     //WZ3.90J 981108 バックアップ
  4436.     BBOOL fBackup;                // バックアップファイルの作成
  4437.     mchar szBackup[CCHWORD];    // バックアップ作成フォルダ
  4438. #endif
  4439.     BBOOL fCursorNoLf;            //WZ3.90J 981109 カーソル横移動で行をまたがらない
  4440.     BBOOL fTxkeyVertical;        //WZ3.90J 981109 縦書き時にtxkeyUp,Down,Left,Rightの縦横を入れ替え
  4441.     BBOOL modeMouseHide;        //WZ3.90J 981109 マウスカーソルを消すかどうか?
  4442.         #define MOUSEHIDE_CHAR    0    // 文字入力で消す
  4443.         #define MOUSEHIDE_NONE    1    // 消さない
  4444.         #define MOUSEHIDE_KEY    2    // キー入力で消す
  4445.     BBOOL modeMouseFace;        //WZ3.90J 981109 マウスカーソルの形状 1:arrow,0:Ibeam
  4446.     BYTE nSpaceTopH;            //WZ3.90J 981109 横書き時、上端を空けるドット数
  4447.     BYTE nSpaceTopV;            //WZ3.90J 981109 縦書き時、右端と左端を空けるドット数
  4448.     BBOOL fConfirmNewFile;        //WZ3.90J 981109 新規ファイルの確認
  4449.     //WZ3.90J 981110 スクロールの加速
  4450.     BYTE nKeyScrollAccStart;    // 加速開始行数
  4451.     BYTE nKeyScrollAcc;            // 加速中の一度にスクロールする行数
  4452.     BYTE nCursorScrollH;        // 左右のスクロールを何文字毎に行うか
  4453.                                 //WZ3.90J 981110 設定ファイルに保存するようにした
  4454.     //WZ3.90J 981110 自動スクロール
  4455.     BYTE iScrollSpeed;            // スムーススクロール速度 (0..9)
  4456.     BBOOL fVzEs;                // txJumpScreenTop,txJumpScreenEnd 2回でスムーススクロール
  4457.     WORD mbCheckFilesize;        //WZ3.90K 981112 これ以上のファイルを開くときは確認ダイアログを出す
  4458. #if !WINDOWSCE
  4459.     //WZ3.90O 981202 IME変換文字の色を指定できるようにした。テキストと背景色が同じなら規定の色を使う。
  4460.     COLORREF rgbImeText;        // IME変換文字のテキスト
  4461.     COLORREF rgbImeBack;        // IME変換文字の背景。
  4462.     COLORREF rgbImeHiText;        // 注目中のIME変換文字のテキスト
  4463.     COLORREF rgbImeHiBack;        // 注目中のIME変換文字の背景
  4464. #endif
  4465.     BBOOL fClipboardNoDD;        //WZ3.90O 981204 D&Dでカットアンドペーストしない?
  4466. #if !WINDOWSCE
  4467.     BBOOL fNoSaveWindowPos;        // ウィンドウ位置をセーブしない    //WZ4.00Ab 990203 new
  4468.     BBOOL fNoSaveEditContext;    // カーソル位置をセーブしない    //WZ4.00Ab 990203 new
  4469.     BBOOL fOutlineSplitExtend;    //WZ4.00Bj 990824 分割アウトラインを表示しても本文ウィンドウサイズが変化しない設定を追加
  4470. #endif
  4471.     BBOOL fOutlineNoButton;        //WZ4.00Bj 990824 アウトラインにボタンを表示するかどうか設定できるようにした。
  4472.     BBOOL fNoDispSmlower;        //WZ4.00Bl 990913 
  4473.     BBOOL fNoAutoSaveFD;        //WZ4.00Bl 990914 
  4474.     BBOOL fOutlineJumpLyTop;    //WZ4.00Bj 990824 アウトラインにボタンを表示するかどうか設定できるようにした。
  4475.     BBOOL fScrollBarProp;        //WZ4.00Bl 990920 プロポーショナルスクロールバー?
  4476.     BBOOL fOutlineTextfont;        //WZ4.00Bl 990924 テキストのフォントで表示?
  4477. BYTE configShareEnd;
  4478. };
  4479.  
  4480. #define SIZE_TXCONFIGEXT        (&text1->configExtEnd - &text1->configExtTop)
  4481. #define SIZE_TXCONFIGSHARE        (&text1->configShareEnd - &text1->configShareTop)
  4482. #define SIZE_CONFIGSHARE        (&sh->configEnd - &sh->configTop)
  4483. #define SIZE_PERMANENT            (&sh->permanentEnd - &sh->permanentTop)
  4484.  
  4485. IBUFF _ibuffparaPreColoring;    //WZ4.00Bl 990921 
  4486.  
  4487. //##STRBLK/ヒストリ
  4488.  
  4489. // 標準ヒストリ
  4490. typedef int HHIST;
  4491. #define HIST_NULL        0            // 内部ワーク用
  4492.                                     // WINDOWSCE:使用不可
  4493. #define HIST_FILE        ((HHIST)1)    // ファイル名
  4494. #define HIST_SEARCH        ((HHIST)2)    // 検索文字列
  4495. #define HIST_PATH        ((HHIST)3)    // パス文字列
  4496. #define HIST_STR        ((HHIST)4)    // 最近入力した文字列
  4497. #define HIST_COPY        ((HHIST)5)    // コピーした文字列
  4498. #define HIST_IME        ((HHIST)6)    // IMEに入力した文字列
  4499. #define HIST_DELSTR        ((HHIST)7)    // 削除した文字列
  4500. #define HIST_JUMP        ((HHIST)8)    // カーソル位置    //WZ3.90H 980928 new
  4501. #define MAXHIST                    9    // ハンドルの個数
  4502. #define DEFAULT_SIZEHIST    512        // デフォルト ヒストリサイズ
  4503. #if WINDOWSCE
  4504.     #define SIZEHIST_JUMP        1024
  4505.     #define SIZEHIST_UNDELETE    1024    //XZ0.20 990825 
  4506. #else
  4507.     #define SIZEHIST_JUMP        4096
  4508.     #define SIZEHIST_UNDELETE    8192    //XZ0.20 990825 
  4509. #endif
  4510.  
  4511. // share構造体に置くためだけに、データ構造を公開する。
  4512. // ユーザーは、メンバを参照してはいけない。
  4513. typedef struct tagSTRBLK {
  4514.     LPBYTE buff;
  4515.     LPBYTE ptail;
  4516.     WORD sizebuff;        // buffのサイズ
  4517.     WORD nstr;            // 文字列数
  4518.     WORD unit;            // 拡大単位
  4519.     FBOOL fShared;
  4520.     FBOOL fCustData;
  4521.     // WORD bit field
  4522.     WORD fSenseCase:1;
  4523.     WORD fstatic:1;        // for internal
  4524.     WORD fAlloc:1;        //2.90 buff is allced by strblk
  4525.     WORD fAllocEx:1;
  4526.     WORD fReverse:1;    // hist用にiを反転させる
  4527.     WORD reserved:11;
  4528.     // WORD bit field end
  4529.     LPBYTE pfound;
  4530. } STRBLK,*HSTRBLK;
  4531.  
  4532. HSTRBLK TXAPI_(409) sbNewStatic(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4533. HSTRBLK TXAPI_(410) sbNewStaticShare(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4534. HSTRBLK TXAPI_(411) sbNew(LPBYTE buff,WORD sizebuff);
  4535. HSTRBLK TXAPI_(412) sbNewAlloc(WORD sizebuff);
  4536. HSTRBLK TXAPI_(413) sbNewAllocEx(WORD sizebuff);
  4537. void TXAPI_(414) sbSetBuff(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4538. LPVOID TXAPI_(415) sbGetBuff(HSTRBLK sb);
  4539. BOOL TXAPI_(416) sbReverse(HSTRBLK sb);
  4540. void TXAPI_(417) sbSetSenseCase(HSTRBLK sb,BOOL fSet);
  4541. BOOL TXAPI_(418) sbGetSenseCase(HSTRBLK sb);
  4542. void TXAPI_(419) sbSetCustData(HSTRBLK sb,BOOL fSet);
  4543. BOOL TXAPI_(420) sbGetCustData(HSTRBLK sb);
  4544. void TXAPI_(421) sbSetReverse(HSTRBLK sb,BOOL fSet);
  4545. void TXAPI_(422) sbDelAll(HSTRBLK sb);
  4546. BOOL TXAPI_(423) sbObjectLoadMem(HSTRBLK sb,LPVOID p,int len);
  4547. int TXAPI_(424) sbObjectGetSize(HSTRBLK sb);
  4548. BOOL TXAPI_(425) sbObjectSave(HSTRBLK sb,HANDLE hf);
  4549. BOOL TXAPI_(426) sbObjectSaveMem(HSTRBLK sb,LPVOID p);
  4550. mchar* TXAPI_(427) sbAdd(HSTRBLK sb,mchar *szstr);
  4551. mchar* TXAPI_(248) sbAddW(HSTRBLK sb,wchar* szstr);
  4552. int TXAPI_(428) sbiPreSearch(HSTRBLK sb,mchar *szstr);
  4553. int TXAPI_(429) sbiSearch(HSTRBLK sb,mchar *szstr);
  4554. BOOL TXAPI_(430) sbSearch(HSTRBLK sb,mchar *szstr);
  4555. int TXAPI sbiSearchLen(HSTRBLK sb,mchar* szstr,int lch);
  4556. BOOL TXAPI_(431) sbDel(HSTRBLK sb,mchar *szstr);
  4557. mchar* TXAPI_(432) sbAddHist(HSTRBLK sb,mchar *szstr);
  4558. mchar* TXAPI_(433) sbInsert(HSTRBLK sb,int i,mchar* szstr);
  4559. mchar* TXAPI_(434) sbAddHistW(HSTRBLK sb,wchar* szstr);
  4560. mchar* TXAPI_(435) histAdd(HHIST hist,mchar* szstr);
  4561. mchar* TXAPI_(436) histAddW(HHIST hist,wchar* szstr);
  4562. int TXAPI_(437) sbGetCount(HSTRBLK sb);
  4563. int TXAPI_(438) sbReverseI(HSTRBLK sb,int i);
  4564. mchar* TXAPI_(439) sbRead(HSTRBLK sb,int istr);
  4565. #define sbReadHist(sb,i)    sbRead(sb,sbGetCount(sb) - (i) - 1)
  4566. mchar* TXAPI sbReadLast(HSTRBLK sb);
  4567. DWORD TXAPI_(440) sbReadCustdata(HSTRBLK sb,int istr);
  4568. BOOL TXAPI_(441) sbWriteCustdata(HSTRBLK sb,int istr,DWORD CustData);
  4569. BOOL TXAPI_(442) sbDelI(HSTRBLK sb,int i);
  4570. mchar* TXAPI_(443) sbRead2(HSTRBLK sb,int istr,WORD* lchstr);
  4571. int TXAPI_(444) sbiSearchPrev(HSTRBLK sb,mchar *szstr,int istr);
  4572. int TXAPI_(445) sbiSearchNext(HSTRBLK sb,mchar *szstr,int istr);
  4573. BOOL TXAPI_(446) sbDelete(HSTRBLK sb);
  4574. HHIST TXAPI_(447) sbToHist(HSTRBLK sb);
  4575. HSTRBLK TXAPI_(448) sbFromHist(HHIST hist);
  4576. HSTRBLK TXAPI_(449) sbSetup(HSTRBLK sb,mchar** tszItem,DWORD* tIdItem);
  4577. HSTRBLK TXAPI_(450) sbSetupInteger(HSTRBLK sb,int* tItem,int nItem);
  4578. int TXAPI_(519) ComboBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4579. int TXAPI_(520) ComboBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4580. int TXAPI_(521) ComboBox_SetHist(HWND hctrl,HHIST hist);
  4581. int TXAPI_(522) ComboBox_SetHistSearch(HWND hctrl);
  4582. int TXAPI_(523) ListBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4583. int TXAPI_(524) ListBox_SetStrblkFirstclm(HWND hctrl,HSTRBLK sb);
  4584. int TXAPI_(525) ListBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4585. int TXAPI_(526) ListBox_SetStrblkHistFirstclm(HWND hctrl,HSTRBLK sb);
  4586. void TXAPI sbReduce(HSTRBLK sb);
  4587. void stdlibInit(void);
  4588. HSTRBLK sbSetupDrive(void);
  4589. HSTRBLK sbSetupInttable(HSTRBLK sb,int* table);
  4590. HSTRBLK sbSetupLfHeight(HSTRBLK sb);
  4591. HSTRBLK sbSetupWeight(HSTRBLK sb);
  4592.  
  4593. //ユーザヒストリ
  4594. HSTRBLK TXAPI_(278) historyOpen(mchar* szName,int cbHistBuff);
  4595. void TXAPI_(279) historyClose(mchar* szName,HSTRBLK sb);
  4596. void historyDelete(HSTRBLK sb);
  4597.  
  4598. //##SHARE
  4599. // このメンバにはポインタは配置できない。
  4600. // ポインタの指すメモリがプロセス毎に異なるため。
  4601.  
  4602. #define MAXOPEN            100        // 最大プロセス数
  4603. #define MAXOPENAP        20        // 最大(Filer,Grep,...)数
  4604. typedef struct {
  4605.     HWND hwnd;                // hwndbase
  4606.     BYTE fCloseEvery:1;        // CloseEvery実行済み?    //PWZ2BETA0.3 980508 FBOOL->bitfield
  4607.     BYTE fMailEditor:1;        //PWZ2BETA0.3 980508 WZ MAIL EDITOR?
  4608.     BYTE fSearched:1;        //WZ4.00Bl 990916 SEARCH_ALLTEXT済?
  4609. } WZPROCESS;
  4610.  
  4611. #if WINDOWSCE
  4612.     #define MAXPROFILE    20
  4613. #else
  4614.     // Win95では、速度より便利さを求める。沢山覚えてくれていたほうが便利。
  4615.     #define MAXPROFILE    100
  4616. #endif
  4617. typedef struct {
  4618.     WORD lchFilename;                // パス名の長さ
  4619.                                     // 0なら無効レコード
  4620.     wchar wszfilename[CCHPATHNAME];    // パス名
  4621.     // window pos
  4622.     SIGNED_WORD window_left;
  4623.     SIGNED_WORD window_top;
  4624.     SIGNED_WORD window_right;
  4625.     SIGNED_WORD window_bottom;
  4626.     // current position
  4627.     NPARA npara;                    // 行番号
  4628.     WORD ich;                        // 段落先頭からのバイト数
  4629.     BYTE ly;                        // カーソルy座標
  4630.     IFILE address;                    // カーソル位置
  4631.     //
  4632.     WORD editmode:2;                // editmode
  4633.     WORD dispstylemode:2;            // 表示スタイル
  4634.     WORD fOutline:1;                // アウトラインウィンドウ
  4635.     WORD fMaximized:1;                //WZ4.00Ad 990211 最大化で閉じられた
  4636.     WORD freserved:10;
  4637.     IFILE mark[MAXMARK];            // マーク位置
  4638.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.92 970918 最近参照した位置
  4639.     BYTE iAdrRefer;                    // tAdrRefer参照ポインタ
  4640.     mchar szlpstyle[CCHLPSTYLE];    //WCE1.01 980211 印刷スタイル名
  4641.     RECT rectTempWindow;            //WZ3.90H 980915 一時ウィンドウの位置
  4642.     WORD pvRate;                    //WZ3.90H 980921 印刷プレビューの倍率
  4643.     mchar szcfg[CCHSTYLENAME];        //WZ3.90I 981028 設定名
  4644.     BYTE rateOutline;                //WZ4.00Bj 990824 アウトラインの画面比率
  4645.     IFILE adrLastEdit;                //WZ4.00Bj 990824 最後に編集した位置
  4646. } PROFILE;
  4647.  
  4648. #define MAX_KEYMACRO        5
  4649. #define SIZE_KEYMACROBUFF    1024
  4650. typedef struct {
  4651.     mchar szname[CCHNAME];            // 名前
  4652.     WORD len;                        // buff内のデータの長さ
  4653.     BYTE buff[SIZE_KEYMACROBUFF];    // buff
  4654. } KEYMACRO;
  4655.  
  4656. #define DIRECTORYATR_N    3
  4657. typedef struct {
  4658.     mchar cvszDirectory[CCHPATHNAME];    // パス列
  4659.     BYTE kc;                            // 漢字コード
  4660.     BYTE cr;                            // 改行コード
  4661. } DIRECTORYATR;
  4662.  
  4663. typedef struct tagSHARE {
  4664. // 基本情報
  4665.     int nOpen;                        // 起動中の表PWZ Editorウィンドウ数
  4666.                                     // PWZアプリケーション(Filer,Grep,etc)は除く
  4667.     WZPROCESS tWzprocess[MAXOPEN];    //1.99C 起動中の表PWZ Editorウィンドウのモード
  4668.                                     // 起動された順序で入っている
  4669.                                     // 有効な要素は、[0]から[nOpen-1]まで
  4670.                                     // WZアプリケーション(Filer,Grep,etc)は除く
  4671.     int nOpenAp;                    // 起動中のWZアプリケーション(Filer,Grep,etc)
  4672.                                     // の数
  4673.     HWND tOpenAp[MAXOPENAP];        // //WZ4.00Bl 990912 起動中のWZアプリケーションのhwnd
  4674.                                     // 有効な要素は、[0]から[nOpenAp-1]まで
  4675.     TX textConfig;                    // 設定データを保持するtext
  4676.                                     // shared text
  4677.     BYTE reservedSC[4];                // 4バイトは確保しておくこと!
  4678.     WORD sizehist[MAXHIST];            // ヒストリバッファのサイズを指定(デフォルト:512)
  4679.     STRBLK hist[MAXHIST];            // ヒストリ
  4680.                                     // 複数のインスタンスで共有するので、
  4681.                                     // ヒストリ用のHSTRBLKの実体は、shareで定義する。
  4682.                                     // shareで定義しないと、ヒストリ用のHSTRBLKは
  4683.                                     // インスタンス毎に持たれてしまい、異常動作する
  4684.     BYTE buffhist[9216+SIZEHIST_JUMP+SIZEHIST_UNDELETE];// データバッファ
  4685.     PROFILE tProfile[MAXPROFILE];    // プロファイル
  4686.                                     // 最近アクセスされたデータ順
  4687.     int nProfile;                    // 現在のプロファイル数
  4688.     KEYMACRO tKeymacro[MAX_KEYMACRO];// キーボードマクロ
  4689. //##SHARE - 現在の状態
  4690.     FBOOL fMemoAdding;                // メモに追加中?
  4691.     HWND hwndMemo;                    // メモのhwndbase
  4692.     mchar szMemoAddCaption[CCHWORD];// 次にメモに追加するキャプション
  4693.                                     // NULLならデフォルト("クリップボード")
  4694.     HWND hwndFiler;                    // FILER
  4695.     HWND hwndGrep;                    // GREP
  4696.     HWND hwndMailer;                // MAIL
  4697.     HWND hwndTerm;                    // TREM
  4698.     HWND hwndIcon;                    // WZ Iconオープン中?
  4699.     HWND hwndHelp;                    // WZ Helpオープン中?
  4700.     FBOOL fMacroRec;                // KEYMACRO記録中
  4701.     FBOOL fMacroPlay;                // 再生中
  4702.     LPBYTE pMacroCur;                // 記録/再生ポインタ
  4703.     LPBYTE pMacroEnd;                // 記録/再生終了位置
  4704.     LPBYTE pMacroStr;                // 前回のコマンドがIDM_OVERWRITESTR,IDM_INSERTSTR
  4705.                                     // なら、その位置
  4706.     int fClip;                        // WZがクリップボードにペーストしたテキストデータ
  4707.                                     // の範囲選択モードを保持
  4708.     FBOOL fClipTxfEnable;            //WZ3.90I 981105 クリップボードにコピーしたデータにTXFタグが入っている可能性がある?
  4709.     FBOOL fStatprintfToMailer;        //PWZ2BETA0.3 980525 statprintfをhwndMailerに出力?
  4710.     #if !WINDOWSCE
  4711.     BYTE modeSplit;                    //WZ3.90H 980913 現在のウィンドウ分割
  4712.                                     // 画面分割モード('U'/'C'/'V'/'H'),初期値0
  4713.     #endif
  4714.     BYTE pagingmode;                // ページングモード('S','C','P',' ')
  4715.                                     //WZ3.90H 980927 ページングモードは以前textにあったが、全テキストで共有するため(VZではこうなっている)にSHAREに移した
  4716.     UINT idmRegisterShare;            //WZ3.90I 981102 for idmRegisterShareで登録したIDMは全WZで共通。
  4717.     FBOOL fDragDroping;                //WZ3.90I 981104 D&D中?
  4718.     int nDirAtr;                    //WZ3.90J 981110 DIRECTORYATRの数
  4719.     DIRECTORYATR tDirAtr[DIRECTORYATR_N];    //WZ3.90J 981110 フォルダ毎の漢字コード、改行コード指定。"folder.cfg"からロードするが、書き込みはしない。
  4720.     BYTE fSpeak:1;                //WZ3.90L 981117 音声化?
  4721.     BYTE fEndSessioned:1;        //WZ4.00Ac 990205 new
  4722.     BYTE fTxcCompileError:1;    //WZ4.00Ca 991204 最後のmacroGetTxpcode/macroExecでコンパイルエラーになったかどうか?
  4723.     BYTE fTxceventPrmsave:1;    //WZ4.00Db 000215 WM_TXCEVENT:TXCEVENT_PRMSAVE処理中?
  4724.     SEARCH_PACKET search;        //WZ4.00Aa 990108 現在の検索・置換文字列。高速オープン以外でも検索文字列を共有できるようにした。
  4725.     mchar szModule[CCHWORD];    //WZ4.00Db 000215 TXC内部用
  4726. // 現在のネットワークの状態
  4727.     BYTE env_network;            // ネットワーク?
  4728.     WORD fSpecUserName:1;        // ユーザ名が指定された?
  4729.     WORD fReservedNet:15;        //
  4730.     mchar szUserName[30];        // 現在のユーザ名
  4731.                                 // szUserName[0] != 0なら、ユーザ毎に設定保存されます。
  4732.                                 // 次のファイルがユーザ毎に、wzディレクトリの
  4733.                                 // ユーザ名サブディレクトリの下に作られます
  4734.                                 //  wz.key,wz.mnu,wz.bar
  4735.                                 //  wzcfg.cfg,wzprint.cfg
  4736.                                 // 以上のファイルがユーザ名サブディレクトリに存在しない時は
  4737.                                 // ルートのファイルがコピーされて使用されます。
  4738. //    ユーザ設定
  4739.     BYTE configTextShare[256];        // text->configShareの内容
  4740.                                     // ([0] == TRUEなら初期化済み)
  4741.     #if WZFUNC_TEXTCFGBIN
  4742.     BBOOL fConfigChanged;            //WZ3.90N 981201 設定が変更され、まだテキスト設定ファイルには保存されていない。WZFUNC_TEXTCFGBIN用
  4743. //    mchar szConfigChanged[CCHWORD];    //WZ3.90N 981202 fConfigChangedかつszConfigChangedがセットされている場合はszConfigChangedだけをテキスト設定ファイルに更新
  4744.     #endif
  4745.     #if !WINDOWSCE
  4746.     mchar szfilenamePrj[CCHPATHNAME];//WZ4.00Dd 000526 前回指定したプロジェクトファイル名
  4747.     #endif
  4748. //##SHARE - 共通設定(設定ファイルに保存される)(順序変更不可。追加のみ可)
  4749. //    save to cfg file
  4750.     int configGap;                    // これ以前のメンバの変更でWORD,DWORDメンバの
  4751.                                     // アライメントが変わることがあるのを防止
  4752. BYTE configTop;        // 0:未初期化,1:初期化済み
  4753.     mchar szKinsokuTop[300];        // 行頭禁則文字(行の先頭にきてはいけない文字)
  4754.     mchar szKinsokuEnd[200];        // 行末禁則文字(行の末尾にきてはいけない文字)
  4755.     mchar szKinsokuKuten[200];        // 句読点
  4756.     BBOOL fSearchGetText;            // カーソル位置の文字列を取り込んで、検索ダイアログを開く
  4757.     BYTE modeFileOpen;                // ファイルオープンモード
  4758.         #define FILEOPEN_OPEN        0    // プロセス起動オープン
  4759.         #define FILEOPEN_OPENHIGH    1    // 高速オープン
  4760.         #define FILEOPEN_CLOSEOPEN    2    // 閉じてオープン
  4761.         #define FILEOPEN_CLOSEOPENFORCE    99    // 閉じてオープンで保存しますか?を表示しない。//WZ3.90L 981125 
  4762.     BBOOL fEnglishMenubar;            // 英語メニューバー
  4763.     SIGNED_WORD wtmEhWait;            // キャプチャ開始時のウェイト数
  4764.     mchar szQuote[CCHNAME];            // 引用符
  4765.     BBOOL fFilelistCurSelect;        // ファイルリストのカーソル位置を選択表示
  4766.                                     //WZ4.00Cb 000116 廃止
  4767.     mchar cszExtBinary[128];        // バイナリファイルの拡張子。';'で区切って複数指定可。
  4768.     BBOOL modeUseMyKey;                // キー定義を"My Key"にする
  4769.         #define MYKEY_ADD    1    // "My Key"を追加
  4770.         #define MYKEY_SET    2    // "My Key"に置き換え
  4771.     BBOOL fWzStay;                    // WZを常駐?
  4772.     BBOOL modeFileShare;            // 排他制御
  4773.         #define FILESHARE_DENY_WRITE    1    // 書き込み禁止
  4774.         #define FILESHARE_EXCLUSIVE        2    // 読み書き禁止
  4775.                                     // 裏テキストは排他制御しない。
  4776.     mchar cszPathText[300];            // 文書パス
  4777.                                     // ';'で区切って複数指定できる
  4778.     SIGNED_BYTE lfHeight;            // (共通)フォントサイズ
  4779.     mchar lfFaceName[LF_FACESIZE];    // (共通)フォント名の指定
  4780.     BBOOL lfBold;                    // (共通)太字で表示
  4781.     BBOOL fComboboxEx;                //WCE0.91 970912 コンボボックスを拡張する
  4782.                                     // ↑、↓の絞り込み機能を追加する
  4783.     mchar szFolderDefault[100];        // 標準フォルダ
  4784.     BBOOL fKcAuto;                    //WCE0.93 970919 漢字コードの自動判別?
  4785.     BYTE iMouseScrollSpeed;            //WCE1.01 980209 マウスドラッグスクロール速度 (0..9)
  4786.     BBOOL fNoCursorBlink;            //WZ3.90H 980913 カーソルを点滅しない? !WINDOWSCEのみ
  4787.     BBOOL fWsWideAtSplit;            //WZ3.90I 981103 上下分割時に、ツールバーを消す? !WINDOWSCEのみ
  4788.     BBOOL fNoUpDownAtClipMouse;        //WZ3.90I 981103 方向キーでWindows範囲選択を抜けるときに範囲の先頭/末尾に移動しない。
  4789.     mchar cszExtText[200];            //WZ3.90I 981103 標準の拡張子。';'で区切って複数指定可。
  4790.     BBOOL fCheckFiletimeOnSave;        //WZ3.90J 981109 保存時にファイルの日付を調べる
  4791.     BBOOL fCheckFiletimeOnActive;    //WZ3.90J 981109 アクティブ時にファイルの日付を調べる
  4792.     BBOOL fCrAuto;                    //WZ3.90J 981109 改行コードの自動判別?
  4793.     BYTE modeOfn;                    //WZ3.90J 981111 オープンダイアログの形状
  4794.         #define OFN_STD            0
  4795.         #define OFN_WIN3        1
  4796.         #define OFN_WZ            2
  4797.         #define OFN_STDSIMPLE    3    // Win標準    //WZ4.00Ab 990203 new
  4798.         #define OFN_VZ            4
  4799.     mchar cszOfnFilter[CCHPATHNAME];//WZ3.90J 981112 GetOpenFileName szFilter
  4800.                                     // 例:"*.c;*.h,*.txt テキストファイル:*.txt"
  4801.     BBOOL fNoIntelliMouse;            //WZ3.90P 981205 WZのインテリマウス機能を使わない
  4802. #if UNIX
  4803.     BYTE modeImShiftSpace;            //WZ4.00Bg 990718 XZのShift+Spaceの処理を選択できるようにした。
  4804.     BBOOL fImSwitchByAltZenhan;        //WZ4.00Bg 990719 Alt+半角/全角にIMのon/offを割り当てるか設定できるようにした。
  4805.     BBOOL fMouseMoveXz;                //WZ4.00Bg 990718 XZがマウスカーソルを移動するかどうかを設定できるようにした。
  4806. #endif
  4807.     BBOOL fFileopenFocusList;        //WZ4.00Bj 990826 PWZファイルオープンダイアログで初期フォーカスを一覧に設定?
  4808.     BBOOL fVzKey98;                    //WZ4.00Bl 990904 VZ(98)準拠キー定義を内部で持つようにした。
  4809.     BYTE nFunctionKey;                //WZ4.00Bl 990909 ファンクションキーの個数
  4810.     mchar szArticle[100];            //WZ4.00Bl 990911 箇条書き文字。空なら標準のものを使用。
  4811.     BBOOL fProfileNewtext;            //WZ4.00Bl 990912 新規ウィンドウの位置を保存?
  4812. #if !WINDOWSCE
  4813.     BBOOL fToolbarFlat;                //WZ4.00Bl 990913 
  4814. #endif
  4815.     USERFONTSET tUserfontset[USERFONTSET_N];    //WZ4.00Bl 990920 ユーザフォントセット定義
  4816.     BYTE nFunctionKeySet;            //WZ4.00Bn 991004 ファンクションキーをn個ずつ表示
  4817.     BBOOL fNoSaveConfigAsText;        //WZ4.00Bn 991006 終了時に設定をテキストで出力するのをやめる?
  4818.     SIGNED_BYTE ofn_lfHeight;            // フォントサイズ    //WZ4.00Ca 000103 for PWZ-ofn
  4819.     mchar ofn_lfFaceName[LF_FACESIZE];    // フォント名の指定    //WZ4.00Ca 000103 for PWZ-ofn
  4820.     BBOOL fUndoBackSave;            //WZ4.00Cb 000117 アンドゥで上書き保存前の状態までさかのぼれる?
  4821. #if UNIX
  4822.     mchar sys_lfFaceName[LF_FACESIZE];    // システムフォント名の指定
  4823. #endif
  4824. #if WINDOWSMT
  4825.     BBOOL fLpCalcNpageAll;            //WZ4.00Dd 000601 全ページ数を計算して印刷する?
  4826. #endif
  4827.     BBOOL fExt;                        //WZ4.00Dd 000611 試供機能を使用する?
  4828. BYTE configEnd;
  4829. //##SHARE - permanent変数(順序変更不可。追加のみ可)
  4830. //    save to hist/profile file
  4831.     int permanentGap;                // これ以前のメンバの変更でWORD,DWORDメンバの
  4832.                                     // アライメントが変わることがあるのを防止
  4833. BYTE permanentTop;
  4834.     BBOOL fFilePreview;                // ファイルプレビュー?
  4835.     CHARCONVERT charconvert;        // 最後に実行した文字の変換内容を記憶
  4836.     NPARA nparaTemplateTarget;        // 慣用句の挿入:前回挿入した位置を記憶
  4837.     BBOOL reserved_1;    //PWZ2BETA0.4 980610 廃止 memo_modeDispDate
  4838.     NPARA reserved_2;    //PWZ2BETA0.4 980610 廃止 memo_nparaTarget
  4839.     // grep
  4840.     BBOOL grep_fSearchSubFolder;
  4841.     BBOOL grep_fNoSearchWindows;
  4842.     BBOOL grep_fNoSearchBinaryFiletype;
  4843.     SEARCHMODE grep_searchmode;
  4844.     BYTE grep_modeDispFind;
  4845.     BBOOL grep_fPreview;
  4846.     // filer
  4847.     BBOOL filer_fDoubleWindow;
  4848.     BBOOL filer_fPreview;
  4849.     mchar filer_szPath1[CCHPATHNAME];
  4850.     mchar filer_szPath2[CCHPATHNAME];
  4851.     // edit
  4852.     BYTE edit_iInsertBrace;            // 前回挿入した括弧番号
  4853.     //
  4854.     BBOOL filer_fDispDatesize;
  4855.     BYTE reserved_3;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolist
  4856.     BYTE reserved_4;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolistNarrow
  4857.     BYTE filelist_modeSort;            // 
  4858.     BBOOL filer_fEscClose;            // {Esc}で直ぐ閉じる
  4859.     BBOOL filer_fOpenWin;            // {Enter}で関連アプリで起動
  4860.     BYTE edit_iInsertDate;            //WCE0.91 970911 前回挿入した日付記号
  4861.     SIGNED_BYTE filer_lfHeight;            // フォントサイズ
  4862.     mchar filer_lfFaceName[LF_FACESIZE];// フォント名の指定
  4863.     BBOOL filer_lfBold;                    // 太字で表示
  4864.     //WZ3.90G 980905 ウィンドウ位置の保存
  4865.     RECT filer_rect;
  4866.     RECT grep_rect;
  4867.     RECT memo_rect;
  4868.     RECT help_rect;
  4869.     BBOOL help_fContent;
  4870.     BYTE filelist_lfHeight;                //WZ3.90J 981111 
  4871.     BBOOL filelist_fSetWidthByWindow;    //WZ3.90J 981111 
  4872.     BYTE reserved_5;
  4873.     BYTE help_lfHeight;                    //WZ3.90J 981112 
  4874.     BYTE filer_ratePreview;                //WZ3.90L 981123 
  4875.     BYTE grep_ratePreview;                //WZ3.90L 981123 
  4876.     WORD filelist_cyPreviewWindow;        //WZ3.90J 981111 BYTE->WORD
  4877.     BBOOL lp_fNoConfirmProperty;        //WZ3.90P 981206 
  4878.     BBOOL config_SelDispAll;            //XZ0.20 990704 
  4879.     BYTE help_rateOutline;                //WZ4.00Bj 990824 
  4880.     BYTE reservedPermanent[907];
  4881. BYTE permanentEnd;
  4882. } SHARE;
  4883.  
  4884. //##グローバル変数
  4885.  
  4886. #if __TXC__
  4887. extern HINSTANCE _hinstance;
  4888. //WZ4.00Aa 990108 TX-CからSHARE(sh)にアクセスできるようにした。
  4889. SHARE* TXAPI_(898) _shGet(void);
  4890. #define sh    (_shGet())
  4891. #else
  4892. extern SHARE* sh;
  4893. extern HINSTANCE _hinstance;
  4894. extern TX* text1;    // text1はいつも必ず存在します。
  4895.                     // ただしtxOpenTextされている状態とは限りません。
  4896.                     // hwndbase,hwndtextが存在するとも限りません。
  4897.                     // text1への参照はやむを得ない場合を除いてしないでください。
  4898.                     // textfは廃止されました。
  4899. extern wchar _wszfilenameExe[CCHPATHNAME];    // WZEDITOR.EXEのフルパス名
  4900. extern mchar _szexedir[CCHPATHNAME];        //WZ3.90I 981027 text->szexedirの実体
  4901. extern mchar _szuiwz[];                        //WZ3.90J 981110 UI定義ファイルの名前
  4902. #if !UNIX
  4903. extern MSG _msg;        // WINDOWSCE
  4904. #endif
  4905. extern BYTE _nOpenAp;    // このプロセスで起動中のPWZアプリケーション
  4906. extern struct tagDIALOG * _topModeless;    // モードレスダイアログリスト
  4907. extern BBOOL _fTimeLimit;
  4908. extern mchar _szSearchHeadline[];
  4909. extern BYTE _cyCommandBar;
  4910. #if UNIX
  4911. #define szMsGossic    (sh->sys_lfFaceName)
  4912. #define szMsPGossic    (sh->sys_lfFaceName)
  4913. #define szMsMintyo    (sh->sys_lfFaceName)
  4914. #else
  4915. extern mchar szMsGossic[];
  4916. extern mchar szMsPGossic[];
  4917. extern mchar szMsMintyo[];
  4918. #endif
  4919. extern mchar _szPasswordHead[];
  4920. extern mchar _szComputerName[30];    // このコンピュータ名。無効なときは{0}    //WZ4.00Bp 991014 new
  4921. extern BBOOL _foverwriting;
  4922. extern BBOOL _modeProcess;    // このプロセスのモード(0:通常)    //WZ4.00Bo 991011 new
  4923.     #define PROCESS_MAIL    1
  4924. #endif    // __TXC__
  4925.  
  4926. //{###text API
  4927.  
  4928. //##基本編集
  4929.  
  4930. IBUFF TXAPI_(1) TXHIGH txInsert(TX* text,mchar *str);
  4931. int TXAPI_(179) txInsertChar(tx *text,TXCHAR code);
  4932. void txInsertNchar(TX* text,int ch,int n);
  4933. int TXAPI_(180) txCurInsertChar(TX* text,TXCHAR code);
  4934. int TXAPI_(181) txInsertReturn(TX* text);
  4935. int TXAPI_(923) txInsertAtKeisen(TX* text,mchar* szstr);
  4936. BOOL TXAPI_(182) TXAPIBASE txCurInsertReturn(TX* text);
  4937. BOOL TXAPI_(911) TXHIGH txCurInsertTextArea(TX* text,TX* textInsert,IFILE adrTop,IFILE adrEnd);
  4938. BOOL TXAPI TXHIGH txInsertTextArea(TX* text,TX* textInsert,IFILE adrTop,IFILE adrEnd);
  4939. int TXAPI_(972) txInsertWithReturn(TX* text,mchar* sz);
  4940. int TXAPI_(973) txInsertWithSpace(TX* text,mchar* sz);
  4941. int TXAPI_(767) TXAPIBASE txInsertf(TX* text,mchar* _format,...);
  4942. int TXAPI_(206) TXHIGH txInsertW(TX* text,wchar* sz);
  4943. void TXAPI_(207) txInsertNspace(TX* text,int nspace,int modeSpace);
  4944.     #define SPACE_SPACE        0    // 半角スペースを使う
  4945.     #define SPACE_JSPACE    1    // できるだけ全角空白で挿入、残りは半角スペースで挿入
  4946.     #define SPACE_TAB        2    // できるだけTabで挿入、残りは半角スペースで挿入
  4947. BOOL TXAPI_(250) txInsertText(TX* text,TX* textInsert);
  4948. BOOL TXHIGH txCurInsertText(TX* text,TX* textInsert);
  4949. BOOL TXHIGH txInsertTextCur(TX* text,TX* textInsert);
  4950. BOOL TXAPI_(251) txInsertTextSelect(TX* text,TX* textInsert);
  4951. BOOL txCurInsertTextSelect(TX* text,TX* textInsert);
  4952. IBUFF TXAPI_(166) TXHIGH txCurInsertBuff(TX* text,mchar *str,IBUFF len);
  4953.     #define txCurInsert(text,sz)    txCurInsertBuff(text,sz,strlen(sz))
  4954. BOOL TXAPI_(167) TXHIGH txCurInsertMemorySpace(TX* text,IMEM len);
  4955. IBUFF TXAPI_(168) TXHIGH txInsertBuff(TX* text,mchar *str,IBUFF len);
  4956. BOOL txInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  4957. BOOL txCurInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  4958. //
  4959. IBUFF TXAPI_(172) TXHIGH txDeleteBytes(TX* text,IBUFF len);
  4960. IBUFF TXAPI_(8) txDeleteChar(TX* text);
  4961. IBUFF TXAPI_(9) txDeletePrev(TX* text);
  4962. int TXAPI_(223) txDeletePrevWord(TX* text);
  4963. int TXAPI_(201) txDeleteWord(TX* text);
  4964. int TXAPI_(202) txDeleteWordMi(TX* text);
  4965. void TXAPI_(236) txDeleteText(tx *text);
  4966. int TXAPI TXHIGH txDeleteParaPrim(TX* text);
  4967. IBUFF DeleteTailReturn(mchar* buff,IBUFF len);
  4968. //
  4969. typedef struct {
  4970.     BOOL f;
  4971.     BOOL fSemiViewMode;
  4972.     BOOL fReadMode;
  4973.     BOOL fEditable;
  4974. } EDITABLE_CONTEXT;    //WZ4.00Bj 990825 new
  4975. BOOL txEnterEditable(TX* text,EDITABLE_CONTEXT* context);    //WZ4.00Bj 990825 new
  4976. void txExitEditable(TX* text,EDITABLE_CONTEXT* context);    //WZ4.00Bj 990825 new
  4977. //
  4978. BOOL txBuffExpand(TX* text,IBUFF size);
  4979. IBUFF TXHIGH InsertBytes(TX* text,mchar* str,IBUFF len,int nLf,BOOL fMove);
  4980. void FlushAddressAtInsert(TX *text,IFILE len);
  4981.  
  4982. //##一般編集
  4983.  
  4984. int TXAPI_(203) TXHIGH txDeletePara(TX* text);
  4985. int TXAPI_(204) txDeleteParaEnd(TX* text);
  4986. int TXAPI_(205) txDeleteParaTop(TX* text);
  4987. int TXAPI_(817) txDeleteParaline(TX* text);
  4988. int TXAPI_(818) txDeleteParalineEnd(TX* text);
  4989. int TXAPI_(819) txDeleteParalineTop(TX* text);
  4990. BOOL TXAPI_(899) txDeleteLine(TX* text);    //WZ4.00Aa 990109 
  4991. //
  4992. int TXAPI_(219) txInsertPara(tx *text);
  4993. int TXAPI_(225) txInsertCharModal(tx *text,TXCHAR code);
  4994. int TXAPI txInsertAutoIndent(TX* text,int modeAutoIndent);
  4995. BOOL TXAPI_(273) txInsertFileW(TX* text,wchar* wszfilename);
  4996. BOOL TXAPI_(804) txInsertFile(TX* text,mchar* szfilename);
  4997. int TXAPI_(291) TXHIGH_THROUGH txInsertSpaceFreeCursor(TX* text);
  4998. int TXAPI_(224) txWriteChar(tx *text,TXCHAR code);
  4999. int TXAPI_(287) txWriteReturn(TX* text);
  5000. int TXAPI_(288) txWriteTab(TX* text);
  5001. int TXAPI_(226) txOverWrite(TX* text,mchar *szstr);
  5002. int TXAPI_(227) txOverWriteChar(TX* text,WORD code);
  5003. int TXAPI_(228) txOverWriteBuff(TX* text,mchar *szstr,IBUFF lch);
  5004. BOOL TXAPI_(229) txDeleteOverWriteChar(tx *text,TXCHAR code);
  5005. void TXAPI_(230) txSwitchInsert(tx *text);
  5006. BOOL TXAPI_(272) txuiInsertFile(TX* text);
  5007.  
  5008. #if !__TXC__
  5009. void txSplitPara(TX* text);
  5010. BOOL txDeleteClipMouse(TX* text,int idm);
  5011. #endif // !__TXC__
  5012.  
  5013. //##移動/基本ジャンプ
  5014.  
  5015. IBUFF TXAPI_(133) TXHIGH txRightBytes(TX* text,IBUFF lenMove);
  5016. int TXAPI_(151) TXHIGH txRight(TX* text);
  5017. int TXAPI_(197) txRightWordMi(TX* text);
  5018. int TXAPI_(198) txRightWord(TX* text);
  5019. IBUFF TXAPI_(132) TXHIGH txLeftBytes(TX* text,IBUFF lenMove);
  5020. int TXAPI_(152) TXHIGH txLeft(TX* text);
  5021. int TXAPI_(187) txLeftWord(TX* text);
  5022. int TXAPI_(188) txLeftWordMi(TX* text);
  5023. //
  5024. int TXAPI_(143) txDown(TX* text);
  5025. int TXAPI_(144) txDownN(TX* text,int n);
  5026. int TXAPI_(145) txNextRoll(TX* text);
  5027. int TXAPI_(146) txNextRollN(TX* text,int n);
  5028. int TXAPI_(147) txUp(TX* text);
  5029. int TXAPI_(148) txUpN(TX* text,int n);
  5030. int TXAPI_(149) txPrevRoll(TX* text);
  5031. int TXAPI_(150) txPrevRollN(TX* text,int n);
  5032. //
  5033. BOOL TXAPI_(134) TXHIGH txJumpAddress(TX* text,IFILE address);
  5034. BOOL TXAPI_(135) TXHIGH txJumpAddressBinary(TX* text,IFILE address);
  5035. BOOL txJumpAddressNear(TX* text,IFILE address);
  5036. BOOL txJumpCharTop(TX* text);
  5037. void TXAPI_(136) txJumpAddressAddLy(TX* text,IFILE address);
  5038. BOOL TXAPI_(173) TXHIGH txJumpFileTop(TX* text);
  5039. BOOL TXAPI_(183) TXHIGH txJumpFileEnd(TX* text);
  5040. BOOL TXAPI_(174) txJumpFileTopLine(TX* text);
  5041. BOOL TXAPI_(184) txJumpFileEndLine(TX* text);
  5042. //
  5043. int TXAPI_(2) txJumpLineTop(TX* text);
  5044. int TXAPI_(3) txJumpLineEnd(TX* text);
  5045. int TXAPI_(178) txJumpLineTail(TX* text);
  5046. int TXAPI_(193) TXHIGH txJumpParaTop(TX* text);
  5047. BOOL TXAPI_(194) TXHIGH txJumpParaEnd(TX* text);
  5048. int TXAPI_(189) txJumpWordTop(TX* text);
  5049. int TXAPI_(190) txJumpWordEnd(TX* text);
  5050. int TXAPI_(191) txJumpWordTopMi(TX* text);
  5051. int TXAPI_(192) txJumpWordEndMi(TX* text);
  5052. int TXAPI_(375) txPrevLineN(TX* text,int n);
  5053. int TXAPI_(376) txNextLineN(TX* text,int n);
  5054. //
  5055. int TXAPI_(235) TXAPIBASE txJumpNpara(TX* text,NPARA npara);
  5056. NPARA txPrevParaN(TX* text,NPARA y);
  5057. NPARA txNextParaN(TX* text,NPARA y);
  5058. BOOL TXAPI_(195) TXHIGH txNextPara(TX* text);
  5059. BOOL TXAPI_(196) TXHIGH txPrevPara(TX* text);
  5060. //
  5061. int TXAPI_(215) txPrevPage(tx *text);
  5062. int TXAPI_(1088) txPrevPage1(tx *text);
  5063. int TXAPI_(216) txPrevHalfPage(tx *text);
  5064. int TXAPI_(217) txNextPage(tx *text);
  5065. int TXAPI_(1089) txNextPage1(tx *text);
  5066. int TXAPI_(218) txNextHalfPage(tx *text);
  5067. //
  5068. int TXAPI_(394) txJumpLx(TX* text,int lx);
  5069. BOOL TXHIGH_THROUGH txJumpXPrim(TX* text,int x);
  5070. BOOL TXAPI_(399) txDownBuff(TX* text);
  5071. BOOL TXAPI_(400) txUpBuff(TX* text);
  5072.  
  5073. #if !__TXC__
  5074. int JumpLineEnd(TX* text);    //WZ4.00Ca 991201 JumpLineEndは、txJumpLineEndの省略形とぶつかるのでTXCでは定義しないようにした。
  5075. #endif
  5076.  
  5077. //##検索/ジャンプ
  5078.  
  5079. int TXAPI_(169) TXHIGH txSearchEx(TX* text,mchar* szfind,DWORD searchmode);
  5080. int TXAPI_(824) txReplaceEx(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  5081. BOOL TXAPI_(395) txSearchContinue(TX* text);
  5082. BOOL TXAPI_(396) txSearchContinuePrev(TX* text);
  5083. BOOL TXAPI_(397) txSearchContinueModal(TX* text);
  5084. int TXAPI_(633) txSearchCmd(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  5085. void TXAPI_(596) txSetSearchContinue(TX* text,mchar* szFind,SEARCHMODE searchmode);
  5086. int TXAPI_(249) txSearchNextPrim(TX* text,mchar *sFind,DWORD searchmode,int lchFind);
  5087. #if !__TXC__
  5088. BOOL txSearchTabbeam(TX* text,SEARCHMODE searchmode);
  5089. void txSearchAlltextInit(TX* text,SEARCHMODE searchmode);
  5090. BOOL txSearchAlltextGetFirst(TX* text);
  5091. void txSearchAlltextNext(TX* text,DWORD searchmode,BOOL fReplace);
  5092. BOOL txuiSearchGet(TX* text,SEARCH_PACKET* search);
  5093. BOOL txuiSearchList(TX* text,SEARCH_PACKET* search);
  5094. BOOL txuiSearchlist(TX* text,SEARCH_PACKET* search);
  5095. int _SearchNext(TX* text,mchar *szFind,DWORD searchmode,int lchFind);
  5096. //
  5097. void searchoptFromSearchmode(SEARCHOPT* opt,SEARCHMODE searchmode);
  5098. void searchoptSetupMode(SEARCHOPT* opt);
  5099. SEARCHMODE searchoptToSearchmode(SEARCHOPT* opt);
  5100. void wndSetEnableSearchOption(HWND hwnd);
  5101. mchar* GetFind(void);
  5102. void SetFind(mchar* szfind);
  5103. void txInitSearchContinueCB(TX* text);
  5104. #endif    // !__TXC__
  5105. //インクリメンタルサーチ
  5106. #if !__TXC__
  5107. void txIsearchQuitEm(TX* text);
  5108. void txIsearchStatprintf(TX* text,BOOL find,SEARCHMODE searchmode);
  5109. BOOL txIsearchIsContinueIdm(TX* text,int idm);
  5110. void txIsearchNext(TX* text,SEARCHMODE searchmode);
  5111. BOOL txIsearchQuit(TX* text);
  5112. #endif
  5113. //jump
  5114. int TXAPI_(289) txJumpPara(tx *text,NLINE line);
  5115. int TXAPI_(290) txJumpLine(TX* text,NLINE line);
  5116. int TXAPI_(292) txJumpX(TX* text,int x);
  5117. BOOL TXAPI_(294) txJumpLy(TX* text,int y);
  5118. IFILE TXAPI_(295) TXHIGH txGetParaIch(TX* text);
  5119. BOOL TXAPI_(296) TXHIGH txJumpParaIch(tx* text,IFILE lch);
  5120. BOOL TXAPI TXHIGH txJumpParaIchEx(TX* text,IFILE ich);
  5121. BOOL TXAPI_(341) txJumpPrevEditPara(TX* text);
  5122. BOOL TXAPI_(342) txJumpNextEditPara(TX* text);
  5123. BOOL TXAPI_(318) txMarkN(TX* text,int n);
  5124. BOOL TXAPI_(1081) txMarkEx(TX* text,int n,IFILE adr);
  5125. BOOL TXAPI_(319) txJumpMarkN(TX* text,int n);
  5126. int TXAPI_(324) txJumpBrace(TX* text);
  5127. BOOL TXAPI_(326) txuiMark(TX* text);
  5128. BOOL TXAPI_(327) txJumpTagEx(TX* text);
  5129. BOOL TXAPI_(402) txuiRefer(TX* text);
  5130. void TXAPI_(366) txMarkCur(TX* text);
  5131. void TXAPI_(367) txJumpMarkCur(tx *text);
  5132. void TXAPI_(368) txMarkNow(TX* text);
  5133. void TXAPI_(369) txMarkNowAddress(TX* text,IFILE adr);
  5134. void TXAPI_(370) txJumpMarkNow(TX* text);
  5135. IFILE TXAPI_(371) txEndMarkNow(TX* text);
  5136. #if !__TXC__
  5137. void jumphistAdd(TX* text);
  5138. #if !UNIX    // 何故かconflicting typesになる。
  5139. void histjumpstrAnalyze(mchar* sz,struct tagJH_ITEM* item);
  5140. #endif
  5141. BOOL txLinkhistJumpPrevGetAble(TX* text);
  5142. BOOL txLinkhistJumpNextGetAble(TX* text);
  5143. BOOL txLinkhistJumpPrev(TX* text);
  5144. BOOL txLinkhistJumpNext(TX* text);
  5145. BOOL txJumpTagPrim(TX* text,int mode);
  5146. #endif // !__TXC__
  5147. // re
  5148. LPVOID TXAPI_(820) reSearchMem(LPVOID pMem,DWORD len,mchar* szFind,SEARCHMODE searchmode,SEARCHRE searchre,DWORD* pLenMatch);
  5149. mchar* TXAPI_(821) re(mchar* sztext,mchar* szfind);
  5150. mchar* TXAPI_(822) reSearch(mchar* sztext,mchar* szfind,SEARCHMODE searchmode);
  5151. mchar* TXAPI_(823) reSearchEx(mchar* sztext,mchar* szfind,SEARCHMODE searchmode,UINT* pLenMatch);    //WZ4.00Bj 990830 プロトタイプを修正
  5152. mchar* TXAPI_(878) regular(TXSTR sztext,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  5153. mchar* TXAPI_(879) regularStr(mchar* sztext,UINT cch,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  5154.     #define ITAG_TAIL    0x00010001    // 最後のタグ
  5155. BOOL TXAPI_(975) retagGetEx(int iTag,mchar* szbuff,int cch);
  5156. int TXAPI_(976) retagGetLch(int iTag);
  5157. void TXAPI_(1090) searchoptSearchExec(SEARCHOPT* opt);
  5158. #if !__TXC__
  5159. mchar* TXAPI retagGetP(int iTag);
  5160. mchar* TXAPI retagGetTop(int iTag);
  5161. void reFreeContext(struct tagRE_CONTEXT* context);
  5162. struct tagRE_CONTEXT* reAllocContext(mchar* szFind,SEARCHMODE searchmode,SEARCHRE searchre);
  5163. void reSetContext(struct tagRE_CONTEXT* context);
  5164. IBUFF memGetCharSize(mchar* p,mchar* pEnd,SEARCHRE searchre);
  5165. mchar* memGetPrevChar(mchar* p,mchar* pTop,mchar* pEnd,SEARCHRE searchre);
  5166. #endif // !__TXC__
  5167. //
  5168.  
  5169. //##情報取得
  5170.  
  5171. #if __TXC__
  5172. int TXAPI_(782) txGetWord(TX* text,TXSTR dst);
  5173. int TXAPI_(826) txGetWordWhole(TX* text,TXSTR dst);
  5174. int TXAPI_(827) txGetWordAfter(TX* text,TXSTR dst);
  5175. int TXAPI_(783) txGetPara(TX* text,TXSTR dst);
  5176. int TXAPI_(784) txGetParaRear(TX* text,TXSTR dst);
  5177. int TXAPI_(895) txGetLine(TX* text,TXSTR dst);    //WZ4.00A 981229 
  5178. int TXAPI_(896) txGetLineRear(TX* text,TXSTR dst);    //WZ4.00A 981229 
  5179. #endif
  5180. //
  5181. IFILE TXAPI_(156) txGetParaTop(tx *text);
  5182. IFILE TXAPI_(362) TXHIGH txGetParaEnd(tx *text);
  5183. IFILE TXAPI_(902) TXHIGH txGetParaContentEnd(TX* text);
  5184. IFILE TXAPI_(155) TXHIGH txGetParaTail(TX* text);
  5185. int TXAPI_(237) TXHIGH txGetParaLen(TX* text);
  5186. int TXAPI_(779) TXHIGH txGetParaContentLen(TX* text);
  5187. int TXAPI_(238) TXHIGH txGetParaEx(tx *text,mchar *buff,IBUFF sizebuff);
  5188. int TXAPI_(239) TXHIGH txGetParaRearEx(TX* text,mchar *buff,IBUFF sizebuff);
  5189. mchar* TXHIGH txGetParaAlloc(TX* text);
  5190. BOOL TXAPI_(828) txGetBuff(TX* text,mchar* buff,IFILE adrtop,IFILE adrend);
  5191. //
  5192. IFILE TXAPI_(354) txGetLineTop(TX* text);
  5193. IFILE TXAPI_(355) txGetLineTail(TX* text);
  5194. int TXAPI_(780) txGetLineContentLen(TX* text);
  5195. //
  5196. IFILE TXAPI_(158) txGetWordTop(TX* text);
  5197. IFILE TXAPI_(157) txGetWordTail(TX* text);
  5198. IFILE TXAPI_(159) txGetSentenceTop(TX* text);
  5199. IFILE TXAPI_(160) txGetSentenceTail(TX* text);
  5200. IBUFF TXAPI_(280) txGetWordEx(TX* text,mchar* buff,IBUFF sizebuff);
  5201. IBUFF TXAPI txGetWordWholeEx(TX* text,mchar* buff,IBUFF sizebuff);
  5202. IBUFF TXAPI_(1061) txGetWordAfterEx(TX* text,mchar* buff,IBUFF sizebuff);
  5203. //
  5204. IFILE TXAPI_(161) txGetTextSize(TX* text);
  5205. IFILE TXAPI_(162) txGetTextSizeSemi(TX* text);
  5206. wchar* TXAPI_(349) txGetFileExtW(TX* text);
  5207. IFILE TXAPI_(350) txGetAddress(TX* text);
  5208. IFILE TXAPI_(351) txGetAddressSelectTop(tx *text);
  5209. IFILE TXAPI_(352) txGetAddressSelectEnd(tx *text);
  5210. IFILE TXAPI_(308) txGetAddressCurscreen(TX* text);
  5211. IFILE TXAPI_(353) txGetSelectLen(TX* text);
  5212. int TXAPI_(407) txGetLxLineEnd(TX* text);
  5213. int TXAPI_(408) txGetLxLineTail(TX* text);
  5214. BOOL TXAPI_(906) txGetDownAble(TX* text,int n);
  5215. BOOL TXAPI_(907) txGetUpAble(TX* text,int n);
  5216. // pが示す文字のタイプ(CT_SPACE,CT_XXX,etc)を返す
  5217. int TXAPI_(163) GetCharType(TX* text,mchar *p);
  5218. int chGetType(TXCHAR c,TX* text);
  5219.     #define CT_SPACE    2    // (0x00-0x20),全角スペース(0x8140)
  5220.     #define CT_SYMBOL    3    // '$','_'を除く英記号
  5221.                             // 全角記号(0x8152-0x815Bを除く)
  5222.     #define CT_KATA        4    // 半角カタカナ
  5223.     #define CT_HIRA        5    // 全角ひらがな
  5224.     #define CT_KANJI    6    // 上記以外の全角文字
  5225.     #define CT_CHAR        7    // 上記以外の半角文字
  5226.     #define CT_LF        8
  5227.     #define CT_EOF        9
  5228. //
  5229. TXCHAR TXAPI_(305) TXHIGH txGetChar(TX* text);
  5230. TXCHAR TXAPI_(306) TXHIGH txGetPrevChar(TX* text);
  5231. TXCHAR TXAPI_(867) txReadChar(TX* text);
  5232. IBUFF TXAPI_(377) TXHIGH txGetCharSize(TX* text,IBUFF off);
  5233. int txCharGetWidth(TX* text,TEXTCHAR ch);
  5234. int txCharGetWidthKanji(TX* text,TEXTCHAR* p);
  5235. int txGetCaretCx(TX* text);
  5236. int txGetCurCx(TX* text);
  5237. #define txGetCySpace(text)            (text->cySpace)
  5238. #define txGetLcySmlower(text)        (text->lcySmlower + text->fAddSmlower)
  5239. #define txLpGetCxLinenoBinedit(text)    (text->cxLetter*9)    //WZ4.00Bj 990831 
  5240. #define txGetOriginalCaret(text)    (text->fOriginalCaret)
  5241. #define txGetCurNpara(text)            (text->fScrollSB ? text->nparaSB : text->npara)    //WZ3.90L 981123 WZ FILERでスクロールバースクロールすると矩形枠と選択表示が分離した
  5242. #if 1//WZ4.00Bl 990925 
  5243.     #define txGetConfigtextValid(text)    (text->fConfigtext)    //WZ4.00Bl 990925 新規作成ウィザードで作成したTML文書の埋め込み設定を修正。
  5244. #else
  5245.     #define txGetConfigtextValid(text)    (text->fConfigtext && text->szcfg[0] == 0)    //WZ3.90I 981028 埋め込み設定が有効かどうか返す
  5246. #endif
  5247. #define CXCONTROLCHAR    8
  5248. // WINDOWSCE cxCharがCXCONTROLCHARより小さいことがある
  5249. #define txGetCxControlChar(text)    (CXCONTROLCHAR <= text->cxChar ? CXCONTROLCHAR : text->cxChar)
  5250. //
  5251. BOOL TXAPI_(281) txGetFreeCursor(TX* text);
  5252. int TXAPI_(282) txRightFree(TX* text);
  5253. int TXAPI_(283) txLeftFree(TX* text);
  5254. BOOL TXAPI_(364) TXAPIBASE TXHIGH_THROUGH txIsCurFree(tx *text);
  5255. #define txGetTexttopEnable(text)    (text->fTxf || text->mailedit)    //WCE1.01 980329 
  5256. #define txGetApfu(text)                (text->modeApfu || text->fApfu2 || text->fApfuBeamtab || text->fApfuTab)    //WZ3.90L 981115 fApfuBeamtabとfApfuTabを追加
  5257. #define txGetUseTextstack(text)        ((text->modeUseTextstack == TEXTSTACK_ON) || (text->modeUseTextstack == TEXTSTACK_ON_AT_VZ && text->modeEditor == ME_VZ))
  5258. #define txGetNoReplaceSelSearch(text)    (text->modeDispSearch == DISPSEARCH_REVERSE || (text->modeDispSearch == 0 && text->modeEditor != ME_WIN))
  5259. #define txGetViewmode(text)            (text->fSemiViewMode || text->fEditViewMode)
  5260. #define txGetEditable(text)            (text->fEditable && !text->fReadMode)    //WCE1.01 980426 
  5261. #define txGetLineD(text)            (text->fLineD || text->fBinedit)
  5262. #define txGetPageTurnLp(text)        (text->hdcPrinter)    // 印刷/印刷プレビュー時で、ページめくりモード?
  5263. #define txGetPageTurn(text)            (text->fPageTurn && text->height && !text->hdcPrinter)    // 通常時で、ページめくりモード?
  5264. #define txGetProp(text)                (text->lfEditProp || text->hdcPrinter)    // プロポーショナルフォントの可能性。
  5265. //
  5266. BOOL TXAPI_(284) TXHIGH txIsCurReturn(TX* text);
  5267. BOOL TXAPI_(314) TXAPIBASE txIsCurParaTop(TX* text);
  5268. BOOL TXAPI_(286) TXAPIBASE txIsCurLineTop(TX* text);
  5269. BOOL TXAPI_(285) TXHIGH txIsCurLineEnd(TX* text);
  5270. BOOL TXAPI TXHIGH txIsCurLineReturn(TX* text);
  5271. BOOL TXHIGH_COND txIsCurMsgsepa(TX* text);
  5272. BOOL TXAPI TXHIGH txIsCurTof(TX* text);
  5273. BOOL TXAPI_(329) TXHIGH txIsCurEof(TX* text);
  5274. BOOL txIsCurscreenDispEof(TX* text);
  5275. //
  5276. BOOL TXAPI_(310) txIsLineReturn(TX* text);
  5277. BOOL TXAPI_(311) txIsLineEnd(TX* text);
  5278. BOOL TXAPI_(312) TXAPIBASE txIsLineParaTop(TX* text);
  5279. //比較
  5280. int TXAPI_(838) TXHIGH txCmpCur(TX* text,mchar* szstr);
  5281. int TXAPI_(839) TXHIGH txCmpCurI(TX* text,mchar* szstr);
  5282. int TXAPI_(840) TXHIGH txCmpCurLen(TX* text,mchar* szstr,int lch);
  5283. int TXAPI_(841) TXHIGH txCmpCurLenI(TX* text,mchar* szstr,int lch);
  5284. int TXAPI_(842) TXHIGH txCmpCurPrev(TX* text,mchar* szstr);
  5285. int txCmpParaOffset(TX* text,mchar* szstr,IBUFF offset);
  5286. int txCmpIParatop(TX* text,mchar* szstr);
  5287. int txCmpIParatopLen(TX* text,mchar* szstr,int lch);
  5288. //
  5289. wchar* TXAPI_(379) txGetTitleFilenameW(TX* text);
  5290. wchar* TXAPI_(380) txGetTitleFilenameFullW(TX* text);
  5291. BOOL TXAPI_(270) txGetEdit(TX* text);
  5292. mchar* TXAPI_(908) txSprintLocate(TX* text,mchar buff[CCHWORD],UINT mode);
  5293. // clm
  5294. BOOL TXAPI_(931) txGetMultiClm(TX* text);
  5295. int TXAPI_(932) txClmFromLy(TX* text,int ly);
  5296. int TXAPI_(933) txClmGetLy(TX* text,int iClm);
  5297. #define txGetMultiClmTextmode(text)    (text->nClm >= 2)    // テキストモード専用
  5298. // 印刷
  5299. #if WZFUNC_PRINT
  5300.     #define IsAtPrint(text)            (text->hdcPrinter)    // 印刷プレビューまたは印刷時
  5301.     #define txGetPrinting(text)        (text->hdcPrinter && !text->flpPreview)    // 印刷中?
  5302. #else
  5303.     #define IsAtPrint(text)            (FALSE)
  5304.     #define txGetPrinting(text)        (FALSE)
  5305. #endif
  5306. // 表示
  5307. BOOL TXAPI_(1082) txGetDispToolbar(TX* text);
  5308. #define txGetDispSearch(text)            (!(text->modeDispSearch == DISPSEARCH_NORMAL || (text->modeDispSearch == 0 && text->modeEditor == ME_VZ)))    //WZ3.90P 981204 VZの見つけた文字の表示は「通常表示」に変更した。
  5309. #define txGetDispLineNo(text)        (IsAtPrint(text) ? text->lp->fDispLineNo : text->fDispLine)
  5310. //#define txGetDispSearch(text)            (text->modeDispSearch != DISPSEARCH_NORMAL)
  5311.  
  5312. #if !__TXC__
  5313. //clm
  5314. int txGetNclm(TX* text);
  5315. int lyToYClm(TX* text,int ly);
  5316. int clmGetX(TX* text,int iClm);
  5317. int clmGetY(TX* text,int iClm);
  5318. //
  5319. int txGetLcxLinenum(TX* text);
  5320. BOOL txGetScrollBarPreviewH(TX* text);
  5321. int txCharGetWidthStr(TX* text,TEXTCHAR* str,int lch);
  5322. UINT txFormChar(TX* text,mchar* str,UINT offset);
  5323. int txGetXAlign(TX* text,IBUFF off,IBUFF linesize,int align,int cxWidth);
  5324. int txchWidth(TX* text,TXCHAR ch);
  5325. mchar* txGetStringReturn(TX* text);
  5326. int txGetCursorFaceInsert(TX* text);
  5327. int txGetCursorFaceWrite(TX* text);
  5328. int GetWidthCx(TX* text,IBUFF ibuff,NPARA npara,int nClm);
  5329. int GetPosLeft(TX* text,IBUFF ibuff,NPARA npara,BOOL fPrinter);
  5330. #endif // !__TXC__
  5331.  
  5332. //##範囲選択/カットアンドペースト
  5333.  
  5334. //
  5335. BOOL TXAPI_(214) txSelectEx(tx *text,int fClip);
  5336. BOOL TXAPI_(175) txSelect(TX* text);
  5337. BOOL TXAPI_(176) txSelectWord(tx *text);
  5338. BOOL TXAPI_(177) txSelectLine(tx *text);
  5339. BOOL txSelectLineCur(TX* text);
  5340. BOOL TXAPI txSelectPara(TX* text);
  5341. BOOL TXAPI txSelectParaCur(TX* text);
  5342. BOOL TXAPI_(220) txSelectBox(TX* text);
  5343. BOOL TXAPI_(221) txSelectAll(tx *text);
  5344. BOOL TXAPI_(222) txSelectVz(tx *text);
  5345. //
  5346. void TXAPI_(812) txJumpSelectTop(TX* text);
  5347. void TXAPI_(813) txJumpSelectEnd(TX* text);
  5348. BOOL TXAPI_(170) txSelectJump(tx *text);
  5349. BOOL TXAPI_(171) txSelectToChar(tx* text);
  5350. BOOL TXAPI_(186) TXHIGH txSelectCopy(tx *text);
  5351. int TXAPI_(790) txSelectGetMode(TX* text);
  5352. BOOL TXAPI_(912) txSelectGetPrev(TX* text);
  5353. BOOL TXAPI_(185) txPaste(tx *text);
  5354. BOOL TXAPI_(199) txFlushSelectNow(TX* text);
  5355. BOOL TXAPI_(360) TXAPIBASE txIsClipInPara(tx *text);
  5356. BOOL txSelectToMemo(TX* text);
  5357. BOOL TXAPI_(919) txSelectToMemoEx(TX* text,mchar* szCaption);
  5358. //
  5359. BOOL TXAPI_(300) TXAPIBASE txWalkStart(TX* text);
  5360. BOOL TXAPI_(301) TXAPIBASE txIsWalking(TX* text);
  5361. BOOL TXAPI_(302) TXAPIBASE txWalkEnd(TX* text);
  5362. BOOL TXAPI_(303) TXAPIBASE txWalkStartPrev(TX* text);
  5363. BOOL TXAPI_(304) TXAPIBASE txIsWalkingPrev(TX* text);
  5364. //
  5365. void TXAPI_(200) txSelectCopyQuit(tx *text);
  5366. BOOL TXAPI_(212) TXHIGH txSelectDelete(tx *text);
  5367. void TXAPI_(213) txSelectCopyDelete(tx *text);
  5368. BOOL TXAPI_(373) txSelectQuit(tx *text);
  5369. BOOL TXAPI_(385) txClipboardAddCopy(TX* text);
  5370. BOOL TXAPI_(386) txClipboardAddCut(TX* text);
  5371. BOOL TXAPI_(946) txSelectOverwriteModal(TX* text);
  5372. //
  5373. BOOL TXAPI_(231) TXHIGH txClipPaste(tx *text,HCLIP hclip,BOOL fJump,int _fClip);
  5374. BOOL TXAPI_(232) TXHIGH txClipCopyEx(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int fClip,NPARA nparaTop,NPARA nparaEnd);
  5375. BOOL TXAPI_(315) TXHIGH txClipPasteEx(TX* text,HCLIP hclip,int istack,DWORD cbPasteMax,BOOL fJump,int _fClip);
  5376. BOOL TXAPI_(363) TXHIGH txClipCopy(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int _clipkind);
  5377. BOOL TXAPI_(875) TXHIGH memClipCopy(LPVOID pmem,DWORD cbsize,HCLIP hclip,int fClip);
  5378. DWORD TXAPI_(876) TXHIGH memClipPaste(LPVOID pmem,HCLIP hclip);
  5379. //
  5380. BOOL TXAPI_(343) TXAPIBASE txPrivatePop(TX* text);
  5381. BOOL TXAPI_(344) TXAPIBASE txPrivatePopJump(TX* text);
  5382. BOOL TXAPI_(345) TXAPIBASE txPrivateDeleteTop(TX* text);
  5383. BOOL TXAPI_(346) TXAPIBASE txPrivatePaste(TX* text);
  5384. void TXAPI_(347) TXAPIBASE txPrivateClear(TX* text);
  5385. BOOL TXAPI_(348) TXAPIBASE TXHIGH txPrivatePush(TX* text);
  5386. //
  5387. int TXAPI_(316) clipIsWz(void);
  5388. BOOL TXAPI_(317) clipGetExistText(void);
  5389. BOOL TXAPI_(401) clipClear(HCLIP hclip);
  5390. BOOL TXAPI_(920) clipboardToMemo(mchar* szCaption);
  5391. //
  5392. #if !__TXC__
  5393. void DispFlushClipBox(TX* text);
  5394. void DispFlushClipBoxExec(TX* text);
  5395. void txGetBoxOffset(TX* text,IBUFF cury,IBUFF curysize,int x,int* pOff1,int* pOff2);
  5396. BOOL ClipCopyBox(TX* text,IFILE cliptop,IFILE clipend,HCLIP hclip);
  5397. BOOL ClipPasteBox(TX* text,mchar* pstr,IBUFF cbClip);
  5398. BOOL SelectDeleteBox(TX* text);
  5399. IFILE ClipCopyBoxToHglobal(TX* text,IFILE cliptop,IFILE clipend,HGLOBAL hGlobal);
  5400. BOOL SelectQuit(TX* text);    //WZ4.00Db 000208 TXCでtxSelectQuitの省略記法が使えなかったのを修正。
  5401. //
  5402. BOOL txSelectGetOverwrite(TX* text);
  5403. IFILE txGetWordTailForSelect(TX* text);
  5404. IFILE txGetWordTopForSelect(TX* text);
  5405. BOOL clipPush(HCLIP hclip,mchar* lpData,DWORD cbData);
  5406. BOOL oleclipCopy(CLIPITEM* clipitem);
  5407. void wzoleTerm(void);
  5408. //textstack
  5409. typedef struct {
  5410.     HANDLE hf;
  5411.     IFILE sizefile;
  5412. } TSHANDLE;
  5413. BOOL tsOpen(TSHANDLE* ts);
  5414. void tsClose(TSHANDLE* ts);
  5415. void tsClearTop(TSHANDLE* ts);
  5416. void tsClearAll(void);
  5417. BOOL tsGetExist(void);
  5418. #endif // !__TXC__
  5419.  
  5420. //##表示
  5421.  
  5422. void TXAPI_(358) txSetUndisp(tx *text);
  5423. BOOL TXAPI_(359) txSetDisp(tx *text);
  5424. BOOL TXAPI_(844) txSetDispExJump(TX* text,BOOL fJump);
  5425. #define txSetUndispSilent(text)    txSetUndisp(text)
  5426. #define txSetDispSilent(text)    txSetDisp(text)
  5427. void TXAPI_(321) TXAPIBASE txSetUndispEx(TX* text);
  5428. BOOL TXAPI_(322) TXAPIBASE txSetDispEx(TX* text);
  5429. #define txSetUndispExSilent(text)    txSetUndispEx(text)
  5430. #define txSetDispExSilent(text)        txSetDispEx(text)
  5431. void TXAPI_(405) txSetUndispEdit(TX* text);
  5432. BOOL TXAPI_(406) txSetDispEdit(TX* text);
  5433. void TXAPI_(336) txSetBusy(TX* text);
  5434. void TXAPI_(337) txSetUnbusy(TX* text);
  5435. void TXAPI_(925) txDoCaption(TX* text);
  5436. //
  5437. void TXAPI_(365) txDispAll(tx *text);
  5438. void TXAPI_(141) txDispTextAll(TX* text);
  5439. void TXAPI_(142) txDispTextAllCursor(TX* text);
  5440. void TXAPI_(153) txDispText(TX* text,int yTop,int yEnd);
  5441. void TXAPI_(154) txDispNpara(TX* text,NPARA npara);
  5442. void TXAPI_(356) txDispCursor(TX* text);
  5443. void TXAPI_(357) txDispLocate(TX *text);
  5444. void TXAPI_(361) txSetLy(tx *text,int ly);
  5445. void TXAPI_(374) txSetLyCenter(tx *text);
  5446. BOOL TXAPI_(309) txSetLyCurscreen(TX* text,IFILE adrCurscreen);
  5447. int TXAPI_(963) txGetLyCenter(TX* text);
  5448. void TXHIGH_THROUGH txSetLyUndisp(TX* text,int ly);
  5449. //
  5450. BOOL TXAPI_(209) txSetHigh(tx *text);
  5451. BOOL TXAPI_(233) txResetHigh(tx *text);
  5452. BOOL TXAPI_(234) txResetHighFlag(tx *text);
  5453. #define txSetHighSilent(text)    txSetHigh(text)
  5454. #define txResetHighSilent(text)    txResetHigh(text)
  5455. //Flush
  5456. void TXAPI_(307) txFlush(TX* text);
  5457. void TXAPI_(843) txFlushUI(TX* text);
  5458. void TXAPI_(372) TXHIGH_THROUGH txFlushLx(TX* text);
  5459. void TXAPI_(378) txFlushCxBase(TX* text);
  5460. void TXAPI_(320) txFlushColor(TX* text);
  5461. void TXAPI_(208) TXHIGH_THROUGH txFlushCury(TX* text);
  5462. void TXAPI txFlushCurysize(TX* text);
  5463. void TXAPI_(942) txFlushMenuCheck(TX* text,UINT mask);
  5464.     #define FMC_ALL        0x0001
  5465.     #define FMC_UNDO    0x0002
  5466.     #define FMC_CLIP    0x0004
  5467.     #define FMC_CONFIG    0x0008
  5468.     #define FMC_ATOPEN    0x0010
  5469.     #define FMC_FORM    0x0020
  5470. void TXAPI_(961) txFlushScrollBar(TX* text);
  5471. void TXAPI_(962) txFlushScrollBarPos(TX* text);
  5472. void TXAPI_(1126) txFlushPreviewW(TX* text,wchar* wszfilename);
  5473. //
  5474. TX* TXAPI_(1000) txGetKeywordText(TX* text);
  5475. //
  5476. #define xToClient(text,x)            (text->cxBase + text->xbase + x)
  5477. #define xToClientEx(text,x,cxBase)    (cxBase + text->xbase + x)
  5478. //
  5479. #if !__TXC__
  5480. //
  5481. IBUFF Disp(TX* text,int yTop,int yEnd,int mode);
  5482.     #define DISP_FLUSHLINENO        1
  5483.     #define DISP_TYFLUSH            2
  5484.     #define DISP_GETCURSCREENEND    3
  5485.     #define DISP_SPACEEND            4
  5486.     #define DISP_FLUSHALIGN            5    // yTopからyEndのtcxAlignをフラッシュ
  5487.     #define DISP_LPRINT                6    //WCE1.01 980216 1ページ分を表示し、lcywindow,tLineatrをセットする
  5488. void DispLine(TX* text,int ly,IBUFF off,IBUFF linesize,NPARA npara);
  5489. void DispLineNo(TX* text,int ly,NLINE nLine,NPARA npara,NPAGE npage,IBUFF off);
  5490. void DispNull(TX* text,int ly);
  5491. void txDispFlushClip(tx* text,IFILE cliptopnow,IFILE clipendnow);
  5492. void tyFlush(TX* text);
  5493. void ScrollY(TX* text,int lyTop,int lyEnd,int dy);
  5494. void DispFlushClipBox(TX* text);
  5495. void FlushDispLines(tx *text,int lines0,int lines,int nLf);
  5496. void TXHIGH_THROUGH FlushClipVz(TX* text,UINT fClip);
  5497. int txSetupDispLine(TX* text,IBUFF cury,NPARA npara);
  5498. void DispLineNull(TX* text);
  5499. int GetCurLines(TX* text,IBUFF off,int nLf);
  5500. void txSetupCyLine(TX* text,IBUFF cury,IBUFF curysize);
  5501. void ScrollPreviewY(TX* text,int yViewportOrgNew);
  5502. void txSetColorReverse(TX* text,BOOL fReverse);
  5503. void txSetColorTextForce(TX* text);
  5504. //
  5505. void InitDC(TX* text);
  5506. void TermDC(TX* text);
  5507. void OpenDC(TX* text);
  5508. void CloseDC(TX* text);
  5509. void MapDC(TX* text,HDC hdc);
  5510. HWND txGetHwndtext(TX* text);
  5511. BOOL lfSet(TX* text,LOGFONT* lf);
  5512. void FreeFont(TX* text);
  5513. void txFontsetcacheTerm(TX* text);
  5514. void logfontSetup(LOGFONT* lf,mchar* lfFaceName,int lfHeight,HDC hdc);
  5515. //
  5516. void caretFlush(TX* text);
  5517. void txOnCaretGet(TX* text,BOOL fGet);
  5518. int TXHIGH txOffsetToX(TX* text,IBUFF cury,IBUFF offset);
  5519. int TXHIGH txXToOffset(TX* text,IBUFF cury,int *pX,IBUFF curysize);
  5520. void underlineDraw(tx *text,int ly);
  5521. void DispUnderline(tx *text,int lynew,int lyold);
  5522. void focuslineHide(tx *text);
  5523. void focuslineShow(tx *text);
  5524. void focuslineXor(tx *text);
  5525. void focuslineInit(TX* text);
  5526. void txRulerFlushDisp(TX* text);
  5527. void txRulerOnCursorMove(TX* text,int x,int cx);
  5528. //
  5529. int checkLy(TX* text,int ly);
  5530. void TXHIGH_THROUGH txSetLyUndispEx(tx *text,int ly);
  5531. //
  5532. int hvGetCxClient(TX* text);
  5533. int hvGetCyClient(TX* text);
  5534. int VX(TX* text,int y);
  5535. int VXP(TX* text,int y);
  5536. #if WZFUNC_VERTICAL
  5537. int hvDrawText(TX* text,HDC hdc,LPCTSTR lpszStr,int cchStr,RECT* r,UINT op);
  5538. void hvMoveTo(TX* text,HDC hdc,int x,int y);
  5539. void hvLineTo(TX* text,HDC hdc,int x,int y);
  5540. #else
  5541. #define hvTextOut(text,hdc,x,y,str,len)    TextOut(hdc,x,y,str,len)
  5542. #define hvExtTextOut(text,hdc,x,y,op,r,lpszString,cbCount,lpDx)    ExtTextOut(hdc,x,y,op,r,lpszString,cbCount,lpDx)
  5543. #define hvMoveTo(text,hdc,x,y)    MoveTo(hdc,x,y)
  5544. #define hvLineTo(text,hdc,x,y)    LineTo(hdc,x,y)
  5545. #define hvDrawText(text,hdc,lpszStr,cchStr,r,op)    DrawText(hdc,lpszStr,cchStr,r,op)
  5546. #endif
  5547. void hvRect(TX* text,RECT* r);
  5548. void hvRectBack(TX* text,RECT* r);
  5549. void hvPointModal(TX* text,POINT* p);
  5550. //色分け
  5551. void txFreeKeyword(TX* text);
  5552. void txFlushKeyword(TX* text);
  5553. IFILE txGetUrlTopEnd(TX* text,BOOL fTop);
  5554. //Flush
  5555. BOOL txFlushBase(TX* text);
  5556. void txFlushFont(TX* text);
  5557. void txFlushWidth(TX* text);
  5558. void txFlushCxCyClient(TX* text);
  5559. void txFlushLcywindow(TX* text);
  5560. void txFreeBitmap(TX* text);
  5561. void txFlushBitmap(TX* text);
  5562. void txCheckWidthTab(TX* text);
  5563. void txFlushTable(TX* text);
  5564. void TXHIGH_THROUGH _txFlushCury(TX* text,BOOL fTail);
  5565. void txFlushToolbar(TX* text);
  5566. void _txFlushMenu(TX* text,BOOL fShow);
  5567. void txFlushMenu(TX* text);
  5568. void txFlushMenuFilewindowlist(TX* text,HMENU hmenu);
  5569. void txFlushPreview(TX* text,mchar* szfilename);
  5570. void txFlushWindow(TX* text);
  5571. IBUFF txFlushCurscreen(TX* text);
  5572. void txFlushCurscreenForce(TX* text);
  5573. BOOL TXHIGH_THROUGH txFlushFree(TX* text);
  5574. //
  5575. void txDoCaptionEx(TX* text,HWND hwndbase,int idMt);
  5576. void txCloseToolbar(TX* text);
  5577. void txReflectCc(TX* text,CMDLINECONTEXT* pcc,BOOL fProfile);
  5578. void ehHwndSetDisp(TX* text,RECT* rWork,BOOL fDisp);
  5579. void txAsStart(TX* text,BOOL fPrev);
  5580. void _txFlushMenuCheckExec(TX* text,HMENU hmenu,UINT mask);
  5581. void txFlushLyForInput(TX* text);
  5582. void txStatusbarFlushDispPagingmode(TX* text);
  5583. #endif    // !__TXC__
  5584.  
  5585. //##ツール
  5586.  
  5587. BOOL TXAPI_(323) txuiConvertCharZenhan(TX* text);
  5588. int TXAPI_(293) txCharConvert(TX* text,CHARCONVERT* cc);
  5589. BOOL TXAPI_(334) txCmpFirst(TX* text);
  5590. BOOL TXAPI_(335) txCmp(TX* text);
  5591. void TXAPI_(338) txIndentInc(TX* text);
  5592. void TXAPI_(339) txIndentDec(TX* text);
  5593. void TXAPI_(340) txHelpOpenW(TX* text,wchar* _wszfilename);
  5594. void TXAPI_(854) txHelpOpen(TX* text,mchar* szfilename);
  5595. void TXAPI_(331) txSwitchIme(TX* text);
  5596. BOOL TXAPI_(330) txuiImeConvert(TX* text);
  5597. BOOL TXAPI_(381) txuiConvertChar(TX* text);
  5598. BOOL TXAPI_(384) txuiQuote(TX* text);
  5599. BOOL TXAPI txQuoteEx(TX* text,mchar* szQuote,int mode);
  5600.     #define TXQUOTE_SELECT    0x01    // 範囲選択されてなかった時でも選択状態にする
  5601. // proof
  5602. #if UNIX && defined(_PROOF_C)
  5603.     // 何故かconflicting typesになるので宣言しない。
  5604. #else
  5605. int TXAPI_(921) txSpellCheck(TX* textTarget,TX* textDic,TX* textDicUser,HSTRBLK sbSplchkTempDic,struct tagLIST* list,DWORD scmode,BOOL (*procAbort)(void));
  5606. int TXAPI_(922) txWordStandardize(TX* textTarget,TX* textDic,struct tagLIST* list,DWORD mode,BOOL (*procAbort)(void));
  5607. #endif
  5608.     // txSpellCheckのフラグ
  5609.     #define SPLCHK_MASKSHORT    0x0000000F    // 0以外ならそれ以下の文字数の単語はチェックしない
  5610.     #define SPLCHK_NOUPPER        0x00000010    // 全て大文字の単語は無視
  5611.     #define SPLCHK_NODIGIT        0x00000020    // 数字の後、数字の手前の単語は無視
  5612.     #define SPLCHK_NOSENSECASE    0x00000040    // 大小文字を区別しない(未完成)
  5613.     #define SPLCHK_CUR            0x00000080    // カーソル位置、またはカーソル位置の手前の単語だけをチェック
  5614.     #define SPLCHK_NOURL        0x00000100    //WZ3.90L 981116 URLは無視
  5615.     // txSpellCheck,txWordStandardize兼用のフラグ
  5616.     #define SPLCHK_TXC            0x80000000    //WZ4.00Ca 991201 TX-Cからの呼び出し?
  5617. //
  5618. void TXAPI_(325) txInsertBrace(TX* text);
  5619. void TXAPI_(313) txJankToAnk(TX* text);
  5620. void TXAPI_(785) txJkanaToKana(TX* text);
  5621. void TXAPI_(786) txJkataToKana(TX* text);
  5622. void TXAPI_(787) txKanaToJhira(TX* text);
  5623. void TXAPI_(788) txKanaToJkata(TX* text);
  5624. void TXAPI_(789) txAnkToJank(TX* text);
  5625. // ソート
  5626. // WZ4.0/PWZ2.0C EOF行を含むソートもできるようになりました。
  5627. typedef struct {
  5628.     UINT sizeStruct;    // sizeof(SORTARG) for version check
  5629.     NPARA lineTop;        // ソート開始論理行(origin:1)
  5630.     NPARA lineEnd;        // ソート終了論理行(origin:1)
  5631.                         //WZ3.90I 981029 lineTop,lineEndがテキストの範囲を超えている場合は、
  5632.                         // テキストに収まる範囲をソートします。
  5633.                         // lineEndが0ならlineTopからテキストの終わりまでをソートします。
  5634.     IBUFF lchItem;        // 比較項目の最大長
  5635.                         // fCsvまたはchItemが0以外なら指定は無視されます。
  5636.                         // 0なら行末までを比較します。
  5637.                         // 行末までに \0 文字があれば、そこまでを比較します。
  5638.     IBUFF iItem;        // 比較項目位置:行先頭からのオフセット
  5639.                         // fCsvがONの場合は、行先頭項目を0とした、比較項目NOを指定します。
  5640.     BYTE chItem;        // 0を指定すると何もしません。
  5641.                         // 0以外を指定すると、iItem以降の最後のchItemの文字から
  5642.                         // 行末までを比較します。
  5643.                         // 行末までに \0 文字があれば、そこまでを比較します。
  5644.     FBOOL fCsv;            // 1にすると、タブで区切られたiItem番目の内容で比較します。
  5645.                         //WZ3.90I 981029 機能実装。
  5646.     FBOOL fBack;        // 逆順にソート?
  5647.     FBOOL fNoSenseCase;    // 半角英大小文字を区別しない
  5648. // result
  5649.     NPARA nparaCur;        //WZ3.90I 981029 0以外に指定すると、その段落がソート後にどこの段落に移動したかを返します。
  5650. // 以下は使われなくなりました。指定は無視されます。//WZ3.90I 981029 
  5651.     IBUFF lchLine;
  5652.     LPVOID pfuncCmpKey;
  5653.     LPARAM lCust;
  5654. // 以上は使われなくなりました。
  5655. // 拡張用予備
  5656.     BYTE reserved[16];
  5657. } SORTARG;
  5658. BOOL TXAPI_(846) TXHIGH txSort(TX* text,SORTARG* arg);
  5659. // テキストの変換
  5660. #if WZFUNC_EDITOR
  5661. enum {
  5662.     CT_PLAINTEXT,CT_CRTEXT,
  5663. //    CT_SYMBOLTEXT,    // これは要らないだろう。
  5664.     CT_AUTOFORMTEXT,
  5665.     #if WZFUNC_HTMLHIGH
  5666.     CT_HTML,
  5667.     #endif
  5668.     CT_TML,CT_WORDTEXT,
  5669.     CT_AUTOFORMTEXTOLD,CT_TABFORMTEXT,
  5670.     CT_CRTEXTMAIL=100    // for WZ MAIL
  5671. };
  5672. #else
  5673. enum {
  5674.     CT_PLAINTEXT,CT_CRTEXT,CT_TML,
  5675.     CT_CRTEXTMAIL=100    // for WZ MAIL
  5676. };
  5677. #endif
  5678. void TXAPI_(1009) txConvertText(TX* text,int ctSrc,int ctDst,HEADLINE_SET* headSrc,HEADLINE_SET* headDst,UINT mode);
  5679.     // (mode & 1)    fToClip
  5680. void TXAPI_(1095) txTabToSpace(TX* text);    // 選択中は選択内のみを変換。非選択中は全部変換。
  5681. //
  5682. #if !__TXC__
  5683. int txGetCT(TX* text);
  5684. void TXAPI txTabToSpacePrim(TX* text);
  5685. void TXAPI txSpaceToTab(TX* text);
  5686. void TXAPI txDeleteTailSpace(TX* text);
  5687. //
  5688. BOOL uiCustToolbar(mchar* szApp,mchar* szName);
  5689. BOOL txuiCustKey(TX* text);
  5690. void txKeylist(TX* text);
  5691. BOOL txCaseWord(TX* text,BOOL fToLower);
  5692. BOOL txuiConvertText(TX* text);
  5693. BOOL txuiRegFiletypeConnection(TX* text);
  5694. void SetExtRegTml(BOOL fSet);
  5695. void SetExtRegTxt(BOOL fSet);
  5696. void SetExtRegUnknown(BOOL fSet);
  5697. void SetExtRegTextsPwz(void);
  5698. //
  5699. BOOL txInsertFileWztext(TX* textInsert,wchar* wszfilename,int mode);
  5700. BOOL wordicGetExist(void);
  5701. BOOL txDicWord(TX* text);
  5702. void txAddRefer(TX* text,IFILE adr);
  5703. void uiHelp(int idStartHeadline);
  5704. BOOL txJumpThp(TX* text,mchar* szHeadline);
  5705. BOOL txGrepTagJump(TX* text);
  5706. BOOL CALLBACK dlgprocConvertChar(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  5707. void ccToCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5708. void ccFromCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5709. BOOL uiOpenHistFile(void);
  5710. #endif // !__TXC__
  5711.  
  5712. //##キー/IDMコマンド実行
  5713.  
  5714. BOOL TXAPI_(766) txKeySetWzcmd(TX* text,mchar* szKey,WZCMD wzcmd);
  5715. BOOL TXAPI_(619) txKeyLoad(TX* text);
  5716. BOOL TXAPI_(620) txKeyLoadFrame(TX* text);
  5717. BOOL TXAPI_(621) txKeyInit(TX* text);
  5718. #define txIdmToSzkey(text,wzcmd,szstr)    keyIdmToSzkey((text)->key,wzcmd,szstr)    //WZ3.90I 981103 txKeyWzcmdToSzstrから名称変更    //WZ4.00Ca 991212 #define化
  5719. BOOL TXAPI_(623) keymacroPlayStep(void);
  5720. BOOL TXAPI_(624) keymacroPlay(void);
  5721. BOOL TXAPI_(625) keymacroPlayN(int number);
  5722. BOOL TXAPI_(626) keymacroRecord(void);
  5723. BOOL TXAPI_(627) keymacroAddIdm(int idm);
  5724. BOOL TXAPI_(628) keymacroAddStr(mchar* szStr,BOOL fOverWrite);
  5725. BOOL TXAPI_(629) keymacroAddSearch(mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  5726. BOOL TXAPI_(934) keymacroGetBusy(void);
  5727. BOOL TXAPI_(630) txuiKeymacro(TX* text);
  5728. void TXAPI_(631) txInsertPreprocess(TX* text);
  5729. void TXAPI_(632) txInsertPostprocess(TX* text);
  5730. BOOL TXAPI_(634) wpathIsAutosave(wchar* wszfilename);
  5731. BOOL TXAPI_(635) txAutosaveGetFileNameW(TX* text,wchar wszfilename[CCHPATHNAME]);
  5732. void TXAPI_(636) txAutosaveExec(TX* text);
  5733. BOOL TXAPI_(637) txAutosaveAtQuit(TX* text);
  5734. BOOL TXAPI_(638) txAutosaveAtOpen(TX* text);
  5735. void TXAPI_(639) txAutosaveAtCmd(TX* text);
  5736. BOOL TXAPI_(640) txAutosaveDelete(TX* text);
  5737. BOOL TXAPI_(641) txAutosaveGetDelete(TX* text,wchar* wszfilename);
  5738. #define txWzkeyToSzkey(text,wzkey,szkey)    keyWzkeyToSzkey((text)->key,wzkey,szkey)    //WZ4.00Ca 991212 #define化
  5739. mchar* TXAPI_(404) szkeyToStr(mchar szkey[CCHKEY],mchar szstr[CCHWORD]);
  5740. void keylistCreate(void);
  5741. BOOL hwndControlProcWmKey(HWND hwnd);
  5742. BOOL txKeyProcMessage(TX* text,UINT message,WPARAM wParam,LPARAM lParam);    //WZ3.90I 981102 引数(BOOL fKeyD)廃止。TXAPI化中止。
  5743. BOOL txKeyProcMessageByMouse(TX* text,UINT message,WPARAM wParam,LPARAM lParam);
  5744. BOOL txPeekWM_CHAR(TX* text);
  5745. BOOL txPeekWM_SYSCHAR(TX* text);
  5746. int TXAPI_(164) txIdmExec(TX* text,int idm);    //WZ3.90I 981027 txIdmExecDirect廃止
  5747. int txIdmExecEx(TX* text,int idm,int nRepeat,UINT mode);
  5748.     #define TXIDM_KEYMACRO_ADD    0x01
  5749.     #define TXIDM_PRIM            0x02
  5750. BOOL txIdmExecFilehist(TX* text,int idm);
  5751. int TXAPI_(903) txIdmExecPrim(TX* text,int idm,UINT mode);    //WZ4.00Ac 990207 new
  5752.  
  5753. //##ウィンドウ
  5754.  
  5755. #define WNDTX_MOVING        0x0001    // 内部移動中
  5756.  
  5757. #define OFFSET_WNDTX_LEFT    4
  5758. #define OFFSET_WNDTX_TOP    6
  5759. #define OFFSET_WNDTX_CX        8
  5760. #define OFFSET_WNDTX_CY        10
  5761. #define OFFSET_WNDTX_FLAG    12
  5762. #define OFFSET_WNDTX_END    14
  5763.  
  5764. BOOL TXAPI_(261) uiWindowlist(TX* text);
  5765. int TXAPI_(252) textSearch(HWND hwnd);
  5766. HWND TXAPI_(253) textRead(int i);
  5767. void TXAPI_(262) wndtxSetActive(HWND hwndbase);
  5768. HWND TXAPI_(527) wndtxGetActive(HWND hwndbase);
  5769. BOOL TXAPI_(848) wndtxIsEditor(HWND hwndbase);
  5770. HWND TXAPI_(263) SearchTextW(wchar* szfilename);
  5771. HWND TXAPI_(865) SearchText(mchar* szfilename);
  5772. BOOL TXAPI_(328) txSwitchWindow(TX* text);
  5773. BOOL TXAPI_(918) wndtxTile(HWND reserved,int mode);    // reservedにはNULLを指定してください。
  5774.     #define TILE            'T'
  5775.     #define TILE_H            'H'
  5776.     #define TILE_V            'V'
  5777.     #define TILE_OVERLAP    'C'
  5778.     #define TILE_UNDO        'U'
  5779.     #define TILE_DUP        'D'
  5780. void TXAPI_(957) wndtxSetOriginalRect(HWND hwnd,RECT* r);
  5781. void TXAPI_(958) wndtxGetOriginalRect(HWND hwnd,RECT* r);
  5782. void TXAPI_(959) wndtxSetPosSizeWork(HWND hwnd,int x,int y,int cx,int cy);
  5783. HWND TXAPI_(984) wndtxGetLast(void);
  5784. HWND TXAPI_(985) wndtxGetPrev(HWND cur);
  5785. //
  5786. #if !__TXC__
  5787. WORD wndtxGetFlag(HWND hwnd);
  5788. HWND TXAPI wndGetTopPopupWindow(HWND hwndbase);
  5789. void wndtxSetMoving(HWND hwnd,BOOL fSet);
  5790. TX* hwndbaseIsMailer(void);
  5791. TX* hwndbaseIsTerm(void);
  5792. TX* hwndbaseIsHelp(void);
  5793. TX* hwndMailerGetText(HWND hwnd);
  5794. //
  5795. HWND textGetNext(HWND cur);
  5796. HWND textGetTop(void);
  5797. //
  5798. #if !WINDOWSCE
  5799. MT* txFindMtHwndbase(TX* text,HWND hwnd);
  5800. #endif
  5801. BOOL txMultiWindow(TX* text,BOOL fSaveAddress);
  5802. BOOL on_mt_WM_ACTIVATE(TX* text,HWND hwnd);
  5803. BOOL on_mt_WM_PAINT(TX* text,HWND hwnd);
  5804. BOOL on_mt_WM_SIZE(TX* text,HWND hwnd);
  5805. BOOL on_mt_txQuit(TX* text);
  5806. #endif // !__TXC__
  5807.  
  5808. //##マクロ/TX-C
  5809.  
  5810. typedef struct {    // コンパイラオプション
  5811.     WORD nErrorMessage;            // 最大出力エラーメッセージ数
  5812.     BBOOL fWarnFuncNotCall;        // WARNING"関数は呼ばれない"を出力?
  5813.     BBOOL fWarnSignMismatch;    // WARNING"符号のミスマッチ"を出力?
  5814.     BBOOL fWarnLoseDigit;        // WARNING"桁が失われる"を出力?
  5815.     BBOOL fReportTxapi;            // REPORT"変数自動定義"
  5816.     BBOOL fReportAutoDef;        // REPORT"関数呼び出し変換"
  5817.     BBOOL fNoTxcEx;                // TX-C拡張機能を使わない
  5818.     BBOOL modeStdout;            //1.00Fで仕様変更 [stdoutのオープン]
  5819.                                 //    0:エラー時だけ
  5820.                                 //    1:エラー,警告
  5821.                                 //    2:いつも
  5822.     BBOOL fAutoMake;            // .cをユーザが眺めてて、書き換えたりしてるうち、
  5823.                                 // うっかりautosaveされてしまうことがあるため
  5824.     BBOOL fNoAutoDef;            //2.00B 変数の自動定義を無効にする?
  5825.     BBOOL modePlatform;            //PWZ2BETA0.4 980530 TX-PCODEを実行するプラットフォーム
  5826.         #define TXC_PLATFORM_WINDOWS    0    // Windows95/NT4.0
  5827.         #define TXC_PLATFORM_WINDOWSCE1    1    // WindowsCE1.01
  5828.         #define TXC_PLATFORM_WINDOWSCE2    2    // WindowsCE2.0
  5829.         #define TXC_PLATFORM_UNIX        3    // UNIX
  5830.     mchar szpathOutput[CCHPATHNAME];    //PWZ2BETA0.4 980530 出力パス
  5831.     mchar szpathInclude[CCHPATHNAME*2];    //PWZ2BETA0.4 980530 includeパス
  5832.     mchar szpathMacro[CCHPATHNAME];        //PWZ2BETA0.4 980531 マクロパス
  5833. } TXCOPTION;
  5834. #define CCHEVENTMACROS    512    //WZ4.00Ca 991203 プラグインマクロ設定を最大512文字までに拡大。ユーザ要望。
  5835.  
  5836. BOOL    TXAPI_(868) macroExec(mchar* szMacro,TX* text);
  5837. FARPROC TXAPI_(814) txpcodeRegisterCallback(FARPROC procTxpcode,UINT nArg);
  5838. void    TXAPI_(815) txpcodeUnregisterCallback(FARPROC procRegistered);
  5839. #if 1//WZ4.00Db 000213 txSetHookWndproctextTxpcodeTail/txSetHookWndprocbaseTxpcodeTail追加
  5840. void    TXAPI_(246) txSetHookTxpcode(TX* text,FARPROC proc,UINT flag);
  5841.     #define HOOK_TXC        0x01
  5842.     #define HOOK_HWNDBASE    0x02
  5843.     #define HOOK_TAIL        0x04
  5844.     #define txSetHookWndproctextTxpcode(text,proc)    txSetHookTxpcode(text,proc,HOOK_TXC)
  5845.     #define txSetHookWndprocbaseTxpcode(text,proc)    txSetHookTxpcode(text,proc,HOOK_TXC|HOOK_HWNDBASE)
  5846.     #define txSetHookWndproctextTxpcodeTail(text,proc)    txSetHookTxpcode(text,proc,HOOK_TAIL|HOOK_TXC)
  5847.     #define txSetHookWndprocbaseTxpcodeTail(text,proc)    txSetHookTxpcode(text,proc,HOOK_TAIL|HOOK_TXC|HOOK_HWNDBASE)
  5848. #else
  5849. void    TXAPI_(246) txSetHookWndproctextTxpcode(TX* text,FARPROC procTxpcode);
  5850. void    TXAPI_(247) txSetHookWndprocbaseTxpcode(TX* text,FARPROC procTxpcode);
  5851. #endif
  5852. void    TXAPI_(883) txReleaseHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,BOOL fHwndbase);
  5853.     #define txReleaseHookWndproctext(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,FALSE)
  5854.     #define txReleaseHookWndprocbase(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,TRUE)
  5855. FARPROC TXAPI_(1107) macroGetTxpcode(mchar* szMacro);    //WZ4.00Ca 991204 new
  5856. #if __TXC__
  5857. DWORD   TXAPI_(1108) txpcodeCallAddress(FARPROC pc,UINT nArg,LPVOID pArg);    //WZ4.00Ca 991204 new
  5858. #endif
  5859. #if !defined(_COMPILE_H) || defined(TXC_CLIENT)
  5860. void TXAPI_(1109) WINAPI txcLoadConfig(TXCOPTION* copt);
  5861. #endif
  5862. void TXAPI_(1110) txcSaveConfig(TXCOPTION* copt);
  5863.  
  5864.  
  5865. #if !TXC
  5866. void txpcodeNotifyTextOpen(TX* text);
  5867. void txReleaseHookWndprocAll(TX* text,TXWNDHOOK* root);
  5868. void txwndhookOnFree(TXWNDHOOK* item);
  5869. void txwndhookOnAlloc(TXWNDHOOK* item);
  5870. LRESULT CALLBACK dialogCallDlgprocTxpcode(FARPROC proc,HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  5871. void txpcodeNotifyTextClose(TX* text);
  5872. void txpcodeSetDlgproc(FARPROC proc,BOOL fRelease);
  5873. void txTextvarFreeAll(TX* text);
  5874. WZCMD szMacroToWzcmd(mchar* szMacro);
  5875. mchar* wzcmdToSzmacro(WZCMD wzcmd);
  5876. BOOL txIDM_MACRO_COMPILE(TX* text);
  5877. BOOL txIDM_MACRO_EXEC(TX* text);
  5878. BOOL txIDM_MACRO_DUMP(TX* text);
  5879. void txIDM_MACRO_LOG(TX* text);
  5880. BOOL txeExec(mchar* szfilename,wchar* wszCmdLine);
  5881. void macroTerm(void);
  5882. mchar* txcGetsetEventMacro(mchar szEventMacros[CCHEVENTMACROS],BOOL fSet);
  5883. mchar* txcGetEventMacro(mchar buff[CCHEVENTMACROS]);
  5884. mchar* szEventMacrosSetError(mchar szEventMacros[CCHEVENTMACROS],mchar* p);
  5885. void txcCloseCompileStatWindow(void);
  5886. BOOL wpathSearchMacroPath(wchar* dst,wchar* wszfilename,wchar* wszexts);
  5887. #endif // !__TXC__
  5888.  
  5889. //##自動整形
  5890.  
  5891. typedef struct {
  5892.     int lch;                // 段落書式の長さ(lchIndent+lchArticle+lchSubtitle)
  5893.     int lchIndent;            // 字下げ文字列の長さ
  5894.     int lcxIndent;            //WZ3.90L 981115 字下げ文字列のLCX
  5895.     int lchArticle;            // 箇条書きの長さ
  5896.     int lchSubtitle;        // 小見出文字列の長さ
  5897.     int lchSubtitleBody;    // 小見出文字列の末尾の空白を除く長さ
  5898.     int lchSubtitleSymbol;    //WCE1.01 980113 小見出しの先頭部分の記号列(一般文字を除く)の長さ
  5899.     int nBeamtab;            //WZ3.90L 981115 桁揃えによる折り返し2行目以降の開始位置
  5900.     FBOOL fSubtitleChar;    //WCE1.01 980113 小見出し文字列は文字列(記号列でない)?
  5901.     FBOOL fArticleNum;        // 番号付き箇条書き段落?
  5902.     FBOOL fArticleJnumber;    // szArticleは全角番号付きか?
  5903.     SIGNED_WORD nArticle;    // 先頭番号
  5904.     SIGNED_WORD ichNum;        // szArticleの番号のオフセット
  5905.     SIGNED_WORD lchNum;        // szArticleの番号の長さ
  5906.     FBOOL fCurArticleNext;    //WCE1.01 971226 カーソル位置が箇条書きの直後にある?
  5907. } APFU_ANALYZE;
  5908. extern mchar _szLineTop[];
  5909.  
  5910. int TXAPI_(642) txApfuGetLcxLeft(TX* text,IBUFF offset,APFU_ANALYZE* ana,NPARA npara);
  5911. BOOL TXAPI_(643) txApfuIndentInc(TX* text);
  5912. BOOL TXAPI_(644) txApfuIndentDec(TX* text);
  5913. void TXAPI_(382) txApfInsertHR(TX* text);
  5914. BOOL TXAPI_(383) txuiApfConfig(TX* text);
  5915. BOOL TXAPI_(971) txApfEnter(TX* text);
  5916. BOOL TXAPI_(935) txApfEnterConnect(TX* text);
  5917. BOOL TXAPI_(936) txApfEnterDeleteParaform(TX* text);
  5918. BOOL TXAPI_(937) txApfEnterModal(TX* text);
  5919. BOOL TXAPI_(939) txApfEnterConnectPrev(TX* text);
  5920. BOOL TXAPI_(940) txApfExit(TX* text);
  5921. void TXAPI_(941) txApfIncrementArticle(TX* text);
  5922. BOOL TXAPI_(943) txApfCheckEnter(TX* text);
  5923. BOOL TXAPI_(944) txApfIndentInc(TX* text);
  5924. BOOL TXAPI_(945) txApfIndentDec(TX* text);
  5925. //
  5926. #if !__TXC__
  5927. mchar* mystrread(mchar* sz,TXCHAR* ch);
  5928. BOOL txApfExitModal(TX* text);
  5929. BOOL txApfExitEx(TX* text,DWORD mode);
  5930.     #define APF_TO_PLAINTEXT    0x01
  5931.     #define APF_TO_TML            0x02    //WZ3.90K 981113 
  5932. BOOL txApfAtInsertBefore(TX* text);
  5933. BOOL txApfAtInsertAfter(TX* text);
  5934. void txApfExitFlag(TX* text);
  5935. int txApfGetWidth(TX* text);
  5936. int txApfGetLcxScenarioSerifuIndent(TX* text);
  5937. //
  5938. void txMailtextToPlaintext(TX* text);
  5939. void txPlaintextToMailtext(TX* text);
  5940. void txPlaintextToWordtext(TX* text);
  5941. #endif // !__TXC__
  5942.  
  5943. //##設定
  5944.  
  5945. void TXAPI_(607) txConfigGetGroupName(TX* text,mchar szbuff[CCHWORD]);
  5946. void TXAPI_(608) txConfigGetNamePrim(TX* text,mchar szbuff[CCHWORD]);
  5947. BOOL txConfigGetNamePrimEx(TX* text,mchar szbuff[CCHWORD]);
  5948. LPVOID TXAPI_(609) txConfigGetName(TX* text,mchar szbuff[CCHWORD]);
  5949. BOOL TXAPI_(610) txConfigGet(TX* text);
  5950. BOOL txConfigextGetExist(TX* text,mchar* sz);
  5951. BOOL TXAPI_(611) txConfigAdd(TX* text,mchar* szName);
  5952. BOOL TXAPI_(612) txConfigConnect(TX* text,mchar* szLoad);
  5953. BOOL TXAPI_(613) txConfigSet(TX* text);
  5954. BOOL TXAPI_(614) txConfigSetEx(TX* text);
  5955. void TXAPI_(914) txConfigRead(TX* text,mchar* szcfg);    //WZ4.00Bl 990913 設定切替TXAPI txConfigReadを追加。ユーザ要望。WZ3のように設定を1キーで切替たい。
  5956. void txConfigGetPlug(TX* text);
  5957. BOOL txConfigReadName(TX* text,mchar* szName);
  5958. BOOL txConfigDel(TX* text,mchar* szName);
  5959. //
  5960. void TXAPI_(615) txProfileAdd(TX *text);
  5961. BOOL TXAPI_(616) txProfileLoad(TX* text,PROFILE* pLoad);
  5962. BOOL txProfileLoadPrim(TX* text,PROFILE* pLoad);
  5963. //
  5964. #if !__TXC__
  5965. TX* shconfigGetText(void);
  5966. void shconfigInit(void);
  5967. BOOL shconfigWriteConfigshare(void);
  5968. BOOL shconfigWriteTextconfigshare(TX* text);
  5969. void shconfigSaveAtEdited(void);
  5970. //
  5971. void configtxMakeList(LPVOID dst,UINT mode);
  5972. BOOL configtxNameIsSystem(mchar* p);
  5973. BOOL configtxUpdown(mchar* szName,BOOL fDown,BOOL fTml);
  5974. void textcfgWriteAllModal(void);
  5975. void textcfgReadAll(void);
  5976. void shconfigReadTextconfigshare(TX* text);
  5977. //
  5978. BOOL histLoad(void);
  5979. BOOL histSave(void);
  5980. //
  5981. #if 0
  5982. typedef struct {
  5983.     TX* text;
  5984.     BOOL fTextAllocate;
  5985.     int dataid;
  5986.     int datalen;
  5987.     BOOL fName;
  5988. } CONFIG;
  5989. BOOL configOpen(CONFIG* config,wchar* wszFilename);
  5990. BOOL configSetDataid(CONFIG* config,int dataid,int datalen,BOOL fName);
  5991. int configGetCount(CONFIG* config);
  5992. mchar* configGetName(CONFIG* config,int index);
  5993. int configFind(CONFIG* config,mchar* szName);
  5994. BOOL configRead(CONFIG* config,int index,LPVOID pConfig);
  5995. BOOL configWrite(CONFIG* config,int index,LPVOID pConfig);
  5996. BOOL configDelete(CONFIG* config,int index);
  5997. BOOL configRename(CONFIG* config,int index,mchar* szNewName);
  5998. int configAdd(CONFIG* config,mchar* szName,LPVOID pConfig);
  5999. int configMakeList(CONFIG* config,HWND hctrl);
  6000. void configClose(CONFIG* config);
  6001. #endif
  6002. //
  6003. void txConfigtextRead(TX* text);
  6004. IFILE txConfigtextWrite(TX* text,IFILE adr);
  6005. IFILE txConfigtextDelete(TX* text,IFILE adr);
  6006. void txConfigtextGetOriginal(TX* text);
  6007. void txSetConfigExtDefaultHeadline(TX* text);
  6008. void txCopyConfigext(TX* text,TX* textTarget);
  6009. //
  6010. mchar** txCfszGetHeadline(TX* text,int iHeadline);
  6011. void txCfszFree(TX* text);
  6012. //
  6013. #define CFGLIST_STRBLK        0x0000    // strblkに出力
  6014. #define CFGLIST_LISTBOX        0x0100    // listboxに出力
  6015. #define CFGLIST_GETOP(mode)    ((mode) & 0xFF)
  6016. #define CFGLIST_ALL            0        // 設定名の一覧をすべて出力
  6017. #define CFGLIST_NAME        1        // 名前のみを出力。拡張子で始まる名前は出力しない
  6018. #define CFGLIST_EXT_NAME    2        // "拡張子" + " (名前)"を出力
  6019. #define CFGLIST_NAMESEL        3        // CFGLIST_NAMEと同じだが、CとHTMLを表示しない。    //WZ3.90N 981202 
  6020.                                     //WZ3.90P 981205 TMLタグを使う設定も表示しない
  6021. #define CFGLIST_NAMESELTML    4        // CFGLIST_NAMESELと同じだが、TMLタグを使う設定のみを表示    //WZ3.90P 981205 
  6022. int _textmsgMakeList(TX* text,LPVOID dst,UINT mode);
  6023. int textmsgMakeList(TX* text,HWND hctrl);
  6024. void _cfglistAdd(LPVOID dst,UINT mode,mchar* szName);
  6025. void _cfglistClear(LPVOID dst,UINT mode);
  6026. int cfglistAdd(LPVOID dst,UINT mode,mchar* szItem);
  6027. //
  6028. BOOL szextIsMail(mchar* szext);
  6029. BOOL szextIsNote(mchar* szext);
  6030. BOOL szextIsMailPreview(mchar* szext);
  6031. #if WZFUNC_TEXTCFGBIN
  6032.     void shSetConfigChanged(mchar* szName);
  6033. #else
  6034.     #define shSetConfigChanged(szName)
  6035. #endif
  6036. void txSetGetCommonfont(TX* text,BOOL fSet);
  6037. void sbSetupConfigName(HSTRBLK sb);
  6038. void txConfigFlushFilekind(TX* text);
  6039. void txInsertConfigtextNone(TX* text);
  6040. void txSetConfigDefaultDev(TX* text,mchar* szext);
  6041. #endif // !__TXC__
  6042.  
  6043. //##ファイル
  6044.  
  6045. BOOL TXAPI_(259) forkexW(wchar* szfilename,wchar* sw,UINT mode,TXFORKRESULT* pResult);
  6046.     // szfilenameのファイルをオープンします。
  6047.     // szfilenameにスイッチ指定を含むことはできません
  6048.     // 空白を含むファイル名もszfilenameにそのまま指定できます
  6049.     // szfilenameは""で括ってあっても構いません
  6050.     // szswに、起動オプションを指定できます。
  6051.     // オープンできたらTRUE
  6052.     // 既にオープンされていたらその窓をアクティブにしてFALSE、
  6053.     // オープンできなかったらFALSEを返します。
  6054.     // modeにはTXFORK_XXXを指定します。_text.hを参照してください。
  6055.     #define TXFORK_NODISP            0x0001    // ウィンドウを表示しない
  6056.     #define TXFORK_CLOSE_NULL        0x0002    // 現在のtextが無題ファイルで内容が空なら閉じる
  6057.     #define TXFORK_CLOSE_TEXT        0x0004    // 現在のtextを強制的に閉じる
  6058.     #define TXFORK_FORKWZ_ENABLE    0x0008    // 高速オープンができなければ、
  6059.                                             // 別WZを起動することも検討する
  6060.     #define TXFORK_FORKWZ            0x0010    // 別WZを起動してオープンする
  6061.                                             // TXFORK_REPLACE_NULLが指定されている場合、
  6062.                                             // TXFORK_REPLACE_NULLができれば別WZは起動しない
  6063.     #define TXFORK_SYNC                0x0020    // (未完成です)
  6064.                                             // 返り値は、szfilenameの窓のhwndbase。
  6065.                                             // オープンできなかったらNULL
  6066.                                             // 別WZを起動してオープンした場合は、
  6067.                                             // オープン処理が終わるまで待つ。
  6068.     #define TXFORK_ENABLE_MULTI        0x0080    // szfilenameが既にオープンされていても
  6069.                                             // 構わずオープンする。
  6070.     #define TXFORK_REPLACE_NULL        0x0100    // 現在のtextが無題ファイルで内容が空なら
  6071.                                             // 閉じて再利用する
  6072.     #define TXFORK_REPLACE_TEXT        0x0200    // 現在のtextを強制的に閉じて
  6073.                                             // 再利用する
  6074. BOOL TXAPI_(260) forkstdW(wchar* szfilename,wchar* sw);
  6075. BOOL TXAPI_(781) forkstd(mchar* szfilename,mchar* szsw);
  6076. BOOL TXAPI_(955) forkstdPrimW(wchar* wszfilename,wchar* wszsw,int modeFileOpen);    //WZ3.90F 980820 
  6077. //
  6078. BOOL TXAPI_(257) TXHIGH txSave(TX* text);
  6079. BOOL TXAPI_(258) TXHIGH txSaveToW(TX* text,wchar* wszfilename);
  6080. BOOL TXAPI_(805) TXHIGH txSaveTo(TX* text,mchar* szfilename);
  6081. BOOL TXAPI_(266) txuiSave(TX* text);
  6082. BOOL TXAPI_(267) txuiSaveAs(TX* text);
  6083. BOOL TXAPI_(268) txuiSaveAsVz(TX* text);
  6084. BOOL TXAPI_(269) txuiSaveTo(TX* text);
  6085. BOOL TXAPI_(271) txuiClose(TX *textClose);
  6086. BOOL TXAPI_(264) txuiCloseAllEvery(TX* text);
  6087. int txuiCloseEvery(TX* text,HWND hwndbase);
  6088. void TXAPI_(265) txQuit(TX* text);
  6089. BOOL TXAPI_(274) txuiReopenInternal(TX* text);
  6090. BOOL TXAPI_(275) txReopenInternalExW(TX* text,wchar* szfilenameNew,BOOL fJumpOld,CMDLINECONTEXT* cc);
  6091.     #define RIEX_JUMPOLD            0x01
  6092. BOOL TXAPI_(276) txuiFileOpen(TX* text);
  6093. BOOL TXAPI_(277) txuiFileOpenVz(TX* text);
  6094. //
  6095. TX* TXAPI_(254) txAllocText(DWORD mode);
  6096.     #define textalloc()    txAllocText(0)    //PWZ2BETA0.3 980519 
  6097. void TXAPI_(255) txFreeText(TX* text);
  6098. TX* TXAPIBASE TXAPI_(96) textopenW(wchar* wszfilename);
  6099. TX* TXAPIBASE TXAPI_(97) textopen(mchar* szfilename);
  6100.     #define textnew()    textopen(NULL)    //PWZ2BETA0.4 980610 
  6101. TX* TXAPIBASE TXAPI_(916) textopenExW(wchar* wszfilename,UINT mode);    //WZ4.00Bm 990928 new
  6102. TX* TXAPIBASE TXAPI_(917) textopenEx(mchar* szfilename,UINT mode);    //WZ4.00Bm 990928 new
  6103.     #define TXO_KCAUTO        0x00000001    // 文字コードを自動判別
  6104.     #define TXO_CRAUTO        0x00000002    // 改行コードを自動判別
  6105.     #define TXO_KCAUTOMODAL    0x00000004    // 設定に従って文字コードを自動判別
  6106.     #define TXO_CRAUTOMODAL    0x00000008    // 設定に従って改行コードを自動判別
  6107.     #define TXO_LINED_0        0x00000010    // fLineDをクリアして開く
  6108.     #define TXO_TML            0x00000020    // TMLファイルとして開く
  6109. TX* TXAPI_(861) textFrameOpenEx(mchar* szfilename,mchar* szsw);
  6110.     #define textFrameOpen(szfilename) textFrameOpenEx(szfilename,NULL)
  6111. void TXAPIBASE TXAPI_(98) textclose(TX* text);
  6112. BOOL TXAPI_(924) txuiIsClose(TX* text);
  6113. //
  6114. BOOL TXAPI_(256) txuiGetOpenFileNameW(TX* text,wchar wszfilename[CCHPATHNAME],wchar* wszCaption,TXOFN_ARG* arg);
  6115. BOOL TXAPI_(807) txuiGetOpenFileName(TX* text,mchar szfilename[CCHPATHNAME],mchar* szCaption,TXOFN_ARG* arg);
  6116. //
  6117. BOOL TXAPI_(949) txAutosaveAtOpenEx(TX* text,BYTE autosaveAtOpen);
  6118. BOOL TXAPI_(950) txGetBackupFilenameW(TX* text,wchar* wszfilename,wchar dst[CCHPATHNAME]);
  6119. //
  6120. void TXAPI_(952) txFileLockModal(TX* text);
  6121. BOOL TXAPI_(953) txFileUnlock(TX* text);
  6122. BOOL TXAPI_(954) txFileLoadAllUnlock(TX* text);
  6123. //
  6124. #if !__TXC__
  6125. BOOL txuiGetOpenFileNameHtml(TX* text,mchar szfilename[CCHPATHNAME],mchar* szmask);
  6126. BOOL txuiFileOpenPrim(TX* text,int modeFileOpen,TXOFN_ARG* arg);
  6127. BOOL TXAPI txuiFileOpenReadVz(TX* text);
  6128. BOOL txuiProject(TX* text,int mode);
  6129. void txProjectOpen(TX* text);
  6130. //
  6131. BOOL txSaveEh(TX* text);
  6132. BOOL txuiSaveMacroFile(TX* text);
  6133. void txCheckFiletimeActive(TX* text);
  6134. BOOL txConvertForSaveAs(TX* text,int modeSaveAs,wchar* wszfilename,BOOL* pfFileout);
  6135. //
  6136. BOOL txuiConfirmNewfile(TX* text,CMDLINECONTEXT* pcc,wchar* wszfilename);
  6137. BOOL TXAPI txOpenMail(TX* text,mchar* szMailAddress);
  6138. void txOpenProcFrameText(TX* text,CMDLINECONTEXT* pcc);
  6139. void txOpenNewInstance(TX* text,BOOL fPost);
  6140. void txSetImeAtOpen(TX* text);
  6141. void txNew(TX* text,BOOL fNewProcess);
  6142. BOOL txuiNew(TX* text);
  6143. void txQuitPost(TX* text);
  6144. //
  6145. BOOL txAutosaveGetOverwrite(TX* text);
  6146. #define txAutosaveGetBackup(text)    (!txAutosaveGetOverwrite(text))    //PWZ2BETA0.3 980510 new
  6147. //
  6148. void txSetFileShare(TX* text,int modeFileShare);
  6149. void SetReadAll(TX* text);
  6150. BOOL TXHIGH txReadAll(TX* text);
  6151. //
  6152. BOOL fileIsWztext_W(wchar* wszfilename);    // for WZ3 wz文書ファイル
  6153. #endif // !__TXC__
  6154.  
  6155. //##IBUFF操作
  6156.  
  6157. IFILE TXAPI_(650) TXHIGH txIfileGetParaTop(TX* text,IFILE ifile);
  6158. IFILE TXAPI_(651) TXHIGH txIbuffToIfile(TX* text,IBUFF ibuff);
  6159. IBUFF TXAPI_(652) TXHIGH txIfileToIbuff(TX* text,IFILE ifile);
  6160. IBUFF TXAPI_(653) TXHIGH txGetGapSize(TX* text);
  6161. IBUFF TXHIGH txIbuffGetGapTop(TX* text);
  6162. IBUFF TXHIGH txIbuffGetGapEnd(TX* text);
  6163. IBUFF TXAPI_(654) TXHIGH txIbuffGetCurParaTop(TX* text);
  6164. IBUFF TXAPI_(655) TXHIGH txIbuffGetChartop(TX* text,IBUFF ibuff);
  6165. IBUFF TXAPI_(656) TXHIGH txIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  6166. IBUFF TXAPI_(657) TXHIGH txfIbuffGetChartop(TX* text,IBUFF ibuff);
  6167. IBUFF TXAPI_(658) TXHIGH txfIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  6168. IBUFF TXAPI_(659) TXHIGH txfIbuffFlushOffset(TX* text,IBUFF ibuffChartop,IBUFF offset);
  6169. IBUFF TXAPI_(660) TXHIGH txIbuffFlushOffset(TX* text,IBUFF ibuffChartop,IBUFF offset);    //XZ0.1 990524 (int offset) -> (IBUFF offset)
  6170. BOOL TXAPI_(661) txBuffCheckInsert(TX* text,DWORD size);
  6171. BOOL TXAPI_(662) txIbuffIsParaTop(TX* text,IBUFF ibuff);
  6172. BOOL TXAPI_(663) txIbuffIsCharTop(TX* text,IBUFF ibuff);
  6173. IBUFF TXAPI_(664) txIbuffGetCrTop(TX* text,IBUFF ibuff);
  6174. IBUFF TXAPI_(665) txIbuffGetParaTop(TX* text,IBUFF ibuff);
  6175. BOOL TXAPI_(666) txIbuffIsParaEnd(TX* text,IBUFF ibuff);
  6176. BOOL txIbuffIsEof(TX* text,IBUFF ibuff);
  6177. IBUFF TXAPI_(667) txIbuffGetParaEnd(TX* text,IBUFF ibuff);
  6178. IBUFF txIbuffGetParaEndLimit(TX* text,IBUFF ibuff,IBUFF maxlen);
  6179. IBUFF TXAPI_(1087) txIbuffGetParaContentEnd(TX* text,IBUFF ibuff);
  6180. IBUFF TXAPI_(1093) txIbuffGetPrevPara(TX* text,IBUFF ibuff);
  6181. IBUFF TXAPI_(668) txIbuffGetNextPara(TX* text,IBUFF ibuff);
  6182. #define txIfileGetNextPara(text,ifile)    txIbuffToIfile(text,txIbuffGetNextPara(text,txIfileToIbuff(text,ifile)))
  6183. // IFILEの文字サイズを取得(CHAR_TXF対応)
  6184. #define txIfileGetCharsize(text,ifile) txGetCharSize(text,txIfileToIbuff(text,ifile))
  6185. BOOL TXAPI_(670) txIbuffIsTop(TX* text,IBUFF ibuff);
  6186. BYTE TXAPI_(671) txIbuffGetPrevByte(TX* text,IBUFF ibuff);
  6187. BOOL TXAPI_(982) txIbuffIsUrl(TX* text,IBUFF ibuff);
  6188. BOOL TXAPI_(983) txIbuffJumpLink(TX* text,IBUFF ibuff);
  6189. TXCHAR TXHIGH TXAPI_(1094) txIbuffGetChar(TX* text,IBUFF ibuff);
  6190.  
  6191. #if !__TXC__
  6192. IBUFF txIbuffFromNpara(TX* text,NPARA npara);    //WZ4.00Bj 990824 new
  6193. IBUFF txIbuffFromNparaEx(TX* text,NPARA npara,IBUFF ibuffStart,NPARA nparaStart);
  6194. NPARA txIbuffGetNpara(TX* text,IBUFF ibuff);
  6195. IBUFF txIfileGetTop(TX* text);
  6196. IBUFF txIbuffFromLy(TX* text,int ly,IBUFF* pCurysize);
  6197. BOOL txIbuffIsNspace(TX* text,IBUFF ibuff,int n);
  6198. NPARA GetNparaFromOffset(TX* text,IBUFF offset);
  6199. #endif // !__TXC__
  6200.  
  6201. //##アンドゥ/世代管理
  6202.  
  6203. BOOL TXAPI_(210) txUndo(TX* text);
  6204. BOOL TXAPI_(211) txRedo(TX* text);
  6205. BOOL TXAPI_(332) TXHIGH_THROUGH txUndoPara(TX* text);
  6206. BOOL TXAPI_(333) txuiGene(TX* text);
  6207. void TXAPI_(1068) txUndoPackStart(TX* text);
  6208. BOOL TXAPI_(1069) txUndoPackEnd(TX* text);
  6209. #if !__TXC__
  6210. BOOL undoGetEditAble(TX* text);
  6211. void undoInit(TX* text);
  6212. void undoTerm(TX* text);
  6213. void undoAddDeleteSelect(TX* text,DWORD address,DWORD size);
  6214. void undoAddDelete(TX* text,DWORD sizedelete);
  6215. void undoAddInsert(TX* text,IFILE address,LPVOID pinsert,DWORD sizeinsert,BOOL fMove);
  6216. void undoAddOpen(TX* text);
  6217. void undoAddCellFlush(TX* text,BOOL fStart);
  6218. BOOL undoSaveW(TX* text,wchar *wszfilename,FILETIME* ft,FILETIME* ft0);
  6219. BOOL undoClear(TX* text);
  6220. BOOL undoGetAble(TX* text);
  6221. BOOL redoGetAble(TX* text);
  6222. void undoAddAutoForm(TX* text,BOOL fEnd);
  6223. BOOL geneReadText(TX* textTarget,int igene,TX* text);
  6224. #endif // !__TXC__
  6225.  
  6226. //##メッセージ(RFC822)テキスト処理
  6227.  
  6228. TX* TXAPI_(990) textmsgopen(mchar* szfilename,mchar* szName);
  6229. BOOL TXAPI_(991) textmsgclose(TX* text);
  6230. BOOL TXAPI_(992) txMsghdrGetsetInt(TX* text,mchar* szHeader,int* data,BOOL fSet);
  6231. BOOL TXAPI_(993) txMsghdrGetsetIntB(TX* text,mchar* szHeader,BYTE* data,BOOL fSet);
  6232. BOOL TXAPI_(994) txMsghdrGetsetIntW(TX* text,mchar* szHeader,WORD* data,BOOL fSet);
  6233. void TXAPI_(995) txMsghdrGetsetIntInit(TX* text,mchar* szHeader,int initdata,int* data,BOOL fSet);
  6234. void TXAPI_(996) txMsghdrGetsetIntInitB(TX* text,mchar* szHeader,int initdata,BYTE* data,BOOL fSet);
  6235. void TXAPI_(997) txMsghdrGetsetIntInitW(TX* text,mchar* szHeader,int initdata,WORD* data,BOOL fSet);
  6236. BOOL TXAPI_(998) txMsghdrGetsetString(TX* text,mchar* szHeader,mchar* szbuff,int cchbuff,BOOL fSet);
  6237. void TXAPI_(999) txMsghdrGetsetStringInit(TX* text,mchar* szHeader,mchar* szInit,mchar* szbuff,int cchbuff,BOOL fSet);
  6238. BOOL TXAPI_(1127) txMsghdrGetsetStringW(TX* text,mchar* szHeader,wchar* szbuff,int wcchbuff,BOOL fSet);
  6239. BOOL TXAPI_(1001) txMsghdrGetString(TX* text,mchar* szHeader,mchar* szDefault,mchar* szbuff,int cchbuff);
  6240. BOOL TXAPI_(1002) txMsghdrSet(TX* text,mchar* szHeader,mchar* szContent);
  6241. BOOL TXAPI_(1008) txMsghdrGetsetStrblk(TX* text,mchar* szHeader,HSTRBLK sb,BOOL fSet);
  6242.  
  6243. #if !__TXC__
  6244. int txMsghdrGet(TX* text,mchar* szHeader,mchar** pSz);
  6245. int txMsghdrGetInt(TX* text,mchar* szHeader,int intDefault);
  6246. BOOL txMsghdrGetStringW(TX* text,mchar* szHeader,wchar* szDefault,wchar* szbuff,int cchbuff);
  6247. int txMsghdrGetAlloc(TX* text,mchar* szHeader,mchar** pSz);
  6248. BOOL txMsghdrSetInt(TX* text,mchar* szHeader,int data);
  6249. BOOL txMsghdrGetExist(TX* text,mchar* szHeader);
  6250. BOOL txMsghdrJumpHeader(TX* text,mchar* szHeader);
  6251. BOOL txMsghdrSetFiletimeWzdate(TX* text,mchar* szHeader,FILETIME* filetime);
  6252. BOOL txMsghdrSetChoice(TX* text,mchar* szHeader,int data,mchar** tsz);
  6253. int txMsghdrGetChoice(TX* text,mchar* szHeader,int intDefault,mchar** tsz);
  6254. DWORD txMsghdrGetBinary(TX* text,mchar* szHeader,LPVOID pData);
  6255. BOOL txMsghdrSetW(TX* text,mchar* szHeader,wchar* wszContent);
  6256. BOOL txMsghdrSetBinary(TX* text,mchar* szHeader,DWORD sizedata,LPVOID pdata);
  6257. void txMsgJumpMsgTop(TX* text);
  6258. BOOL txMsghdrSetEx(TX* text,mchar* szHeader,mchar* szContent,int lchContent);
  6259. int txMsghdrGetContentMultiline(TX* text,int lchHeader,mchar** pSz);
  6260. BOOL txMsghdrDeleteMultiline(TX* text,mchar* szHeader);
  6261. BOOL txMsghdrSetTextbuff(TX* text,mchar* szHeader);
  6262. TEXTCHAR* txMsghdrGetTextbuff(TX* text,mchar* szHeader);
  6263. BOOL txMsghdrDelete(TX* text,mchar* szHeader);
  6264. BOOL TXHIGH txIbuffIsMsgsepa(TX* text,IBUFF ibuff);
  6265. //
  6266. BOOL textmsgDel(TX* text,mchar* szName);
  6267. void textmsgAdd(TX* text,mchar* szName);
  6268. BOOL textmsgSearch(TX* text,mchar* szName);
  6269. int textmsgMakeList(TX* text,HWND hctrl);
  6270. BOOL textmsgUp(TX* text,mchar* szName);
  6271. BOOL textmsgDown(TX* text,mchar* szName);
  6272. BOOL textmsgSetNull(TX* text,mchar* szName);
  6273. BOOL textmsgNext(TX* text);
  6274. TX* textmsgopenWzapp(mchar* szName);
  6275. BOOL textmsgGetRecord(TX* text,mchar* szName);
  6276. BOOL textmsgJumpTop(TX* text);
  6277. #endif // !__TXC__
  6278.  
  6279. //##初期化/オープン/クローズ
  6280.  
  6281. void TXAPI_(137) txInitText(TX* text);
  6282. BOOL TXAPI_(138) txSetFileNameW(TX* text,wchar* wszfilename);
  6283. BOOL TXAPI_(808) txSetFileName(TX* text,mchar* szfilename);
  6284. BOOL txSetFileNamePrimW(TX* text,wchar* wszfilename);
  6285. BOOL TXAPI_(139) txOpenText(TX* text);
  6286. BOOL TXAPI_(140) txClose(TX* text);
  6287. BOOL Init(TX* text,BOOL fTxDeleteText);
  6288. void txInitConfig(TX* text);
  6289. void txFreeColor(TX* text);
  6290. BOOL txCreateWindow(TX* text);
  6291. BOOL Exit(void);
  6292.  
  6293. //##TXF
  6294.  
  6295. BOOL TXAPI_(673) txfTagIsSingle(TEXTCHAR* pTag);
  6296. BOOL TXAPI_(674) txfTagIsChar(TEXTCHAR* pTag);
  6297. BOOL TXAPI_(675) txfTagIsEnd(TEXTCHAR* pTag);
  6298. BOOL TXAPI_(676) txfTagIsPara(TEXTCHAR* pTag);
  6299. BOOL TXAPI_(677) txfTagIsParaMulti(TEXTCHAR* pTag);
  6300. int TXAPI_(678) txfTagGetLch(TEXTCHAR* pTag);
  6301. TEXTCHAR* TXAPI_(679) txfTagGetName(TEXTCHAR* pTag);
  6302. BOOL TXAPI_(680) txfTagNameIs(TEXTCHAR* pName,TEXTCHAR* pTagname);
  6303. int txfTagNameGetLch(TEXTCHAR* pName);
  6304. BOOL TXAPI_(681) txfTagIsBeam(TEXTCHAR* pTag);
  6305. BOOL TXAPI_(682) txfTagAnalyze(TAGANA* ana,TEXTCHAR* pTag);
  6306. int TXAPI_(683) txfTagInsert(TX* text,TAGANA* ana);
  6307. int TXAPI_(684) txfTagInsertEx(TX* text,TAGANA* ana,TEXTCHAR* szAtr);
  6308. void TXAPI_(685) txfTagInsertBeam(TX* text,int lx);
  6309. void TXAPI_(686) txfTagnestFree(TX* text);
  6310. void TXAPI_(687) txfTagnestNextFree(TX* text);
  6311. TAGNEST* TXAPI_(688) txfTagnestSearch(TX* text,TAGANA* ana,UINT mode);
  6312. TAGNEST* TXAPI_(689) txfTagnest(TX* text,TEXTCHAR* pTag,int mode);
  6313. mchar* txfTagSkip(mchar* p);
  6314. void TXAPI_(690) txfSplit(TX* text);
  6315. void TXAPI_(691) txfFlushTagAtInsert(TX* text,IFILE address,IFILE cbClip);
  6316. int TXAPI_(692) txfGetDispString(TEXTCHAR* pTag,TEXTCHAR szbuff[CCHWORD]);
  6317. void TXAPI_(693) txfClearCharatr(TX* text);
  6318. void TXAPI_(694) txfClearCharatrArea(TX* text,IFILE* pTop,IFILE* pEnd);
  6319. void TXAPI_(695) txfCharatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr);
  6320.     #define TXFCHARATR_CLEAR    ((TEXTCHAR*)1)
  6321. void TXAPI_(696) txfParaatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr,int chTxftag);
  6322.     #define TXFPARAATR_CLEAR    ((TEXTCHAR*)1)
  6323. BOOL TXAPI_(697) txfRightChartop(TX* text);
  6324. BOOL TXAPI_(698) txfRightChartopTxf(TX* text);
  6325. BOOL TXAPI_(699) txfDeleteChar(TX* text);
  6326. BOOL TXAPI_(700) txfDeleteChartag(TX* text);
  6327. BOOL TXAPI_(701) txfDeleteChartagPrev(TX* text);
  6328. BOOL TXAPI_(702) txfLeftChartail(TX* text);
  6329. BOOL TXAPI_(703) txfLeftChartailEx(TX* text,BOOL fStopParaTag);
  6330. BOOL TXAPI_(704) txfLeftChartailTxf(TX* text);
  6331. BOOL TXAPI_(705) txfLeftChartop(TX* text);
  6332. BOOL TXAPI_(706) txfLeftChartopTxf(TX* text);
  6333. IBUFF TXAPI_(707) txfDeleteNull(TX* text);
  6334. IBUFF TXAPI_(708) txfDeleteNullTxf(TX* text);
  6335. void TXAPI_(709) txfUiInsertTable(TX* text);
  6336. BOOL TXAPI_(710) txfUiInsertImg(TX* text);
  6337. void TXAPI_(711) txfImgAnalyze(TX* text,TEXTCHAR* pTag,IMGATR* atr);
  6338. void TXAPI_(712) txfImgAnalyzeFree(TX* text,IMGATR* atr);
  6339. void TXAPI_(713) txfImgSet(TX* text,IMGATR* atr);
  6340. void imgatrToString(IMGATR* atr,TEXTCHAR szAtr[CCHPATHNAME * 2]);
  6341. TEXTCHAR* TXAPI_(714) txfCellGetLeft(TX* text);
  6342. void TXAPI_(715) txfCellAnalyze(TX* text,TEXTCHAR* pTag,CELLATR* atr);
  6343. void TXAPI_(716) txfCellSet(TX* text,CELLATR* atr);
  6344. BOOL TXAPI_(717) txfCellProperty(TX* text);
  6345. BOOL TXAPI_(718) txfCellFlush(TX* text);
  6346. BOOL TXAPI_(1084) txfCellGetExist(TX* text);
  6347. void TXAPI_(719) txfIndentInc(TX* text);
  6348. void TXAPI_(720) txfIndentDec(TX* text);
  6349. BOOL TXAPI_(721) txfIsCurParaTop(TX* text);
  6350. void TXAPI_(722) txfBeam(TX* text);
  6351. int TXAPI_(723) txfGetLcxLeft(TX* text,IBUFF offset);
  6352. BOOL TXAPI_(724) txfProperty(TX* text);
  6353. BOOL TXAPI_(725) txfCharProperty(TX* text);
  6354. BOOL TXAPI_(726) txfParaProperty(TX* text);
  6355. BOOL txfParaPropertyEx(TX* text,BOOL fSimple);
  6356. void TXAPI_(727) txfParaOp(TX* text,int idm);
  6357. void TXAPI_(728) txfCharOp(TX* text,int idm);
  6358. void TXAPI_(729) txfGetCharProperty(TX* text,CONTEXT_CHARPROPERTY* context);
  6359. void TXAPI_(730) txfBeamFlush(TX* text,BOOL fAtInsertBeam);
  6360. BOOL txfConvert(TX* text,int modeSaveAs,HANDLE hf,TX* textQuote);
  6361. int txfParaTagsGetLch(mchar* p);
  6362. mchar* TXAPI_(1063) txfGetSubject(TX* text,mchar* buff,int cch);
  6363. int TXAPI_(947) txfGetIndent(TX* text,BOOL fDelete);
  6364. TEXTCHAR* TXAPI_(731) atrnext(TEXTCHAR* p);
  6365. int TXAPI_(732) atrlen(TEXTCHAR* pAtr);
  6366. TEXTCHAR* TXAPI_(733) atrAddInt(TEXTCHAR* dst,TEXTCHAR* szAtr,int data);
  6367. TEXTCHAR* TXAPI_(734) atrAddBool(TEXTCHAR* dst,TEXTCHAR* szAtr,BOOL f);
  6368. TEXTCHAR* TXAPI_(735) atrAddString(TEXTCHAR* dst,TEXTCHAR* szAtr,TEXTCHAR* szString);
  6369. TEXTCHAR* TXAPI_(736) atrAddStringW(TEXTCHAR* dst,TEXTCHAR* szAtr,wchar* wszString);
  6370. TEXTCHAR* TXAPI_(737) atrAddAlign(TEXTCHAR* dst,TEXTCHAR* szAtr,int align,int alignDefault);
  6371. TEXTCHAR* TXAPI_(738) atrAddLine(TEXTCHAR* dst,TEXTCHAR* szAtr,int line,int lineDefault);
  6372. BOOL TXAPI txfAtrAddString(TX* text,TEXTCHAR* szAtr,TEXTCHAR* szString);
  6373. int TXAPI_(739) txfAtrGetInt(TEXTCHAR* pName,TEXTCHAR* szAtr,int defaultInt);
  6374. BOOL TXAPI_(740) txfAtrGetBool(TEXTCHAR* pName,TEXTCHAR* szAtr);
  6375. TEXTCHAR* TXAPI_(741) txfAtrGetString(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault);
  6376. mchar* txfAtrGetStringEx(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault,mchar* szBuff,int cchBuff);
  6377. int TXAPI_(742) txfAtrGetAlign(TEXTCHAR* pName,TEXTCHAR* szAtr,int alignDefault);
  6378. int TXAPI_(743) txfAtrGetLine(TEXTCHAR* pName,TEXTCHAR* szAtr,int lineDefault);
  6379. void TXAPI_(744) txfAtrGetFont(TEXTCHAR* pName,FONTSET* fontset,TX* text);
  6380. void TXAPI_(745) txfAtrSetFont(TEXTCHAR szAtr[256],FONTSET* fontset);
  6381. IBUFF TXAPI_(746) TXHIGH txfTagSearchPrev(TX* text,IFILE adr0,TAGANA* anaFind);
  6382. void TXAPI_(747) txfFlushXAlign(TX* text);
  6383. #define txfTagIsUser(p)                            (p[0] == 'u' && p[1] == '_')
  6384. #define txfTagNameIsEx(pBuff,pTagname,lchTagname)    (!textstrncmp(pBuff,pTagname,lchTagname) && !IschTagname(pBuff[lchTagname]))
  6385. // TAGID
  6386. #define TAG_INDENT    1
  6387. #define TAG_H        2
  6388. #define TAG_ALIGN    3
  6389. #define TAG_B        4
  6390. #define TAG_I        5
  6391. #define TAG_U        6
  6392. #define TAG_CLM        7
  6393. int TXAPI_(748) txfTagidInsert(TX* text,int id,int arg1,int arg2);
  6394. extern TEXTCHAR* _tszTag[];
  6395. #define txfTagidToString(id)    (_tszTag[id])
  6396. void TXAPI_(749) txfBeamAnalyze(TX* text,TEXTCHAR* pTag,BEAMATR* atr);
  6397. UINT TXAPI_(909) txfTagRemove(mchar* pMem,UINT size0);
  6398. void TXAPI_(960) txfTagSwitchDisp(TX* text);
  6399. DWORD TXAPI_(981) txfIbuffIsLink(TX* text,IBUFF ibuff);
  6400. //txfFootnote
  6401. void TXAPI_(967) txfFootnoteFlushAll(TX* text);
  6402. void TXAPI_(968) txfFootnoteOutput(TX* text);
  6403. void TXAPI_(969) txfFootnoteInsert(TX* text,int number,TX* text2);
  6404. int TXAPI_(970) txfTagFootnoteGetText(mchar* pTag,TX* text);
  6405. // texttop
  6406. typedef struct {
  6407.     IFILE adr;
  6408.     IFILE texttop;
  6409.     int ly;
  6410. } TEXTTOPEXIT;
  6411. void TXAPI_(1003) txResetTexttopEnter(TX* text,TEXTTOPEXIT* context);
  6412. void TXAPI_(1004) txResetTexttopExit(TX* text,TEXTTOPEXIT* context);
  6413. #if !__TXC__
  6414. int txfFootnoteFlushPara(TX* text,int number);
  6415. int txfTagInsertTag(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind);
  6416. int txfTagInsertWithAtr(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind,TEXTCHAR* szAtr);
  6417. BOOL txfProcDateGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  6418. BOOL txfProcMequoteGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  6419. int txBeamtabGetIndex(TX* text,IBUFF paratop,TEXTCHAR* pSrc);
  6420. int txBeamtabGetLx(TX* text,NPARA npara,int iTab,int lxNow);
  6421. BOOL txfAnchorJump(TX* text,DWORD anchor);
  6422. BOOL TXHIGH txfCellJumpClm(TX* text,int clm);
  6423. BOOL txfCellGetExistRear(TX* text);
  6424. void txInsertCell(TX* text);
  6425. void txfRowSetLineBottom(TX* text,int lineBottom);
  6426. void txfToHtml(TX* text);
  6427. void txfFromHtml(TX* text);
  6428. void txBeamtabFlushAll(TX* text);
  6429. void cellatrInit(CELLATR* atr);
  6430. void cellatrToString(CELLATR* atr,TEXTCHAR szAtr[80]);
  6431. void txfCellJumpTableTop(TX* text);
  6432. BOOL txfBeamGetExist(TX* text);
  6433. BOOL txfRowAdd(TX* text);
  6434. int txfCellGetRightX(TX* text);
  6435. int txfCellGetClm(TX* text);
  6436. BOOL txfCellIsCur(TX* text);
  6437. void txFlushMenuCheckAll(TX* text);
  6438. void txfInsertSf(TX* text,mchar* sf);
  6439. void txfCellFlushAll(TX* text);
  6440. void txfCharPropertyPrint(TX* text);
  6441. void txSetTml(TX* text);
  6442. BOOL txSetTmlModal(TX* text);
  6443. void txSetTexttopCur(TX* text);
  6444. void txResetTexttop(TX* text);
  6445. void TXHIGH txFlushTexttopPrim(TX* text);
  6446. void txFlushTexttop(TX* text);
  6447. void txfFlushXAlign(TX* text);
  6448. BOOL txfAnchorContextHelp(wchar* szfilename,DWORD anchor,RECT* r);
  6449. BOOL txfUiFootnoteProperty(TX* text);
  6450. void txfHandleLcxInit(TX* text);
  6451. void txfGetParaProperty(TX* text,CONTEXT_PARAPROPERTY* context);
  6452. #endif // !__TXC__
  6453.  
  6454. //##HTML
  6455.  
  6456. #if !__TXC__
  6457. BOOL txuiHtmlInsertTable(TX* text);
  6458. void txHtmlCharOp(TX* text,int idm);
  6459. void txHelpOpenExtend(TX* text,int iHelp);
  6460. BOOL strhtmlTagIsA(mchar* p);
  6461. int strhtmlGetTagLch(mchar* sz);
  6462. UINT strhtmlIsCharRefer(mchar* p);
  6463. BOOL strhtmlTagIsHR(mchar* p);
  6464. HBITMAP strhtmlTagGetReduceHbitmap(TX* text,mchar* p,VALIGN* pValign);
  6465. mchar* strhtmlTagIsIMG(mchar* p);
  6466. #endif // !__TXC__
  6467.  
  6468. //##文字コード
  6469.  
  6470. #if !__TXC__
  6471. int kcDetectEx(TX* text,BOOL fInternal);
  6472. DIRECTORYATR* txFlushDirectoryAtr(TX* text);
  6473. BOOL kcFromTB(TX* text,int kc);
  6474. BOOL kcToTB(TX* text,int kc);
  6475. void kcToTBEx(TX* text,int kc);
  6476. int kcDetect(TX* text);
  6477. #endif // !__TXC__
  6478.  
  6479. //##見出し/アウトライン
  6480.  
  6481. //WZ4.00Bj 990823 TX-C:outline周りの実装を全面変更。TX-API outlineRegisterClass,outlineFlushTree,outlineFlushMemo,outlineFlushTargetNpara,outlineSaveEdited,dialogTree廃止。
  6482.  
  6483. #define WM_TV_NOTIFY            (WM_USER+950)    // NotifyCode        arg    //WZ4.00Bj 990823 new
  6484.     #define TVN_SETFOCUS                10
  6485.     #define TVN_RBUTTONUP                11
  6486.  
  6487. typedef struct {
  6488.     int offset;    // 段落先頭から特別見出内容までのオフセット
  6489.     int lch;    // 見出内容の長さ(見出し内容に\x00を含む場合、それも含めた長さなので注意)
  6490.     BYTE fHtmlNoTagend:1;    // HTMLで</Hn>が無かった?
  6491. } HEADLINE_INFO;    //WZ4.00Bj 990824 new
  6492.  
  6493. BOOL TXAPI_(597) txHeadlineChange(TX* text,int iHeadline);
  6494. int TXAPI_(600) txHeadlineMatch(TX* text);
  6495. BOOL TXAPI_(598) txHeadlineGetContent(TX* text,TXSTR sz);
  6496. BOOL TXAPI_(1092) txHeadlineGetContentEx(TX* text,mchar* szbuff,int cchbuff);
  6497. BOOL TXAPI_(837) txHeadlineSearchNext(TX* text);
  6498. BOOL TXAPI_(836) txHeadlineSearchPrev(TX* text);
  6499. int TXAPI_(669) txIbuffGetHeadline(TX* text,IBUFF ibuff,HEADLINE_INFO* res);    //WZ4.00Bj 990824 newarg:res
  6500. BOOL TXAPI_(1010) txHeadlineGet(TX* text,int iHeadline,mchar sz[CCHHEADLINE]);
  6501. int TXAPI_(938) txHeadlineGetLen(TX* text,int iHeadline);
  6502. // アウトライン
  6503. void TXAPI_(964) txolOpen(TX* text);
  6504. void TXAPI_(965) txolClose(TX* text);
  6505. void TXAPI_(966) txolFlush(TX* text);
  6506. #if !__TXC__
  6507. int headline_uistyle(HEADLINE_SET* context);
  6508. void txHeadlineFree(TX* text);
  6509. BOOL txHeadlineInit(TX* text);
  6510. BOOL txIbuffHeadlineGetContentPrim(TX* text,IBUFF ibuff,HEADLINE_INFO* res,mchar* szbuff,int cchbuff);    //WZ4.00Bj 990824 arg変更
  6511. void txHeadlineSetupMiseiri(TX* text);
  6512. BOOL txHeadlineJumpSameNestTop(TX* text,int nNest);
  6513. BOOL txHeadlineJumpSameNestEnd(TX* text,int nNest);
  6514. BOOL txHeadlineJumpSameNestTail(TX* text,int nNest);
  6515. BOOL txuiHeadlineChange(TX* text);
  6516. BOOL txuiHeadlineMap(TX* text);
  6517. BOOL txHeadlineSearchPrevEx(TX* text,int iHeadline);
  6518. BOOL txHeadlineSearchNextEx(TX* text,int iHeadline);
  6519. BOOL txHeadlineSearch(TX* text,mchar* szHeadline,int iHeadline);
  6520. BOOL txIbuffIsFunctionDefine(TX* text,IBUFF ibuff,HEADLINE_INFO* res);    //WZ4.00Bj 990824 newarg:res
  6521. //アウトライン
  6522. void txolOpenEx(TX* text,mchar* szCaption);
  6523. void txolFlushNpara(TX* text);
  6524. BOOL txolSyskeydown(TX* text,int wParam);
  6525. void txolAdjustNparaChange(TX* text,long nparaD);
  6526. int txolGetCxOutline(TX* text);
  6527. int txolGetOriginalCxHwndbase(TX* text);
  6528. void txolOnProcFrameText(TX* text);
  6529. void txolSetFontText(TX* text);
  6530. #endif // !__TXC__
  6531.  
  6532. //##印刷/FONTSET
  6533.  
  6534. void TXAPI_(750) txLpDispOutsideText(TX* text);
  6535. BOOL TXAPI_(751) txLpInit(TX* text);
  6536. void TXAPI_(752) txLpTerm(TX* text);
  6537. BOOL TXAPI_(753) txuiLpStyle(TX* text);
  6538. BOOL TXAPI_(754) txuiLprint(TX* text);
  6539. BOOL TXAPI_(756) txLpSwitchPreview(TX* text);
  6540. BOOL TXAPI_(757) txLprint(TX* text);
  6541. BOOL TXAPI_(759) txLpFlushBaseY(TX* text);
  6542. void TXAPI_(760) txLpFlushPage(TX* text);
  6543. void TXAPI_(987) txLpSetRateAuto(TX* text,int mode);
  6544. BOOL TXAPI_(988) txLpAddRate(TX* text,int d);
  6545. BOOL TXAPI_(989) txLpSetRate(TX* text,int pvRate);
  6546.  
  6547. #if !__TXC__
  6548.  
  6549. #if WZFUNC_PRINT
  6550.     int xLPtoDP(HDC hdc,int x);
  6551.     int yLPtoDP(HDC hdc,int y);
  6552.     int xLPadd1(HDC hdc,int x);
  6553.     int yLPadd1(HDC hdc,int y);
  6554.     int yLPsub1(HDC hdc,int y);
  6555.     int xLP(HDC hdc,int x);    //WZ3.90H 980917 
  6556.     int yLP(HDC hdc,int y);    //WZ3.90H 980917 
  6557.     int lpcxGetFrameLeft(TX* text,int iHeadline);
  6558.     int lpcxGetFrameRight(TX* text,int iHeadline);
  6559.     int lpcxGetFrameLeftRight(TX* text,int iHeadline);
  6560.     void txLpToolbarFlush(TX* text);
  6561.     BOOL txuiLpStyleDetail(TX* text);
  6562.     void txLpToolbarNotify(TX* text,int cmd);
  6563.     int lpdot(TX* text);
  6564. #else
  6565.     #define xLPtoDP(hdc,x)    (x)
  6566.     #define yLPtoDP(hdc,y)    (y)
  6567.     #define xLPadd1(hdc,x)    (x)
  6568.     #define yLPadd1(hdc,y)    (y)
  6569.     #define yLPsub1(hdc,y)    (y)
  6570.     #define xLP(hdc,x)        (x)
  6571.     #define yLP(hdc,y)        (y)
  6572.     #define lpcxGetFrameLeft(text,iHeadline)        (0)
  6573.     #define lpcxGetFrameRight(text,iHeadline)        (0)
  6574.     #define lpcxGetFrameLeftRight(text,iHeadline)    (0)
  6575.     #define txLpToolbarFlush(text)
  6576.     #define txuiLpStyleDetail(text)        (FALSE)
  6577.     #define txLpToolbarNotify(text,cmd)
  6578.     #define lpdot(text)        (1)
  6579. #endif
  6580. //
  6581. BOOL txuiLprintExec(TX* text);
  6582. void txLprintHeader(TX* text);
  6583. #if WZFUNC_PRINT
  6584.     int yToLy(TX* text,int y);
  6585.     int lyToY(TX* text,int ly);
  6586.     int lyGetCy(TX* text,int ly);
  6587. #else
  6588.     #define yToLy(text,y)            (((y) - text->nSpaceTop) / text->cyLine)
  6589.     #define lyToY(text,ly)            (text->nSpaceTop + (ly) * text->cyLine)
  6590.     #define lyGetCy(text,ly)        (text->cyLine)
  6591. #endif
  6592. //
  6593. int lpxToMmtext(TX* text,int lpx);
  6594. int mmtextToLpx(TX* text,int mmtext);
  6595. int txLpGetCyPaper(TX* text);
  6596. void txLpWriteMsghdr(TX* text,LPRINT* lp);
  6597. BOOL txLpReadMsghdr(TX* text,LPRINT* lp);
  6598. int txLpGetCxPaper(TX* text);
  6599. BOOL txLpConfigtextRead(TX* text);
  6600. void txLpConfigtextWrite(TX* text);
  6601. void lpSetDefaultConfig(LPRINT* lp);
  6602. BOOL txuiLpStyleSelect(TX* text);
  6603. //FONTSET
  6604. void fontsetSetText(TX* text,FONTSET* fontset);
  6605. void txFontsetGet(TX* text,FONTSET* fontset);
  6606. void fontsetFlush(TX* text,FONTSET* fontset);
  6607. void txFontsetSetBase(TX* text);
  6608. typedef struct {
  6609.     BOOL fGetLineSize;    //(in)    LSOP_GETLINESIZE?
  6610.     BOOL fLineOver;        //(out)    fGetLineSize時に折り返し幅を超えるのでこの文字の直前までをcurysizeとする?
  6611.     int src;            //(in)    fGetLineSize時にcurysize>0のチェックに使用
  6612.     int x;                //(i/o)    x座標
  6613.     int cxWidth;        //(in)    fGetLineSize時に折り返し幅のチェックに使用
  6614.     int cxRate;            //(i/o) 横幅の拡大縮小パーセント for <CXRATE>
  6615. } TXFPROC_LINESIZEOP_ARG;
  6616. void txfProcTag_LINESIZEOP(TX* text,TEXTCHAR* pTag,TEXTCHAR* pName,TXFPROC_LINESIZEOP_ARG* arg);
  6617. void headlinestyleSetDefaultFont(HEADLINESTYLE* style,int iHeadline,int lfHeight);
  6618. int pointsToLpx(LPRINT* lp,int points);
  6619. #endif // !__TXC__
  6620.  
  6621. //##MAIL
  6622.  
  6623. #define MAILEDIT_USEEDIT    UNIX    // To,Cc,Subjectに常にEDITコントロールを使用?。UNIXだと調子が悪いのでこれを使う。
  6624.  
  6625. typedef struct tagMAILEDIT {
  6626.     HWND hwndMailer;        // メーラのhwnd
  6627.                             // 0: WZ MAIL EDITORではない
  6628.     WORD idMail;            // このメールのID
  6629.     BYTE modeMail;            // モード
  6630.         #define MODEMAIL_NEW    1    // 新規
  6631.         #define MODEMAIL_REPLY    2    // 返信
  6632.         #define MODEMAIL_EDIT    3    // 編集
  6633.         #define MODEMAIL_VIEW    4    // ビュー
  6634.         #define MODEMAIL_FORWARD    5    // 回送    //WZ4.00Dc 000326 new
  6635.     WZMAILEDITORFLAGS flags;
  6636. //
  6637.     HWND hwndMailheader;    // メールヘッダウィンドウ
  6638.     HWND hwndReferTo;        // "To:..."
  6639.     HWND hwndReferCc;        // "Cc:..."
  6640.     HWND hwndMenu;            // メニューボタン
  6641.     HWND hwndSend;            //WZ3.90I 981012 送信ボタン
  6642.     HWND hwndMime;            // 添付ファイル
  6643.     struct tagLIST* listMime;    // 添付ファイル
  6644.     mchar szBoundary[70];    // boundary
  6645.     mchar szReplytoFrom[70];//WCE1.01 980505 コメントや返信の場合のコメント先のメッセージの差出人の名前
  6646.     mchar szSubject[100];    // txDoCaption用に現在のSubject内容を入れておくバッファ
  6647.                             // fTML時は編集時のバッファも兼ねる
  6648.     BOOL fMailReserve;        // 現在の「保留」状態
  6649.     TX* text;                // 本文のテキスト
  6650.     int x;                    // hwndTo etc x
  6651.     int y;                    // for at init
  6652.     HFONT hfontControl;        // コントロールのフォントハンドル
  6653.     int cxCharControl;        // hfontControlのcxChar
  6654.     int cyCharControl;        // hfontControlのcyChar
  6655. #if MAILEDIT_USEEDIT
  6656.     HWND hwndTo;
  6657.     HWND hwndCc;
  6658.     HWND hwndSubject;
  6659. #endif
  6660.     RECT rTo;                // "To"ウィンドウの位置
  6661.     RECT rCc;                // "Cc"ウィンドウの位置
  6662.     RECT rSubject;            // "件名"ウィンドウの位置
  6663.     BYTE charset0;            //WZ3.90M 981129 オリジナルのcharset
  6664.     BYTE charset;            //WZ3.90M 981129 旧fEnglish
  6665.     FBOOL fDispHeader;        //WZ3.90I 981005 ヘッダの表示?
  6666. // Popup window
  6667.     HWND hwndPopup;            // popup "EDIT" window handle
  6668.     int idPopup;            // IDD_SUBJECT;
  6669. // for txDoCaption
  6670.     BOOL fSaved;            // 保存したかどうか?
  6671.     wchar wszCaption[80];    // for txGetTitleFilenameW buffer
  6672. } MAILEDIT;
  6673.  
  6674. #if !__TXC__
  6675. void txConvertMailTemplateToPlain(TX* text,TX* textDest,TX* textQuote);
  6676. HWND hwndMailerGetStatusbar(HWND hwnd);
  6677. void mailerOpenMenuMouseRMessage(TX* text);
  6678. mchar* memJisToKc(mchar* sz,int kc);    //WZ4.00Bg 990720 
  6679. BOOL memJisToSjis(mchar* sz);
  6680. BOOL _lwriteEncodeBase64(HANDLE hfDst,HANDLE hfSrc,IFILE size);
  6681. void txMailheaderClose(TX* text);
  6682. BOOL txMaileditorAttachW(TX* text,wchar* wszfilename,BOOL fNote);
  6683. void txMaileditSetDateNow(TX* text);
  6684. LRESULT txMaileditNotify(TX* text,UINT message,LPARAM lParam);
  6685. int maileditpopupOpenSubject(MAILEDIT* mailedit);
  6686. void maileditpopupOpenLastfocus(MAILEDIT* mailedit);
  6687. void maileditpopupClose(MAILEDIT* mailedit);
  6688. BOOL maileditOnSyskeydown(TX* text,WPARAM wParam);
  6689. BOOL maileditOnTab(TX* text);
  6690. BOOL txuiCheckMailedit(TX* text,BOOL fUi);
  6691. void txMailheaderRead(TX* text);
  6692. void mailheaderSetWindowPos(TX* text,RECT* r);
  6693. //MIME
  6694. typedef struct {
  6695.     int lchTopReturn;        // 0以外ならlchTopReturn文字ごとに改行を入れる(先頭行のみ)
  6696.                             // 0ならlchReturnを使う
  6697.     int lchTopIndent;        // 0以外なら先頭に空白を入れる(先頭行のみ)
  6698.                             // 0なら入れない
  6699.     int lchReturn;            // 0以外ならlchReturn文字ごとに改行を入れる
  6700.     int lchIndent;            // 0以外なら改行を入れた後に空白を入れる
  6701.     BOOL fDataEndReturn;    // データの末尾に改行を2つ入れる
  6702. } BASE64ENCODEARG;
  6703. BOOL txBase64Encode(TX* text,wchar* wszfilename);
  6704. BOOL txBase64Decode(TX* text,wchar* wszfilename);
  6705. mchar* memBase64Decode(mchar* buff,int lch,int* plchResult);
  6706. mchar* memBase64Encode(mchar* buff,int lch,int* plchResult,BASE64ENCODEARG* arg);
  6707. #endif // !__TXC__
  6708.  
  6709. //##PARAATR
  6710.  
  6711. #if !__TXC__
  6712. PARAATR* txParaatrGet(TX* text,NPARA npara);
  6713. void txParaatrTerm(TX* text);
  6714. IBUFF txNparaGetParaTop(TX* text,IBUFF ibuff,NPARA npara);
  6715. BOOL txParaatrClearNlineAll(TX* text);
  6716. BOOL txParaatrClearEditAll(TX* text);
  6717. BOOL txParaatrGetEdit(TX* text,NPARA npara);
  6718. //
  6719. IBUFF txGplGetParaoff(TX* text,NPARA npara);
  6720. void txGplDebug(TX* text);
  6721. //
  6722. BOOL txPsbCounting(TX* text);
  6723. void txPsbCalcOnIdle(TX* text);
  6724. //
  6725. int txCparaGet(TX* text,IBUFF curpara,NPARA npara);
  6726. void txParaatrClearCparaAll(TX* text);
  6727. //
  6728. WORD* txParaatrbeamGet(TX* text,NPARA npara,int iTab);
  6729. UINT txBeamtabGetOffset(TX* text,IBUFF paratop,int iTab);
  6730. BOOL txBeamtabSetLx(TX* text,NPARA npara,int iTab,int lx);
  6731. BOOL txBeamtabGetExist(TX* text,IBUFF paratop);
  6732. int txBeamtabGetCount(TX* text,IBUFF paratop);
  6733. BOOL txBeamtabFlushScreen(TX* text);
  6734. void txParaatrbeamClearAll(TX* text);
  6735. #endif // !__TXC__
  6736.  
  6737. //##その他
  6738.  
  6739. //罫線
  6740. BOOL TXAPI_(645) txKeisenIsNeedOp(TX* text,int op);
  6741. mchar* TXAPI_(646) txKeisenGetLeft(TX* text);
  6742. BOOL TXAPI_(647) txuiKeisenInsertTable(TX* text);
  6743. BOOL TXAPI_(648) txKeisenProperty(TX* text);
  6744. BOOL TXAPI_(649) txKeisenOp(TX* text,int op,mchar* szstr);
  6745. //バイナリ編集
  6746. BOOL TXAPI_(927) txIsCurDigitH(TX* text);
  6747. BOOL TXAPI_(928) txIsCurDigitL(TX* text);
  6748. void TXAPI_(929) txSetCurDigitH(TX* text);
  6749. void TXAPI_(930) txSetCurDigitL(TX* text);
  6750. //ime    //WZ4.00Ca 991203 txImeGetOpen,txImeSetOpenが使えなくなっていたのを修正。
  6751. #define txImeGetOpen(text)            wndImeGetOpen(text->hwndtext)        //WZ3.90L 981121 
  6752. #define txImeSetOpen(text,fOpen)    wndImeSetOpen(text->hwndtext,fOpen)    //WZ3.90L 981121 
  6753.  
  6754. #if !__TXC__
  6755. //txvar
  6756. BOOL txVarSetString(TX* text,mchar* szName,mchar* szContent);
  6757. mchar* txVarReadString(TX* text,mchar* szName,mchar* szDefault);
  6758. //hook
  6759. void txAddHookWndproctext(TX* text,WNDTEXTHOOKPROC lpHook);
  6760. void txAddHookWndprocbase(TX* text,WNDTEXTHOOKPROC lpHook);
  6761. void txAddHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,UINT flag);
  6762. //speak
  6763. BOOL speak(LPCSTR lpszText,UINT fuType);
  6764. void speakNoAttachFile(void);
  6765. void txSpeakText(TX* text,UINT fuType,BOOL fTxf);
  6766. //オープン中のfFrameテキスト管理
  6767. BOOL shareInit(void);
  6768. void shareTerm(void);
  6769. void shareProcEndSession(void);
  6770. BOOL textAdd(HWND hwnd);
  6771. BOOL textAddEx(HWND hwnd,WZPROCESS* arg);
  6772. BOOL textDelete(HWND hwnd);
  6773. BOOL frametextAdd(TX* text,wchar* wszCmdLine);
  6774. BOOL frametextSetTextFree(TX* text);
  6775. int frametextGetTextCount(void);
  6776. HWND isopenW(wchar *path);
  6777. //オープン時の処理
  6778. void __on_txFrameNewHtml(TX* text);
  6779. void __on_txFrameNewSpeak(TX* text);
  6780. void __on_txNewSpeakFilelist(TX* text);
  6781. void __on_txNewSpeakGrep(TX* text);
  6782. void __on_txFrameNewSpeak(TX* text);
  6783. //ネットワーク版WZ
  6784. void shStartNetwork(void);
  6785. //その他
  6786. LRESULT txSendWmNotify(TX* text,int txn);
  6787. void imeSetPosPrim(TX* text);
  6788. BOOL txuiMemo(TX* text);
  6789. void tryalOnConfigInit(void);
  6790. #endif // !__TXC__
  6791.  
  6792. //{###WZ/PWZアプリケーション特有
  6793.  
  6794. //##システムAPI、アプリケーション
  6795.  
  6796. BOOL TXAPI_(517) sysApAdd(HWND hwndbase);
  6797. BOOL TXAPI_(518) sysApDelete(HWND hwndbase);
  6798. HWND TXAPI_(513) sysApSetFocus(HWND hwndbase);
  6799. HWND TXAPI_(514) sysApGetFocus(void);
  6800. HWND TXAPI_(515) sysApGetPopup(void);
  6801. TX* TXAPI_(516) sysApIsEditor(void);
  6802. LRESULT TXAPI_(530) sysApDefWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);    //WZ4.00Db 000215 permanent複数プロセス対応。
  6803.  
  6804. #if 1    //WZ4.00Ca 991123 旧名サポート
  6805. #define wzexecW        osExecW
  6806. #define wzexec        osExec
  6807. //
  6808. #define hwndbaseSet                    sysApSetFocus
  6809. #define hwndbaseGet                    sysApGetFocus
  6810. #define hwndbaseGetTopPopupWindow    sysApGetPopup
  6811. #define hwndbaseIsWzeditor            sysApIsEditor
  6812. #define pwzapFocused                sysApSetFocus
  6813. #define pwzapAdd                    sysApAdd
  6814. #define pwzapDelete                    sysApDelete
  6815. #define wzapAdd                        pwzapAdd
  6816. #define wzapDelete                    pwzapDelete
  6817. #define wzapFocused                    pwzapFocused
  6818. #endif
  6819.  
  6820. HWND TXAPI_(1011) apGrep(wchar* wszcmdline,UINT mode);
  6821.     #define AP_SINGLE        0x0001    // 返り値はHWND
  6822.     #define AP_NEWPROCESS    0x0002    // 新しいプロセスで起動。返り値はBOOL
  6823. mchar* TXAPI_(1104) sysGetName(void);
  6824. mchar* TXAPI_(1105) sysGetVersion(void);
  6825. mchar* TXAPI_(1106) sysGetVersionPrim(void);
  6826.  
  6827. #if !__TXC__
  6828. void sysApSendMessageAll(UINT message,WPARAM wParam,LPARAM lParam);
  6829. int sysApSearch(HWND hwndbase);    //WZ4.00Bm 990930 new
  6830. HWND apFiler(wchar* wszcmdline,UINT mode);
  6831. HWND apMemo(wchar* wszcmdline,UINT mode);
  6832. HWND apIcon(wchar* wszcmdline,UINT mode);
  6833. HWND apMailer(wchar* wszcmdline,UINT mode);
  6834. mchar* sysGetNameStrcat(mchar* szAdd);
  6835. void hwndbaseDelete(HWND hwnd);
  6836. BOOL CheckExSample(void);
  6837. #endif // !__TXC__
  6838.  
  6839. //##SHAREアクセスロック
  6840.  
  6841. #define LOCK_NULL            0    // 欠番
  6842.                                 // 以下、空きの番号はもったいないので作らない事
  6843. #define LOCK_WZPROCESS        1
  6844. #define LOCK_HIST            2
  6845. #define LOCK_WZAP            3
  6846. #define LOCK_PROFILE        4
  6847. #define LOCK_KEYMACRO        5
  6848. #define LOCK_WZICON            6
  6849. #define LOCK_WZMEMO            7
  6850. #define LOCK_WZTERMREAD        8
  6851. #define LOCK_WZTERMCHECK    9
  6852. #define LOCK_TXCEVENTPRMSAVE 10    //WZ4.00Db 000215 
  6853. #define LOCK_N                10    // 最終番号と同じにする
  6854. void TXAPI_(575) sysLock(int no);
  6855. void TXAPI_(576) sysUnlock(int no);
  6856.  
  6857. #if 1    //WZ4.00Ca 991123 旧名サポート
  6858.     #define wzlock        sysLock
  6859.     #define wzunlock    sysUnlock
  6860. #endif
  6861.  
  6862. //##OS(Windows,CE,UNIX)関係
  6863.  
  6864. BOOL TXAPI_(537) osExecW(wchar* lpszCmdline);
  6865. BOOL TXAPI_(809) osExec(mchar* lpszCmdline);
  6866. BOOL TXAPI_(951) osOpenURL(mchar* szURL,HWND hwndParent);
  6867.  
  6868. //##permanent変数記憶
  6869.  
  6870. #if __TXC__
  6871. int __prmSave(void);
  6872. #endif
  6873.  
  6874. // 以下のAPIは内部用です。TXCプログラムから直接使用しないでください。
  6875. void TXAPI_(240) _permanentGetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  6876. void TXAPI_(241) _permanentSetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  6877. void TXAPI_(242) _permanentGetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  6878. void TXAPI_(243) _permanentSetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  6879. void TXAPI_(244) _permanentFlush(mchar* szAppName);    //WZ4.00Db 000215 voidから引数変更
  6880. #if !__TXC__
  6881. void on_WM_TXCEVENT(WPARAM wParam);
  6882. #endif
  6883.  
  6884. //##スタイルシート
  6885. //WZ3.90K 981113 new
  6886.  
  6887. typedef struct {
  6888.     mchar* szfilenameCfg;    // スタイルを保存するCFGファイル名
  6889.     void (*txMsghdrGetset)(TX* text,LPVOID appContext,BOOL fSet);    // txMsghdrGetsetするクライアント定義関数。
  6890.     LPVOID appContext;    // クライアント定義コンテキスト
  6891.     BYTE fTXC:1;        //WZ4.00Ca 991130 TX-Cからの利用?
  6892. } STYLESHEETARG;
  6893.  
  6894. int TXAPI_(1064) stylesheet_uiMente(STYLESHEETARG* arg,mchar szStyle[CCHWORD]);
  6895. BOOL TXAPI_(1065) stylesheet_Load(STYLESHEETARG* arg,mchar* szStyle);
  6896. BOOL TXAPI_(1066) stylesheet_Save(STYLESHEETARG* arg,mchar* szStyle);
  6897.  
  6898. //##アプリケーションレイヤの設定
  6899. //WZ3.90L 981116 new
  6900. // 設定の読み書きはあまり早くはないが、基本レイヤの設定とは別にしたいので。
  6901.  
  6902. typedef struct {
  6903.     mchar dicpath[CCHPATHNAME];        // 用語統一辞書パス
  6904.     mchar if_path[CCHPATHNAME];        // ファイルの挿入初期パス
  6905.     mchar prj_path[CCHPATHNAME];    // プロジェクトのパス
  6906. // クリッカブルURL
  6907.     mchar url_service[CCHNAME];        // サービス
  6908.     mchar url_topic[CCHNAME];        // トピック
  6909. } CONFIGAPP;
  6910.  
  6911. void configappLoad(CONFIGAPP* config);
  6912. void configappSave(CONFIGAPP* config);
  6913.  
  6914. //##パス文字列
  6915.  
  6916. wchar* TXAPI_(495) wpathFullConfig(wchar* wszfilenameDst,wchar* wszfilename);
  6917. mchar* TXAPI_(806) pathFullConfig(mchar* szfilenameDst,mchar* szfilename);
  6918. mchar* TXAPI_(890) pathFullExedir(mchar* szfilenameDst,mchar* szfilename);
  6919. wchar* TXAPI_(891) wpathFullExedir(wchar* wszfilenameDst,wchar* wszfilename);
  6920. wchar* wpathFullConfigNoCreate(wchar* wszfilenameDst,wchar* wszfilename);
  6921. BOOL wpathFullConfigNetwork(wchar wszdst[CCHPATHNAME],wchar* wszfilename);
  6922.  
  6923. //##ダイアログ
  6924.  
  6925. typedef struct tagDTRECT {    // ダイアログ座標
  6926.     SHORT x;    // cxChar/4 単位
  6927.     SHORT y;    // cyChar/8 単位
  6928.     SHORT cx;
  6929.     SHORT cy;
  6930. } DTRECT;
  6931. #if WINDOWSCE
  6932.     #define NFONT_MAX    100
  6933. #else
  6934.     #define NFONT_MAX    1000    //WZ3.90P 981206 100だと足りない(300個ある場合もある)ので1000に拡大
  6935. #endif
  6936. typedef struct {
  6937.     WORD nFont;    // 数
  6938.     wchar tFontName[NFONT_MAX][LF_FACESIZE];
  6939.     BYTE lfPitch;            // PitchAndFamily
  6940.     BYTE lfCharSet;            // lfCharSet
  6941.     WORD fPrinterFont:1;    // プリンタフォントの取得中
  6942.     WORD fPrinterFontOnly:1;
  6943.     WORD freserved:14;
  6944.     HDC hdcPrinter;
  6945. } FONTNAMES;
  6946. typedef struct {
  6947.     BYTE lfPitch;
  6948.     BYTE lfCharSet;
  6949.     BYTE sizeLfHeight;                // lfHeightのサイズ(0,1:BYTE,2;WORD,4:DWORD)
  6950.     BYTE lcxFaceName;                // 0:default
  6951.     BYTE lcxFaceSize;                // 0:default
  6952.     HDC hdcPrinter;                    // プリンタフォントも列挙するばあいは、プリンタのhdc
  6953.     WORD fPrinterFontOnly:1;        //1.99F プリンタフォントのみ
  6954.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  6955.                                     // 選択値は""になる
  6956.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  6957.                                     // 選択値は0になる
  6958.     WORD fEnableUserfont:1;            //WZ4.00Bl 990919 ユーザ定義フォントセットを選択可能にする。
  6959.     WORD freserved:12;
  6960.     FONTNAMES* fontnames;            //1.99H 同じフォント名セットを複数使う場合に対応
  6961.     BYTE reserved[17];
  6962. } SELFONTARG;
  6963. #define CCHFONTSIZE    20
  6964. typedef struct {
  6965.     WORD id;                    // 対応付けられているフォント名コンボボックスのid
  6966.     FONTNAMES* fontnames;        // フォント名
  6967.     // フォントサイズ
  6968.     WORD nFontSize;                // 数
  6969.     BYTE tFontSize[NFONT_MAX];    // 内容
  6970.     WORD nFontType;                // EnumFaceSizeで返される
  6971.     // 初期値の受け取り/結果の受け渡し用
  6972.     mchar* lfFaceName;
  6973.     BYTE* lfHeight;
  6974.     BYTE sizeof_lfHeight;            // lfHeight=BYTE/WORD/DWORD?
  6975.                                     //WZ3.90G 980826 class -> sizeof_lfHeight
  6976.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  6977.                                     // 選択値は""になる
  6978.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  6979.                                     // 選択値は0になる
  6980.     WORD freserved:14;
  6981. } CONTEXTSELFONT;
  6982. typedef struct tagDIALOG {
  6983. #if __TXC__
  6984.     LPVOID dialog;
  6985. #else
  6986.     DLGTEMPLATE* dialog;    // 
  6987. #endif
  6988.     DWORD sizeDialog;        // dialogのサイズ
  6989.     LPBYTE pBuff;            // dialogに現在書き込み中のポインタ
  6990.     LPBYTE itemTop;            // dialogのアイテムの先頭位置
  6991.     LPBYTE itemNow;            // 現在アクセス中のアイテム
  6992. //
  6993.     int xMax;
  6994.     int xMaxLf;
  6995.     int yMax;
  6996.     int yMaxLf;
  6997.     int xBase;                // 改行時、復改位置
  6998.     int yBase;                // 改行時、復改位置
  6999.     DTRECT r;                // 現在位置
  7000.     int cxInt;                // 項目間
  7001.     int cyInt;                // 行間
  7002.     CBOOL fNoSetHist;        // dialogReadでヒストリをいじらない
  7003.     FBOOL fNoAddDefaultButton;//WCE1.01 980201 標準の"OK","Cancel"を付けない?
  7004. //
  7005.     struct tagITEMINFO* info;// ITEMINFO配列
  7006.     int sizeinfo;            // ITEMINFO配列の確保した要素数
  7007.     int ninfo;                // 現在の要素数
  7008. //
  7009.     int id;                    // 現在の自動設定ID
  7010.     int idUpdown;            // 次に追加するアップダウンコントロールのID
  7011. // user指定
  7012.     int setid;                // 0:自動ID else IDを指定値にセット
  7013.     CBOOL fH;                // 横に並べる?
  7014.     FBOOL fCmd;                // OK,Cancelボタン不要
  7015. #if __TXC__
  7016.     LPVOID dlgproc;            // ダイアログプロシジャー
  7017. #else
  7018.     DLGPROC dlgproc;        // ダイアログプロシジャー
  7019. #endif
  7020.     FBOOL fDlgprocTxpcode;    // dlgprocはTX-PCODE中にある?
  7021.     WORD stateHook;            // dlgprocフックステート
  7022.     LPVOID custdata;        // user data
  7023.     LPVOID custdata2;        //PWZ2BETA0.3 980519 user data2
  7024.     LPVOID custdata3;        //PWZ2BETA0.3 980519 user data3
  7025.     HWND hwndParent;        // 親ウィンドウ
  7026.     FBOOL fHwndParentSeted;    // hwndParentが設定された(NULLも設定できるよう)
  7027.     FBOOL fModelessAutoClose;// WM_CLOSEで閉じる?
  7028.     BYTE fWizard:1;            //WZ3.90G 980830 ウィザード?
  7029.     BYTE fNoApplyNow:1;        //WZ4.00Ca 991203 [適用]ボタンを付けない?
  7030.     BYTE fPspcGuideLf:1;    //WZ4.00Be 990509 ガイド文字の後で改行する?
  7031.     BYTE fPspcGuideLfOnce:1;//WZ4.00Be 990511 
  7032.     BYTE fPspcCaptionNoLf:1;//WZ4.00Be 990509 dialogCaption etcで自動折り返し追加しない?
  7033.     BYTE fPspcNoLimitSize:1;//WZ4.00Be 990512 PSPCでダイアログサイズを制限しない?
  7034.     int cx;                    // サイズ
  7035.     int cy;                    // サイズ
  7036.     int notifyIdd;            // dialogSetNotifyAsOK
  7037.     int notify;                // dialogSetNotifyAsOK
  7038.     int idFocus;            // 
  7039.     int idDialoghelp;        // ダイアログヘルプのアンカー番号    //WZ4.00Ab 990124 new
  7040.     mchar* szfilenameChelpBuffAlloced;    //WZ4.00Ca 991203 dialogControlHelpEx用
  7041. // user直接指定
  7042.     BYTE fAutoAccessKey:1;    //WZ3.90H 980910 アクセスキーを自動で付ける?
  7043.                             // chAutoAccessKeyを初期化すること。
  7044.     BYTE fUseLastFontnames:1;//WZ4.00Bl 990920 FONTNAMESをアロケートせずに、最後にアロケートしたものを使用?
  7045.     BYTE chAutoAccessKey;    //WZ3.90H 980910 現在の自動決定アクセスキー
  7046.     TX* text;                //WZ3.90I 981026 dialogControlReferで"-html"を指定する場合に必要
  7047. // フォント選択
  7048.     #define SELFONT_N            20
  7049.     CONTEXTSELFONT* tFontselContext;    // コンテキスト
  7050.     int nFontselContext;                // 現在のコンテキスト数
  7051.     #define FONTNAMES_N            2        // FONTNAMESコンテキスト最大数
  7052.     FONTNAMES *tFontnames;                // FONTNAMESコンテキスト
  7053.     int nFontnames;                        // 現在のFONTNAMESコンテキスト数
  7054. // for property sheet
  7055.     struct tagDIALOG* child;
  7056.     struct tagDIALOG* parent;
  7057.     struct tagDIALOG* next;
  7058.     int iStartPage;
  7059.     FBOOL fApplyed;            //WCE0.95 970923 IDD_APPLYが押された
  7060.     #if !WINDOWSCE
  7061.     FBOOL fCentered;        //WZ3.90I 981005 既に中央に位置をセット済み
  7062.     #endif
  7063. // dialog open時 status
  7064.     HWND hwndDlg;            // ダイアログウィンドウハンドル
  7065.     HWND hwndDlgPage;        //WZ4.00Ca 991023 new
  7066.     HWND hwndbase;            //WZ3.90L 981122 ダイアログを開いたときのhwndbaseGet()の内容
  7067.     FBOOL fActived;            // ページがアクティブになった?
  7068.     FBOOL fModeless;        // モードレスダイアログ?
  7069.     FBOOL fCaptionOkBtn;    // タイトルバーに[OK]を付ける?
  7070.     struct tagDIALOG* now;    // 現在選択されているページ
  7071.     struct tagDIALOG* nextModeless;    // 次のモードレスダイアログ
  7072. // 以下、次にaddするコントロールの属性
  7073. BYTE controlTop;
  7074.     FBOOL fHist;            // ヒストリ付き?
  7075.     FBOOL fHistRead;        // readonly history
  7076.     FBOOL fSbAlloced;        // sb is alloced
  7077.     FBOOL fDisenable;        // 無効化
  7078.     FBOOL fControlReverseBool;
  7079.     FBOOL fRadioV;
  7080.     DWORD fUpdown;            // アップダウンコントロールを付ける?
  7081.                             // 0なら、付けない。
  7082.                             // MAKELONG(max,min)なら付ける。
  7083.     BYTE idMap;                //WCE1.01 980210 idMap
  7084.     HSTRBLK sb;
  7085.     int cyLastControl;        // 最後に追加したコントロールのウィンドウの高さ
  7086.     int idContextHelp;        // コンテキストヘルプIDが指定された
  7087.     mchar* szfilenameContextHelp;    //WZ4.00Ca 991203 dialogControlHelpEx用
  7088.     SIGNED_BYTE dtyAdd;        // y座標に付加する値
  7089.     mchar szguide[CCHWORD];    // ガイド文字列
  7090.     int wguide;                // ガイドの幅
  7091.     mchar* szRefer;            // 参照ボタン
  7092.     int idrefer;            // 参照ボタンのID
  7093.     LPVOID procConv;        //WZ3.90L 981115 コンバータ
  7094. BYTE controlEnd;
  7095. // 以下、クリアしない次にaddするコントロールの属性
  7096.     DWORD controlStyle;
  7097. } DIALOG,*HDIALOG;
  7098. #define DIALOGHOOKSTATE_HOOKONCE    0x01    // 一度だけ標準ダイアログをスキップする
  7099. #define DIALOGHOOKSTATE_HOOKALL        0x02    // 全フックする
  7100. #define DTCX                4        // 1文字の幅
  7101. #define DTCY                8        // 1文字の高さ
  7102. #define DTCXINT                4        // 標準の間隔
  7103. #if WINDOWSCE2
  7104.     #define DTCYINT            1    // 標準の間隔
  7105.                                 //WCE1.01 980312 2->1
  7106.                                 // ダイアログのフォントが大きくなって
  7107.                                 // ダイアログボックスが画面からはみ出るため。
  7108. #else
  7109.     #define DTCYINT            2    // 標準の間隔
  7110. #endif
  7111. #define DTCYKEY                10        // (&K)などのアンダーバーも含む高さ
  7112. #define DTCYBOX                12        // TEXTBOXの高さ
  7113. #define DTCYCMDBUTTON        14        // コマンドボタンの高さ
  7114. #define DTCYBUTTON            12        // ボタンの高さ
  7115. #define DTCYBOX_KEY            2        // DTCYBOX - DTCYKEY
  7116. // dialogSetDlgprocのWM_INITDIALOGでの返り値の定義
  7117. // FALSEを返すのは、INITDIALOG_TRUEを返すのと同じ
  7118. #define INITDIALOG_TRUE            0    // WM_INITDIALOGの返り値にTRUEを返す
  7119.                                     // (WindowsがデフォルトのSETFOCUSをする)
  7120. #define INITDIALOG_FALSE        1    // FALSEを返す
  7121.                                     // (WindowsがデフォルトのSETFOCUSをしない)
  7122. #define INITDIALOG_SKIP_TRUE    2    // dialog.c内のWM_INITDIALOG処理をスキップ
  7123. #define INITDIALOG_SKIP_FALSE    3    // 同上
  7124. //
  7125. #define DCS_PUSHBUTTON        0x01    // "BUTTON",    BS_PUSHBUTTON | WS_TABSTOP
  7126. #define DCS_DEFPUSHBUTTON    0x02    // "BUTTON",    BS_DEFPUSHBUTTON | WS_TABSTOP
  7127. #define DCS_CHECKBOX        0x03    // "BUTTON",    BS_CHECKBOX | WS_TABSTOP
  7128. #define DCS_RADIOBUTTON        0x04    // "BUTTON",    BS_RADIOBUTTON | WS_TABSTOP
  7129. #define DCS_GROUPBOX        0x05    // "BUTTON",    BS_GROUPBOX | WS_TABSTOP
  7130. #define DCS_LTEXT            0x06    // "STATIC",    SS_LEFT | WS_GROUP
  7131. #define DCS_CTEXT            0x07    // "STATIC",    SS_CENTER | WS_GROUP
  7132. #define DCS_RTEXT            0x08    // "STATIC",    SS_RIGHT | WS_GROUP
  7133. #define DCS_ICON            0x09    // "STATIC",    SS_ICON
  7134. #define DCS_EDITTEXT        0x0A    // "EDIT",        ES_LEFT | WS_BORDER | WS_TABSTOP
  7135. #define DCS_SCROLLBAR        0x0B    // "SCROLLBAR",    SBS_HORZ
  7136. #define DCS_LISTBOX            0x0C    // "LISTBOX",    LBS_NOTIFY | WS_BORDER | WS_VSCROLL
  7137. #define DCS_COMBOBOX        0x0D    // "COMBOBOX",    CBS_SIMPLE | WS_TABSTOP
  7138. //
  7139. #define IDD_APPLY            29699    //WCE0.95 970923 new
  7140. //
  7141. BOOL TXAPI_(42) __dialogAddItem(HDIALOG hd,mchar *szClass,mchar *szText,int id,DTRECT *dtRect,long style);
  7142. BOOL TXAPI_(43) _dialogAddItem(HDIALOG hd,int nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  7143. int TXAPI_(1116) _dialogAddControlInfo(HDIALOG hd,int id);
  7144. BOOL TXAPI_(44) dialogAddItem(HDIALOG hd,BYTE nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  7145. int TXAPI_(45) dialogAddListbox(HDIALOG hd,mchar *szcaption,int width,int height);
  7146. void TXAPI_(46) dialogWriteItem(HDIALOG hd,int id);
  7147. HSTRBLK TXAPI_(47) dialogGetItemStrblk(HDIALOG hd,int id);
  7148. HWND TXAPI_(48) dialogGetItemUpdown(HDIALOG hd,int id);
  7149. void TXAPI_(49) dialogWrite(HDIALOG hd);
  7150. void TXAPI dialogWriteEx(HDIALOG hd,DWORD mode);
  7151. void TXAPI_(50) dialogReadItem(HDIALOG hd,int id);
  7152. void TXAPI dialogReadItemEx(HDIALOG hd,int id,DWORD mode);
  7153. void TXAPI_(51) dialogRead(HDIALOG hd);
  7154. void TXAPI_(52) dialogReadEx(HDIALOG hd,DWORD mode);
  7155.     #define DIALOGREAD_NOSETHIST    0x0001    // ヒストリをいじらない
  7156. BOOL TXAPI_(1118) dialogSetDialoghelpEx(HDIALOG hd,mchar* szfilename,int id);
  7157. #define dialogSetDialoghelp(hd,idd)    dialogSetDialoghelpEx(hd,NULL,idd)
  7158. #if __TXC__
  7159. #define dialogSetDlgproc            dialogSetDlgprocTxpcode
  7160. #else
  7161. void TXAPI dialogSetDlgproc(HDIALOG hd,DLGPROC proc);
  7162. #endif
  7163. void TXAPI_(53) dialogSetDlgprocTxpcode(HDIALOG hd,FARPROC proc);
  7164. LPVOID TXAPI_(54) dialogSetCustdata(HDIALOG hd,LPVOID custdata);
  7165. LPVOID TXAPI_(1071) dialogSetCustdata2(HDIALOG hd,LPVOID custdata);
  7166. LPVOID TXAPI dialogSetCustdata3(HDIALOG hd,LPVOID custdata);
  7167. void TXAPI_(55) dialogSetNotifyAsOK(HDIALOG hd,int idd,int notify);
  7168. void TXAPI_(56) dialogSetStyle(HDIALOG hd,long style);
  7169. void TXAPI_(58) dialogSetContexthelp(HDIALOG hd,DWORD fSet);
  7170. void TXAPI_(59) dialogSetFocus(HDIALOG hd,int id);
  7171. void TXAPI_(60) dialogSetNoButton(HDIALOG hd);
  7172. LPVOID TXAPI_(61) dialogGetCustdata(HDIALOG hd);
  7173. LPVOID TXAPI_(1070) dialogGetCustdata2(HDIALOG hd);
  7174. LPVOID TXAPI dialogGetCustdata3(HDIALOG hd);
  7175. DWORD TXAPI_(62) dialogGetStyle(HDIALOG hd);
  7176. #if __TXC__
  7177. LPVOID TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  7178. #else
  7179. DLGTEMPLATE* TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  7180. #endif
  7181. HWND TXAPI_(64) dialogGetWindow(HDIALOG hd);
  7182. void TXAPI_(65) dialogSetIntXY(HDIALOG hd,int dtcx,int dtcy);
  7183. void TXAPI_(66) dialogResetInt(HDIALOG hd);
  7184. void TXAPI_(67) dialogSetH(HDIALOG hd);
  7185. void TXAPI_(68) dialogSetV(HDIALOG hd);
  7186. BOOL TXAPI_(69) dialogControlGuide(HDIALOG hd,mchar *szguide,int wguide);
  7187. void TXAPI_(70) dialogControlStyle(HDIALOG hd,DWORD style);
  7188. void TXAPI_(71) dialogControlHist(HDIALOG hd,HHIST hhist);
  7189. void TXAPI_(72) dialogControlHistRead(HDIALOG hd,HHIST hhist);
  7190. void TXAPI_(73) dialogControlStrblk(HDIALOG hd,HSTRBLK sb);
  7191. void TXAPI_(74) dialogControlStrblkHist(HDIALOG hd,HSTRBLK sb);
  7192. void TXAPI_(75) dialogControlEnable(HDIALOG hd,BOOL fEnable);
  7193. void TXAPI_(76) dialogControlReverseBool(HDIALOG hd);
  7194. #if WINDOWSCE
  7195.     #define dialogControlHelp(hd,id)    //WZ4.00Ab 990117 PWZではdialogControlHelpは何もしない#defineに変更。プログラムサイズ削減のため。
  7196.     #define dialogControlHelpEx(hd,sz,id)    //WZ4.00Ca 991204 
  7197. #else
  7198. void TXAPI_(77) dialogControlHelp(HDIALOG hd,int id);
  7199. #endif
  7200. BOOL TXAPI_(58) dialogControlHelpEx(HDIALOG hd,mchar* szfilename,int id);
  7201. void TXAPI_(78) dialogControlID(HDIALOG hd,int id);
  7202. void TXAPI_(79) dialogControlUpdown(HDIALOG hd,int minSpin,int maxSpin);
  7203. void TXAPI dialogControlConvertproc(HDIALOG hd,LPVOID procConv);
  7204. void TXAPI_(80) dialogControlMap(HDIALOG hd,int idMap);
  7205.     #define DIALOGCONTROLMAP_TWIPS_MCM    1    // TWIPS(1/1440 inch)データを1/10mm単位で表示
  7206.     #define DIALOGCONTROLMAP_10            2    // データを/10して表示
  7207. int TXAPI_(81) dialogCaption(HDIALOG hd,mchar *szCaption);
  7208. int TXAPI_(82) dialogCaptionDynamic(HDIALOG hd,mchar *szCaption,int width);
  7209. int TXAPI_(83) dialogCaptionDynamicEx(HDIALOG hd,mchar *szCaption,int width,int height);
  7210. int TXAPI_(1080) dialogCaptionGuide(HDIALOG hd,mchar *szCaption);
  7211. int TXAPI_(84) dialogColor(HDIALOG hd,mchar* szCaption,mchar* szTitle,COLORREF* rgb,int wCaption,LPVOID pPreview);
  7212. int TXAPI_(85) dialogPushbutton(HDIALOG hd,mchar *szCaption,int wCaption);
  7213. int TXAPI_(86) dialogPushbuttonBig(HDIALOG hd,mchar *szCaption,int wCaption);
  7214. int TXAPI_(87) dialogCmd(HDIALOG hd,mchar *szCaption,int wCaption);
  7215. int TXAPI_(88) dialogCmdDefault(HDIALOG hd,mchar *szCaption,int wCaption);
  7216. int TXAPI_(89) dialogCmdID(HDIALOG hd,mchar *szCaption,int wCaption,int id);
  7217. int TXAPI_(90) dialogCheck(HDIALOG hd,mchar *szCaption,BOOL *bool);
  7218. int TXAPI_(91) dialogCheckB(HDIALOG hd,mchar *szCaption,BBOOL *bool);
  7219. int TXAPI_(92) dialogOK(HDIALOG hd,int wCaption);
  7220. int TXAPI_(93) dialogCancel(HDIALOG hd,int wCaption);
  7221. void TXAPI_(94) dialogApply(HDIALOG hd,int dtx,int dty);
  7222. int TXAPI_(95) dialogClose(HDIALOG hd,int wCaption);
  7223. int TXAPI_(12) dialogString(HDIALOG hd,mchar *szCaption,int wCaption,mchar *szText,int cchText,int wBox);
  7224. int TXAPI_(113) dialogTxstr(HDIALOG hd,mchar *szCaption,int wCaption,TXSTR szText,int wBox);
  7225. int TXAPI_(13) dialogStringW(HDIALOG hd,mchar *szCaption,int wCaption,wchar *wszText,int cchText,int wBox);
  7226. int TXAPI dialogAstring(HDIALOG hd,mchar *szCaption,int wCaption,mchar** paszText,int wBox);    //WZ4.00Da 000206 
  7227. int TXAPI_(14) dialogInteger(HDIALOG hd,mchar *szCaption,int wCaption,int *integer,int wBox);
  7228. int TXAPI_(15) dialogIntegerW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* integer,int wBox);
  7229. int TXAPI_(16) dialogIntegerB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* integer,int wBox);
  7230. int TXAPI_(17) _cdecl dialogChoice(HDIALOG hd,mchar *szCaption,int wCaption,int *data,int wBox,mchar* szItem,...);
  7231. int TXAPI_(18) _cdecl dialogChoiceW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* data,int wBox,mchar* szItem,...);
  7232. int TXAPI_(19) _cdecl dialogChoiceB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* data,int wBox,mchar* szItem,...);
  7233. int TXAPI_(20) _cdecl dialogChoiceString(HDIALOG hd,mchar *szCaption,int wCaption,mchar* szText,int cchText,int wBox,mchar* szItem,...);
  7234. int TXAPI _cdecl dialogChoiceStringWA(HDIALOG hd,mchar *szCaption,int wCaption,wchar* szText,int cchText,int wBox,mchar* szItem,...);
  7235. int TXAPI_(21) _cdecl dialogChoiceRadio(HDIALOG hd,int *data,mchar* szItem,...);
  7236. int TXAPI_(22) _cdecl dialogChoiceRadioW(HDIALOG hd,SIGNED_WORD* data,mchar* szItem,...);
  7237. int TXAPI_(23) _cdecl dialogChoiceRadioB(HDIALOG hd,SIGNED_BYTE* data,mchar* szItem,...);
  7238. int TXAPI_(25) dialogList(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  7239. int TXAPI dialogChoiceList(HDIALOG hd,mchar* szCaption,int* data,int width,int height);
  7240. void TXAPI_(26) dialogIndent(HDIALOG hd,int dx);
  7241. void TXAPI_(27) dialogLFV(HDIALOG hd);
  7242. void TXAPI_(28) dialogCmdLFV(HDIALOG hd);
  7243. void TXAPI_(29) dialogLF(HDIALOG hd);
  7244. void TXAPI_(30) dialogSpace(HDIALOG hd);
  7245. void TXAPI_(31) dialogSpaceH(HDIALOG hd);
  7246. void TXAPI_(32) dialogSpaceV(HDIALOG hd);
  7247. void TXAPI_(33) dialogGetPos(HDIALOG hd,DTRECT *r);
  7248. int TXAPI_(34) dialogGetPosX(HDIALOG hd);
  7249. int TXAPI_(35) dialogGetPosY(HDIALOG hd);
  7250. void TXAPI_(36) dialogSetPos(HDIALOG hd,DTRECT *r);
  7251. void TXAPI_(37) dialogSetPosLX(HDIALOG hd,int lx);
  7252. void TXAPI_(38) dialogSetPosX(HDIALOG hd,int x);
  7253. void TXAPI_(39) dialogSetPosY(HDIALOG hd,int y);
  7254. void TXAPI dialogSetPosXY(HDIALOG hd,int x,int y);
  7255. #define dialogAddPosY(hd,y)    (dialogSetPosY(hd,(dialogGetPosY(hd) + y)))
  7256. int TXAPI_(897) dialogHeadline(HDIALOG hd,mchar* szCaption,int wHeadline);    //WZ4.00A 981229 
  7257. HDIALOG TXAPI_(40) dialogFromHwnd(HWND hwnd);
  7258. void TXAPI_(41) dialogTerm(HDIALOG hd);
  7259. HDIALOG TXAPI_(10) dialog(mchar* szCaption);
  7260. void TXAPI_(672) dialogSetHookState(HDIALOG hd,int state);
  7261. int TXAPI_(11) dialogOpen(HDIALOG hd);
  7262. #define dialogLFSetV(hd)    {dialogSetV(hd);dialogLF(hd);}
  7263. #if PSPC
  7264.     #define dialogLFIndentPSPC(hd,n)    {dialogLF(hd);dialogIndent(hd,n);}
  7265.     #define dialogLfPSPC(hd)            {dialogLF(hd);}
  7266.     #define dialogSetGuideLfPSPC(hd)    hd->fPspcGuideLf = TRUE;
  7267.     #define dialogSetGuideLfOncePSPC(hd)    hd->fPspcGuideLfOnce = TRUE;
  7268.     #define dialogSetCaptionNoLfPSPC(hd,f)    hd->fPspcCaptionNoLf = f;
  7269. #else
  7270.     #define dialogLFIndentPSPC(hd,n)    ;
  7271.     #define dialogLfPSPC(hd)            ;
  7272.     #define dialogSetGuideLfPSPC(hd)    ;
  7273.     #define dialogSetGuideLfOncePSPC(hd)    ;
  7274.     #define dialogSetCaptionNoLfPSPC(hd,f)    ;
  7275. #endif
  7276. void TXAPI_(577) dialogSetPosLF(HDIALOG hd);
  7277. void TXAPI_(578) dialogSetParent(HDIALOG hd,HWND hwndParent);
  7278. BOOL TXAPI_(579) dialogAddPage(HDIALOG hd,HDIALOG hdPage);
  7279. void TXAPI_(580) dialogSetStartPage(HDIALOG hd,int iStartPage);
  7280. void dialogAddAboutTimeLimit(HDIALOG hd);
  7281. void TXAPI dialogSetSize(HDIALOG hd,DTRECT *r);
  7282. void TXAPI dialogApplyEx(HDIALOG hd,int dtx,int dty,mchar* szCaption);
  7283. HWND TXAPI_(581) dialogGetBaseWindow(HDIALOG hd);
  7284. HWND TXAPI dialogGetPageWindow(HDIALOG hd,int iPage);
  7285. void TXAPI_(582) dialogControlRadioV(HDIALOG hd);
  7286. int TXAPI_(583) dialogEditWz(HDIALOG hd,mchar* szCaption,TX* text,int width,int height,DWORD ws);
  7287. HWND TXAPI_(584) dialogCreate(HDIALOG hd);
  7288. BOOL TXAPI_(585) dialogFree(HWND hwnd);
  7289. BOOL TXAPI_(586) dialogControlRefer(HDIALOG hd,mchar *szpath);
  7290. int TXAPI_(587) dialogSelectFont(HDIALOG hd,mchar* szCaption,int wCaption,mchar* lfFaceName,BYTE* lfHeight,SELFONTARG* arg);
  7291. // sub dialog proc
  7292. BOOL subdlgprocSblist(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam,HSTRBLK sb);
  7293. void comboboxex_Exec(HWND hwnd);
  7294. // dialog application
  7295. mchar* TXAPI_(588) dialogaSelHistEx(mchar* szCaption,HHIST hist,DWORD mode,TX* text);
  7296. mchar* TXAPI_(589) dialogaSelectSb(mchar* szCaption,HSTRBLK sb,DWORD mode,TX* text,mchar* szStdAdd);
  7297.     #define SELHIST_FILEOPEN    0x0001
  7298.     #define SELHIST_IMECONVERT    0x0002
  7299.     #define SELHIST_READMODE    0x0004    // 編集不可
  7300.     #define SELHIST_REVERSE        0x0008    // 内部用
  7301.     #define SELHIST_REFERFOLDER    0x0010
  7302.     #define SELHIST_PATH        0x0020
  7303. mchar* TXAPI_(590) dialogaSelHist(mchar* szCaption,HHIST hist);
  7304. mchar* TXAPI_(591) dialogaSelFolderlist(mchar szResult[CCHPATHNAME],mchar* szStdAdd);
  7305. int TXAPI_(592) TXAPIBASE dialogaText(TX* text,mchar* szcaption);
  7306. #if 1//WZ4.00Be 990405 CE2.11ではprintf,wprintfが既定義。
  7307.     #if __TXC__    // TX-Cの関数名は変えない様にする。CE1.01やCE2.0のTX-CでコンパイルしたTXMと互換性を保つため。
  7308.         void TXAPI_(593) printf(LPCSTR szFormat,...);
  7309.         void wprintf(wchar* szFormat,...);
  7310.     #else
  7311.         #if !UNIX
  7312.             void ty_printf(LPCSTR szFormat,...);
  7313.             void ty_wprintf(wchar* szFormat,...);
  7314.             #define printf    ty_printf
  7315.             #define wprintf    ty_wprintf
  7316.         #endif
  7317.     #endif
  7318. #else
  7319. void TXAPI_(593) printf(LPCSTR szFormat,...);
  7320. void wprintf(wchar* szFormat,...);
  7321. #endif
  7322. TX* printfGetText(void);
  7323. void TXAPI_(594) dialogaDebugEnd(void);
  7324. HWND TXAPI_(595) dialogaDebugStart(void);
  7325. int TXAPI_(893) dialogGetPage(HDIALOG hd);
  7326. // ダイアログ作成 for TX-C互換
  7327. int TXAPI_(869) dialogSelect(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,HSTRBLK sb);
  7328. int TXAPI_(870) _varyarg dialogSelectID(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,mchar* szItem,...);
  7329. int TXAPI_(871) _varyarg dialogSelectStr(HDIALOG hd,mchar* szCaption,TXSTR data,int wCaption,int wBox,mchar* szItem,...);
  7330. int TXAPI_(872) dialogButton(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  7331. int TXAPI_(873) dialogButtonBig(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  7332. // 簡単ダイアログ for TX-C互換
  7333. BOOL TXAPI_(862) inputint(mchar* szcaption,int* data);
  7334. BOOL TXAPI_(863) inputstr(mchar* szcaption,TXSTR dst);
  7335. int  TXAPI_(864) _varyarg intselect(mchar* szcaption,mchar* szstr,...);
  7336. mchar* TXAPI_(877) _varyarg strselect(mchar* szcaption,mchar* szstr,...);
  7337. //
  7338. #if !__TXC__
  7339. BOOL IntoModal(BOOL fOutputErrorMessage);
  7340. void ExitModal(void);
  7341. void dialogaErrorOpenDialog(void);
  7342. BOOL dialogaAutoFilename(TX* text,mchar* szfilename,DWORD mode);
  7343.     #define AFN_SILENT    0x0001
  7344.     #define AFN_REFER    0x0002
  7345.     #define AFN_DETAIL    0x0004
  7346. HDIALOG TXAPI dialogGetPageDialog(HDIALOG hd,int iPage);
  7347.     #if !UNIX
  7348.         #ifndef TXC_DLL
  7349.         DWORD    (WINAPI *txpcodeCallAddress)(LPBYTE pc,UINT nArg,LPVOID pArg);
  7350.         #endif
  7351.     #endif
  7352. #endif
  7353. void dialogAddConvertChar(HDIALOG hd,CCCONTEXT* ccc);
  7354. HDIALOG dialogNewAbout(mchar* szAppName,mchar* szVersion);
  7355. int dialogOpenAbout(HDIALOG hd);
  7356. void dialogAddAboutCopyright(HDIALOG hd);
  7357. //WZ4.00Bk 990902 dialogTreeニーズに応え復活。
  7358. LPVOID TXAPI_(24) dialogTree(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  7359. void dialogAddSearchopt(HDIALOG hd,SEARCHOPT* opt,int mode);
  7360.  
  7361. //##information/question/attention
  7362.  
  7363. void _cdecl TXAPI_(539) winformation(wchar* szformat,...);
  7364. void _cdecl TXAPI_(540) wattention(wchar* szformat,...);
  7365. int _cdecl TXAPI_(541) wquestion(wchar* szformat,...);
  7366. int _cdecl TXAPI_(542) wquestionYesNo(wchar* szformat,...);
  7367. int _cdecl TXAPI_(543) wquestionNoYes(wchar* szformat,...);
  7368. int _cdecl wquestionNoYesCancel(wchar* szformat,...);
  7369. void _cdecl TXAPI_(544) wstatprintf(wchar* szformat,...);
  7370. wchar* TXAPI_(545) rcStringW(int ids);
  7371. mchar* TXAPI_(546) rcString(int ids);
  7372. #ifndef TXC_DLL
  7373. void _cdecl statprintf_V(mchar** szformat);
  7374. void _cdecl TXAPI_(7) statprintf(mchar* szformat,...);
  7375. #endif
  7376. void _cdecl TXAPI_(4) information(mchar* szformat,...);
  7377. void _cdecl TXAPI_(5) attention(mchar* szformat,...);
  7378. int _cdecl TXAPI_(6) question(mchar* szformat,...);
  7379. void TXAPI_(900) txStatusbarPrintf(TX* text,mchar* szformat,...);
  7380. #if !__TXC__
  7381. void statprintfClearFlush(TX* text);
  7382. void statprintfClear(TX* text);
  7383. void debugf(mchar* szformat,...);
  7384. int TXAPIBASE textinformation(TX* text,mchar* szcaption);
  7385. int myMessageBoxW(LPCWSTR lpText,UINT uType);
  7386. int questionOverwrite(wchar* wszfilename);
  7387. #endif
  7388.  
  7389. //WZ4.00Ca 991229 FILER/ファイルリストコントロールを廃止
  7390.  
  7391. //##IDMコマンド
  7392.  
  7393. #if !__TXC__
  7394. BOOL txIDM_UIEXIT(TX* text);
  7395. BOOL txIDM_UISAVEAS(TX* text);
  7396. BOOL txIDM_UISAVEASVZ(TX* text);
  7397. BOOL txIDM_UICLOSE(TX* text);
  7398. BOOL txIDM_FILEMENUVZ(TX* text);
  7399. BOOL txIDM_OPENBACKUP(TX* text);
  7400. BOOL txIDM_UISAVEALL(TX* text);
  7401. BOOL txIDM_UICLOSEOPEN(TX* text);
  7402. BOOL txIDM_UIAPPENDVZ(TX* text);
  7403. BOOL txIDM_UIRENAMEVZ(TX* text);
  7404. BOOL txIDM_UICLOSEALLVZ(TX* text);
  7405. BOOL txIDM_UICLOSEALLFORCE(TX* text);
  7406. BOOL txIDM_UIQUITALL(TX* text);
  7407. BOOL txIDM_PREVWINDOW(TX* text);
  7408. BOOL txIDM_NEXTWINDOW(TX* text);
  7409. BOOL txIDM_UISAVECLOSE(TX* text);
  7410. BOOL txIDM_UIQUIT(TX* text);
  7411. BOOL txIDM_UISEARCH(TX* text);
  7412. BOOL txIDM_UIREPLACE(TX* text);
  7413. BOOL txIDM_UIREPLACEQUERY(TX* text);
  7414. BOOL txIDM_UIREPLACENOQUERY(TX* text);
  7415. BOOL txIDM_UISEARCHSET(TX* text);
  7416. BOOL txIDM_SEARCHCONTINUECBPREV(TX* text);
  7417. BOOL txIDM_SEARCHCONTINUECB(TX* text);
  7418. BOOL txIDM_SEARCHCONTINUEPREV(TX* text);
  7419. BOOL txIDM_SEARCHCONTINUE(TX* text);
  7420. BOOL txIDM_ABOUT(TX* text);
  7421. BOOL txIDM_UISELECTIDM(TX* text);
  7422. BOOL txIDM_DOWNHIGH(TX* text);
  7423. BOOL txIDM_UPHIGH(TX* text);
  7424. BOOL txIDM_JUMPLINETOP(TX* text);
  7425. BOOL txIDM_JUMPLINETAIL(TX* text);
  7426. BOOL txIDM_NEXTROLL(TX* text);
  7427. BOOL txIDM_PREVROLL(TX* text);
  7428. BOOL txIDM_DOWN(TX* text);
  7429. BOOL txIDM_UP(TX* text);
  7430. BOOL txIDM_RIGHTBINEDIT(TX* text);
  7431. BOOL txIDM_RIGHT(TX* text);
  7432. BOOL txIDM_LEFT(TX* text);
  7433. BOOL txIDM_LEFTWORD(TX* text);
  7434. BOOL txIDM_LEFTWORDMI(TX* text);
  7435. BOOL txIDM_RIGHTWORD(TX* text);
  7436. BOOL txIDM_RIGHTWORDMI(TX* text);
  7437. BOOL txIDM_JUMPWORDTOPMI(TX* text);
  7438. BOOL txIDM_JUMPWORDENDMI(TX* text);
  7439. BOOL txIDM_DELETECHAR(TX* text);
  7440. BOOL txIDM_DELETEPREV(TX* text);
  7441. BOOL txIDM_DELETEWORD(TX* text);
  7442. BOOL txIDM_DELETEWORDMI(TX* text);
  7443. BOOL txIDM_DELETEWORDPREV(TX* text);
  7444. BOOL txIDM_DELETEPARATOP(TX* text);
  7445. BOOL txIDM_DELETEPARAEND(TX* text);
  7446. BOOL txIDM_DELETEPARA(TX* text);
  7447. BOOL txIDM_DELETELINE(TX* text);
  7448. BOOL txIDM_DELETEPARALINETOP(TX* text);
  7449. BOOL txIDM_DELETEPARALINEEND(TX* text);
  7450. BOOL txIDM_DELETEPARALINE(TX* text);
  7451. BOOL txIDM_INSERTFIND(TX* text);
  7452. BOOL txIDM_DELETEPREVWORD(TX* text);
  7453. BOOL txIDM_SHIFTENTER(TX* text);
  7454. BOOL txIDM_INSERTRETURN(TX* text);
  7455. BOOL txIDM_INSERTBEAM(TX* text);
  7456. BOOL txIDM_TAB(TX* text);
  7457. BOOL txIDM_SHIFTTAB(TX* text);
  7458. BOOL txIDM_JUMPFILETOPLINE(TX* text);
  7459. BOOL txIDM_JUMPFILEENDLINE(TX* text);
  7460. BOOL txIDM_JUMPFILETOP(TX* text);
  7461. BOOL txIDM_JUMPFILEEND(TX* text);
  7462. BOOL txIDM_SELECT(TX* text);
  7463. BOOL txIDM_SELECTWORD(TX* text);
  7464. BOOL txIDM_SELECTBOX(TX* text);
  7465. BOOL txIDM_SELECTSWITCH(TX* text);
  7466. BOOL txIDM_PASTE(TX* text);
  7467. BOOL txIDM_PASTESELECT(TX* text);
  7468. BOOL txIDM_PASTECHAR(TX* text);
  7469. BOOL txIDM_PASTEVZ(TX* text);
  7470. BOOL txIDM_CUT(TX* text);
  7471. BOOL txIDM_CUTVZ(TX* text);
  7472. BOOL txIDM_CLEAR(TX* text);
  7473. BOOL txIDM_COPY(TX* text);
  7474. BOOL txIDM_COPYQUIT(TX* text);
  7475. BOOL txIDM_COPYQUITVZ(TX* text);
  7476. BOOL txIDM_JUMPPARATOP(TX* text);
  7477. BOOL txIDM_JUMPPARAEND(TX* text);
  7478. BOOL txIDM_UNDOPARA(TX* text);
  7479. BOOL txIDM_UNDO(TX* text);
  7480. BOOL txIDM_REDO(TX* text);
  7481. BOOL txIDM_SWITCHDISPUNDER(TX* text);
  7482. BOOL txIDM_SWITCHDISPLINE(TX* text);
  7483. BOOL txIDM_SWITCHDISPTOOLBAR(TX* text);
  7484. BOOL txIDM_SWITCHDISPRULER(TX* text);
  7485. BOOL txIDM_SWITCHDISPTAB(TX* text);
  7486. BOOL txIDM_SWITCHDISPJSPACE(TX* text);
  7487. BOOL txIDM_SWITCHWINDOWFULLY(TX* text);
  7488. BOOL txIDM_SWITCHDISPTAG(TX* text);
  7489. BOOL txIDM_SWITCHSCROLLBARV(TX* text);
  7490. BOOL txIDM_PAGEUPPRIM(TX* text);
  7491. BOOL txIDM_PAGEUP(TX* text);
  7492. BOOL txIDM_PAGEDOWNPRIM(TX* text);
  7493. BOOL txIDM_PAGEDOWN(TX* text);
  7494. BOOL txIDM_SWITCHPAGE(TX* text);
  7495. BOOL txIDM_CLEARSEARCHMODE(TX* text);
  7496. BOOL txIDM_SELECTALL(TX* text);
  7497. BOOL txIDM_NEW(TX* text);
  7498. BOOL txIDM_UINEW(TX* text);
  7499. BOOL txIDM_NEWPROCESS(TX* text);
  7500. BOOL txIDM_UIOPEN(TX* text);
  7501. BOOL txIDM_UIOPENVZ(TX* text);
  7502. BOOL txIDM_UIOPENREADVZ(TX* text);
  7503. BOOL txIDM_UIOPENHIST(TX* text);
  7504. BOOL txIDM_UIINSERTFILE(TX* text);
  7505. BOOL txIDM_UIREOPEN(TX* text);
  7506. BOOL txIDM_UISAVE(TX* text);
  7507. BOOL txIDM_UISAVEEDITED(TX* text);
  7508. BOOL txIDM_UICONFIGREAD(TX* text);
  7509. BOOL txIDM_UIJUMP(TX* text);
  7510. BOOL txIDM_JUMPPREV(TX* text);
  7511. BOOL txIDM_JUMPNEXT(TX* text);
  7512. BOOL txIDM_UIJUMPBACK(TX* text);
  7513. BOOL txIDM_POP(TX* text);
  7514. BOOL txIDM_UNDELETE(TX* text);
  7515. BOOL txIDM_SEARCHGET(TX* text);
  7516. BOOL txIDM_INSERTPARA(TX* text);
  7517. BOOL txIDM_SWITCHINSERT(TX* text);
  7518. BOOL txIDM_UIINSERTSEARCH(TX* text);
  7519. BOOL txIDM_UIINSERTCOPY(TX* text);
  7520. BOOL txIDM_UIINSERTSTR(TX* text);
  7521. BOOL txIDM_UIINSERTDELETE(TX* text);
  7522. BOOL txIDM_UIINSERTFILENAME(TX* text);
  7523. BOOL txIDM_SWITCHAUTOFORM(TX* text);
  7524. BOOL txIDM_FORM(TX* text);
  7525. BOOL txIDM_FORM(TX* text);
  7526. BOOL txIDM_FORMREFNAME(TX* text);
  7527. BOOL txIDM_ALTENTER(TX* text);
  7528. BOOL txIDM_UIFORMPROPERTY(TX* text);
  7529. BOOL txIDM_CONTEXTMENU(TX* text);
  7530. BOOL txIDM_INSERTHR(TX* text);
  7531. BOOL txIDM_UICONVERTTEXT(TX* text);
  7532. BOOL txIDM_ZENHANWORD(TX* text);
  7533. BOOL txIDM_CASEWORD(TX* text);
  7534. BOOL txIDM_UIINSERTDATE(TX* text);
  7535. BOOL txIDM_UIINFO(TX* text);
  7536. BOOL txIDM_SWITCHREADMODE(TX* text);
  7537. BOOL txIDM_SWITCHOUTLINE(TX* text);
  7538. BOOL txIDM_FLUSHOUTLINE(TX* text);
  7539. BOOL txIDM_UIINSERTTEMPLATE(TX* text);
  7540. BOOL txIDM_UIINSERTCONTROL(TX* text);
  7541. BOOL txIDM_JUMPSCREENTOP(TX* text);
  7542. BOOL txIDM_JUMPSCREENEND(TX* text);
  7543. BOOL txIDM_UIREPLACECONTINUE(TX* text);
  7544. BOOL txIDM_SELECTJUMP(TX* text);
  7545. BOOL txIDM_DUPEPARA(TX* text);
  7546. BOOL txIDM_SELECTLINE(TX* text);
  7547. BOOL txIDM_UISEARCHPREV(TX* text);
  7548. BOOL txIDM_UISEARCHNEXT(TX* text);
  7549. BOOL txIDM_SETLYTOP(TX* text);
  7550. BOOL txIDM_SWITCHLY(TX* text);
  7551. BOOL txIDM_DISPCUR(TX* text);
  7552. BOOL txIDM_TOSEARCHBOX(TX* text);
  7553. BOOL txIDM_ISEARCH(TX* text);
  7554. BOOL txIDM_ISEARCHPREV(TX* text);
  7555. BOOL txIDM_ISEARCHRE(TX* text);
  7556. BOOL txIDM_COMPLETEPREV(TX* text);
  7557. BOOL txIDM_COMPLETENEXT(TX* text);
  7558. BOOL txIDM_UIGENE(TX* text);
  7559. BOOL txIDM_DUP(TX* text);
  7560. BOOL txIDM_UIINSERTTABLE(TX* text);
  7561. BOOL txIDM_RUBY(TX* text);
  7562. BOOL txIDM_PROOF(TX* text);
  7563. BOOL txIDM_DISPALL(TX* text);
  7564. BOOL txIDM_FLUSHTABLE(TX* text);
  7565. BOOL txIDM_FLUSHTABLEALL(TX* text);
  7566. BOOL txIDM_UISORT(TX* text);
  7567. BOOL txIDM_SWITCHBINARY(TX* text);
  7568. BOOL txIDM_UIADDTOFILE(TX* text);
  7569. BOOL txIDM_PRJ_UIOPEN(TX* text);
  7570. BOOL txIDM_PRJ_UISAVE(TX* text);
  7571. BOOL txIDM_PRJ_UISAVEADD(TX* text);
  7572. void txIDM_PRJ_SAVERESUME(TX* text);
  7573. BOOL txIDM_RESUME(TX* text);
  7574. BOOL txIDM_SWITCHDETAIL(TX* text);
  7575. BOOL txIDM_UIPRINTSTYLE(TX* text);
  7576. BOOL txIDM_UIPRINT(TX* text);
  7577. BOOL txIDM_UIPRINTEXEC(TX* text);
  7578. BOOL txIDM_PV_SWITCH(TX* text);
  7579. BOOL txIDM_PV_ZOOMOUT(TX* text);
  7580. BOOL txIDM_PV_ZOOMIN(TX* text);
  7581. BOOL txIDM_PV_ZOOMOUTD(TX* text);
  7582. BOOL txIDM_PV_ZOOMIND(TX* text);
  7583. BOOL txIDM_PV_ZOOMFIT(TX* text);
  7584. BOOL txIDM_PV_ZOOMFITX(TX* text);
  7585. BOOL txIDM_PV_ZOOMUNDO(TX* text);
  7586. BOOL txIDM_UIINSERTBITMAP(TX* text);
  7587. BOOL txIDM_INSERTTAGCHAR(TX* text);
  7588. BOOL txIDM_UICHARPROPERTY(TX* text);
  7589. BOOL txIDM_UIPARAPROPERTY(TX* text);
  7590. BOOL txIDM_UIINSERTFOOTNOTE(TX* text);
  7591. BOOL txIDM_FOOTNOTE(TX* text);
  7592. BOOL txIDM_INSERTFF(TX* text);
  7593. BOOL txIDM_SWITCHHEADLINE(TX* text);
  7594. BOOL txIDM_SWITCHHEADLINEPREV(TX* text);
  7595. BOOL txIDM_MACRO_HELP(TX* text);
  7596. BOOL txIDM_MACRO_HELPAPI(TX* text);
  7597. BOOL txIDM_SEARCHFUNCTION(TX* text);
  7598. BOOL txIDM_UICOMPLETE(TX* text);
  7599. BOOL txIDM_WINDOWFULLY(TX* text);
  7600. BOOL txIDM_WINDOWMULTI(TX* text);
  7601. BOOL txIDM_GREP(TX* text);
  7602. BOOL txIDM_HTML_BROWSER(TX* text);
  7603. BOOL txIDM_PROOFAUTO(TX* text);
  7604. BOOL txIDM_UIREWORDING(TX* text);
  7605. BOOL txIDM_UISPLCHK(TX* text);
  7606. BOOL txIDM_UISPLCHKCUR(TX* text);
  7607. BOOL txIDM_MACRO_UIEXEC(TX* text);
  7608. BOOL txIDM_TXC_CONFIG(TX* text);
  7609. //
  7610. BOOL _txIDM_SEND(TX* text,int idm);
  7611. BOOL _txIDM_UIIMEREGISTERWORD(TX* text,HWND hwndParent);
  7612. //
  7613. BOOL apIDM_MEMO(wchar* wszcmdline);
  7614. BOOL apIDM_GREP(wchar* wszcmdline);
  7615. BOOL apIDM_FILER(wchar* wszcmdline);
  7616. BOOL apIDM_ICON(void);
  7617. BOOL apIDM_MAILER(wchar* wszcmdline);
  7618. BOOL apIDM_TERMINAL(wchar* wszcmdline);
  7619. BOOL apIDM_HELP(wchar* wszcmdline);
  7620. #endif    // !__TXC__
  7621.  
  7622. //{###TX-Cサポート
  7623.  
  7624. //##TX-C専用のAPI
  7625.  
  7626. #if __TXC__
  7627. HWND TXAPI_(847) txGetNextEditor(TX* text);
  7628. BOOL TXAPI_(885) txInit(TX* text,mchar* szfilename);
  7629. BOOL TXAPI_(855) fileCopy(mchar* szfilenameSrc,mchar* szfilenameDst);
  7630. BOOL TXAPI_(856) fileDelete(mchar* szfilename);
  7631. BOOL TXAPI_(857) fileRename(mchar* szfilenameSrc,mchar* szfilenameDst);
  7632. int TXAPI_(858) mkdir(mchar* szpath);
  7633. int TXAPI_(859) rmdir(mchar* szpath);
  7634. BOOL TXAPI_(860) CommandExec(mchar* szline);
  7635. txstr TXAPI_(768) txstrcpylen(txstr dst,mchar* src,int lch);
  7636. txstr TXAPI_(769) _strmid(txstr dst,mchar* str,int offset,int lchmid);
  7637. txstr TXAPI_(770) _strleft(txstr dst,mchar* str,int lchleft);
  7638. txstr TXAPI_(771) _inttostr(txstr dst,int num);
  7639. txstr TXAPI_(772) _chartostr(txstr dst,int ch);
  7640. mchar* TXAPI_(773) strright(mchar* str,int lchright);
  7641. mchar* TXAPI_(774) strrear(mchar* str,int lchleft);
  7642. extern "stdlib" {
  7643.     BOOL CommandBar_mySetMenu(HWND hwndCB,WORD iButton,HMENU hmenuAdd);
  7644. }
  7645. #if !WINDOWSCE
  7646.     #define CommandBar_Height(hwnd)        (0)
  7647. #endif
  7648. #endif
  7649.  
  7650. //##TX-C3.0以前との互換
  7651.  
  7652. #if __TXC__
  7653. #define beepAsterisk()                    MessageBeep(0x0040)
  7654. #define beepDefault()                    MessageBeep(0)
  7655. #define beepExclamation()                MessageBeep(0x0030)
  7656. #define beepHand()                        MessageBeep(0x0010)
  7657. #define beepQuestion()                    MessageBeep(0x0020)
  7658. #define    txReplaceContinue(t)            txIdmExec(t,IDM_UIREPLACECONTINUE)
  7659. #define txSearch(text,sz)                txSearchEx(text,sz,SEARCH_NOSENSECASE|SEARCH_NOSENSEZENHAN)
  7660. #define txSearchPara(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP)
  7661. #define txSearchPrev(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP|SEARCH_PREV)
  7662. #define txGetCharPrev(text)                txGetPrevChar(text)
  7663. #define txGetWordBuff(text,sz,cch)        txGetWordEx(text,sz,cch)
  7664. #define informationex                    statprintf
  7665. #define isreturn(c)                        txchIsReturn(c)
  7666. #define iszenkaku(c)                    txchIsKanji(c)
  7667. #define txClipboardCopy(text)            txSelectCopy(text)
  7668. #define txClipboardCut(text)            txSelectCopyDelete(text)
  7669. #define txClipboardPaste(text)            txPaste(text)
  7670. #define txSelectTsPush(text)            txPrivatePush(text)
  7671. #define txTsClear(text)                    txPrivateClear(text)
  7672. #define txTsPaste(text)                    txPrivatePaste(text)
  7673. #define txTsPop(text)                    txPrivatePop(text)
  7674. #define txTsPopJump(text)                txPrivatePopJump(text)
  7675. #define exec(sz)                        WinExec(sz,SW_SHOWNORMAL)
  7676. #define wzExec(sz)                        wzexec(sz)
  7677. #define txofnGetOpenFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  7678. #define txofnGetOpenFileNameEx(text,sz,szCaption,mode)    txuiGetOpenFileName(text,sz,szCaption,NULL)
  7679. #define txofnReferFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  7680. #define dialogbig(sz)                    dialog(sz)
  7681. #define dialogGroup(hd,sz)
  7682. #define dialogGroupEnd(hd)
  7683. #define dialogSetGroupRight(hd,x)
  7684. #define dialogEdit(hd,sz,text,lcx,lcy)        dialogEditWz(hd,sz,text,lcx,lcy,WS_VSCROLL)
  7685. #define dialogInt(hd,sz,data,lcx,lcxBox)    dialogInteger(hd,sz,lcx,data,lcxBox)
  7686. #define dialogStr(hd,sz,txstr,lcx,lcxBox)    dialogTxstr(hd,sz,lcx,txstr,lcxBox)
  7687. #define dialogStrC(hd,sz,str,lcx,cch,lcxBox)    dialogString(hd,sz,lcx,str,cch,lcxBox)
  7688. #define dialogButtonCmd(hd,sz,szMacro,lcx)    dialogButtonBig(hd,sz,szMacro,lcx)
  7689. #define dialogRadioID                    dialogChoiceRadio
  7690. #define isopen(sz)                        SearchText(sz)
  7691. #define txSearchText(text,sz)            SearchText(sz)
  7692. #define txSearchTitle(text)                txHeadlineSearchNext(text)
  7693. #define txSearchTitlePrev(text)            txHeadlineSearchPrev(text)
  7694. #define txOpenNew(text)                    textFrameOpen(NULL)
  7695. #define call(sz)                        macroExec(sz,text)
  7696. #define fork(sz)                        forkstd(sz,NULL)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  7697. #define forksw(sz,szSw)                    forkstd(sz,szSw)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  7698. #endif
  7699.  
  7700. //##日付関数
  7701.  
  7702. #if __TXC__
  7703. int TXAPI_(866) timeGetEx(int mode);
  7704. #define timeGetDay()        timeGetEx(0)
  7705. #define timeGetDayofWeek()    timeGetEx(1)
  7706. #define timeGetDayofweek()    timeGetEx(1)    //WZ4.00Bp 991013 TX-C:timeGetDayofweek(WZ3と同じ名前)を追加
  7707. #define timeGetHour()        timeGetEx(2)
  7708. #define timeGetMinute()        timeGetEx(3)
  7709. #define timeGetMonth()        timeGetEx(4)
  7710. #define timeGetSecond()        timeGetEx(5)
  7711. #define timeGetYear()        timeGetEx(6)
  7712. #define timeGetYoubi()        ((mchar*)timeGetEx(7))
  7713. #endif
  7714.  
  7715. #endif    // RC_INVOKED
  7716. #endif    //__WZ_H
  7717.