home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 January / VPR0001A.ISO / APUPDATE / VC / TXC206 / txc206.lzh / _WZ.H < prev    next >
C/C++ Source or Header  |  1999-10-15  |  305KB  |  7,223 lines

  1. /*
  2.     WZ EDITOR 4.0 / Pocket WZ EDITOR 2.0
  3.         TX object define
  4.         Start   1997年 7月22日
  5.         Refresh 1999年 9月25日
  6.     
  7.     UNICODEを基本とする。ただしテキスト処理はANSIを使う。
  8.     WinAPIはUNICODE版を呼び出す。
  9.     Win95用のANSI版は、UNICODE版のWinAPIが実装されてないので、
  10.     自分でUNICODE版WinAPIラッパ(関数名:WinAPIの末尾に"_W"を付ける)
  11.     を作成しこれを呼び出す
  12.         WindowsCE : UNICODE only
  13.         WindowsNT : UNICODE / ANSI(UNICODEに内部で変換している)
  14.         Windows95 : ANSI only
  15.         一番軽く動作したいWindowsCEがUNICODEなのと、将来的にはWindows98は
  16.         WindowsNTに吸収される様なので、UNICODEベースとした。
  17. */
  18.  
  19. #ifndef __WZ_H
  20. #define __WZ_H
  21.  
  22. //{###構造体/定数/基本
  23.  
  24. //##基本
  25.  
  26. #define __DEV__            01    // 開発中?
  27. #define __HARDCOPY__    0    // 画面ハードコピー機能を使う?
  28. #define __BETA__        0    // ベータ版特有機能。製品では外す
  29. #define __TRYAL__        0    // 試用評価版    //WZ4.00Be 990512 
  30. // CE用は常にリリース
  31. #ifdef _WIN32_WCE
  32.     #undef  __DEV__
  33.     #define __DEV__        0
  34. #endif
  35. // Win32 Release用
  36. #ifdef WZ_RELEASE
  37.     #undef  __DEV__
  38.     #define __DEV__        0
  39. #endif
  40. // Memory debug
  41. #if __DEV__
  42. #define __MEMORYDEBUG__    UNIX    // malloc/freeチェックを行う?    //WZ4.00Bm 990929 
  43. #endif
  44. // 汎用ライブラリとして使用
  45. #if defined(GENERAL) || defined(TXC_DLL) || defined(SETUP) || defined(WZUP)
  46.     #undef    GENERAL
  47.     #define GENERAL    1
  48. #else
  49.     #undef    GENERAL
  50.     #define GENERAL    0
  51. #endif
  52.  
  53. //##WZ/PWZ基本定義
  54.  
  55. #define __WZ__            0x4002    // __VERSION__ WZのバージョン番号
  56.                                 // 0x4000 WZ4.00
  57.                                 // 0x4001 WZ4.00A
  58.                                 // 0x4002 WZ4.00B
  59. #define __PWZ__            0x2003    // __VERSION__ PWZのバージョン番号
  60.                                 // 0x2000 PWZ2.00/2.00A
  61.                                 // 0x2002 PWZ2.05
  62.                                 // 0x2003 PWZ2.06
  63. #define __XZ__            0x0003    // __VERSION__ XZのバージョン情報
  64.                                 // 0x1000 XZ1.00
  65. #define __TXSTRUCT__    107        // __VERSION__ text,mailerなどの構造体のバージョン番号(WZ/PWZ/XZ共通)
  66.                                 //WZ4.00Ac 990206 101
  67.                                 //WZ4.00Ba 990304 101->102
  68.                                 //WZ4.00Bj 990823 102->103
  69.                                 //WZ4.00Bl 990909 103->104
  70.                                 //WZ4.00Bn 991007 104->105
  71.                                 //WZ4.00Bo 991011 105->106
  72.                                 //WZ4.00Bp 991014 106->107
  73.  
  74. //WCE1.00A 971103 
  75. // _WIN32_WCE        WinCE版
  76. // WINDOWSCE        WinCE版
  77. // POCKETWZ            Pocket版? WZ4ではない
  78. // WZ4                WZ4版? Pocketではない
  79. // NEWWZ            PWZ or WZ4。WZ1-3ではない。
  80. // UNIX                UNIX+XWindow版    //WZ4.00Be 990504 
  81. // PSPC                Palm-size PC    //WZ4.00Be 990508 
  82. #ifdef PSPC
  83.     #undef    PSPC
  84.     #define PSPC            1
  85. #else
  86.     #define PSPC            0
  87. #endif
  88. #ifdef _WIN32_WCE
  89.     #if 0    // dummy PSPC test
  90.     #undef    PSPC
  91.     #define PSPC            1
  92.     #endif
  93. #endif
  94. #ifdef UNIX
  95.     #undef    UNIX
  96.     #define UNIX            1    //WZ4.00Bm 990927 [1]にdefineし直し。
  97. #else
  98.     #define UNIX            0
  99. #endif
  100. #define LINUX                0
  101.  
  102. #define WINDOWSCE211        0    //WZ4.00Be 990405 
  103. #define WINDOWSCE            0
  104. #define WS_HVSCROLL            (WS_HSCROLL|WS_VSCROLL)
  105.  
  106. #if UNIX
  107.     #define LINUX            1    // LINUX依存部分
  108.     #define POCKETWZ        0
  109.     #define WZ4                1
  110.     #define WINDOWSCE2        0
  111.     #define WS_TITLEBAR        WS_OVERLAPPEDWINDOW
  112.     #define WS_EX_STANDARD    WS_EX_CLIENTEDGE    //WZ4.00Bl 990919 
  113.     #define WS_BORDER_STANDARD    0    //WZ4.00Bm 990927 
  114.     #define WS_HVSCROLL_UNIX    WS_HVSCROLL    //WZ4.00Bm 990928 
  115.     #define SHELLEXECUTEINFOW    SHELLEXECUTEINFO
  116.     #define MYSTATUSBAR        0
  117.     #define WZFUNC_PRINT    0    // 印刷機能を使う?
  118.     #define WZFUNC_PROP        0    // プロポーショナルフォントを使う?
  119.     #define WZFUNC_BITMAP    0    // 図の表示機能を使う?
  120.     #define WZFUNC_TMLHIGH    0    // マルチフォント等高度なTML機能を使う?
  121.     #define WZFUNC_CONV        0    // ファイルコンバータ機能を使う?
  122.     #ifdef WZFUNC_EMAIL
  123.         #define WZFUNC_EMAIL    1    // E-Mail機能を使う?
  124.     #else
  125.         #define WZFUNC_EMAIL    0    // E-Mail機能を使う?
  126.     #endif
  127.     #define WZFUNC_NIFTY    0    // WZ NIFTY/TERMを使う?    //XZ0.2 990630
  128.     #define WZFUNC_TXC        0    // TX-Cを使う?
  129.     #define WZFUNC_TEXTCFG    0    // 設定をテキストファイルで保持?
  130.     #define WZFUNC_TEXTCFGBIN 0    //WZ3.90N 981201 設定をテキストファイルにも出力。テキストファイルの設定が更新されていたらそれを読み込む。
  131.     #define WZFUNC_OLECLIP    0    // OLEクリップボードを使う?
  132.     #define WZFUNC_OLEDD    0    // OLEドラッグアンドドロップを使う?
  133.     #define WZFUNC_UIREFER    0    // 「最近参照した位置に移動」を使う?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  134.     #define WZFUNC_CONVERTTEXT 1// 「テキストの変換」機能を使う?        //WZ3.90K 981114 
  135.     #define WZFUNC_TABBEAM    1    // 「タブ桁揃え」機能を使う?            //WZ3.90K 981114 
  136.                                 // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  137.     #define WZFUNC_HTMLHIGH    0    // タグのアトリビュート・縮小表示等、高度なHTML機能を使う?    //WZ4.00Ab 990117 
  138.     #define WZFUNC_HEADLINECONVERT    1    // 見出しの変換・見出しスタイルを使う?    //WZ4.00Ab 990118 
  139.     #define WZFUNC_VERTICAL    0    // 縦書きあり?    //XZ0.1 990525 
  140. #elif defined(_WIN32_WCE)    // この_WIN32_WCEはWINDOWSCEに変更しないこと
  141.     #undef    WINDOWSCE
  142.     #define WINDOWSCE    1
  143.     #if _WIN32_WCE >= 200
  144.         #define WINDOWSCE1    0
  145.         #define WINDOWSCE2    1    // WindowsCE2.0
  146.         #if _WIN32_WCE >= 211    //WZ4.00Be 990405 
  147.             #undef    WINDOWSCE211
  148.             #define WINDOWSCE211    1    // WindowsCE2.11
  149.             #define SWP_NOREDRAW    0    // SWP_NOREDRAWは定義されていない
  150.         #endif
  151.     #else
  152.         #define WINDOWSCE1    1
  153.         #define WINDOWSCE2    0
  154.     #endif
  155.     #define POCKETWZ        1
  156.     #define WZ4                0
  157.     #define WS_TITLEBAR        WS_VISIBLE
  158.     #define WS_EX_STANDARD    0    //WZ4.00Bl 990919 
  159.     #define WS_BORDER_STANDARD    WS_BORDER    //WZ4.00Bm 990927 
  160.     #define WS_HVSCROLL_UNIX    0    //WZ4.00Bm 990928 
  161.     #define SHELLEXECUTEINFOW    SHELLEXECUTEINFO
  162.     #define MYSTATUSBAR        1
  163.     #define WZFUNC_PRINT    0    // 印刷機能を使う?
  164.     #define WZFUNC_PROP        1    // プロポーショナルフォントを使う?
  165.     #define WZFUNC_BITMAP    0    // 図の表示機能を使う?
  166.     #define WZFUNC_TMLHIGH    0    // マルチフォント等高度なTML機能を使う?
  167.     #define WZFUNC_CONV        0    // ファイルコンバータ機能を使う?
  168.     #define WZFUNC_EMAIL    1    // E-Mail機能を使う?
  169.     #define WZFUNC_NIFTY    1    // WZ NIFTY/TERMを使う?    //XZ0.2 990630
  170.     #define WZFUNC_TXC        1    // TX-Cを使う?
  171.     #define WZFUNC_TEXTCFG    0    // 設定をテキストファイルで保持?
  172.     #define WZFUNC_TEXTCFGBIN 0    //WZ3.90N 981201 設定をテキストファイルにも出力。テキストファイルの設定が更新されていたらそれを読み込む。
  173.     #define WZFUNC_OLECLIP    0    // OLEクリップボードを使う?
  174.     #define WZFUNC_OLEDD    0    // OLEドラッグアンドドロップを使う?
  175.     #define WZFUNC_UIREFER    0    // 「最近参照した位置に移動」を使う?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  176.     #define WZFUNC_CONVERTTEXT 1// 「テキストの変換」機能を使う?        //WZ3.90K 981114 
  177.     #define WZFUNC_TABBEAM    1    // 「タブ桁揃え」機能を使う?            //WZ3.90K 981114 
  178.                                 // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  179.     #define WZFUNC_HTMLHIGH    0    // タグのアトリビュート・縮小表示等、高度なHTML機能を使う?    //WZ4.00Ab 990117 
  180.     #define WZFUNC_HEADLINECONVERT    1    // 見出しの変換・見出しスタイルを使う?    //WZ4.00Ab 990118 
  181.     #define WZFUNC_VERTICAL    0    // 縦書きあり?    //XZ0.1 990525 
  182. #else
  183.     #define WINDOWSCE        0
  184.     #define WINDOWSCE1        0
  185.     #define WINDOWSCE2        0
  186.     #define POCKETWZ        0
  187.     #define WZ4                1
  188.     #define WS_TITLEBAR        WS_OVERLAPPEDWINDOW
  189.     #define WS_EX_STANDARD    (_fwin40 * WS_EX_CLIENTEDGE)    //WZ4.00Bl 990919 
  190.     #define WS_BORDER_STANDARD    (!_fwin40 * WS_BORDER)        //WZ4.00Bm 990927 
  191.     #define WS_HVSCROLL_UNIX    0    //WZ4.00Bm 990928 
  192.     #define MYSTATUSBAR        0
  193.     #define WZFUNC_PRINT    1    // 印刷機能を使う?
  194.     #define WZFUNC_PROP        1    // プロポーショナルフォントを使う?
  195.                                 // 使わない場合はWZFUNC_PRINTも0にすること。
  196.     #define WZFUNC_BITMAP    1    // 図の表示機能を使う?
  197.     #define WZFUNC_TMLHIGH    1    // マルチフォント等高度なTML機能を使う?
  198.     #define WZFUNC_CONV        1    // ファイルコンバータ機能を使う?
  199.     #define WZFUNC_EMAIL    1    // E-Mail機能を使う?
  200.     #define WZFUNC_NIFTY    1    // WZ NIFTY/TERMを使う?    //XZ0.2 990630
  201.     #define WZFUNC_TXC        1    // TX-Cを使う?
  202.     #define WZFUNC_TEXTCFG    0    // 設定をテキストファイルで保持?
  203.                                 //WZ3.90N 981201 やはり1割のオーバヘッドがあるので、WZFUNC_TEXTCFGBINに変更した。
  204.     #define WZFUNC_TEXTCFGBIN 1    //WZ3.90N 981201 WZ EDITORを閉じたときにバイナリ設定ファイルが更新されていたらテキスト設定ファイルに出力
  205.                                 // WZ EDITORを開いたときに、テキスト設定ファイルが更新されていたらそれを読み込む。
  206.                                 // WZFUNC_TEXTCFGも1にしておくこと。
  207.     #define WZFUNC_OLECLIP    1    // OLEクリップボードを使う?
  208.                                 // ONにすると、TMLでコピーして他アプリにペーストしたとき素のテキストとしてペーストされる。
  209.                                 // OFFにすると、TMLタグが付いてペーストされる。
  210.     #define WZFUNC_OLEDD    1    // OLEドラッグアンドドロップを使う?
  211.     #define WZFUNC_UIREFER    0    // 「最近参照した位置に移動」を使う?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  212.     #define WZFUNC_CONVERTTEXT 1// 「テキストの変換」機能を使う?        //WZ3.90K 981114 
  213.     #define WZFUNC_TABBEAM    1    // 「タブ桁揃え」機能を使う?            //WZ3.90K 981114 
  214.                                 // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  215.     #define WZFUNC_HTMLHIGH    1    // タグのアトリビュート・縮小表示等、高度なHTML機能を使う?    //WZ4.00Ab 990117 
  216.     #define WZFUNC_HEADLINECONVERT    1    // 見出しの変換・見出しスタイルを使う?    //WZ4.00Ab 990118 
  217.     #define WZFUNC_VERTICAL    1    // 縦書きあり?    //XZ0.1 990525 
  218. #endif
  219.  
  220. #define WZFUNC_MEMOEDIT        0    // MEMOEDITモードを使う?    //WZ3.90L 981124 とりあえず使わない。
  221. #define NEWWZ                1    // POCKETWZ|WZ4
  222. #if __TRYAL__
  223.     #undef    WZFUNC_TXC
  224.     #define WZFUNC_TXC        0
  225. #endif
  226.  
  227. #if !UNIX && !WINDOWSCE
  228.     #define WINDOWSMT        1    // Windows95,98,NT,2000...
  229. #else
  230.     #define WINDOWSMT        0
  231. #endif
  232.  
  233. #if defined(ARM)    //WZ4.00Be 990418 for ARM
  234.     #define memmove(d,s,c)    tymemmove(d,s,c);
  235.     void* tymemmove(void* dest,void* src,size_t n);
  236. #endif
  237.  
  238. //##以上、RCでも有効
  239.  
  240. #ifndef RC_INVOKED
  241.  
  242. //##TX-Cの基本定義
  243.  
  244. #ifdef __TXC__
  245.  
  246. // LPSTR等が<char>なので、漢字を扱うのが不便。
  247. // そこで<char=unsigned char>とする
  248. #pragma char=unsigned
  249.  
  250. #define VOID                void
  251. #define PASCAL              _pascal
  252. #define CDECL               _cdecl
  253. #define FAR
  254. #define NEAR
  255. typedef int                 BOOL;
  256. #define FALSE               0
  257. #define TRUE                1
  258. typedef unsigned char       BYTE;
  259. typedef unsigned short      WORD;
  260. typedef unsigned long       DWORD;
  261. typedef unsigned int        UINT;
  262. typedef signed long         LONG;
  263. typedef int                 INT;    //1.00F EXEのint型
  264.  
  265. #define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | (((DWORD)((WORD)(b))) << 16)))
  266. #define LOWORD(l)           ((WORD)(l))
  267. #define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
  268. #define LOBYTE(w)           ((BYTE)(w))
  269. #define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))
  270. #define max(a,b)            (((a) > (b)) ? (a) : (b))
  271. #define min(a,b)            (((a) < (b)) ? (a) : (b))
  272.  
  273. typedef UINT WPARAM;
  274. typedef LONG LPARAM;
  275. typedef LONG LRESULT;
  276. #define MAKELPARAM(low, high)   ((LPARAM)MAKELONG(low, high))
  277. #define MAKELRESULT(low, high)  ((LRESULT)MAKELONG(low, high))
  278.  
  279. #ifndef NULL
  280.     #define NULL                0
  281. #endif
  282.  
  283. typedef char NEAR*          PSTR;
  284. typedef char NEAR*          NPSTR;
  285. typedef char FAR*           LPSTR;
  286. typedef const char FAR*     LPCSTR;
  287.     // LPSTR,LPCSTRはsigned charで、日本語が扱いにくいので使わない
  288. typedef BYTE NEAR*          PBYTE;
  289. typedef BYTE FAR*           LPBYTE;
  290. typedef int NEAR*           PINT;
  291. typedef int FAR*            LPINT;
  292. typedef WORD NEAR*          PWORD;
  293. typedef WORD FAR*           LPWORD;
  294. typedef long NEAR*          PLONG;
  295. typedef long FAR*           LPLONG;
  296. typedef DWORD NEAR*         PDWORD;
  297. typedef DWORD FAR*          LPDWORD;
  298. typedef void NEAR*          PVOID;//1.00F
  299. typedef void FAR*           LPVOID;
  300.  
  301. typedef UINT size_t;
  302.  
  303. #define MAKELP(sel, off)    ((void FAR*)MAKELONG((off), (sel)))
  304. #define SELECTOROF(lp)      HIWORD(lp)
  305. #define OFFSETOF(lp)        LOWORD(lp)
  306. #define FIELDOFFSET(type, field)    ((int)(&((type NEAR*)1)->field)-1)
  307.  
  308. #ifdef STRICT
  309. typedef void *HANDLE;
  310. #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
  311. #else
  312. typedef PVOID HANDLE;
  313. #define DECLARE_HANDLE(name) typedef HANDLE name
  314. #endif
  315. typedef HANDLE *PHANDLE;
  316.  
  317. #define __stdcall _pascal
  318. #define __import
  319. #define WINAPI      __stdcall __import
  320. #define CALLBACK    __stdcall
  321. DECLARE_HANDLE(HWND);
  322. DECLARE_HANDLE(HMENU);
  323. typedef int HFILE;
  324. #define HFILE_ERROR ((HFILE)-1)
  325. DECLARE_HANDLE(HGLOBAL);
  326. DECLARE_HANDLE(HLOCAL);    //WCE1.01 980313 
  327. DECLARE_HANDLE(HINSTANCE);
  328. typedef HINSTANCE HMODULE;
  329. DECLARE_HANDLE(HBITMAP);
  330. DECLARE_HANDLE(HPEN);
  331. DECLARE_HANDLE(HBRUSH);
  332. DECLARE_HANDLE(HRGN);
  333. DECLARE_HANDLE(HPALETTE);
  334. DECLARE_HANDLE(HFONT);
  335. DECLARE_HANDLE(HICON);
  336. DECLARE_HANDLE(HDC);
  337. typedef HICON HCURSOR;
  338. typedef DWORD                COLORREF;
  339. typedef int (FAR WINAPI *FARPROC)();
  340. #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
  341. typedef struct tagRECT {
  342.     LONG left;
  343.     LONG top;
  344.     LONG right;
  345.     LONG bottom;
  346. } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
  347. typedef struct tagPOINT {//2.94 
  348.     LONG x;
  349.     LONG y;
  350. } POINT;
  351. typedef struct tagSIZE {//2.94 
  352.     LONG cx;
  353.     LONG cy;
  354. } SIZE;
  355.  
  356. // Virtual key codes
  357. #define VK_BACK             0x08    // [Backspace]
  358. #define VK_TAB              0x09    // [Tab]
  359. #define VK_CLEAR            0x0C    // 
  360. #define VK_RETURN           0x0D    // [Enter]
  361. #define VK_ESCAPE           0x1B    // [Esc]
  362. #define VK_PRIOR            0x21    // [PageUp]
  363. #define VK_NEXT             0x22    // [PageDown]
  364. #define VK_END              0x23    // [End]
  365. #define VK_HOME             0x24    // [Home]
  366. #define VK_LEFT             0x25    //
  367. #define VK_UP               0x26    //
  368. #define VK_RIGHT            0x27    //
  369. #define VK_DOWN             0x28    //
  370. #define VK_INSERT           0x2D    // [Ins]
  371. #define VK_DELETE           0x2E    // [Del]
  372. #define VK_HELP             0x2F    // [Help]
  373.  
  374. #define LF_FACESIZE            32
  375. #define IDOK                1
  376. #define IDCANCEL            2
  377. #define IDABORT                3
  378. #define IDRETRY                4
  379. #define IDIGNORE            5
  380. #define IDYES                6
  381. #define IDNO                7
  382.  
  383. // Windowsからコールバックされる関数
  384. #define TXCALLBACK    __stdcall
  385.  
  386. //WCE1.01 980313 
  387. typedef WORD                    WCHAR;
  388. typedef short                    SHORT;
  389. #define LPSECURITY_ATTRIBUTES    LPVOID
  390. typedef WORD*                    LPWSTR;
  391. typedef const WORD*                LPCWSTR;
  392. typedef struct _FILETIME {
  393.     DWORD dwLowDateTime;
  394.     DWORD dwHighDateTime;
  395. } FILETIME;
  396.  
  397. // for TXE Menu実現
  398. #define IDM_MAINMENU_TXE        30025    // _idm.hでも定義。
  399.  
  400. #endif    // __TXC__
  401.  
  402. //##基本定義
  403.  
  404. #define EXPORT __declspec(dllexport)
  405. //#define EXPORT extern "C" __declspec(dllexport)    // VC++でエラーになった
  406.  
  407. #if !UNIX    //XZ0.1 990524 staticのwcharの配列をL"abc"のようにして定義する場合はTWCHAR("abc")の様に記述する for UNIX
  408.     #define TWCHAR(quote)    L##quote
  409. #endif
  410.  
  411. typedef unsigned char    mchar;            // ShiftJIS char
  412. typedef WCHAR            wchar;            // UNICODE char
  413. typedef mchar*            pmchar;            //WCE1.01 980314 
  414. typedef BYTE            BBOOL;
  415. typedef long            TIME;
  416. typedef struct tagtx    tx;
  417. typedef struct tagtx    TX;
  418. typedef signed char        SIGNED_BYTE;
  419. typedef signed short    SIGNED_WORD;
  420. typedef signed long        SIGNED_DWORD;
  421. typedef WORD            TXCHAR;            // 漢字・CR+LFも含めた文字列
  422. typedef BYTE            FBOOL;            // 0か1のみのフラグ(WORD flag:1)と交換可
  423. typedef BYTE            CBOOL;            // ++,--するフラグ(WORD flag:2以上)と交換可
  424. typedef UINT IDM;                        // IDM_xxx    //WZ3.90I 981102 new 
  425. //WCE1.01 980224 TCHARは、Windowsで定義されている。WCHAR or char
  426. #ifdef UNICODE
  427.     typedef WCHAR                tchar;
  428.     #define vsprintf_W            wvsprintf
  429.     #define sprintf_W            wsprintf
  430.     #define tstrlen                wstrlen
  431.     #define tstrcpy                wstrcpy
  432.     #define tstricmp            wstricmp
  433.     #define tcchof                wcchof
  434.     #define tsprintf            wsprintf
  435.     #define tatol                watol
  436.     #define tstrchr                wstrchr
  437.     #define CreateFile_W        CreateFile
  438.     #define DeleteFile_W        DeleteFile
  439.     #define CreateFileMapping_W    CreateFileMapping
  440.     #define CreateMutex_W        CreateMutex
  441.     #define RemoveDirectory_W    RemoveDirectory
  442.     #define CreateDirectory_W    CreateDirectory
  443.     #define CopyFile_W            CopyFile
  444.     #define MoveFile_W            MoveFile
  445.     #define SetFileAttributes_W    SetFileAttributes
  446.     #define SetWindowText_W        SetWindowText
  447.     #define GetWindowText_W        GetWindowText
  448.     #define SetDlgItemText_W    SetDlgItemText
  449.     #define GetDlgItemText_W    GetDlgItemText
  450.     #define ListBox_AddString_W    ListBox_AddString
  451.     #define ListBox_FindStringExact_W    ListBox_FindStringExact
  452.     #define ComboBox_AddString_W ComboBox_AddString
  453.     #define FindFirstFile_W        FindFirstFile
  454.     #define FindNextFile_W        FindNextFile
  455.     #define CreateWindow_W        CreateWindow
  456.     #define CreateWindowEx_W    CreateWindowEx
  457.     #define RegisterClass_W        RegisterClass
  458.     #define GetClassName_W        GetClassName
  459.     #define DrawText_W            DrawText
  460.     #define ShellExecuteEx_W    ShellExecuteEx
  461.     #define LoadLibrary_W        LoadLibrary
  462. #else
  463.     typedef unsigned char        tchar;
  464.     #define vsprintf_A            wvsprintf
  465.     #define sprintf_A            wsprintf
  466.     #define tstrlen                strlen
  467.     #define tstrcpy                strcpy
  468.     #define tstricmp            stricmp
  469.     #define tcchof                cchof
  470.     #define tsprintf            wsprintf
  471.     #define tatol                atol
  472.     #define tstrchr                strchr
  473.     #define SetWindowText_A        SetWindowText
  474.     #define GetWindowText_A        GetWindowText
  475.     #define SetDlgItemText_A    SetDlgItemText
  476.     #define GetDlgItemText_A    GetDlgItemText
  477.     #define ListBox_AddString_A            ListBox_AddString
  478.     #define ListBox_FindStringExact_A    ListBox_FindStringExact
  479.     #define ComboBox_AddString_A        ComboBox_AddString
  480.     #define TextOut_A                    TextOut
  481.     #define CreateFile_A                CreateFile
  482.     #define LoadLibrary_A        LoadLibrary
  483.     #define myGetProcAddress_A    GetProcAddress
  484. #endif
  485.  
  486. #define rectCx(r)    ((r)->right - (r)->left)
  487. #define rectCy(r)    ((r)->bottom - (r)->top)
  488. #define ScreenToClientRect(hwnd,rect)    MapWindowPoints(NULL,hwnd,(POINT*)(rect),2)
  489. #define ClientToScreenRect(hwnd,rect)    MapWindowPoints(hwnd,NULL,(POINT*)(rect),2)
  490. #define rectDec(r)    {(r)->left++;(r)->top++;(r)->right--;(r)->bottom--;}
  491. #define rectInc(r)    {(r)->left--;(r)->top--;(r)->right++;(r)->bottom++;}
  492.  
  493. #if WINDOWSCE
  494.     #define _hbrushBtnFace        GetStockObject(WHITE_BRUSH)
  495.     //WCE1.01 980315 CE2.0でもないみたい
  496.     #define LPtoDP(hdc,p,n)
  497.     #define DPtoLP(hdc,p,n)
  498.     //WZ4.00Ab 990112 
  499.     #if WINDOWSCE1    //WZ4.00Ac 990204 CE1.0でIDM_COPYができなかった。CE1.0ではLMEM_MOVEABLEが使えないみたい。
  500.         #define GMEM_MOVEABLE    LMEM_FIXED
  501.     #else
  502.         #define GMEM_MOVEABLE    LMEM_MOVEABLE
  503.     #endif
  504.     #define GMEM_FIXED        LMEM_FIXED    //WZ4.00Ac 990204 
  505.     #define GMEM_SHARE        0
  506.     #define GlobalLock        LocalLock
  507.     #define GlobalSize        LocalSize
  508.     #define GlobalUnlock    LocalUnlock
  509.     #define GlobalReAlloc    LocalReAlloc
  510.     #define GlobalAlloc        LocalAlloc
  511.     #define GlobalFree        LocalFree
  512. #else
  513.     extern HPEN _hpenBtnShadow;        // Windowsシステム色のペン
  514.     extern HPEN _hpenBtnShine;
  515.     extern HPEN _hpenWindowFrame;
  516.     extern HPEN _hpenBtnFace;
  517.     extern HBRUSH _hbrushBtnFace;    // Windowsシステム色のブラシ
  518. #endif
  519.  
  520. #define TEXTCHAR_UNICODE    0    // 0:TEXTBUFFはTC_SJIS/TC_SINGLEBYTE
  521.                                 // 1:TEXTBUFFはTC_UNICODE
  522. #define TB_EUC            UNIX    // TEXTBUFFはTC_EUCかどうか    //XZ0.1 990528 
  523.  
  524. #define CHAR_TAB    0x09    //
  525. #define CHAR_CR        0x0D    //
  526. #define CHAR_LF        0x0A    //
  527. #define CHAR_FF        0x0C    // 改ページは行を改めるが改段ではない
  528.                             // CHAR_LFとは異なる
  529. #define CHAR_EOF    0x1A    //
  530. #define CHAR_ESC    0x1B    //
  531. #define CHAR_CRLF    0x0D0AU    //
  532. #if TB_EUC
  533.     #define CHAR_JSPACE    0xA1A1    //WZ4.00Bj 990830 new
  534. #else
  535.     #define CHAR_JSPACE    0x8140    //WCE1.01 980504 全角空白
  536. #endif
  537. // EUC
  538. #define CHAR_EUC_KANA    0x8E    //XZ0.1 990528 
  539.  
  540. //WZ3.90N 981130 半角カナの定義
  541. // VC++で"/J"オプションを付けないと、'ー'は-80になってしまい、どうにもならない。
  542. //WZ3.90N 981130 この影響で、ーが半角に変換できなかった。
  543. #define CHAR_KANA_ONBIKI    0xB0    // 'ー'
  544. #define CHAR_KANA_NAKAGURO    0xA5    // '・'
  545. #define CHAR_KANA_DAKUTEN    0xDE    // '゙'
  546. #define CHAR_KANA_HANDAKUTEN 0xDF    // '゚'
  547.  
  548. #define _huge
  549. #define TXAPI
  550. #define TXAPIBASE
  551. #define TXCMD
  552. #define TXCMDBASE
  553. #define TXHIGH
  554. #define TXHIGH_COND            // 条件付きTXHIGH    //WZ3.90I 981029 new
  555. #define TXHIGH_THROUGH
  556. #define TXUI
  557. #define TXGAPED
  558. #define INTERNAL
  559.  
  560. #define __CCJAPAN__                // 日本語Cコンパイラ依存部分
  561. #define __BYTEORDERLOW__        // バイト順(low-high)に依存部分
  562. #define __SINGLETASK__            // シングルスレッド依存部分
  563. #define __ANSICODE__            // ANSI文字コード依存部分
  564. #define __X86__                    // x86依存部分
  565. #define __END__                    // 依存部分終了
  566.  
  567. #define beep()        MessageBeep(-1)
  568. #define waitms(ms)    Sleep(ms)    //WZ4.00Bg 990719 UNIXではwait()システムコールと重複するのでwaitms()に変更。
  569. #define beep2()        {waitms(500);beep();waitms(100);beep();waitms(500);}
  570.  
  571. #define CCHPATHNAME        260
  572. #define CCHFILENAME        260
  573.  
  574. #define cchof(str)    (sizeof(str) / sizeof(mchar))
  575.                             // mchar配列として定義した変数の要素数
  576.                             // (変数に格納できる文字数)を返す
  577. #define lchof(str)    ((sizeof(str) / sizeof(mchar))-1)
  578.                             // mchar配列として定義した変数の
  579.                             // 文字列の長さ(最後のNULLは除く)を返す
  580. #define wcchof(str)    (sizeof(str) / sizeof(wchar))
  581.                             // wchar配列として定義した変数の要素数
  582.                             // (変数に格納できる文字数)を返す
  583. #define wlchof(str)    ((sizeof(str) / sizeof(wchar))-1)
  584.                             // wchar配列として定義した変数の
  585.                             // 文字列の長さ(最後のNULLは除く)を返す
  586. #define cchtxstr(str)        CCHTXSTR
  587.                             // txstrに格納できる文字数+1を返す
  588.  
  589. #define divmod(n,v)    (((n) / (v)) + (((n) % (v)) != 0))
  590.                             // nをdで割った結果を返す
  591.                             // nがdで割り切れないときは+1して返す
  592.                             //WCE1.01 980226 new
  593. #define mysmall(a,b)        ((a) < (b) ? (a) : (b))
  594. #define mybig(a,b)            ((a) >= (b) ? (a) : (b))
  595. #define myabs(i)            ((i) < 0 ? -(i) : (i))            //WZ3.90J 981108 
  596. #define myminimum(n,min)    (((n) >= (min)) ? (n) : (min))    //WZ3.90N 981130 nがmin未満ならminを返す
  597.  
  598. // 基本型定義
  599. typedef DWORD    NLINE;    // 表示行番号
  600. typedef DWORD    NPARA;    // 論理行番号
  601. typedef WORD    NPAGE;    // ページ番号
  602. typedef UINT    IMEM;    // CPUネイティブのメモリアクセスインデックス型
  603. typedef DWORD    IFILE;    // テキストファイルインデックス
  604.                         // gap部を除いたテキストアドレス
  605.                         // TEXTCHAR単位
  606. typedef UINT    IBUFF;    // テキストバッファインデックス
  607.                         // gap部を含むテキストアドレス
  608.                         // TEXTCHAR単位
  609.  
  610. #define IBUFF_ERROR        ((IBUFF)0xFFFFFFFFU)
  611. #define IFILE_ERROR        0xFFFFFFFF    //WCE0.92 970918 
  612. #define DWORD_MAX        0xFFFFFFFF    //WZ3.90I 981029 DWORDの最大値
  613. #ifndef INT_MAX    //WZ4.00Bj 990831 ifndefチェックを追加
  614.     #define INT_MAX            0x7FFFFFFF    //WZ3.90I 981029 intの最大値
  615. #endif
  616.  
  617. // 文字数定義
  618. #define CCHLINE            512U    // 表示行一行の最大文字数
  619.                                 // (\0、禁則追い出し域も含む)
  620. #define CCHWORD            80        // 検索文字列サイズ(最大CCHLINE程度)
  621.                                 // 一般的な文字列の長さ
  622. #define CCHSWORD        40        // CCHWORDの半分
  623. #define CCHNAME            30        // 各種識別子
  624. #define CCHNUMBER        40        // ltoa最大バッファ使用数
  625. #define MINWIDTH        10U        // 最小折り返し幅
  626. #define MAXWIDTH (CCHLINE-11U)    // 最大折り返し幅(禁則域は除く)
  627. #define MAXTABSIZE      64        // 最大タブサイズ
  628. #define MAXMARK            5        // 最大マーク数
  629. #define CCHMARK            40        // マーク文字列
  630. #define CCHLPSTYLE        40        // 印刷スタイル名
  631. #define CCHSTYLENAME    40        // スタイル名    //WZ3.90I 981028 
  632. #define MAXREFERPOS        10        // 最大最近参照した位置
  633. #define CCHTXSTR        260        // txstrの文字数(CCHPATHNAMEと同じ)
  634.  
  635. typedef struct tagtxstr {
  636.     mchar szString[CCHTXSTR];
  637. } txstr;
  638. #ifdef __TXC__
  639.     typedef txstr TXSTR;
  640. #else
  641.     typedef LPVOID TXSTR;
  642.     #define TXAPI_(n)    // TXAPI export number
  643.     #define _varyarg
  644. #endif
  645.  
  646. //##双方向リストサポート
  647. //WZ4.00Bm 990930 new (_windows.hの内容と共通)
  648.  
  649. #ifndef listd_itemadd
  650.  
  651. #define listd_itemadd(item,root)    \
  652.     if (root) {\
  653.         (item)->next = root;\
  654.         (root)->prev = item;\
  655.     }\
  656.     root = item
  657. #define listd_itemdel(item,root)    \
  658.     if ((item)->prev) {\
  659.         (item)->prev->next = (item)->next;\
  660.     } else {\
  661.         root = (item)->next;\
  662.     }\
  663.     if ((item)->next) {\
  664.         (item)->next->prev = (item)->prev;\
  665.     }
  666. #define listd_itempopup(item,root)    \
  667.     {\
  668.         listd_itemdel(item,root);\
  669.         item->prev = item->next = NULL;\
  670.         listd_itemadd(item,root);\
  671.     }
  672. #define listd2_itemadd(item,root,tail)    \
  673.     if (root) {\
  674.         (item)->next = root;\
  675.         (root)->prev = item;\
  676.     } else {\
  677.         tail = item;\
  678.     }\
  679.     root = item
  680. #define listd2_itemaddlast(item,root,tail)    \
  681.     if (root) {\
  682.         (tail)->next = item;\
  683.         (item)->prev = tail;\
  684.     } else {\
  685.         root = tail = item;\
  686.     }
  687. #define listd2_itemdel(item,root,tail)    \
  688.     if ((item)->prev) {\
  689.         (item)->prev->next = (item)->next;\
  690.     } else {\
  691.         root = (item)->next;\
  692.     }\
  693.     if ((item)->next) {\
  694.         (item)->next->prev = (item)->prev;\
  695.     } else {\
  696.         tail = (item)->prev;\
  697.     }
  698. #define listd2_itempopup(item,root,tail)    \
  699.     {\
  700.         listd2_itemdel(item,root,tail);\
  701.         item->prev = item->next = NULL;\
  702.         listd2_itemadd(item,root,tail);\
  703.     }
  704. #define listd2_itempopdown(item,root,tail)    \
  705.     {\
  706.         listd2_itemdel(item,root,tail);\
  707.         item->prev = item->next = NULL;\
  708.         listd2_itemaddlast(item,root,tail);\
  709.     }
  710.  
  711. #endif    // !listd_itemadd
  712.  
  713. //##クリップボードハンドル
  714.  
  715. typedef UINT HCLIP;                    //1.00H2 HWND->UINT //1.00F WORD->HWND
  716. #define HCLIP_ERROR        ((HCLIP)999)//2.00E HCLIP_NULLは廃止
  717. #define HCLIP_PRIVATE    ((HCLIP)0)    // プライベートテキストスタック(テキスト固有)
  718.                                     // WZ32はマルチタスクなので、HCLIP_TSは他のWZのタスク
  719.                                     // と干渉します。
  720.                                     // スタックにPushしてPopする前に
  721.                                     // 他のWZがスタックを操作してしまうかもしれません。
  722.                                     // HCLIP_PRIVATEは他のWZとのデータ交換には使えない
  723.                                     // 代わりに他のWZのタスクと干渉しません
  724.                                     // WZ3まではプロセス固有でしたが、WZ4からはテキスト固有になりました。
  725. #define HCLIP_TS        ((HCLIP)1)    // テキストスタック
  726. #define HCLIP_WIN        ((HCLIP)2)    // Windowsクリップボード
  727.                                     // ここでは0x00を含むバイナリデータは扱えない
  728.                                     // HCLIP_WORKxxxでは扱える
  729.  
  730. typedef struct tagCLIPITEM {
  731.     HGLOBAL hGlobal;        // データ
  732.     IFILE size;                // データサイズ(末尾の\0は除く)
  733.     int fClip;                // fClip
  734.     FBOOL fClipTxfEnable;    // データにTXFタグが入っている可能性がある?
  735.     struct tagCLIPITEM* prev;
  736.     struct tagCLIPITEM* next;
  737. } CLIPITEM;
  738.  
  739. //##汎用設定ファイル操作
  740.  
  741. typedef struct {
  742.     TX* text;
  743.     BOOL fTextAllocate;
  744.     int dataid;
  745.     int datalen;
  746.     BOOL fName;
  747. } CONFIG;
  748.  
  749. //##拡大可能メモリブロック(汎用)
  750. //PWZ2BETA0.6 980621 new
  751. typedef struct {
  752.     LPBYTE pTop;
  753.     LPBYTE pCur;
  754.     DWORD sizeAlloc;
  755.     DWORD sizeExpand;
  756. } MEMBLOCK;
  757.  
  758. void memblockInit(MEMBLOCK* mb,int sizeAlloc,int sizeExpand);
  759. void memblockTerm(MEMBLOCK* mb);
  760. DWORD memblockGetSize(MEMBLOCK* mb);
  761. LPVOID memblockAdd(MEMBLOCK* mb,int sizeAdd);
  762. BOOL memblockAddEx(MEMBLOCK* mb,int sizeAdd);
  763. BOOL memblockCheckSize(MEMBLOCK* mb,UINT size);
  764. BOOL memblockAddMem(MEMBLOCK* mb,LPVOID pAdd,int sizeAdd);
  765. BOOL memblockAddString(MEMBLOCK* mb,mchar* szString);
  766. void memblockDelAll(MEMBLOCK* mb);
  767.  
  768. //##VirtualAlloc support(汎用)
  769. //WZ3.90J 981109 new
  770. //// 拡大可能メモリブロックはこれに置き換えるべき。
  771.  
  772. // VirtualAllocコンテキスト
  773. typedef struct {
  774.     LPBYTE pagetop;        // アドレス空間の先頭
  775.     LPBYTE pageend;        // アドレス空間の末尾
  776.     UINT pagesize;        // ページサイズ
  777.     LPBYTE p;            // 現在参照中の位置
  778.     LPBYTE pEnd;        // 領域の末尾
  779. } VALLOC;
  780.  
  781. BOOL vaInit(VALLOC* va,UINT kbMax);
  782. BOOL vaCheckAdd(VALLOC* va,UINT add);
  783. void vaFree(VALLOC* va);
  784.  
  785. //##パーティションウィンドウ
  786. //WZ3.90F 980815 
  787.  
  788. #if !WINDOWSCE
  789. wchar wszclassPartition[];
  790. #define CX_PARTITION        6            // 幅    //WZ3.90O 981202 5->6
  791. // ウィンドウスタイル
  792. #define WSPB_SEPARATOR        0x0001L        // dialog box用セパレータ?
  793. #define WSPB_SMALLFONT        0x0002L        //2.99D 970330 小さいフォントを使う?
  794. #define WSPB_NOCLIENTEDGE    0x0004L        //WZ4.00Bl 990922 WS_EX_CLIENTEDGE対応。
  795. #if WINDOWSCE
  796.     #define WSPB_STD            WS_BORDER
  797.     #define CX_PARTITION_FLAT    CX_PARTITION
  798. #else
  799.     #define WSPB_STD            WSPB_NOCLIENTEDGE
  800.     #define CX_PARTITION_FLAT    (CX_PARTITION-2)    // WSPB_NOCLIENTEDGEの場合のCX
  801. #endif
  802. // メッセージ
  803. //        message                                        wParam        lParam    備考
  804. #define WMPB_SETRANGE            (WM_USER +  1)    //    min            max
  805. #define WMPB_GETRATE            (WM_USER +  2)    //    void        void
  806. #define WMPB_SETRATE            (WM_USER +  3)    //    rate        void
  807. #define WMPB_GETRANGE            (WM_USER +  4)    //    void        void    return:MAKELONG(min,max)    //WZ3.90J 981112 
  808. // 通知
  809. #ifndef __TXC__
  810. typedef struct {
  811.     NMHDR hdr;    //PWZ2BETA0.3 980523 hdrが先頭にないといけなかった
  812.         #define PARTITIONN_SETRANGE    10
  813.     int rate;    // 現在のレート
  814. } PARTITION_NOTIFY;
  815. #endif
  816. #endif    // !WINDOWSCE
  817.  
  818. //##ツールバー
  819.  
  820. #if !WINDOWSCE
  821. enum {ICONSET_STD=0,ICONSET_VIEW,ICONSET_WZ,ICONSET_FILE};
  822.  
  823. typedef struct tagTOOLBARITEM {    // ボタンコンテキスト
  824.     mchar szCaption[CCHWORD];        // TIPヘルプ
  825.     mchar szCmd[60];                //WZ3.90J 981108 コマンド名、マクロ名 for custmize
  826.     int idm;                        // コマンド番号
  827.     mchar szfilenameIcon[160];        // アイコンのファイル名
  828.                                     //WZ3.90J 981108 CCHWORDでは短すぎなので拡大
  829.     int iIcon;                        // szfilenameIconでの位置(0origin)
  830.     BYTE iconset;                    //WZ3.90J 981108 使用するアイコンビットマップセット
  831.     WORD fLoadedEx:1;                // ICONSET_FILEの場合、ロードしたかどうか?
  832.     struct tagTOOLBARITEM* next;
  833. } TOOLBARITEM;
  834.  
  835. typedef struct {    // ツールバーコンテキスト
  836.     TOOLBARITEM* root;
  837.     HWND hwnd;
  838.     HWND hwndParent;
  839.     HWND hwndCBCB;                    // 検索ボックスウィンドウ
  840.     HWND hwndInfo;                    // 情報ボックスウィンドウ
  841.     HWND hwndLpSel;                    // 印刷スタイル選択ドロップダウンリストボックス
  842.     HWND hwndLpSet;                    // 印刷スタイル設定ボタン
  843.     LPVOID text;    // NULLでも可
  844.     WORD fIconView:1;                // VIEWアイコンがある
  845.     WORD fIconWz:1;                    // WZ標準のアイコンがある
  846.     WORD fIconEx:1;                    // STD,VIEW,WZ以外のアイコンがある
  847.     WORD fSearchBox:1;                // 検索ボックスがある
  848.     WORD fInfoBox:1;                // 情報ボックスがある
  849.     WORD fPrintstyleBox:1;            //WZ3.90L 981117 印刷スタイル選択ボックスがある
  850. } TOOLBARCONTEXT;
  851.  
  852. HBITMAP toolbaritemLoadBitmap(TOOLBARITEM* item);
  853.  
  854. #endif
  855.  
  856. #if WINDOWSCE
  857.     #define toolbarSetEnableIdm(context,idm,f)
  858.     #define cmdbarSetEnableIdm(hwnd,idm,f)    SendMessage(hwnd,TB_SETSTATE,idm,f ? TBSTATE_ENABLED : 0)    //WZ4.00Ab 990124 
  859. #else
  860. int toolbarGetHeight(TOOLBARCONTEXT* context);
  861. void toolbarProcWM_SIZE(TOOLBARCONTEXT* context,RECT* r);
  862. TOOLBARCONTEXT* toolbarOpen(HWND hwndParent,mchar* szApp,mchar* szName);
  863. BOOL toolbarProcNotify(TOOLBARCONTEXT* context,LPARAM lParam);
  864. void toolbarClose(TOOLBARCONTEXT* context);
  865. int szidmToIdmEx(mchar* szidm,int lchidm);
  866. void toolbarSetEnableIdm(TOOLBARCONTEXT* context,int idm,BOOL fEnable);
  867. BOOL toolbarGetEnableIdm(TOOLBARCONTEXT* context,int idm);
  868. TOOLBARCONTEXT* toolbarLoad(mchar* szApp,mchar* szName);
  869. TX* toolbarOpenText(mchar* szApp,mchar* szName);
  870. #endif
  871.  
  872. //##WZリストビュー
  873.  
  874. void listRegister(void);
  875.  
  876. //##ステータスバー
  877.  
  878. #define MAX_STATUSBAR_PANE    10
  879. typedef struct {
  880.     mchar sz[30];    // 表示内容
  881.     int cx;            // 幅(-1なら右端まで)
  882. } STATUSBAR_PANE;
  883. #define STATUSBAR_PANE_ALL            -1
  884. #define STATUSBAR_PANE_LOCATE        0
  885. #define STATUSBAR_PANE_2STROKE        1
  886. #define STATUSBAR_PANE_INSERT        2
  887. #define STATUSBAR_PANE_EDITED        3
  888. #define STATUSBAR_PANE_SELECTED        4
  889. #define STATUSBAR_PANE_FORMING        5    //WCE0.95 970923 整形中かどうかステータスバーに表示
  890. #define STATUSBAR_PANE_PAGINGMODE    6
  891. #define STATUSBAR_PANE_FILENAME        7    //WCE0.93 970919 ステータスバーにファイル名を表示
  892. int statusbarGetCy(TX* text);
  893. void statusbarSetPaneString(TX* text,int ipane,mchar* sz);
  894. void statusbarFlushDispInsert(TX* text);
  895. int statusbarPointToPane(TX* text,int x);
  896. void statusbarFlushDispSelect(TX* text);
  897. void statusbarPrint(TX* text,int ipane);
  898. int statusbarGetPaneWidth(HWND hwndStatusbarWin,mchar* szString);
  899. int statusbarSetSimple(HWND hwndStatusbarWin,BOOL fSimple);
  900. int statusbarGetHeight(HWND hwndStatusbarWin);
  901.  
  902. //##ファイル参照ダイアログ
  903.  
  904. typedef struct {
  905.     WORD fSaveAs:1;                // 「名前を付けて保存」ダイアログを表示。
  906.     WORD fSaveAsVz:1;            // VZライクの「名前を付けて保存」ダイアログ
  907.                                 // fSaveAsもTRUEにしてください。
  908.     WORD fSaveTo:1;                // 始めに指定したファイル名をできるだけ変化させない for 添付ファイルの保存先の指定
  909.                                 // fSaveAsもTRUEにしてください。
  910.     WORD fOpenVz:1;                // VZライクの「ファイルを開く」ダイアログ
  911.     WORD fModeSaveAs:1;            // modeSaveAsの選択を行う?
  912.     WORD fNoOverwriteConfirm:1;    // 上書き確認をしない
  913.     WORD fReadonly:1;            //WZ3.90I 981103 リードオンリーで開く?
  914.                                 //WZ3.90J 981111 ダイアログでの選択結果が返されます。
  915.     WORD fEnableIllegalChar:1;    //WZ4.00Aa 990109 ファイル名に*などの無効文字列を許す?
  916.     WORD fNoAddHist:1;            //WZ4.00Bj 990813 ヒストリに追加しない?
  917.     WORD fEnableFiler:1;        //WZ4.00Bn 991006 FILERを起動しても良い?
  918.     WORD fReserved:6;
  919.     BYTE modeSaveAs;            // 「プレーンテキストへ変換」など。
  920.     BYTE reserved[10];
  921. } TXOFN_ARG;
  922.  
  923. BOOL TXAPI_(398) uiSelectFolderW(wchar wszfilename[CCHPATHNAME],wchar* wszCaption);
  924. BOOL TXAPI_(803) uiSelectFolder(mchar szfilename[CCHPATHNAME],mchar* szCaption);
  925. BOOL ofnSelectFolderW(wchar* wszfilename,wchar* wszCaption,TXOFN_ARG* arg);
  926. #if GENERAL
  927. BOOL ofnGetOpenFileNameW(wchar* wszfilename,wchar* wszCaption,TXOFN_ARG* arg);    //WZ4.00Bo 991011
  928. #endif
  929.  
  930. //##メモリ
  931.  
  932. LPVOID TXAPI_(880) memAlloc(DWORD size);
  933. LPVOID TXAPI_(881) memAllocZeroinit(DWORD size);
  934. void TXAPI_(882) memFree(LPVOID p);
  935. LPVOID TXAPI_(483) zmalloc(int size);
  936. LPVOID memResize(LPVOID p,DWORD size);
  937. #ifndef __TXC__
  938.     #if __MEMORYDEBUG__
  939.         void _myfree(LPVOID p,mchar* szfile,int line);
  940.         #define free(p)    _myfree(p,__FILE__,__LINE__)
  941.     #else
  942.         void _myfree(LPVOID p);
  943.         #define free(p)    _myfree(p)
  944.     #endif
  945. #endif
  946. #if __MEMORYDEBUG__    //WZ4.00Bm 990929 for memory debug
  947.     LPVOID _mymalloc(int size,mchar* szfile,int line);
  948.     #define malloc(s)    _mymalloc(s,__FILE__,__LINE__)
  949.     LPVOID _zmalloc(int size,mchar* szfile,int line);
  950.     #define zmalloc(s)    _zmalloc(s,__FILE__,__LINE__)
  951.     mchar* _mystrdup(mchar* szstr,mchar* szfile,int line);
  952.     #define strdup(p)    _mystrdup(p,__FILE__,__LINE__)
  953.     LPVOID _myrealloc(LPVOID p,int size,mchar* szfile,int line);
  954.     #define realloc(p,s)    _myrealloc(p,s,__FILE__,__LINE__)
  955. #endif
  956. #if WINDOWSCE    // SH3,MIPSではBYTE境界はWORDアクセスできない
  957.     WORD lpReadWord(LPVOID p);
  958.     SIGNED_WORD lpReadSignedWord(LPVOID p);
  959.     void lpWriteWord(LPVOID p,WORD value);
  960.     DWORD lpReadDword(LPVOID p);
  961.     SIGNED_DWORD lpReadSignedDword(LPVOID p);
  962.     void lpWriteDword(LPVOID p,DWORD value);
  963. #else
  964.     #define lpReadWord(p)            (*((WORD*)(p)))
  965.     #define lpReadSignedWord(p)        (*((SIGNED_WORD*)(p)))
  966.     #define lpWriteWord(p,value)    (*((WORD*)(p)) = value)
  967.     #define lpReadDword(p)            (*((DWORD*)(p)))
  968.     #define lpReadSignedDword(p)    (*((SIGNED_DWORD*)(p)))
  969.     #define lpWriteDword(p,value)    (*((DWORD*)(p)) = value)
  970. #endif
  971. #define lpReadByte(p)            (*((BYTE*)(p)))
  972. #define lpWriteByte(p,value)    (*((BYTE*)(p)) = value)
  973. #if UNIX
  974. mchar* ty_memmem(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  975.     #define memmem ty_memmem
  976. #else
  977. mchar* memmem(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  978. #endif
  979. mchar* memistr(mchar* src,int lchSrc,mchar* szfind);
  980. mchar* memistrword(mchar* src,int lchSrc,mchar* szfind);
  981. mchar* memstrwordLen(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  982. mchar* memstrword(mchar* src,int lchSrc,mchar* szfind);
  983.  
  984. #ifdef __TXC__
  985. LPVOID _cdecl TXAPI_(124) memcpy(void *mem1,void *mem2,size_t size);
  986.     // mem2のsizeブロックを、mem1にコピー
  987.     // mem1とmem2が重複する場合の動作は未定義
  988. LPVOID _cdecl TXAPI_(125) memmove(void *mem1,void *mem2,size_t size);
  989.     // mem2のsizeブロックを、mem1にコピー
  990.     // mem1とmem2が重複していても正確に動作
  991. LPVOID _cdecl TXAPI_(126) memset(void *mem1,int c,size_t size);
  992.     // mem1のsizeバイトを、バイトデータcで埋める。
  993. int _cdecl TXAPI_(127) memcmp(void *mem1,void *mem2,size_t size);
  994.     // 2つのメモリブロックの内容を比較
  995.     // {返り値}mem1がmem2より小さい場合、負の値、
  996.     // mem1がmem2と等しい場合、0、
  997.     // mem1がmem2より大きい場合、正の値、を返す
  998. LPVOID TXAPI_(128) memchr(LPVOID mem,int ch,size_t size);
  999.     // メモリブロック:mem,サイズ:sizeからchを探す。見つかればポインタを返す
  1000.     // 見つからなければNULLを返す
  1001.     //2.00Bで追加
  1002. LPVOID _cdecl TXAPI_(129) malloc(DWORD size);
  1003.     // sizeバイトのメモリブロックを確保してポインタを返す
  1004. void _cdecl TXAPI_(130) free(LPVOID pmem);
  1005.     // mallocで確保したメモリブロックを解放する
  1006. LPVOID _cdecl TXAPI_(131) realloc(LPVOID pmem,DWORD size);
  1007.     // mallocで確保したメモリブロックのサイズを変更する
  1008. #endif    // __TXC__
  1009.  
  1010. //##文字
  1011.  
  1012. UINT ch_jis2sjis(UINT ch);
  1013. UINT ch_sjis2jis(UINT ch);
  1014. BOOL my_isXdigiti(int c);
  1015. int zentohanAlpha(mchar* p);
  1016. WORD txzentohan(mchar *p);
  1017. #ifdef __TXC__
  1018. BOOL TXAPI_(791) isalnum(int c);
  1019. int  TXAPI_(792) toupper(int c);
  1020. int  TXAPI_(484) tolower(int c);
  1021. BOOL TXAPI_(793) isdigit(int c);
  1022. BOOL TXAPI_(794) isupper(int c);
  1023. BOOL TXAPI_(795) islower(int c);
  1024. BOOL TXAPI_(796) isalpha(int c);
  1025. BOOL TXAPI_(797) isspace(int c);
  1026. BOOL TXAPI_(798) iskanji(int c);
  1027. BOOL TXAPI_(799) iskanji2(int c);
  1028. BOOL TXAPI_(800) iskana(int c);
  1029. BOOL TXAPI_(801) isXdigit(int c);
  1030. BOOL TXAPI_(802) IschReturn(int c);
  1031. #else
  1032. extern BYTE _matchword[256];        // __ANSYCODE__
  1033. extern BYTE _matchword2[256];        // __ANSYCODE__
  1034. #define MATCH_WORD        0x01
  1035. #define MATCH_KEYWORD    0x02    //WCE1.01 980202 new
  1036. #define MATCH_KANJI        0x04
  1037. #define MATCH_KANJI2    0x08
  1038. #define MATCH_KANA        0x10
  1039. #define MATCH_DIGIT        0x20
  1040. #define MATCH_UPPER        0x40
  1041. #define MATCH_LOWER        0x80
  1042. //
  1043. #define MATCH2_TXFTAG    0x01
  1044. #define MATCH2_TAGNAME    0x02    // タグ名,アトリビュート名
  1045. #define MATCH2_PARAEND    0x04
  1046. #define MATCH2_RETURN    0x08    //WCE1.01 980202 MATCH->MATCH2
  1047. #define MATCH2_SPACE    0x10    //WCE1.01 980224 
  1048. #define MATCH2_XDIGIT    0x20    //WCE1.01 980224 0-9,A-F
  1049. #define MATCH2_XDIGITI    0x40    //WZ3.90I 981004 0-9,A-F,a-f
  1050. //WCE1.01 980224 isXXX TEXTCHAR/UNICODE(2bytes)対応
  1051. #define IschMatchWord(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_WORD))    // a-zA-Z0-9_$
  1052. #define IschMatchKeyword(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_WORD|MATCH_KEYWORD)))    // MATCH_WORD + \    //WCE1.01 980202 
  1053. #define IschTxftag(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TXFTAG))    // /#!*
  1054. #define IschTagname(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME))    // a-zA-Z0-9_
  1055. #define h_IschTagname(c)    (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME)    // a-zA-Z0-9_
  1056. #define IschParaend(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_PARAEND))    // CHAR_LF,CHAR_EOF
  1057. //WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  1058. #ifndef __WZRAS__
  1059.     #undef isalnum
  1060.     #undef isdigit
  1061.     #undef isupper
  1062.     #undef islower
  1063.     #undef isalpha
  1064.     #undef isspace
  1065.     #if 1//PWZ2BETA0.4 980610 for マクロでもisalpha etcを使うので
  1066.         BOOL my_isalnum(int c);
  1067.         int  my_toupper(int c);
  1068.         int  my_tolower(int c);
  1069.         BOOL my_isdigit(int c);
  1070.         BOOL my_isupper(int c);
  1071.         BOOL my_islower(int c);
  1072.         BOOL my_isalpha(int c);
  1073.         BOOL my_isspace(int c);
  1074.         BOOL my_isspace_txc(int c);
  1075.         BOOL my_iskanji(int c);
  1076.         BOOL my_iskanji2(int c);
  1077.         BOOL my_iskana(int c);
  1078.         BOOL my_isXdigit(int c);
  1079.         BOOL my_IschReturn(int c);
  1080.         #define isalnum(c)    my_isalnum(c)
  1081.         #define toupper(c)    my_toupper(c)
  1082.         #define tolower(c)    my_tolower(c)    //PWZ2BETA0.4 980610 new
  1083.         #define isdigit(c)    my_isdigit(c)
  1084.         #define isupper(c)    my_isupper(c)
  1085.         #define islower(c)    my_islower(c)
  1086.         #define isalpha(c)    my_isalpha(c)
  1087.         #define isspace(c)    my_isspace(c)
  1088.         #define iskanji(c)    my_iskanji(c)
  1089.         #define iskanji2(c)    my_iskanji2(c)
  1090.         #define iskana(c)    my_iskana(c)
  1091.         #define isXdigit(c)    my_isXdigit(c)
  1092.         #define isXdigiti(c)    my_isXdigiti(c)    //WZ3.90I 981004 
  1093.         #define IschReturn(c)    my_IschReturn(c)
  1094.         #if !__TXC__
  1095.             //WZ4.00Ab 990203 new 高速版 (c>=0x100)の時には対応していない
  1096.             #define h_iskanji(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI)
  1097.             #define h_iskanji2(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI2)
  1098.             #define h_isspace(c)        (_matchword2[((BYTE)(c))] & MATCH2_SPACE)
  1099.         #endif
  1100.     #else
  1101.         #if WINDOWSCE
  1102.             BOOL isalnum(int c);
  1103.             int toupper(int c);
  1104.             BOOL isdigit(int c);
  1105.             BOOL isupper(int c);
  1106.             BOOL islower(int c);
  1107.             BOOL isalpha(int c);
  1108.             BOOL isspace(int c);
  1109.             BOOL iskanji(int c);
  1110.             BOOL iskanji2(int c);
  1111.             BOOL iskana(int c);
  1112.             BOOL isXdigit(int c);
  1113.             BOOL IschReturn(int c);
  1114.         #else
  1115.             #define isalnum(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_DIGIT|MATCH_UPPER|MATCH_LOWER)))
  1116.             #define toupper(c)        (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  1117.             #define isdigit(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  1118.             #define isupper(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_UPPER))
  1119.             #define islower(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER))
  1120.             #define isalpha(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_UPPER|MATCH_LOWER)))
  1121.             #define isspace(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_SPACE))
  1122.             #define iskanji(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI))
  1123.             #define iskanji2(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI2))
  1124.             #define iskana(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANA))
  1125.             #define isXdigit(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_XDIGIT))    //WCE1.01 980226 0-9,A-F
  1126.             #define IschReturn(c)    ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_RETURN))    // CHAR_CR,CHAR_LF,CHAR_FF,CHAR_EOF
  1127.         #endif
  1128.     #endif
  1129.     //
  1130.     #if TB_EUC
  1131.         #define txchIsKeisen(ch)    (0xA8A1 <= (ch) && (ch) <= 0xA8C0)    // JIS罫線素子か?
  1132.         #define txchIsKeisenClm(ch) (txchIsKeisen(ch) && ch != 0xA8A1 && ch != 0xA8AC)
  1133.     #else
  1134.         #define txchIsKeisen(ch)    (0x849F <= (ch) && (ch) <= 0x84BE)    // JIS罫線素子か?
  1135.         #define txchIsKeisenClm(ch) (txchIsKeisen(ch) && ch != '─' && ch != '━')
  1136.     #endif
  1137.     #define toallower(c)        ((c) | 0x20)
  1138.     #define toalupper(c)        ((c) & 0xDF)
  1139.     #define xdigitToInt(ch)        (((ch) >= 'A') ? ((ch) - 'A' + 10) : ((ch) - '0'))
  1140.     #define xdigitToIntI(ch)    ((toupper(ch) >= 'A') ? (toupper(ch) - 'A' + 10) : ((ch) - '0'))
  1141.     #define intToXdigit(i)        (((i) >= 10) ? ((i) + 'A' - 10) : ((i) + '0'))    //WZ3.90I 981101 
  1142.     #define intToXdigitl(i)        (((i) >= 10) ? ((i) + 'a' - 10) : ((i) + '0'))    //XZ0.20 990708 
  1143.     #if 1//WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  1144.         #define wtoupper(c)            (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  1145.         #define wisdigit(c)            ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  1146.     #else
  1147.         #define wtoupper(c)            ((L'a' <= (c) && (c) <= L'z') ? (c - L'a' + L'A') : (c))
  1148.         #define wisdigit(c)            ((c) < 256 && _matchword[((BYTE)(c))] & MATCH_DIGIT)
  1149.     #endif
  1150. #endif
  1151. #endif    // __TXC__
  1152.  
  1153. //##パス文字列
  1154.  
  1155. BOOL TXAPI_(486) wpathSearchPathtext(wchar* wszpath);
  1156. BOOL TXAPI_(487) wpathIsFull(wchar* wszpath);
  1157. BOOL TXAPI_(488) pathIsFull(mchar* szpath);
  1158. void TXAPI_(489) pathSetDir(mchar *path);
  1159. int TXAPI_(465) wispathsepa(wchar c);
  1160. int TXAPI_(476) ispathsepa(mchar c);
  1161. wchar* TXAPI_(490) TXAPIBASE wpathSetLong(wchar *path);
  1162. mchar* TXAPI_(852) pathSetLong(mchar* path);
  1163. BOOL wfilenameIsLocation(wchar* wszfilename);
  1164. BOOL TXAPI_(491) wpathFormDir(wchar* path);
  1165. BOOL TXAPI_(599) pathFormDir(mchar* path);
  1166. BOOL TXAPI_(492) wpathFormDirDos(wchar* path);
  1167. BOOL TXAPI pathFormDirDos(mchar* path);
  1168. void pathForm(mchar* szpath);
  1169. BOOL wpathParent(wchar wszfilename[CCHPATHNAME]);
  1170. BOOL wpathIsRoot(wchar wszfilename[CCHPATHNAME]);
  1171. BOOL wpathIsUnc(wchar* wszfilename);
  1172. BOOL wpathFlushUnc(wchar* wszfilename);
  1173. BOOL TXAPI_(493) TXAPIBASE wpathFormLong(wchar* path);
  1174. BOOL TXAPI_(506) TXAPIBASE pathFormLong(mchar *path);
  1175. wchar* TXAPI_(494) TXAPIBASE wpathGetFileName(wchar* path);
  1176. mchar* TXAPI_(510) TXAPIBASE pathGetFileName(mchar *path);
  1177. void TXAPI_(496) wpathFlush(wchar* szstr);
  1178. void TXAPI_(511) pathFlush(mchar* szstr);
  1179. void TXAPI_(892) pathFlushSepa(mchar* szstr,int ch);
  1180. wchar* TXAPI_(497) TXAPIBASE wpathSetFileName(wchar *path,wchar *filename);
  1181. mchar* TXAPI_(509) TXAPIBASE pathSetFileName(mchar *path,mchar *filename);
  1182. wchar* TXAPI_(498) TXAPIBASE wpathGetExt(wchar* path);
  1183. mchar* TXAPI_(507) TXAPIBASE pathGetExt(mchar *path);
  1184. wchar* TXAPI_(499) TXAPIBASE wpathSetExt(wchar *path,wchar *ext);
  1185. mchar* TXAPI_(508) TXAPIBASE pathSetExt(mchar *path,mchar *ext);
  1186. wchar* TXAPIBASE wpathAddExt(wchar* path,wchar* ext);
  1187. mchar* TXAPIBASE pathAddExt(mchar* path,mchar* ext);
  1188. BOOL TXAPI_(500) wpathIsExt(wchar* szfilename,wchar* szext);
  1189. BOOL TXAPI_(512) TXAPIBASE pathIsExt(mchar *path,mchar *ext);
  1190. BOOL TXAPI_(501) wpathIsWild(wchar *path);
  1191. BOOL TXAPI_(505) pathIsWild(mchar* path);
  1192. BOOL TXAPI_(502) wpathIsDirectory(wchar *path);
  1193. BOOL TXAPI_(894) pathIsDirectory(mchar* szpath);    //WZ4.00A 981229 
  1194. void TXAPI_(503) wpathSetDir(wchar *path);
  1195. wchar* TXAPI_(504) wpathSetFull(wchar* wszpath);
  1196. mchar* TXAPI_(851) pathSetFull(mchar* szpath);
  1197. mchar* TXAPI_(915) pathSepa(mchar* szstr);    //WZ4.00Bl 990914 pathSepaをTX-Cから使えるようにした。ユーザ要望。
  1198. int TXAPI wpathSetMode(wchar* wszfilename,wchar* wszbase,wchar* wszaddress,int mode);
  1199.     #define PATH_ABSOLUTEDRIVE    1    // ドライブ名付きの絶対パス
  1200.     #define PATH_ABSOLUTE        2    // ドライブ名なしの絶対パス
  1201.     #define PATH_URL            3
  1202.     #define PATH_RELATIVE        4
  1203. int TXAPI_(853) pathSetMode(mchar* szfilename,mchar* szbase,mchar* szaddress,int mode);
  1204. #if !__TXC__
  1205. BOOL wpathSetFilenameUnique(wchar* wszfilename);
  1206. void TXAPI wpathSetRoot(wchar* wszfilename);
  1207. void TXAPI pathSetRoot(mchar* szfilename);
  1208. BOOL wpathIsCszFiletype(wchar* wszfilename,mchar* cszExt);
  1209. int TXAPI pathGetMode(mchar* szfilename);
  1210. int TXAPI wpathGetMode(wchar* wszfilename);
  1211. UINT wpathGetDriveType(wchar* wszpath);
  1212. void wpathGetWzFilename(wchar* wszfilename);
  1213. BOOL wpathIsBinaryFiletype(wchar* wszfilename);
  1214. int TXAPI pathCmp(mchar* szpath1,mchar* szpath2,int *plch);
  1215. int TXAPI pathCmpN(mchar* szpath1,mchar* szpath2,int lch,int *plch);
  1216. BOOL pathmasksmatch(mchar* szname,mchar* szmasks);
  1217. BOOL TXAPI wpathGetRoot(wchar* wsz);
  1218. BOOL TXAPI pathGetRoot(mchar* sz);
  1219. BOOL wfilenameIsLocation(wchar* wszfilename);
  1220. int wpathIsMemoryCard(wchar* wszfilename);
  1221. #endif // !__TXC__
  1222.  
  1223. //##KERNEL拡張
  1224.  
  1225. //DDE
  1226. BOOL TXAPI_(829) ddeConnect(mchar* pszService, mchar* pszTopic);
  1227. BOOL TXAPI_(830) ddeDisconnect(void);
  1228. BOOL TXAPI_(831) ddeExecute(mchar* pszCmd);
  1229. BOOL TXAPI_(832) ddeExecuteEx(mchar* pszCmd,DWORD* dwResult);
  1230. BOOL TXAPI_(833) ddePoke(mchar* szItem,mchar* szData);
  1231. UINT TXAPI_(834) ddeGetLastError(void);
  1232. BOOL TXAPI_(835) ddeRequest(mchar* szItem,mchar** szData);
  1233. HWND TXAPI_(884) apSearchWindow(mchar* szCaption);
  1234. BOOL __ddeDelete(void);
  1235. //
  1236. BOOL TXAPI_(849) shellExecute(mchar* pszFile,mchar* pszOp);
  1237. BOOL TXAPI_(538) shellOpenW(wchar* szfilename);
  1238. typedef int SKEY;
  1239. SKEY TXAPI_(617) GetShiftKey(void);
  1240.     #define SKEY_SHIFT        0x01
  1241.     #define SKEY_CONTROL    0x02
  1242.     #define SKEY_ALT        0x04
  1243. int TXAPI GetWindowsPlatform(void);
  1244. LPBYTE TXAPI_(606) fileallocW(wchar* szfilename,DWORD* size);
  1245. DWORD TXAPI_(913) wpathGetDiskFreeSpace(wchar* wszpath);
  1246. //
  1247. #if !__TXC__
  1248. BOOL CreateDirectoryForce_W(wchar* wszpath,LPVOID lpsa);
  1249. BOOL RemoveDirectoryEx_W(wchar* wszfilename);
  1250. //
  1251. BOOL TXAPI CommandExec(mchar* szline);
  1252. BOOL WinExecEx_W(wchar* wszfilenameExe,wchar* wszCmdline);
  1253. //
  1254. BOOL wpathGetFfd(wchar* wszfilename,WIN32_FIND_DATAW* ffd);
  1255. BOOL mySHGetShortcutTarget(wchar* wszfilename,wchar* wsztarget,int cchTaraget);
  1256. BOOL wpathCreateDirectoryPath(wchar* wszfilename);
  1257. BOOL wpathGetFileTime(wchar* wszfilename,FILETIME* filetime);
  1258. #if !UNIX
  1259. BOOL GetFileInformation_W(wchar* wszfilename,BY_HANDLE_FILE_INFORMATION* info);
  1260. #endif
  1261. #if WINDOWSMT
  1262. DWORD GetShortPathName_W(wchar* wsz,wchar* wszShort,int cch);
  1263. #endif
  1264. #if WINDOWSCE
  1265.     #define GetCurrentTime()    GetTickCount()
  1266. #else
  1267.     enum {WINDOWS95=1,WINDOWSNT};
  1268.     extern BYTE _platform;
  1269.     extern DWORD _dwWindowsVertion;    //WZ3.90P 981205 
  1270. #endif
  1271. BOOL _tapiTerm(BOOL fAtExist);
  1272. #if UNIX
  1273.     #define sockwzNew()        TRUE
  1274.     #define sockwzDelete()    TRUE
  1275. #else
  1276.     BOOL sockwzNew(void);
  1277.     BOOL sockwzDelete(void);
  1278. #endif
  1279. //キーマウスフック
  1280. void keyhookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  1281. void keyhookEnd(void);
  1282. void keyhookTerm(void);
  1283. void mousehookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  1284. void mousehookEnd(void);
  1285. void mousehookTerm(void);
  1286. //スレッド
  1287. #if !UNIX
  1288.     #undef csEnter
  1289.     #undef csExit
  1290.     #define csEnter(cs)    EnterCriticalSection(cs)
  1291.     #define csExit(cs)    LeaveCriticalSection(cs)
  1292.     #define csInit(cs)    InitializeCriticalSection(cs)
  1293.     #define csTerm(cs)    DeleteCriticalSection(cs)
  1294.     extern CRITICAL_SECTION g_csCaret;
  1295. #endif
  1296. #endif // !__TXC__
  1297.  
  1298. //##USER拡張
  1299.  
  1300. #define SFF        (UNIX)    //WZ4.00Bm 990927 システムフォントが固定ピッチ?
  1301.  
  1302. DWORD TXAPI_(850) myChooseColor(HWND hwndParent,COLORREF* rgbResult,mchar* sztitle);
  1303. BOOL TXAPI_(531) wndSetPosSize(HWND hwnd,int x,int y,int cx,int cy);
  1304. BOOL TXAPI_(532) wndSetPos(HWND hwnd,int x,int y);
  1305. void TXAPI_(533) wndSetTimer(HWND hwnd,UINT timerid,DWORD ms);
  1306. void TXAPI_(534) wndMoveFocus(HWND hwnd,BOOL fPrev);
  1307. LRESULT TXAPI_(459) SendMessageOther(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
  1308. BOOL TXAPI_(298) TXAPIBASE wndImeGetOpen(HWND hwnd);
  1309. void TXAPI_(299) TXAPIBASE wndImeSetOpen(HWND hwnd,BOOL fOpen);
  1310. int TXAPI_(528) ListBox_GetItemText_A(HWND hctrl,int index,mchar* szbuff,int cch);
  1311. int TXAPI_(529) ListBox_GetItemText_W(HWND hctrl,int index,wchar* szbuff,int cch);
  1312. BOOL ListBox_SetDeletedFromUndo(HWND hctrl,TX* text);
  1313. mchar* TXAPI ListBox_GetItemTextAlloc_A(HWND hctrl,int index);
  1314. void TXAPI_(393) GetWorkRect(RECT *r);
  1315. BOOL TXAPI_(535) EnableDlgItem(HWND hwnd,int id,BOOL fEnable);
  1316. BOOL TXAPI EnableDlgItemEx(HWND hwnd,int id,BOOL fEnable,int idDefault);
  1317. BOOL TXAPI_(536) IsDlgItemTextEmpty(HWND hwndDlg,int idControl);
  1318. //window context(__TXC__でも使用)
  1319. #define hwndGetContext(hwnd)            ((LPVOID)GetWindowLong(hwnd,0))
  1320. #define hwndSetContext(hwnd,context)    SetWindowLong(hwnd,0,(LONG)context)
  1321. #define wndprocContext(hwnd,context,message,wParam,lParam)    \
  1322.         if (context == NULL && message != WM_CREATE) return DefWindowProc(hwnd,message,wParam,lParam);
  1323. #define hwndtextGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  1324. #define hwndbaseGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  1325. //
  1326. #if !__TXC__
  1327. BOOL TXAPI wndSetZorder(HWND hwnd,HWND hwndInsertAfter);
  1328. BOOL IsOwnered(HWND hwndParent,HWND hwnd);
  1329. BOOL wndSetSize(HWND hwnd,int cx,int cy);    //WZ4.00Bl 990912 #defineマクロから関数化
  1330. #if WINDOWSCE
  1331. BOOL IsIconic(HWND hwnd);
  1332. HWND GetDesktopWindow(void);
  1333. #endif
  1334. //
  1335. void myCheckMenuItem(HMENU hmenu,int idm,BOOL fCheck);
  1336. void myEnableMenuItem(HMENU hmenu,int idm,BOOL fEnable);
  1337. BOOL GetEnableMenuItem(HMENU hmenu,int idm);
  1338. void hmenubarDeleteShortcut(HMENU hmenuRoot);
  1339. void hmenuDeleteShortcut(HMENU hmenu);
  1340. #if !WINDOWSCE
  1341. HWND CommandBar_Create(HINSTANCE hInst, HWND hwndParent, int idCmdBar);
  1342. BOOL CommandBar_Show(HWND hwndCB, BOOL fShow);
  1343. int CommandBar_AddBitmap(HWND hwndCB, HINSTANCE hInst, int idBitmap,int iNumImages, int iImageWidth,int iImageHeight);
  1344. HWND CommandBar_InsertComboBox(HWND hwndCB, HINSTANCE hInstance,int  iWidth, UINT dwStyle,WORD idComboBox, WORD iButton);
  1345. BOOL CommandBar_InsertMenubar(HWND hwndCB, HINSTANCE hInst,WORD idMenu, WORD iButton);
  1346. HMENU CommandBar_GetMenu(HWND hwndCB, WORD iButton);
  1347. BOOL CommandBar_AddAdornments(HWND hwndCB,DWORD dwFlags,DWORD dwReserved);
  1348. int CommandBar_Height(HWND hwndCB);
  1349. void CommandBar_AddButtons(HWND hwndCB,int cbButtons,LPVOID lpButtons);
  1350. void CommandBar_AddToolTips(HWND hwndCB,int cbToolTips,LPVOID lpToolTipsStrings);
  1351. #endif
  1352. //
  1353. int TXAPI dtcx(int dtcx);
  1354. int TXAPI dtcy(int dtcy);
  1355. int TXAPI systemfontGetCx(void);
  1356. int TXAPI systemfontGetCy(void);
  1357. void hwndSetCenter(HWND hwndBase);
  1358. BOOL wndRePos(HWND hwnd);
  1359. BOOL TXAPI wndGetRect(HWND hwnd,RECT* r);
  1360. void rectReWork(RECT* r);
  1361. void strToRect(mchar* p,RECT* r);
  1362. BOOL rectCheck(RECT* r);
  1363. //intelli mouse
  1364. BOOL imouseGetEnable(void);
  1365. BOOL messageIsMouseWheel(UINT message);
  1366. BOOL imouseGetPageTurn(void);
  1367. int imouseGetScrollLines(WPARAM wParam);
  1368. //
  1369. #if WINDOWSCE
  1370.     UINT IsDlgButtonChecked(HWND hwnd,int idd);
  1371.     BOOL CheckDlgButton(HWND hwnd,int idd,UINT uCheck);
  1372.     BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  1373.     BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  1374.     #if WINDOWSCE1    //PWZ2BETA0.4 980530 
  1375.     HPEN CreatePen(int style,int nWidth,COLORREF rgb);
  1376.     #endif
  1377. #else
  1378.     extern int _cxSysChar;
  1379.     extern int _cySysChar;
  1380.     int GetSystemFontNo(void);
  1381.     void InitSystemFontSize(HWND hwnd);
  1382. #endif
  1383. //
  1384. mchar* GetWindowTextAlloc_A(HWND hwnd);
  1385. #ifdef UNICODE
  1386. void ListBox_AddString_A(HWND hctrl,mchar* sz);
  1387. int ListBox_FindStringExact_A(HWND hctrl,int i,mchar* sz);
  1388. void ComboBox_AddString_A(HWND hctrl,mchar* sz);
  1389. int sprintf_A(LPSTR szDst,LPCSTR szFormat,...);
  1390. int vsprintf_A(LPSTR szDst,LPCSTR szFormat,void** arg);
  1391. BOOL TextOut_A(HDC hdc,int x,int y,LPCSTR lpString,int lchString);
  1392. BOOL WINAPI SetWindowText_A(HWND hwnd,LPCSTR lpsz);
  1393. int WINAPI GetWindowText_A(HWND hwnd,LPSTR lpsz,int cchMax);
  1394. BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  1395. BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  1396. #else
  1397. void ListBox_AddString_W(HWND hctrl,wchar* wsz);
  1398. int ListBox_FindStringExact_W(HWND hctrl,int i,wchar* wsz);
  1399. void ComboBox_AddString_W(HWND hctrl,wchar* wsz);
  1400. int sprintf_W(LPWSTR szDst,LPCWSTR szFormat,...);
  1401. int vsprintf_W(LPWSTR szDst,LPCWSTR szFormat,void** arg);
  1402. HANDLE FindFirstFile_W(LPCWSTR wszpath,WIN32_FIND_DATAW* ffd);
  1403. HANDLE FindNextFile_W(HANDLE hFindFile,WIN32_FIND_DATAW* ffd);
  1404. BOOL SetWindowText_W(HWND hwnd,LPCWSTR lpsz);
  1405. int GetWindowText_W(HWND hwnd,LPWSTR lpsz,int cchMax);
  1406. BOOL SetDlgItemText_W(HWND hwndDlg,int idControl,LPCWSTR lpsz);
  1407. int GetDlgItemText_W(HWND hwndDlg,int idControl,LPWSTR lpsz,int cchMax);
  1408. 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);
  1409. 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);
  1410. ATOM RegisterClass_W(WNDCLASSW* lpwc);
  1411. int GetClassName_W(HWND hwnd,LPWSTR lpClassName,int cchClassName);
  1412. int DrawText_W(HDC hdc,LPCWSTR wszStr,int cchStr,LPRECT lprc,UINT wFormat);
  1413. #endif    // !UNICODE
  1414. //
  1415. #if !WINDOWSCE1 && !UNIX
  1416.     BSTR ime98GetPhonetic(OLECHAR* wszKanji);
  1417. #endif
  1418. void hwndSetFontDefault(HWND hwnd);
  1419. BOOL hbitmapGetSize(HBITMAP hBitmap,SIZE* s);
  1420. BOOL iskanjifont(mchar *lfFaceName);
  1421. void TreeView_Hook(HWND hwnd);
  1422. int TreeView_GetItemNest(HWND hwnd,HTREEITEM tvitem);
  1423. #endif // !__TXC__
  1424.  
  1425. #if __TXC__
  1426. 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);
  1427. WORD TXAPI_(816) RegisterClass_W(LPVOID lpwc);
  1428. #endif
  1429.  
  1430. //##GDI拡張
  1431.  
  1432. void myRectangle(HDC hdc,int left,int top,int right,int bottom);
  1433. void DrawXorBox(HDC hdc,RECT* r,HBRUSH hbrush);
  1434. int GetTextTurn(HDC hdc,tchar* sz,int lchSz,int cx);
  1435. int TXAPI_(761) pointsToMmtext(HDC hdc,int points);
  1436. int TXAPI_(762) pixelsToMcm(HDC hdc,int pixels);
  1437. int mmtextToPoints(HDC hdc,int mmtext);
  1438. int TXAPI_(763) mcmToPixels(HDC hdc,int mcm);
  1439. void TXAPI_(765) hdcDrawFrame(HDC hdc,RECT *r,UINT mode);
  1440.     // hdcのrに3次元で枠を描きます
  1441.     // modefButtonが真なら、ふくらんだボタン、偽ならへこんだボタンの枠を描きます
  1442.     //   DF_BUTTON            ふくらんだボタン
  1443.     //   DF_PUSHEDBUTTON    へこんだボタン
  1444.     //   DF_INFO            ステータスバー内の枠
  1445.     //   DF_INFOWHITE        ステータスバー内の枠(中身白)
  1446.     //   DF_BORDER            境界線で枠
  1447.     //   DF_ROUNDBORDER        境界線で角が丸い枠
  1448.     //   DF_BUTTONSHADOW    ボタンの影
  1449.     //   DF_BUTTONFACE        ボタンベース色
  1450.     #define DF_PUSHEDBUTTON        0
  1451.     #define DF_BUTTON            1
  1452.     #define DF_BORDER            2
  1453.     #define DF_INFO                3
  1454.     #define DF_ROUNDBORDER        4
  1455.     #define DF_BUTTONSHADOW        5
  1456.     #define DF_BUTTONFACE        6
  1457.     #define DF_INFOWHITE        7
  1458.     enum {
  1459.         DF_FRAMEOUTSIDE=110,
  1460.         DF_FRAMEINSIDE,
  1461.         DF_FRAME,                // DF_FRAMEOUTSIDE+DF_FRAMEINSIDE    //WZ3.90O 981202 
  1462.     };
  1463. void TXAPI_(764) hdcSelectObjectDefault(HDC hdc);
  1464. //
  1465. #if !__TXC__
  1466. #if WINDOWSCE
  1467. void MoveTo(HDC hdc,int x,int y);
  1468. void LineTo(HDC hdc,int x,int y);
  1469. BOOL TextOut(HDC hdc,int x,int y,LPCTSTR lpString,int cbString);
  1470. #else
  1471.     #define MoveTo(hdc,x,y)    MoveToEx(hdc,x,y,NULL)
  1472. #endif
  1473. #endif // !__TXC__
  1474.  
  1475. //##メニュー操作
  1476.  
  1477. HMENU TXAPI_(387) menuNew(void);
  1478. void TXAPI_(388) wmenuStr(HMENU hmenu,wchar* szStr,int id);
  1479. void TXAPI_(810) menuStr(HMENU hmenu,mchar* sz,int id);
  1480. void TXAPI_(245) wmenuPopup(HMENU hmenu,wchar *szStr,HMENU hmenuPopup);
  1481. void TXAPI_(811) menuPopup(HMENU hmenu,mchar* sz,HMENU hmenuPopup);
  1482. void TXAPI_(389) menuSepa(HMENU hmenu);
  1483. void TXAPI_(390) menuDelete(HMENU hmenu);
  1484. BOOL TXAPI_(874) menuTx(HMENU hmenu,mchar* szCaption,mchar* szMacro);    //WZ3.90L 981122 TX-C互換
  1485. int TXAPI_(391) menuOpenEx(HMENU hmenu,UINT flag,int x,int y,HWND hwndParent);
  1486.     #define MENU_CMD        0x0001    // ウィンドウプロシジャを経由せず、コマンドを返す。
  1487.     #define MENU_CENTER        0x0002    // 画面中央に表示。x,yにはlcx,lcyを指定。
  1488.     #define MENU_MOUSE        0x0004    // マウス位置に表示。
  1489.     #define MENU_TXCUR        0x0008    // textのカーソル位置に表示。
  1490.     #define MENU_TRAY        0x0010    // タスクトレイの位置に表示。
  1491.     #define MENU_DELETE        0x0020    // オープン後にhmenuを削除する。
  1492.     #define MENU_GETPARENT    0x0040    // hwndParentに関わらずhwndbaseGetする。//WZ4.00Bk 990909 
  1493. // 以下、TX-Cからも利用可能
  1494. #define txHmenuSelect(text,hmenu)    menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_TXCUR,0,0,text->hwndtext)
  1495. #define txHmenuOpenKey(text,hmenu)    menuOpenEx(hmenu,MENU_TXCUR,0,0,text->hwndbase)    //WZ4.00A 981229 new hwndtextを渡すのは×、hwndbaseが○
  1496. #define menuSelectMouse(hmenu)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_MOUSE,0,0,NULL)
  1497. #define menuOpenMouse(hmenu)        menuOpenEx(hmenu,MENU_MOUSE,0,0,NULL)
  1498. #define menuOpenXY(hmenu,x,y)        menuOpenEx(hmenu,0,x,y,NULL)
  1499. // 以下、内部用
  1500. #define menuSelectXY(hmenu,x,y)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE,x,y,NULL)
  1501. #define menuOpenCenter(hmenu,lx,ly)    menuOpenEx(hmenu,MENU_CENTER,lx,ly,NULL)
  1502. #define menuOpenTray(hmenu,hwnd)    menuOpenEx(hmenu,MENU_TRAY,0,0,hwnd)
  1503. HMENU menuLoadMouseR(mchar* szApp,mchar* szName);
  1504. HMENU menuLoad(mchar* szApp,mchar* szName);
  1505. HMENU menubarLoad(mchar* szApp,mchar* szName);
  1506.  
  1507. //##パス検索(GREP)
  1508.  
  1509. typedef struct tagFOLDER_WALK {
  1510.     BBOOL fSearchSubFolder;            // サブフォルダも検索
  1511.     BBOOL fNoSearchWindows;            // Windowsフォルダは検索しない
  1512.     BBOOL fNoSearchBinaryFiletype;    // バイナリ拡張子のファイルは検索しない
  1513.     BBOOL fNoSearchBigFile;            // 巨大なファイルは検索しない
  1514.     int (*appProc)(LPVOID appContext,wchar* wszfilename);
  1515.     LPVOID appContext;                // appProcに渡すクライアント定義コンテキスト
  1516. // appProc用
  1517.     BOOL fAborted;                    // 中止する
  1518. // 内部用
  1519.     wchar wszPath[CCHPATHNAME];        // 検索パス
  1520.     mchar szReject[CCHPATHNAME];    //WZ4.00Bj 990823 除外用
  1521. } FOLDER_WALK;
  1522. int folderWalk(FOLDER_WALK* walk,wchar* wszPath);
  1523.  
  1524. //##ファイル入出力
  1525.  
  1526. #define FILEHANDLE_ERROR    ((HANDLE)0xFFFFFFFF)    // replace HFILE_ERROR
  1527.                                                     // 0じゃない!
  1528. #define SEEK_SET        0
  1529. #define SEEK_CUR        1
  1530. #define SEEK_END        2
  1531.  
  1532. #define _llseekTop(hf)            _llseek(hf,0,SEEK_SET)
  1533. #define _llseekSet(hf,ifile)    _llseek(hf,ifile,SEEK_SET)
  1534. #define _llseekEnd(hf)            _llseek(hf,0,SEEK_END)
  1535. #define _llseekCur(hf)            _llseek(hf,0,SEEK_CUR)
  1536.  
  1537. #if WINDOWSCE
  1538.     //WZ4.00Bl 990915 !WINDOWSCEのTX-Cでは、_lread/_lwrite/_llseekは#include <windows.h>して使用し_wz.hでは定義しない。そうしないと#include <windows.h>したときにエラーになる。
  1539.     UINT TXAPI_(451) _lread(HANDLE hfile,LPVOID lpBuffer,UINT cbRead);
  1540.     UINT TXAPI_(452) _lwrite(HANDLE hfile,LPVOID lpBuffer,UINT cbWrite);
  1541.     LONG TXAPI_(453) _llseek(HANDLE hfile,LONG lOffset,int nOrigin);
  1542. #endif
  1543. BOOL TXAPI_(454) _lreduce(HANDLE hf,IFILE cbReduce);
  1544. BOOL TXAPI_(455) fileIsReadonlyW(wchar* szfilename);
  1545. BOOL TXAPI_(456) TXAPIBASE fileIsExistW(wchar *_szfilename);
  1546. BOOL TXAPI_(457) TXAPIBASE fileIsExist(mchar *szfilename);
  1547. BOOL TXAPI_(458) filetimeFromFileNameW(FILETIME* filetime,wchar* szfilename);
  1548.  
  1549. #if !__TXC__
  1550. BOOL _lreadPara(HANDLE hf,mchar* buff,int cch);
  1551. BOOL _lreadParaContent(HANDLE hf,mchar* buff,int cch);
  1552. BOOL _llseekLf(HANDLE hf);
  1553. void _lcloseex(HANDLE hfile);
  1554. #define _lclose(h)    _lcloseex(h)
  1555. BOOL _lwriteString(HANDLE hf,mchar* szstr);
  1556. BOOL _lwriteStringWtoA(HANDLE hf,wchar* wszstr);
  1557. BOOL _lwriteStringInt(HANDLE hf,int num);
  1558. BOOL _lwriteStringReturn(HANDLE hf,mchar* szstr);
  1559. BOOL _lwriteStringSpace(HANDLE hf,mchar* szstr);
  1560. BOOL _lwritef(HANDLE hf,mchar* szformat,...);
  1561. BOOL _lwriteReturn(HANDLE hf);
  1562. BOOL _lwriteFromFile(HANDLE hf,HANDLE hfSrc,IFILE size);
  1563. BOOL hfLastIsReturn(HANDLE hf);
  1564. BOOL hfLastSetReturn(HANDLE hf);
  1565. #define FILE_SHARE_READWRITE    (FILE_SHARE_READ|FILE_SHARE_WRITE)
  1566. HANDLE _lopenex(wchar* wszfilename,DWORD fdwAccess,DWORD fdwShareMode);
  1567. HANDLE _lopenex_A(mchar* szfilename,DWORD fdwAccess,DWORD fdwShareMode);
  1568. HANDLE _lopenAlways(wchar* wszfilename,DWORD fdwShareMode);
  1569. HANDLE _lcreatex(wchar* wszfilename,DWORD fdwShareMode);
  1570. HANDLE _lcreatex_A(mchar* szfilename,DWORD fdwShareMode);
  1571. HANDLE _lcreatexNew(wchar* wszfilename,DWORD fdwShareMode);
  1572. #ifdef UNICODE
  1573. HANDLE CreateFile_A(LPCSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  1574. HANDLE LoadLibrary_A(mchar* szfilename);
  1575. FARPROC myGetProcAddress_A(HINSTANCE hinstance,mchar* szFunction);
  1576. #else
  1577. HANDLE CreateFile_W(LPCWSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  1578. BOOL CopyFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst,BOOL fFailIfExists);
  1579. BOOL MoveFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst);
  1580. BOOL DeleteFile_W(LPCWSTR lpszFileName);
  1581. BOOL SetFileAttributes_W(LPCWSTR lpszFileName,DWORD dwFileAttributes);
  1582. BOOL RemoveDirectory_W(LPCWSTR wszDir);
  1583. BOOL CreateDirectory_W(LPCWSTR lpszPath,LPSECURITY_ATTRIBUTES lpsa);
  1584. HANDLE CreateFileMapping_W(HANDLE hFile,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCWSTR lpszMapName);
  1585. HANDLE CreateMutex_W(LPSECURITY_ATTRIBUTES lpsa,BOOL fInitialOwner,LPCWSTR lpszMutexName);
  1586. #if !UNIX && !__TXC__
  1587. BOOL ShellExecuteEx_W(SHELLEXECUTEINFOW* info);
  1588. #endif
  1589. HANDLE LoadLibrary_W(wchar* wszfilename);
  1590. #endif
  1591. #endif // !__TXC__
  1592.  
  1593. //##文字列
  1594.  
  1595. int TXAPI_(297) strsize(mchar* szstr);
  1596. int _cdecl TXAPI_(99) sprintf(mchar* szdst,mchar* szformat,...);
  1597. int TXAPI_(460) formstr(mchar *str);
  1598. #ifndef __OLECPP__
  1599. mchar* itoa(int value,mchar* string,int radix);
  1600. #endif
  1601. mchar* itoaZ(int value,mchar* string,int radix);
  1602. int TXAPI_(100) wstrtostr(wchar* src,int lchSrc,mchar* dst,int cchDst);
  1603. int TXAPI_(101) strtowstr(mchar* src,int lchSrc,wchar* dst,int sizeDst);
  1604. int TXAPI_(888) strtowstrsz(mchar* src,int lchSrc,wchar* dst,int cchDst);
  1605. int TXAPI_(889) wstrtostrsz(wchar* src,int lchSrc,mchar* dst,int cchDst);
  1606. int TXAPI_(886) pathtowpath(mchar* szpath,wchar* wszpath);
  1607. int TXAPI_(887) wpathtopath(wchar* wszpath,mchar* szpath);
  1608. wchar* TXAPI_(102) TXAPIBASE wstrcpylen(wchar *dst,wchar *src,int len);
  1609. wchar* TXAPI_(103) wstrcpylenmax(wchar *dst,wchar *src,int len,int lcxmax);
  1610. wchar * TXAPI_(104) wstrcpymax(wchar *szdst,wchar *szsrc,int lchmax);
  1611. int TXAPI_(461) formstrex(mchar *str,BOOL fCurWestern);
  1612. int strread(mchar* sz,TXCHAR* ch,IBUFF len);
  1613. wchar* wstristr(wchar* str1,wchar* str2);
  1614. #ifndef __TXC__
  1615. mchar* strSkipRe(mchar* p,int* pnRe);
  1616. int strlensize(mchar *szstr);
  1617. void sprintfAfnEx(mchar* szdst,mchar* szAf,TX* text,BOOL fSkipTopClm);
  1618. void wi10toa(int value,wchar* buff);
  1619. long watoi10(wchar* buff);
  1620. mchar* TXAPIBASE strGetWordTopLch(mchar* szStr,int lch);
  1621. int yearAdjust2000(int year);
  1622. int atoi2(mchar* p);
  1623. int atoiLen(mchar* p,int len);
  1624. IBUFF SearchParaTop(LPBYTE buff,IMEM off,IMEM _size);
  1625. IBUFF SearchParaTopEx(LPBYTE buff,IMEM off,IMEM size,IBUFF ibuffAtError);
  1626. IBUFF SearchCharTop(LPBYTE buff,IBUFF off,IBUFF _size);
  1627. IBUFF SearchParaEnd(LPBYTE buff,IMEM off,IMEM _size);
  1628. mchar* TXAPI strnext(mchar* szstr);
  1629. BOOL issepastr(mchar* str);
  1630. mchar* sepastrGetIndexStr(mchar* str,int i,int* pLch);
  1631. mchar* csstrGetInclude(mchar* csstr,int size,mchar* szName);
  1632. mchar* strGetTailSpacePrev(mchar* sz,mchar* szEnd);
  1633. void strDeleteTailSpace(mchar* sz);
  1634. void strDeleteTailSpaceTab(mchar* sz);
  1635. #if WINDOWSCE
  1636. mchar* strnset(mchar* s,int ch,size_t n);
  1637. mchar* strupr(mchar* s);
  1638. mchar* strlwr(mchar* s);
  1639. #endif
  1640. void sprintSize(mchar* dst,IFILE size);
  1641. void sprintDate(mchar* szdst);
  1642. void sprintfDate(mchar szdst[CCHWORD],mchar* szDateFormat,TX* text);
  1643. void sprintFiletime(mchar* szbuff,FILETIME* filetime);
  1644. void sprintFiletimeDate(mchar* szbuff,FILETIME* filetime);
  1645. void sprintFiletimeTime(mchar* szbuff,FILETIME* filetime);
  1646. void strToFiletime(mchar* p,int len,FILETIME* filetime,int dHourAdd);
  1647. void sprintSizeKB(mchar* szbuff,IFILE size);
  1648. #if UNIX    //XZ0.1 990516 標準ライブラリのwcsXXXはint*なので使用できない。
  1649.     wchar* wstrcpy(wchar* dst,wchar* src);
  1650.     int wstrcmp(wchar* sz1,wchar* sz2);
  1651.     int wstrlen(wchar *str);
  1652.     wchar* wstrcat(wchar* dst,wchar* src);
  1653.     wchar* wstrstr(wchar* sz1,wchar* sz2);
  1654.     int wstrncmp(wchar* sz1,wchar* sz2,int lch);
  1655. #else
  1656.     #if WINDOWSCE
  1657.         //WZ4.00Ac 990206 A-60でpermanentを含むマクロがコンパイル&実行できない。permanentinitのwcscpyでハングするので、wstrcpyを自分で実装した。
  1658.         wchar* wstrcpy(wchar* dst,wchar* src);
  1659. //        #define wstrcpy        wcscpy
  1660.     #else
  1661.         #define wstrcpy        wcscpy
  1662.     #endif
  1663.     #define wstrlen        wcslen
  1664.     #define wstrcat        wcscat
  1665.     #define wstrstr        wcsstr    //3.90H 980910 
  1666.     #ifdef _WIN32_WCE_EMULATION
  1667.         int wstrcmp(wchar* sz1,wchar* sz2);
  1668.     #else
  1669.         #define wstrcmp        wcscmp
  1670.     #endif
  1671. #endif
  1672. #endif    // __TXC__
  1673. // for ANSI(!UNICODE) version
  1674. mchar* TXAPI_(904) strdupW(wchar* wsz);
  1675. wchar* TXAPI_(905) wstrdupA(mchar* sz);
  1676. wchar* wstrdupLenA(mchar* sz,int lch);
  1677. wchar* wstrset(wchar* dst,int ch,int lch);
  1678. // safety strcpy op.
  1679. // szdstがmcharの配列の場合のみ使用可能。mcharへのポインタの場合は不可能
  1680. #define sstrcpy(szdst,szsrc)            strcpymax(szdst,szsrc,cchof(szdst))
  1681. #define wsstrcpy(szdst,szsrc)            wstrcpymax(szdst,szsrc,wcchof(szdst))
  1682. #define sstrcpylen(szdst,szsrc,lch)        strcpylenmax(szdst,szsrc,lch,cchof(szdst))
  1683. #define wsstrcpylen(szdst,szsrc,lch)    wstrcpylenmax(szdst,szsrc,lch,wcchof(szdst))
  1684. #define sstrcat(szdst,szsrc)            strcpymax(szdst + strlen(szdst),szsrc,cchof(szdst) - strlen(szdst))
  1685. #define wsstrcat(szdst,szsrc)            wstrcpymax(szdst + wstrlen(szdst),szsrc,wcchof(szdst) - wstrlen(szdst))
  1686. #define strcatmax(szdst,szsrc,cch)        strcpymax(szdst + strlen(szdst),szsrc,cch - strlen(szdst))
  1687. #define strcatlenmax(szdst,szsrc,lch,cch) strcpylenmax(szdst + strlen(szdst),szsrc,lch,cch - strlen(szdst))    //WZ3.90M 981129 
  1688. #define wstrcatmax(szdst,szsrc,cch)        wstrcpymax(szdst + wstrlen(szdst),szsrc,cch - wstrlen(szdst))
  1689. #define sstrcatlen(szdst,szsrc,lch)        strcpylenmax(szdst + strlen(szdst),szsrc,lch,cchof(szdst) - strlen(szdst))
  1690. #define wstrsize(szstr)                    ((wstrlen(szstr) + 1) * sizeof(wchar))
  1691. #define wstrlensize(szstr)                (wstrlen(szstr) * sizeof(wchar))
  1692. mchar * TXAPI_(462) strcpymax(mchar *szdst,mchar *szsrc,int lchmax);
  1693. BOOL TXAPI_(463) TXAPIBASE txchIsKanji(TXCHAR c);
  1694. BOOL TXAPI_(464) TXAPIBASE txchIsReturn(TXCHAR c);    // 0x0D0A,0x0A,0x1A
  1695. BOOL txchIsSubtitleIllegal(TXCHAR ch);
  1696. #ifndef __WZRAS__
  1697.     #define txchIsAlpha(c)    (c < 256 && isalpha(c))    //WCE1.01 971229 new
  1698.     #define txchIsAlnum(c)    (c < 256 && isalnum(c))    //WCE1.01 971229 new
  1699.     #define txchIsDigit(c)    (c < 256 && isdigit(c))    //WCE1.01 971229 new
  1700. #endif
  1701. wchar* wstrdup(wchar* wszstr);
  1702. #if !__OLECPP__ && !UNIX && !__MEMORYDEBUG__
  1703. mchar* strdup(mchar* szstr);
  1704. #endif
  1705. mchar* TXAPI_(910) strdupLen(mchar* str,int lch);
  1706. mchar* stristrword(mchar *szstr,mchar *szfind);
  1707. mchar* strchrs(mchar *str1,mchar *chrs);
  1708. mchar* strchrlast(mchar *str,WORD c);
  1709. mchar* strchrex(mchar* p,int ch);
  1710. wchar* wstrchrex(wchar* p,int ch);
  1711. BOOL strisidi(mchar* szstr,mchar* szId);
  1712. // 標準のstrstr/strchr/strichrはTXCHARに対応してないので、
  1713. // __strstr/__strchr/__strichrとは動作が異なるので、overrideする
  1714. mchar* __strstr(mchar *str1,mchar *str2);
  1715. #define strstr    __strstr
  1716. mchar* __strchr(mchar *str1,WORD c);
  1717. #define strchr __strchr
  1718. mchar* __strichr(mchar *str1,WORD c);
  1719. #define strichr __strichr
  1720. mchar* __stristr(mchar *str1,mchar *str2);    //WCE1.01B 980615 
  1721. #define stristr __stristr    //WCE1.01B 980615 
  1722. mchar* strchrex(mchar* p,int ch);
  1723. wchar* wstrchrex(wchar* p,int ch);
  1724. mchar* strchrtail(mchar* p,int ch);
  1725. wchar* wstrchrtail(wchar* p,int ch);
  1726. BOOL strismsgheader(mchar* sz);
  1727. mchar* TXAPIBASE strGetNextWordTop(mchar* szStr);
  1728. mchar * TXAPI_(477) TXAPIBASE strGetWordTop(mchar* szStr);
  1729. int TXAPI_(478) TXAPIBASE strGetWordLen(mchar* szStr);
  1730. mchar* TXAPI_(845) strGetWord(mchar* szbuff,mchar* szstr);
  1731. int TXAPI strGetLineLen(mchar* szStr);
  1732. int strGetQuoteLen(mchar* szStr);
  1733. mchar * TXAPI_(479) TXAPIBASE strcpylen(mchar *dst,mchar *src,int len);
  1734. mchar * TXAPI_(480) strcpylenmax(mchar *dst,mchar *src,int len,int lcxmax);
  1735. #ifndef __OLECPP__
  1736. int TXAPI_(481) stricmp(mchar* sz1,mchar* sz2);
  1737. int TXAPI_(482) strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  1738. #endif
  1739. mchar* sjis_strupr(mchar* s);
  1740. int sjis_strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  1741. mchar * TXAPI_(485) strGetLast(mchar *szstr);
  1742. mchar* TXAPI strGetLastAscii(mchar* szstr);
  1743. int strisidi(mchar* szstr,mchar* szId);
  1744. wchar* TXAPI_(466) wstrGetLast(wchar* szstr);
  1745. int TXAPI_(467) wstricmp(wchar* sz1,wchar* sz2);
  1746. int wstrncmp(wchar* sz1,wchar* sz2,int lch);
  1747. int TXAPI_(468) wstrnicmp(wchar* sz1,wchar* sz2,int lch);
  1748. wchar* TXAPI_(469) wstrchr(wchar* sz,int c);
  1749. wchar* TXAPI_(470) TXAPIBASE wstrGetWordTop(wchar *szStr);
  1750. int TXAPI_(471) TXAPIBASE wstrGetWordLen(wchar* szStr);
  1751. mchar* TXAPIBASE szwordtop(mchar* sz);
  1752. int TXAPIBASE szwordlen(mchar* sz);
  1753. #define watoi(sz)    watol(sz)
  1754. long TXAPI_(472) watol(wchar* sz);
  1755. UINT TXAPI_(473) formcharex(mchar* str,UINT offset);
  1756. int TXAPI_(474) hextoint(mchar *szhex);
  1757. int TXAPI_(475) _hextoint(int c);
  1758.  
  1759. #ifdef __TXC__
  1760. int _cdecl TXAPI_(105) strlen(mchar *str);
  1761. pmchar _cdecl TXAPI_(106) strcpy(mchar *str1,mchar *str2);
  1762. pmchar _cdecl TXAPI_(107) strncpy(mchar *str1,mchar *str2,size_t len);
  1763. pmchar _cdecl TXAPI_(108) strcat(mchar *str1,mchar *str2);
  1764. pmchar _cdecl TXAPI_(109) strnset(mchar *str,int ch,size_t len);
  1765. int _cdecl TXAPI_(110) strcmp(mchar *str1,mchar *str2);
  1766. int _cdecl TXAPI_(112) strncmp(mchar *str1,mchar *str2,size_t len);
  1767. pmchar _cdecl TXAPI_(114) strstr(mchar *str1,mchar *str2);
  1768. pmchar _cdecl TXAPI_(115) stristr(mchar *str1,mchar *str2);
  1769. pmchar _cdecl TXAPI_(116) stristrword(mchar *str1,mchar *str2);
  1770. pmchar _cdecl TXAPI_(117) strchr(mchar *str1,WORD c);
  1771. pmchar _cdecl TXAPI_(118) strichr(mchar *str1,WORD c);
  1772. pmchar _cdecl TXAPI_(119) strchrs(mchar *str1,mchar *found);
  1773. pmchar _cdecl TXAPI_(120) strupr(mchar *str);
  1774. pmchar _cdecl TXAPI_(121) strlwr(mchar *str);
  1775. long _cdecl TXAPI_(122) atoi(const mchar *str);
  1776. void TXAPI_(123) vsprintf(mchar *szdst,mchar *_format,void *pparam);
  1777. // unicode string
  1778. int _cdecl TXAPI_(775) wstrlen(wchar *str);
  1779. wchar* _cdecl TXAPI_(776) wstrcpy(wchar *str1,wchar *str2);
  1780. wchar* _cdecl TXAPI_(777) wstrcat(wchar *str1,wchar *str2);
  1781. int _cdecl TXAPI_(778) wstrcmp(wchar *str1,wchar *str2);
  1782. #endif    // __TXC__
  1783.  
  1784. //##タブカンマ区切り文字列
  1785.  
  1786. #if !__TXC__
  1787. int cvszGetWordLen(mchar* csz);
  1788. mchar* cvszGetWordTop(mchar* csz);
  1789. mchar* cszGetWordTop(mchar* csz);
  1790. int cszGetWordLen(mchar* csz);
  1791. mchar* cszFindNosensecase(mchar* csz,mchar* sz);
  1792. BOOL cszItemDel(mchar* csz,mchar* sz);
  1793. mchar* cszItemAddAlloc(mchar* csz0,mchar* sz);
  1794. mchar* csszGetInclude(mchar* cssz,mchar* szName);
  1795. mchar* csszGetWordTop(mchar* csz);
  1796. int csszGetWordLen(mchar* cssz);
  1797. int clmsToTclm(mchar* szClms,mchar* tClm,int cchClm,int iClm,int maxClm);
  1798. mchar* clmsFromTclmAlloc(mchar* tClm,int cchClm,int iClm,int maxClm,mchar* szFirstClm);
  1799. #endif // !__TXC__
  1800.  
  1801. //{###TEXT/WZ構造体
  1802.  
  1803. //##テキストバッファ基本定義
  1804.  
  1805. #define TEXTBUFFSIZE    16384U            //1.00F (IBUFF) -> U , 65536U-16U -> 65520U
  1806.     // テキストバッファの初期サイズ
  1807.     // 16の倍数であること。
  1808.     // これはあくまで確保するサイズ。
  1809.     // バッファに入っているテキストデータのバイト数は、
  1810.     // text->sizebuffに入っている。
  1811.     // WINDOWSCEはメモリが少ないので少な目に確保
  1812. #define MAXPARASIZE        8192U            //1.00F (IBUFF) -> U
  1813.     // 論理行の最大サイズの目安
  1814.     // これを越える論理行も何ら問題なく編集できる
  1815. #define STDGAPSIZE        2048U            //1.00F (IBUFF) -> U
  1816.     // 最低2048、最大8192程度
  1817. #define TEXTBUFFSIZE_MARGIN        8U        // WINDOWSCE
  1818.     // EOF追加,ターミネータのため、8bytes余計に取る
  1819.     // 最低3バイト余計に取らないといけない
  1820.     // 追加EOF1バイト分と、ターミネータ2+1バイト分(+1:WCE)
  1821.  
  1822. #define TC_SJIS            0        // ShiftJIS (1byte or 2bytes)
  1823.                                 // 拡張ASCIIコード(欧文文字:0x80-0xFF)は
  1824.                                 // iskanjiと重なるコードは0x80を追加して
  1825.                                 // 2bytesで表現する。
  1826.                                 // (!TEXTCHAR_UNICODE時のみ)
  1827. #define TC_SINGLEBYTE    1        // 1バイト文字(ASCII+拡張ASCII)
  1828.                                 // 日本語は使えない
  1829.                                 // (!TEXTCHAR_UNICODE時のみ)
  1830. #define TC_UNICODE        2        // UNICODE(all 2bytes)
  1831.                                 // UNICODEで定義された16bitで表現できる文字が
  1832.                                 // 使用可能
  1833.                                 // (TEXTCHAR_UNICODE時のみ)
  1834. #define TC_EUC            3        // EUC    //XZ0.1 990528 
  1835.  
  1836. #if TB_EUC
  1837.     #define iseuc(c)        (c & 0x80)    // cがEUCの1バイト目かどうか返す
  1838.     #define tbiskanji(c)    iseuc(c)    // 半角カナの場合もTRUE
  1839.     #define tbisideo(c)    (iseuc(c) && c != CHAR_EUC_KANA)    // 半角カナは除く
  1840.     #define h_tbiskanji(c)    iseuc(c)
  1841.     #define h_tbiskanji2(c)    iseuc(c)
  1842.     #define tbkanjisize(p)    eucGetCharSize(p)
  1843.     #define txchIsJspace(ch)    (ch == 0xA1A1)    //XZ0.1 990613 new
  1844. #else
  1845.     #define tbiskanji(c)    iskanji(c)
  1846.     #define tbisideo(c)        iskanji(c)
  1847.     #define h_tbiskanji(c)    h_iskanji(c)
  1848.     #define h_tbiskanji2(c)    h_iskanji2(c)
  1849.     #define tbkanjisize(p)    2
  1850.     #define txchIsJspace(ch)    (ch == 0x8140)    //XZ0.1 990613 new
  1851. #endif
  1852.  
  1853. #if UNIX
  1854.     #define CHAR_CMDLINESW        '-'
  1855.     #define CHAR_TXE_CMDLINESW    '='
  1856.     #define CHAR_PATH_SEPA        '/'        //WZ4.00Bj 990814 
  1857. #else
  1858.     #define CHAR_CMDLINESW        '/'
  1859.     #define CHAR_TXE_CMDLINESW    '-'
  1860.     #define CHAR_PATH_SEPA        '\\'    //WZ4.00Bj 990814 
  1861. #endif
  1862.  
  1863. #if TEXTCHAR_UNICODE
  1864.     typedef unsigned short TEXTCHAR;    // textbuff char set is UNICODE
  1865.     #define TEXTSTR(quote)            L##quote
  1866.     #define textvsprintf            vsprintf_W
  1867.     #define textsprintf                sprintf_W
  1868.     #define textstrlen                wstrlen
  1869.     #define textstrcpy                wstrcpy
  1870.     #define textstrcpylen            wstrcpylen
  1871.     #define textstricmp                wstricmp
  1872.     #define textcchof                wcchof
  1873.     #define textsprintf                sprintf_W
  1874.     #define textatol                watol
  1875.     #define textstrchr                wstrchr
  1876.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,(n)*2)
  1877.     #define textstrnicmp(s1,s2,n)    wstrnicmp(s1,s2,n)
  1878.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,(n)*2)
  1879.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,(n)*2)
  1880.     #define textmemmove(s1,s2,n)    memmove(s1,s2,(n)*2)
  1881.     #define textitoa(n,s,r)            itow(n,s,r)
  1882.     #define textstrcpylenmax        wstrcpylenmax
  1883. #else
  1884.     typedef unsigned char TEXTCHAR;        // textbuff char set is ShiftJIS(ANSI)
  1885.     #define TEXTSTR(quote)            quote
  1886.     #define textvsprintf            vsprintf_A
  1887.     #define textsprintf                sprintf_A
  1888.     #define textstrlen                strlen
  1889.     #define textstrcpy                strcpy
  1890.     #define textstrcpylen            strcpylen
  1891.     #define textstricmp                stricmp
  1892.     #define textcchof                cchof
  1893.     #define textsprintf                sprintf_A
  1894.     #define textatol                atol
  1895.     #define textstrchr                strchr
  1896.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,n)
  1897.     #define textstrnicmp(s1,s2,n)    strnicmp(s1,s2,n)
  1898.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,n)
  1899.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,n)
  1900.     #define textmemmove(s1,s2,n)    memmove(s1,s2,n)
  1901.     #define textmemchr(s,c,n)        memchr(s,c,n)
  1902.     #define textitoa(n,s,r)            itoa(n,s,r)
  1903.     #define textstrcpylenmax        strcpylenmax
  1904. #endif
  1905.  
  1906. //##TXF定義
  1907. // 詳しくは"txf.txt"を参照。
  1908. // TXF_PARA_xxx : 段落先頭のみに存在。段落属性を表す。
  1909. // 971106 start
  1910.  
  1911. #define CHAR_TXF            0x1F    // TXF_xxxが続く
  1912.                                     // この後にタグ名、アトリビュートが続く。
  1913.                                     // タグにはバイナリデータは使わない。0x00や0x0Dなどが入ると混乱するため。
  1914. #define CHAR_TXFEND            0x1E    // タグの終わり
  1915. #define CHAR_ATRDELI        0x1D    // 一つのアトリビュートの終わり
  1916. //// CHAR_TXF,CHAR_TXFEND,CHAR_ATRDELIのコードはまだ確定していない
  1917. //// ESCシーケンスなどとの整合性を調べる
  1918. //// 問題が少なそうなコードとして0x08(BS),0x0B(VT),0x18(CAN)も候補
  1919. // CHAR_TXFの直後に置く
  1920. #define CHAR_TXFTAG_END        '/'        // 閉タグ
  1921. #define CHAR_TXFTAG_CHAR    '*'        // 文字タグ
  1922. #define CHAR_TXFTAG_PARA    '#'        // 段落タグ
  1923.                                     // CHAR_TXFTAG_SINGLEが続くと、改行操作で次行に引き継がない
  1924. #define CHAR_TXFTAG_SINGLE    '!'        // 単独タグ
  1925. // 文字数
  1926. #define CCHTAG                30        // タグ名の最大文字数+1
  1927. #define CCHTXFTAG            500        // アトリビュートも含めて最大文字数+1
  1928.  
  1929. // タグが閉じているか調べる時のコンテキスト
  1930. typedef struct tagTAGNEST {
  1931.     BYTE lchTag;
  1932.     TEXTCHAR szTag[CCHTAG];    // タグ名 アトリビュートは除く
  1933.     TEXTCHAR* pTag;            //WCE1.01 980308 タグアドレス
  1934.     TEXTCHAR* szAtr;        // malloced
  1935.                             // for tagnestNext
  1936.     SIGNED_BYTE nNest;        // 現在のネストレベル
  1937.     FBOOL fParaTag;            // 段落タグ?
  1938.     DWORD lParam;            // ユーザデータ
  1939.     FBOOL fPreTagIsTop;        // (ユーザデータ)直前のタグが開タグだった?
  1940.     FBOOL fClearTag;        // タグのクリア?
  1941.                             //WCE1.01 980308 for for tagnestNext
  1942.     int nTag;                // 現在までのタグ数
  1943.     struct tagTAGNEST* prev;
  1944.     struct tagTAGNEST* next;
  1945. } TAGNEST;
  1946.  
  1947. // タグ解析コンテキスト
  1948. typedef struct {
  1949.     BYTE lchTag;
  1950.     TEXTCHAR szTag[CCHTAG];
  1951.     BOOL fSingle;        // 単独タグか?
  1952.     BOOL fPara;            // 段落タグか?
  1953.     BOOL fParaSingle;    // 段落単独タグか?
  1954.     BOOL fEnd;            // 閉タグか?
  1955.     BOOL fChar;            // 文字タグか?
  1956.     BOOL fUser;            // ユーザ定義タグか?
  1957. } TAGANA;
  1958.  
  1959. // for "TD" atr analyze
  1960. typedef struct {
  1961.     int width;
  1962.     BOOL fWidthAuto;
  1963.     int lineTop;    // default:CELLLINE_LINE
  1964.     int lineLeft;    // default:CELLLINE_LINE
  1965.     int lineBottom;    // default:CELLLINE_NULL
  1966.     int align;        // default:CELLALIGN_LEFT
  1967.     int xbase;        // default:0
  1968. } CELLATR;
  1969. // atr align
  1970. #define CELLALIGN_LEFT        0    // 左揃え
  1971. #define CELLALIGN_CENTER    1    // 中央揃え
  1972. #define CELLALIGN_RIGHT        2    // 右揃え
  1973. // atr line
  1974. #define CELLLINE_NULL        0    // 線なし
  1975. #define CELLLINE_LINE        1    // 実線
  1976. #define CELLLINE_BOLD        2    // 太線
  1977. #define CELLLINE_CONNECT    3    // 連結
  1978.  
  1979. // for "IMG" atr analyze
  1980. typedef struct {
  1981.     wchar wszfilename[CCHPATHNAME];
  1982.     int modeDisp    ;        // 表示モード
  1983.         #define IMGDISP_WYSIWYG        0    // (default)画面上のサイズと同じサイズで印刷
  1984.         #define IMGDISP_TEXTRATE    1    // テキストの横幅に対するパーセンテージで印刷
  1985.         #define IMGDISP_RATE        2    // 図のサイズをパーセンテージで拡大/縮小して印刷
  1986.     int rate;                // (default=100)パーセンテージ
  1987.     BBOOL fAbsolutePath;    //WZ3.90I 981106 絶対パス?
  1988. #ifdef WINVER
  1989.     BITMAPFILEHEADER* dib;    // (default=NULL)埋め込みの場合はそのDIBデータ(malloced)
  1990. #else
  1991.     LPVOID dib;
  1992. #endif
  1993. } IMGATR;
  1994.  
  1995. // for "BEAM" atr analyze
  1996. typedef struct {
  1997.     int lx;                // lx
  1998.     BOOL fSpace;        // 余白数を指定する
  1999.     int nSpace;            // fSpaceの場合、このBEAMで空ける余白数
  2000. } BEAMATR;
  2001.  
  2002. // 図
  2003. #ifndef __TXC__
  2004. typedef struct tagIMGSET {
  2005.     wchar wszfilename[CCHPATHNAME];
  2006.     FBOOL fHeadAlloced;
  2007.     #if !UNIX
  2008.     BITMAPFILEHEADER* head;
  2009.     BITMAPINFOHEADER* info;
  2010.     BITMAPINFO* bitmapinfo;
  2011.     #endif
  2012.     LPBYTE bitmap;
  2013.     struct tagIMGSET* prev;    // for Cache link
  2014.     struct tagIMGSET* next;    // for Cache link
  2015. } IMGSET;
  2016.  
  2017. BOOL imgCreateDIB(IMGSET* img,int cx,int cy,int bits);
  2018. BOOL imgSave(IMGSET* img,BOOL fCreateAlways);
  2019. void imgFreeContents(IMGSET* img);
  2020. #endif
  2021.  
  2022. // リンクヒストリ
  2023. typedef struct {
  2024.     #define MAX_LINKHIST    100
  2025.     IFILE tAdr[MAX_LINKHIST];
  2026.     int n;
  2027.     int index;
  2028. } LINKHIST;
  2029.  
  2030. //##paraatr/見出し
  2031. //WCE1.01 980205 new    //WZ4.00Bl 990920 全面変更。
  2032. // この情報はキャッシュ的に用いること。必ずあると仮定して依存してはいけない。
  2033.  
  2034. typedef struct {
  2035.     IFILE paratop1;    // 段落先頭ifile+1(0:無効)
  2036. // 段落内のBEAMタブ桁情報(PARAATR_TEXT_BEAMTABは廃止してこれに統合した)
  2037.     WORD* tlxTab;
  2038.     int allocTab;    // アロケートした要素数
  2039. // 数KBを越える長い段落の折り返し計算キャッシュ(GplCache)
  2040.     IBUFF* tibuff;
  2041.     UINT paraoff;    // 現在tibuffに格納されている中で最大のparatopからのoffsetを保持
  2042.     int nCache;        // 現在の要素数
  2043.     int allocCache;    // アロケートした要素数
  2044. } PARAATREX;    //WZ4.00Bl 990918 new
  2045.  
  2046. enum {
  2047.     CPARA_NORMAL=1,
  2048.     CPARA_DIVMUL,CPARA_MULDIV,
  2049.     CPARA_IF_0,CPARA_IF_1,CPARA_IF_A,CPARA_ELSE,CPARA_ENDIF,
  2050.     CPARA_USER1_TOP,CPARA_USER1_END,
  2051.     CPARA_USER2_TOP,CPARA_USER2_END,
  2052. };
  2053.  
  2054. #if !WINDOWSCE
  2055. #pragma pack(push,1)    //WZ4.00Bl 990918 メモリ節約
  2056. #endif
  2057. typedef struct {
  2058.     PARAATREX* pex;            // 拡張情報                //WZ4.00Bl 990918 
  2059.     IFILE len;                // 段落の長さ(0:不明)    //WZ4.00Bl 990920 
  2060.     WORD fEdited:1;            // 編集が加えられた?
  2061.     WORD nline:6;            // この段落の表示行数(0:不明,PARA_NLINE_BIG:多すぎるのでカウントを中止した for 長大段落)
  2062.         #define PARA_NLINE_BIG    63
  2063.     WORD cpara:4;            // この段落の色分け属性(広範囲色分け用)(0:不明)
  2064.     WORD fCparaElif:1;        // "elif"の段落か?
  2065. } PARAATR;
  2066. #if !WINDOWSCE
  2067. #pragma pack(pop)
  2068. #endif
  2069.  
  2070. #define MAX_NEST_CPARA    10
  2071.  
  2072. typedef struct {
  2073.     PARAATR* buff;            // PARAATR buff
  2074.     NPARA cur0;                // gap start
  2075.     NPARA cur;                // gap end + 1
  2076.     NPARA size;                // buff size
  2077.     WORD fPsbOK:1;            // EOFまで数え終わり、数え直す必要はない?
  2078.     WORD fPsbSetNlineall:1;    // PSBによってtext->nlineAllがセットされた?
  2079.     WORD fPsbCountedAll:1;    // すべての段落をカウントし終えた?
  2080.     WORD fPsbOnProc:1;        // 計算処理中?
  2081.     WORD fNoSetGplCashe:2;    // 一時的にGplキャッシュに追加しない?
  2082.     NPARA nparaTopLast;        // paratop1を保持している最終段落
  2083.     NPARA nparaCparaLast;    // tCparaCond/nestCparaキャッシュを保持しているnpara
  2084.     BYTE tCparaCond[MAX_NEST_CPARA];
  2085.         #define CPARA_1        0x01    // 条件TRUE?
  2086.         #define CPARA_A        0x02    // #elseで反転しない?
  2087.     BYTE nestCpara;            // 
  2088. } PARAATR_CONTEXT;
  2089.  
  2090. #define HEADLINE_N        6        // 見出し数
  2091. #define CCHHEADLINE    CCHWORD        // 見出しの最大長さ    //WZ4.00Bj 990824 CCHSWORDから拡大 for 正規表現
  2092.  
  2093. typedef struct {
  2094.     mchar sz[CCHHEADLINE];
  2095.     BYTE lch;                    // 見出し文字列の長さ(無効な場合もあるので注意)
  2096.     BBOOL fDelete;
  2097.     BBOOL fCfunc;                // C関数定義を見出しとする?
  2098.     struct tagRE_CONTEXT* re;    // 正規表現見出しの場合は、!=NULL
  2099. } HEADLINE;
  2100.  
  2101. typedef struct {
  2102.     HEADLINE t[HEADLINE_N];
  2103. } HEADLINE_SET;
  2104.  
  2105. void cszToHeadline(mchar* csz,HEADLINE_SET* head);
  2106. mchar* cszFromHeadlineAlloc(HEADLINE_SET* head);
  2107.  
  2108. //##TX用ウィンドウメッセージ
  2109. // ユーザが間違えてWM_TXUSER以下を使った場合でも影響が出にくい様に800-900番台を使用
  2110.  
  2111. // 700-719:イベント・フック
  2112. #define WM_TXEVENT                (WM_USER+700)    //    id            arg        WZ3.90I 981024 
  2113.     // textから自分自身(text->hwndtext)へのイベント通知
  2114.     #define TXEVENT_INPUT        1    // IMEを介さないキーボードからの入力。arg:挿入される文字列
  2115.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  2116.     #define TXEVENT_INPUTIME    2    // IMEからの入力。arg:挿入される文字列
  2117.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  2118.     #define TXEVENT_OPEN        3    // (fFrameのみ)オープンされた
  2119.     #define TXEVENT_OPENED        4    // (fFrameのみ)オープン後
  2120.     #define TXEVENT_SAVE        5    // (fFrameのみ)保存前。arg:ファイル名
  2121.     #define TXEVENT_SAVED        6    // (fFrameのみ)保存後。arg:ファイル名
  2122.     #define TXEVENT_CLOSE        7    // (fFrameのみ)閉じる前
  2123.     #define TXEVENT_IDMEXEC        10    // IDMの実行前。arg:idm
  2124.                                     // txSetHookWndproctextResultを使って1を返すとIDMの処理を行わない
  2125.     #define TXEVENT_2STROKE        11    // 2ストロークの実行前
  2126.                                     // txSetHookWndproctextResultを使って1を返すと2ストロークの処理を行わない
  2127.     #define TXEVENT_JUMPLINK    12    // リンク先へジャンプ
  2128.                                     // arg:リンク先
  2129.     #define TXEVENT_JUMPURL        13    // URL/E-Mailへジャンプ
  2130.                                     // arg:ジャンプ先
  2131.     #define TXEVENT_CURSORMOVE    14    //WZ4.00Aa 990109 new
  2132.                                     // ユーザ操作でカーソル位置が変化した可能性がある
  2133.     #define TXEVENT_IDMEXECED    15    // IDMの実行後。arg:idm。    //WZ4.00Ab 990112 new
  2134. // 720-739: TXE用。アプリケーションで、アプリケーションに送られたキーのキャプチャーetc用
  2135. #define WM_TX_KEYDOWN            (WM_USER+720)    //    vk            hwnd
  2136.                                                 // キーをキャプチャーするかどうか返す
  2137. #define WM_TX_SYSKEYDOWN        (WM_USER+721)    //    vk            hwnd
  2138.                                                 // キーをキャプチャーするかどうか返す
  2139. #define WM_TX_LBUTTONDBLCLK        (WM_USER+722)    //    vk            hwnd
  2140.                                                 // キーをキャプチャーするかどうか返す
  2141. #define WM_TX_CHAR                (WM_USER+723)    //    vk            hwnd
  2142.                                                 // キーをキャプチャーするかどうか返す
  2143.                                                 //PWZ2BETA0.3A 980526 new
  2144. // 740-759: ダイアログウィンドウプロシジャ専用。wndprocText/Baseには無関係
  2145. #define WM_TXDIALOG_WRITEITEM    (WM_USER+740)    //    id            0
  2146. #define WM_TXDIALOG_PAGECHANGED    (WM_USER+741)    //    iPage        0
  2147. #define WM_TXDIALOG_WIZNEXT        (WM_USER+742)    //    iPage        0
  2148.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  2149. #define WM_TXDIALOG_WIZBACK        (WM_USER+743)    //    iPage        0
  2150.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  2151. #define WM_TXDIALOG_NOTIFY        (WM_USER+744)    //    id            arg
  2152.     #define TXDLGN_REFERED        100    // dialogControlIDによる参照が行われた。arg = idd。
  2153.     #define TXDLGN_PSN_APPLY    101    // プロパティシートでOKされた。arg = iPage    返り値(OKできないなら-1)を返すこと    //WZ4.00Ab 990119 new
  2154. // 800-829: WZ内部用
  2155. #define WM_TXIDLEEXEC            (WM_USER+800)    //    id            lParam
  2156.                                                 // アイドル時に実行する内部動作 for wndprocBase
  2157.                                                 // IDLE_XXX
  2158.     #define IDLE_FIRST            100    // wndprocBase
  2159.     #define IDLE_REG            101    // wndprocBase
  2160.     #define IDLE_EXECFIND        102    // wndprocText
  2161.     #define IDLE_FLUSHWINDOW    103    // wndprocBase
  2162.     #define IDLE_CHECKFILETIME    104    // wndprocBase    //WZ4.00A 981227 
  2163.     #define IDLE_EXECREPLACESA    105    // wndprocBase    //WZ4.00Bl 990916 
  2164. #define WM_TXDRAGDROP            (WM_USER+801)    //    TXDD_xxx    arg
  2165.                                                 //WZ3.90I 981103 for D&D
  2166.     #define TXDD_START        1    // 開始
  2167.     #define TXDD_DROP        2    // ドロップ            arg = TXDD_DROP_ARG*
  2168.         typedef struct {
  2169.             HGLOBAL hGlobal;
  2170.             TX* text;            // !=NULLならtextのデータを挿入
  2171.         } TXDD_DROP_ARG;
  2172.     #define TXDD_DRAGOVER    3    // ドロップ先指定中    arg = MAKELONG(x,y)
  2173.     #define TXDD_SETDISP    4    // txSetDispする
  2174.     #define TXDD_ACTIVATE    5    // SetForegroundWindowする
  2175. #define WM_TXEMACS_TXCMD        (WM_USER+802)    //WZ4.00A 981230 new
  2176. #define WM_TXHTML_TXCMDPOST        (WM_USER+803)    //WZ4.00A 981230 new emacsライクキー定義でHTML編集ができるようにした。両者でWM_TXUSERを使っていてバッティングしていた。
  2177. #define WM_WKLBUTTON3            (WM_USER+804)    //WZ4.00Bl 990909 
  2178. #define WM_WKLBUTTON4            (WM_USER+805)    //WZ4.00Bl 990909 
  2179. // 830-849: WZ MAIL EDITOR専用
  2180. #define WM_MAILEDITN_CLOSE        (WM_USER+830)    //    id            fEnglish
  2181.                                                 //WZ3.90G 980902 fEnglish:英文
  2182. #define WM_MAILEDITN_SAVE        (WM_USER+831)    //    id            ヘッダ部分のサイズ
  2183. // 850-899: wndprocBase専用。他インスタンスのWZ窓の操作用/PostMessage用
  2184. #define WM_TXGETEDIT            (WM_USER+850)    //    0            0
  2185. #define WM_TXUISAVE                (WM_USER+851)    //    0            0
  2186. #define WM_TXQUIT                (WM_USER+852)    //    0            0
  2187. #define WM_TXSETACTIVE            (WM_USER+853)
  2188. #define WM_TXSETWINDOWLIST        (WM_USER+854)    //    hctrl        TXSWL_LPARAM
  2189.     enum {TXSWL_HISTMENU,TXSWL_WINDOWLIST,TXSWL_PRJ};
  2190.     typedef struct {
  2191.         UINT id:8;            // 0オリジン、番号指定
  2192.         UINT mode:2;        // モード
  2193.         UINT iMenuPos:8;    // InsertMenuに渡す挿入場所
  2194.         UINT fCur:1;        // この項目はカレント?
  2195.     } TXSWL_LPARAM;
  2196. #define WM_TXKEYMACROCONTINUE    (WM_USER+855)    //    0            0
  2197. #define WM_TXNEXTPARA            (WM_USER+856)    //    0            0
  2198. #define WM_TXSETUNDISP            (WM_USER+857)    //    fSetUndisp
  2199. #define WM_TXJUMPADDRESS        (WM_USER+858)    //    0            address
  2200. #define WM_TXJUMPFILEEND        (WM_USER+859)    //    void        void
  2201.                                                 //WZ3.90I 981023 new
  2202. #define WM_TXSPLITPARA            (WM_USER+860)    //    void        void
  2203.                                                 //WZ3.90I 981023 new
  2204.                                                 // カーソル位置の前文字が改行でなければ改良を挿入。
  2205. #define WM_TXCLOSEEVERY            (WM_USER+861)    //    fForce        0        WCE0.99
  2206. #define WM_TXQUERYCLOSE            (WM_USER+862)    //    0            0    // フックを可能にすることも兼ねている
  2207. #define WM_TXWNDSETPOSSIZE        (WM_USER+863)    //    x,y            cx,cy    //WZ4.00A 981227 
  2208. // 900-949: WM_TERM_xxx,WM_MAIL_xxx
  2209. // 950-990: WM_OUTLINE_xxx
  2210. #define SBLISTN_FLUSHLIST        (WM_USER+996)
  2211. #define SBLISTN_FLUSHCONTENT    (WM_USER+997)
  2212. #define SBLISTN_SET                (WM_USER+998)
  2213. #define SBLISTN_ADD                (WM_USER+999)
  2214. // 1000: for user macro
  2215. #define WM_TXUSER                (WM_USER+1000)    // これ以下、user用
  2216.  
  2217. //##WM_NOTIFY/WM_TIMER/WM_COPYDATA/IDM
  2218. // text->hwndtextから親ウィンドウへの通知
  2219. //WZ3.90I 981026 WM_TXNOTIFYを廃止し、WM_NOTIFYによる通知に変更。
  2220.  
  2221. //WM_NOTIFY
  2222. #if defined(WINVER) || UNIX    // NMHDRが定義されている場合のみ
  2223. typedef struct {
  2224.     NMHDR hdr;    // hdrが先頭
  2225. } TXNOTIFY;
  2226. #endif
  2227. #define TXN_CHANGENPARA        1    // ユーザ操作でy座標が変化した
  2228. #define TXN_CHANGEX            2    // ユーザ操作でx座標が変化した(未完成)
  2229. #define TXN_IDMEXECPRE        3    //WCE1.01 980421 idmExec前か、文字挿入前
  2230. #define TXN_IDMEXECPOST        4    //WCE1.01 980421 idmExec後か、文字挿入後
  2231. // filelist
  2232. #define TXN_FILELIST_CHANGEFOLDER    101    // フォルダが変化した
  2233. #define TXN_FILELIST_CHANGESELECT    102    // 選択内容が変化した
  2234.  
  2235. //WM_TIMER id
  2236. #define WM_TIMER_TXSCROLLMOUSE    900
  2237. #define WM_TIMER_TXAUTOSAVE        901
  2238. #define WM_TIMER_TXFLUSHTABLE    902                //WCE1.01 971222 
  2239. #define WM_TIMER_TXFLUSHDISPBOX    903                //WCE1.01 980209 
  2240. #define WM_TIMER_TXBRINKCURSOR    904                //WCE1.01 980409 
  2241. #define WM_TIMER_TXDRAGCHECK    905                //WZ3.90G 980827 new
  2242. #define WM_TIMER_TXCLICKACTIVE    906                //WZ3.90I 981104 
  2243. #define WM_TIMER_TXFLUSHDETAIL    907                //WZ3.90I 981106 
  2244. #define WM_TIMER_TXAUTOSCROLL    908                //WZ3.90J 981110 
  2245. #define WM_TIMER_TXFLUSHBEAMTAB    909                //WZ3.90L 981115 
  2246. #define WM_TIMER_HISTSAVE        910                //WZ4.00Bj 990808 for PWZ
  2247. #define WM_TIMER_SCROLLBARPROP    911                //WZ4.00Bl 990920 for プロポーショナルスクロールバー
  2248. #define WM_TIMER_TXUSER            1000            // これ以下、user用
  2249.  
  2250. //WM_COPYDATA id
  2251. // ユーザが間違えてWM_COPYDATA_TXUSER以下を使った場合でも影響が出にくい様に900番台を使用
  2252. #define WM_COPYDATA_CMPFILENAME        901        // CD_BOOL    //WZ4.00Bp 991014 仕様変更
  2253.     typedef struct {
  2254.         wchar wszfilename[CCHPATHNAME];
  2255.         wchar wszShort[CCHPATHNAME];    // 短い名前がある場合は、その名前。
  2256.     } CMPFILENAMEARG;    //WZ4.00Bp 991014 new
  2257. #define WM_COPYDATA_CMDLINE            902        // 
  2258. #define WM_COPYDATA_CMPBUFF            903        //WCE1.01 980202 
  2259.                                             // マッチしたバイト数+1を返す
  2260. #define WM_COPYDATA_ACCOUNT            904        // ACCOUNT受け渡し
  2261. #define WM_COPYDATA_INSERT            905        // 挿入する    //WZ3.90I 981023 
  2262. //#define WM_COPYDATA_CMPFILEID        906        //WZ4.00Bj 990825 new    //WZ4.00Bp 991014 廃止
  2263. #define WM_COPYDATA_GETFILENAME        907        //WZ4.00Bl 990908 new
  2264. #define WM_COPYDATA_FORK            908        //WZ4.00Bl 990914 new
  2265. #define WM_COPYDATA_TXUSER            1000    // これ以下、user用
  2266. // WM_COPYDATAは返り値0は返しちゃいけないみたいなので...
  2267. #define CD_TRUE        2
  2268. #define CD_FALSE    1
  2269.  
  2270. //IDM(id menu)
  2271. #define IDM_TXUSER                1000        // これ以下、30000までuser用
  2272.  
  2273. //##検索
  2274.  
  2275. typedef DWORD SEARCHMODE;        //1.92 検索モード
  2276.  
  2277. #define SEARCH_FORWARD            0x00000000L    // テキスト末尾方向へ検索(デフォルト)
  2278. #define SEARCH_PREV                0x00000001L    // テキスト先頭方向へ検索
  2279. #define SEARCH_AREA                0x00000002L    // 範囲内のみ検索する
  2280. #define SEARCH_NOESC            0x00000004L    // 検索文字列中の'\'の特別な意味を消して検索
  2281. #define SEARCH_CUR                0x00000008L    // カーソル位置の文字から検索
  2282.                                             // 以前は、置換時、前方検索時は
  2283.                                             // 無効でしたが、1.99Aから
  2284.                                             // 有効になりました。
  2285. #define SEARCH_SELECT            0x00000010L    // 見つけた文字列を選択する(置換時は無効)
  2286. #define SEARCH_ALL                0x00000020L    // テキスト全体で検索(置換時のみ)
  2287. #define SEARCH_PARATOP            0x00000040L    //1.00H2 論理行頭のみ検索
  2288. #define SEARCH_NOSENSECASE        0x00000080L    // 大文字・小文字を区別しない
  2289. #define SEARCH_NOSENSEZENHAN    0x00000100L    // 全角/半角文字を区別しない
  2290. #define SEARCH_WORD                0x00000200L    // ワードサーチ
  2291. #define SEARCH_RE                0x00000400L    // 正規表現による検索(text->modeReで動作が変わる)
  2292.                                             // 正規表現による検索では、SEARCH_NOESC,
  2293.                                             // SEARCH_NOSYMBOL,SEARCH_WORD,SEARCH_NOSENSEZENHANの指定は無効
  2294.                                             // SEARCH_NOSENSECASEはOK
  2295. #define REPLACE_CONFIRM            0x00000800L    // 置換確認を行う(置換時のみ)
  2296. #define REPLACE_ONCE            0x00001000L    //1.96 最初の1つだけ置換
  2297. #define SEARCH_NOSYMBOL            0x00002000L    //2.98 970309 テキストの改行や空白や記号を無視して検索
  2298. #define SEARCH_NOSELECT            0x00004000L    // 検索で見つけた文字列の選択を行わない
  2299. #define SEARCH_ALLTEXT            0x00008000L    //1.01A オープン中の全てのテキストを対象として検索
  2300.                                             // (検索するtextが裏テキストの場合は無効)(内部用)
  2301. #define SEARCH_PARA1            0x00010000L    //PWZ2BETA0.5 980617 現在の段落内のみ検索する
  2302.                                             // TXHIGH時には対応しない
  2303. #define SEARCH_REWZ                0x00020400L    //WZ3.90H 980908 正規表現による検索。必ずWZ標準で検索
  2304. #define SEARCH_REVWXW            0x00040400L    //WZ3.90H 980908 正規表現による検索。必ずVWXW互換で検索
  2305. #define SEARCH_REVWXWEX            0x00080400L    //WZ3.90H 980908 正規表現による検索。必ず拡張VWXW互換で検索
  2306. /*    //WZ3.90H 980908 廃止。SEARCHMODEは32bitしかないので、関係ないものは割り当てない
  2307. #define GREP_BACKUP                0x01000000L    //2.92 バックアップファイル内も検索(WZ Grepのみ)
  2308. #define REPLACE_CONFIRMMODAL    0x02000000L    //2.92 REPLACE_CONFIRMをモーダルで実行
  2309. #define SEARCH_NEXTTEXT            0x04000000L    //2.00B WZ.EXE内部用
  2310. #define SEARCH_OLDDIALOG        0x08000000L    // search.c
  2311. #define SEARCH_REPLACE            0x10000000L    // search.c
  2312. #define SEARCH_DIALOGCOMPACT    0x20000000L    //2.97 970225 search.c
  2313. #define GREP_DIRECTORY            0x20000000L    // サブディレクトリ内も検索(WZ Grepのみ)
  2314. #define SEARCH_DIALOGSLIST        0x40000000L    //2.97 970225 search.c
  2315. #define GREP_BINARY                0x40000000L    // バイナリファイル内も検索(WZ Grepのみ)
  2316. */
  2317.  
  2318. // 正規表現用追加検索モード
  2319. typedef DWORD SEARCHRE;
  2320. #define SEARCHRE_NOTOPPARA        0x00000001L    // メモリブロックの先頭は段落先頭でない
  2321. #define SEARCHRE_NOTOPWORD        0x00000002L    // メモリブロックの先頭は単語先頭でない
  2322. #define SEARCHRE_NOENDPARA        0x00000004L    // メモリブロックの末尾は段落末尾でない
  2323. #define SEARCHRE_NOENDWORD        0x00000008L    // メモリブロックの末尾は単語末尾でない
  2324. #define SEARCHRE_VWXW            0x00000010L    // VWXWとできるだけ互換性を持つモード
  2325. #define SEARCHRE_VWXWEX            0x00000020L    // VWXWの拡張表現を使用。SEARCHRE_VWXWのときだけ指定すること。
  2326. #define SEARCHRE_BINARY            0x00000040L    // バイナリ検索
  2327. #define SEARCHRE_TXF            0x00000080L    // CHAR_TXFを特別扱い?
  2328.  
  2329. typedef struct {
  2330.     BOOL fWord;
  2331.     BOOL fSenseCase;
  2332.     BOOL fSearchNoSymbol;
  2333.     BOOL fFuzzy;
  2334.     BOOL fPrev;
  2335.     BOOL fAll;
  2336.     BOOL fArea;
  2337.     BOOL fReplaceConfirm;
  2338.     BOOL fRe;        //WZ3.90G 980905 
  2339.     BOOL fNoEsc;    //WZ4.00Bl 990908 
  2340.     BOOL fAllText;    //WZ4.00Bl 990916 
  2341. // 以下、SEARCHMODEに関係ない
  2342.     BOOL fSearchSet;
  2343.     BOOL fOpenTempWindow;    //WZ3.90H 980914 
  2344.     BOOL fReplace;            //WZ3.90H 980914 
  2345.     int mode;                //WZ3.90J 981112 基本/曖昧/単語/正規
  2346.         #define SEARCHOPT_DIALOG_NEW    1
  2347.     TX* text;
  2348. } SEARCHOPT;
  2349.  
  2350. typedef struct {
  2351.     mchar szfind[CCHWORD];
  2352.     mchar szreplace[CCHWORD];
  2353.     SEARCHMODE searchmode;
  2354. } SEARCH_PACKET;        //WZ3.90H 980910 new
  2355.  
  2356. typedef struct {
  2357.     TX* text;
  2358.     TX* textExpandTag;            //WZ3.90L 981123 NULL以外ならfExpandTag時にこちらに展開する。
  2359.     int cbFind;
  2360.     int nReplace;
  2361.     SEARCHMODE searchmode;        //WZ3.90H 980907 
  2362.     mchar* szreplace0;            //WZ3.90H 980907 オリジナルのszreplace
  2363.     mchar szreplace[CCHTXSTR];    //WZ3.90H 980907 置換文字列の'\'対応
  2364.                                 //WZ3.90L 981123 CCHWORD->CCHTXSTRに拡大
  2365.     int lchReplace;
  2366.     BOOL fExistTag;                //WZ3.90H 980907 正規表現置換でタグ指定がある?
  2367.         #define RETAG_EXIST        0x01
  2368.         #define RETAG_FIND        0x02    // $+
  2369.         #define RETAG_FINDPREV    0x04    // $`
  2370.         #define RETAG_FINDNEXT    0x08    // $'
  2371.     IFILE cliptop;                //WZ3.90H 980908 for 範囲内の確認置換
  2372.                                 //WZ3.90H 980908 範囲内の置換で確認がONだと1回しか置換されなかった
  2373. } TXSEARCH_CONTEXT;    //WZ3.90L 981123 検索置換実行時コンテキスト
  2374. BOOL rcReplaceInit(TXSEARCH_CONTEXT* rc,BOOL fExpandTag);
  2375.  
  2376. //##KEY
  2377.  
  2378. #define CCHKEY                20    // キーボードのキー表記を文字列で表した時の最大長
  2379. #define TXVK_MAX_2STROKE    10    // 2ストロークキーMAX
  2380.  
  2381. typedef int WZKEY;
  2382. typedef WORD WZCMD;
  2383.  
  2384. #define TXVK_NULL        0x00    // NULL
  2385. #define TXVK_ASCIITOP    0x01    // ASCII(0x40)
  2386. #define TXVK_ASCIIBASEEND 0x20    // ASCII(0x5F)
  2387. #define TXVK_ASCIIEND    0x26    // ASCII(0x5F) + 6
  2388.                                 //WZ3.90I 981103 +6 : '-'など、他のキーも使えるようにした。
  2389. #define TXVK_NUMTOP        0x27    // 数字先頭'0'
  2390. #define TXVK_NUMEND        0x30    // 数字末尾'9'
  2391. #define TXVK_CONTROLTOP    0x31    // コントロールコード先頭
  2392. #define TXVK_NEXT        0x31
  2393. #define TXVK_PRIOR        0x32
  2394. #define TXVK_INSERT        0x33
  2395. #define TXVK_DELETE        0x34
  2396. #define TXVK_UP            0x35
  2397. #define TXVK_LEFT        0x36
  2398. #define TXVK_RIGHT        0x37
  2399. #define TXVK_DOWN        0x38
  2400. #define TXVK_HOME        0x39
  2401. #define TXVK_END        0x3A
  2402. #define TXVK_ESCAPE        0x3B
  2403. #define TXVK_TAB        0x3C
  2404. #define TXVK_BACK        0x3D
  2405. #define TXVK_RETURN        0x3E
  2406. #define TXVK_SPACE        0x3F
  2407. #define TXVK_MOUSEL        0x40
  2408. #define TXVK_MOUSEL2    0x41
  2409. #define TXVK_MOUSEL3    0x42
  2410. #define TXVK_MOUSEL4    0x43
  2411. #define TXVK_MOUSER        0x44
  2412. #define TXVK_F1            0x45
  2413. #define TXVK_F15        (TXVK_F1 + 15 - 1)
  2414. #define TXVK_CONTROLEND    TXVK_F15// コントロールコードこれまで
  2415. #define TXVK_SIZE        (TXVK_CONTROLEND + 1)
  2416. #define TXVK_ADD_SHIFT                (TXVK_SIZE * 1)
  2417. #define TXVK_ADD_CONTROL            (TXVK_SIZE * 2)
  2418. #define TXVK_ADD_SHIFTCONTROL        (TXVK_SIZE * 3)
  2419. #define TXVK_ADD_MENU                (TXVK_SIZE * 4)
  2420. #define TXVK_ADD_SHIFTMENU            (TXVK_SIZE * 5)
  2421. #define TXVK_ADD_CONTROLMENU        (TXVK_SIZE * 6)
  2422. #define TXVK_ADD_SHIFTCONTROLMENU    (TXVK_SIZE * 7)
  2423. #define TXVK_ADD_2STROKE(i)            (TXVK_SIZE * 8 + (TXVK_NUMEND + 1) * (i))
  2424.  
  2425. typedef struct {
  2426.     FBOOL fInUse;            // 使用中
  2427.     mchar szPre[CCHKEY];
  2428.     int lchPre;
  2429. } PREKEY;
  2430.  
  2431. enum {
  2432.     FKEY_NORMAL=0,FKEY_SHIFT,FKEY_CTRL,FKEY_SHIFTCTRL,FKEY_N,
  2433. };
  2434. #define FKEY_SIZE        13    // 登録できる文字数+1
  2435. #define FKEY_NKEY        12    // 最大キー数
  2436.  
  2437. typedef struct {
  2438. // 2ストロークキー
  2439.     int nPre;    // 使用中の数
  2440.     PREKEY tPre[TXVK_MAX_2STROKE];
  2441. // キーに割り当てられたコマンド
  2442.     WZCMD tWzcmd[TXVK_ADD_2STROKE(TXVK_MAX_2STROKE)];
  2443. #if !WINDOWSCE
  2444. // ファンクションキー表示内容    //WZ3.90I 981107 
  2445. //WZ4.00Bl 990909 ファンクションキー表示バッファが足りなかったので拡大。
  2446.     #define CCH_CSZFKEY    (FKEY_NKEY*(FKEY_SIZE+3))    //WZ4.00Bl 990909 
  2447.     mchar tcszFkey[FKEY_N][CCH_CSZFKEY];    // タブ区切りcsz
  2448. #endif
  2449. } KEY;
  2450.  
  2451. typedef struct {
  2452.     BYTE lch;
  2453.     mchar *sz;
  2454.     WORD idm;
  2455. } SZCMDTOWZCMD;
  2456. extern SZCMDTOWZCMD _tSzcmdToWzcmd[];
  2457.  
  2458. //##コマンドライン解析
  2459.  
  2460. typedef struct tagWZMAILEDITORFLAGS {
  2461.     DWORD modeMailAddress:2;    //WCE1.01 980409 アドレス帳モード
  2462.         #define MODEMAILADDRESS_EMAIL    0
  2463.         #define MODEMAILADDRESS_NIFTY    1
  2464.     DWORD category:3;            //PWZ2BETA0.3 980522 種類
  2465.         #define MAILEDIT_MAIL        0    // メール
  2466.         #define MAILEDIT_MESSAGE    1    // メッセージ
  2467.         #define MAILEDIT_NOTE        2    // WZ NOTE
  2468.     DWORD categoryMailbox:3;    //PWZ2BETA0.3 980522 
  2469.                                 // MAILBOX_INTERNET etc
  2470.     DWORD charset:3;            //WZ3.90M 981129 旧fEnglish
  2471.     DWORD fSendButton:1;        //WZ4.00Bj 990812 「送信」ボタンを付ける?
  2472.     DWORD fDispToCc:1;            //WZ4.00Bo 991011 ToとCcを表示?
  2473.     DWORD reserved:19;            //WZ4.00Bj 990812 合計が32bitになってなかったので修正
  2474. } WZMAILEDITORFLAGS;    //PWZ2BETA0.3 980510 
  2475. typedef struct {
  2476.     BOOL fNeedCreateInstance;    // このコマンドラインの実行には、
  2477.                                 // 新しいインスタンスを生成する必要がある
  2478.     wchar wszfilename[CCHPATHNAME];    // 編集ファイル名
  2479.                                 // 複数指定の場合は、先頭に指定されたファイル名
  2480.                                 // 後続のファイル名は無視される
  2481.     wchar wszMacro[CCHWORD];    // オープン後、このマクロを実行
  2482.     wchar wszExt[CCHNAME];        // この拡張子をデフォルトで付ける
  2483.     wchar wszMacroFork[CCHPATHNAME];
  2484.                                 // WZ Editorではなく、Filerなど
  2485.                                 // PWZ apを起動
  2486.     mchar szFind[CCHWORD];        // 検索文字列
  2487.     mchar szcfg[CCHSTYLENAME];    //WZ3.90J 981112 使用する設定名
  2488. #if WZFUNC_PRINT
  2489.     mchar szlpstyle[CCHLPSTYLE];//WZ4.00Bj 990830 印刷スタイル名
  2490. #endif
  2491.     int nCmdShow;                // nCmdShow
  2492.     WORD fViewer:1;                // viewモードで起動
  2493.     WORD fMulti:1;                // 複数のファイル名が指定されている
  2494.     WORD fSingleFileName:1;        // コマンドラインに空白を含むファイル名をそのまま指定
  2495.                                 // このオプション指定は、ファイル名の指定の前に行なうこと
  2496.     WORD fNoCheckDuplicate:1;    // 多重化でもなく、二重化でもなく、
  2497.                                 // ファイルを複数窓でオープンする
  2498.     WORD fNoAddHist:1;            // 起動時にファイル名をヒストリに追加しない
  2499.     WORD fNoTextPathSearch:1;    // テキストファイルのパス検索をしない
  2500.     WORD fNoProfile:1;            // txOpenTextでプロファイルを参照しない
  2501.     WORD fNoProfileJump:1;        // txOpenTextでプロファイルによるジャンプをしない?    //WZ4.00Bl 990922 
  2502.     WORD fClipPaste:1;            //PWZ2BETA0.3 980512 起動後にペーストする
  2503.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  2504.     WORD fReload:1;                //PWZ2BETA0.4 980607 既に起動されているときは、再読み込みする
  2505.     WORD fTags:1;                //PWZ2BETA0.4 980612 タグファイルとして開く
  2506.     WORD fOpenMulti:1;            //WZ3.90H 980915 もし既にオープンされていたら多重化する。
  2507.     WORD fKcOpenAuto:1;            //WZ4.00Bl 990915 漢字コードを自動判別?
  2508.     WORD fKcOpen:1;                //WZ3.90H 980927 kcOpenの漢字コードで開く
  2509.     WORD kcOpen:3;                //WZ3.90H 980927 
  2510.     WORD fPrjOpen:1;            //WZ3.90I 981030 プロジェクトを開く?
  2511.     WORD fSetWindowPos:1;        //WZ3.90I 981030 ウィンドウ位置を指定?
  2512.     WORD fDuptext:1;            //WZ3.90I 981103 2重化?
  2513.     WORD fOpenQuit:1;            //WZ3.90I 981103 ファイルオープンダイアログを出して終了
  2514.     WORD fJumpAddress:1;        //WZ3.90L 981123 adrJumpにジャンプ?
  2515.     WORD fIDM_UINEW:1;            //WZ3.90N 981202 IDM_UINEWする?
  2516.     WORD fNeedCreateWindow:1;    //WZ4.00Ab 990204 このコマンドラインの実行には新しいウィンドウを作成する必要がある
  2517.                                 // 空テキスト上からの実行の場合でも、空テキストはそのままで、新しいウィンドウを作成する必要がある
  2518.     WORD fLpPrint:1;            //WZ4.00Bj 990830 印刷する?ダイアログを表示
  2519.     WORD fLpPrintExec:1;        //WZ4.00Bj 990830 印刷する?直ちに実行。
  2520.     HWND ehHwnd;                // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  2521.     HWND ehHwndBase;            // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  2522.     BYTE ehTarget;                //WZ3.90I 981031 ehTarget
  2523.     NPARA nparaJump;            // ジャンプ先(0:指定なし)
  2524.     int offset1Jump;            // ジャンプ先のバイトオフセット+1(0:指定なし)
  2525.     int fJumpLy;                // 't':lyを0に
  2526.                                 // 'c':lyを中央に
  2527.                                 // n:lyをn-1に
  2528.     IFILE adrJump;                //WZ3.90L 981123 ジャンプ先アドレス
  2529.     FBOOL fUiReg;                // レジストリメンテ?
  2530.     WORD igene1;                //WCE1.01 980201 (gene1 - 1)の世代を開く
  2531.     HWND hwndMailer;            //WCE1.01 980327 メーラのhwnd
  2532.     WORD idMail;                //WCE1.01 980327 このメールのID
  2533.     BYTE modeMail;                //WCE1.01 980327 モード
  2534.     WZMAILEDITORFLAGS mailflags;//PWZ2BETA0.3 980522 
  2535.     RECT rect;                    //WZ3.90I 981030 ウィンドウ位置(fSetWindowPos時に有効)
  2536. } CMDLINECONTEXT;
  2537.  
  2538. BOOL cmdlineAnalyzeW(CMDLINECONTEXT* cc,wchar* szcmdline,int nCmdShow);
  2539. void cmdlineDeleteOneFilenameW(wchar* szcmdline);
  2540. void SendMessageCmdline(HWND hwnd,wchar* wszcmdline);
  2541.  
  2542. typedef struct {
  2543.     HWND hwnd;                //  fAlreadyOpen : 既にオープンされていたテキストのhwndbase
  2544.                             // !fAlreadyOpen : オープンしたテキストのhwndbase
  2545.     TX* text;                // オープンしたtext(同一プロセスWZの場合)
  2546.                             // fAlreadyOpenで、同一プロセスWZなら、
  2547.                             // 既にオープンされているtext
  2548.     FBOOL fAlreadyOpen;        // 既にオープンされていた
  2549.                             //WZ4.00Bl 990916 スペルミス修正fAlrearyOpen->fAlreadyOpen
  2550.     FBOOL fWzexec;            // WZを起動した
  2551.     BYTE reserved[32];
  2552. } TXFORKRESULT;
  2553.  
  2554. //##印刷/FONTSET
  2555.  
  2556. // 標準の文字の高さ
  2557. #if WINDOWSCE
  2558.     #if WINDOWSCE2
  2559.         #define lfHeightDefault            10
  2560.         #define lfHeightDialogDefault    10
  2561.     #else
  2562.         #define lfHeightDefault            8
  2563.         #define lfHeightDialogDefault    8
  2564.     #endif
  2565. #else
  2566.         #define lfHeightDefault            12
  2567.         #define lfHeightDialogDefault    9
  2568. #endif
  2569.  
  2570. #define CXY_LPREVIEW_FRAMEBASE        4
  2571.  
  2572. // ユーザフォントセット定義    //WZ4.00Bl 990920 new
  2573. #define USERFONTSET_N    3    //WZ4.00Bl 990919 ユーザ定義できる数。
  2574. typedef struct {
  2575.     mchar lfFaceName[LF_FACESIZE];
  2576.     mchar lfFaceName2[LF_FACESIZE];
  2577.     mchar szHeight2[5];    // lfFaceName2のサイズ
  2578.                         // 0:標準、+n,-n:増減、n%:比率指定
  2579.     BBOOL fFont2_5C;    // 文字コード5C(\)にhfont2を用いる?        //WZ4.00Bl 990920 
  2580.     BYTE reserved[40];    // 拡張用
  2581. } USERFONTSET;
  2582.  
  2583. typedef struct tagFONTSET {
  2584. BYTE configTop;
  2585. // ユーザ指定 - LOGFONTに影響する部分、CACHEのタグとして使用
  2586.     mchar lfFaceName[LF_FACESIZE];
  2587.     int lfHeight;
  2588.     FBOOL lfItalic;        // イタリック?
  2589.     FBOOL lfUnderline;    // アンダーライン?
  2590.     FBOOL lfStrikeOut;    // 打ち消し線?
  2591.     WORD lfWeight;        //WCE1.01 980302 太字も使える様に
  2592.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  2593. // ユーザ指定 - LOGFONTに影響しない部分、CACHEのタグとしては使用しない
  2594.     FBOOL lfEuro;        // SJIS中の欧文処理をする?
  2595.     WORD lfSup;            // 上付き表示する?
  2596.                         // しない場合は0
  2597.                         // する場合は基準フォントのcyAscent
  2598. BYTE configEnd;
  2599. // 内部情報
  2600.     HFONT hfont;
  2601.     HFONT hfont2;        // フォント2(半角英字表示に用いる)(通常はなし)    //WZ4.00Bl 990919 
  2602.     int cxChar;            // 文字幅
  2603.     int cyChar;            // 文字の高さ
  2604.     int cyAscent;        // 文字のベースラインより下の部分の高さ
  2605.     int cyDescent;        // 文字のベースラインより下の部分の高さ
  2606.     int tcyAscent[2];    // hfont2がある場合、hfont,hfont2それぞれのAscent    //WZ4.00Bl 990920 
  2607.     int tcyDescent[2];    // hfont2がある場合、hfont,hfont2それぞれのDescent    //WZ4.00Bl 990920 
  2608.     int cxCharKanji;    // 漢字の文字幅(fKanji時のみ)
  2609.     int lfHeightIme;    // IMEに渡す用    //WZ4.00Bn 991005 
  2610.     FBOOL fProp;        // プロポーショナルフォント?
  2611.                         // 漢字は固定ピッチとして扱う
  2612.                         // ひらがな、カタカナをプロポーショナルとする
  2613.     FBOOL fKanji;        // TRUE:漢字を含むフォント(ShiftJIS)、FALSE:漢字を含まないフォント(文字コード0-255まで)
  2614.     CBOOL fLock;        //WZ3.90O 981203 キャッシュアウトされないようにロックされている?
  2615.     FBOOL fFont2_5C;    // 文字コード5C(\)にhfont2を用いる?        //WZ4.00Bl 990920 
  2616.     WORD* tcxChar;        // fPropの場合、文字幅の配列
  2617.     struct tagFONTSET* prev;    // for Cache link
  2618.     struct tagFONTSET* next;    // for Cache link
  2619. } FONTSET;
  2620.  
  2621. enum {FRAME_NONE,FRAME_LINE,FRAME_DOUBLELINE};
  2622. typedef struct {
  2623.     mchar lfFaceName[LF_FACESIZE];
  2624.     int lfHeight;        // フォントの高さ(perHeight != 0ならperHeightに従う)
  2625.     WORD perHeight;        // !=0なら、フォント高さを本文フォント基準の%で指定
  2626.     FBOOL lfItalic;        // イタリック?
  2627.     FBOOL lfUnderline;    // アンダーライン?
  2628.     WORD lfWeight;        // 太字
  2629.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  2630.     BYTE modeAlign;        // 配置
  2631.                         // (ALIGN_NONE,ALIGN_LEFT,ALIGN_CENTER,ALIGN_RIGHT)
  2632.     WORD perNline;        // 行どり(%)
  2633.     COLORREF rgbColor;    // 文字の色
  2634.     BYTE modeFrameLeft;    // 枠線のなし/あり
  2635.     BYTE modeFrameTop;
  2636.     BYTE modeFrameRight;
  2637.     BYTE modeFrameBottom;
  2638.         #define pointToDpt(pt)    (pt * 10)
  2639.     WORD dptFrameLeft;    // 枠線の太さ(0.1ポイント単位)
  2640.     WORD dptFrameTop;
  2641.     WORD dptFrameRight;
  2642.     WORD dptFrameBottom;
  2643.     BYTE perFrameAmi;    // 枠線の網掛け(%)
  2644. } HEADLINESTYLE;    // 見出しスタイル
  2645.  
  2646. typedef struct {
  2647. BYTE configTop;
  2648. // 以下、ユーザ設定
  2649. // configEndまでバイナリ出力
  2650. // dm:プリンタオプション
  2651. // twips:1/1440inch = 0.01764mm  (最大32767twipsまでであることに注意)
  2652. // mcm:0.1mm
  2653. //     設定値はmcmで持つ。twipsで持って、ダイアログ設定時にmcmに変換すると
  2654. //     割り算の誤差によってダイアログで何も変更しないでOKしても設定値が変わった。
  2655. // lpx:プリンタピクセル座標
  2656.     // プリンタ
  2657.     SIGNED_WORD dmPaperSize;        // 用紙サイズ
  2658.     SIGNED_WORD dmOrientation;        // 用紙の向き
  2659.     SIGNED_WORD dmScale;            // スケーリング(100=等倍)(未完成)
  2660.     SIGNED_WORD dmScaleFont;        // フォント(本文と見出し)と図のスケーリング(100=等倍)
  2661.     SIGNED_WORD dmDefaultSource;    // 用紙供給元
  2662.     SIGNED_WORD dmTTOption;            // TrueTypeフォントの印刷方法
  2663.     SIGNED_WORD dmPrintQuality;        // 印字品質(マイナス値の場合もある)
  2664.     BBOOL fPrinterName;                // プリンタ名を指定するか
  2665.     mchar szPrinterName[CCHWORD];    // プリンタ名
  2666.     // 余白
  2667.     SIGNED_WORD mcmMarginTop;        // 上余白
  2668.     SIGNED_WORD mcmMarginLeft;        // 左余白
  2669.     SIGNED_WORD mcmMarginBottom;    // 下余白
  2670.     SIGNED_WORD mcmMarginRight;        // 右余白
  2671.     SIGNED_WORD mcmPaperWidth;        // 用紙サイズ
  2672.     SIGNED_WORD mcmPaperHeight;        // 用紙サイズ
  2673.     SIGNED_WORD mcmCharInt;            // 字間(未完成)
  2674.     SIGNED_WORD mcmLineInt;            // 行間
  2675.     SIGNED_WORD mcmClmInt;            // 段組間の空白
  2676.     BBOOL fMarginSymmetry;            // 左右ページでマージンを対称に
  2677.     BBOOL fLineInt;                    // 行間を指定?
  2678.     // 文字数・行数
  2679.     BYTE modeLcxLcy;                // 文字数・行数の指定方法
  2680.         #define MODELCXLCY_TEXT        0    // 文書の設定を使用
  2681.         #define MODELCXLCY_SPECIFY    1    // 指定
  2682.         #define MODELCXLCY_PAPER    2    // 用紙サイズから自動計算
  2683.     SIGNED_WORD lcx;                // 文字数
  2684.     SIGNED_WORD lcy;                // 行数
  2685.     SIGNED_WORD nClm;                // 段組数
  2686.     BYTE modeVertical;                // 縦書き/横書き    //WZ3.90O 981204 
  2687.     // ヘッダ・フッタ
  2688.     SIGNED_WORD mcmMarginHeader;    // ヘッダ上余白
  2689.     SIGNED_WORD mcmMarginFooter;    // フッタ下余白
  2690.     BBOOL fHeader;                    // ヘッダを印刷
  2691.     BBOOL fFooter;                    // フッタを印刷
  2692.     BBOOL fSpecifyHeader2;            // 偶数ページのヘッダ/フッタを指定する?
  2693.     BBOOL fHeaderSymmetry;            // 左右ページでヘッダフッタを対称に
  2694.     mchar szHeader[CCHWORD];        // ヘッダ文字列
  2695.     mchar szFooter[CCHWORD];        // フッタ文字列
  2696.     mchar szHeader2[CCHWORD];        // 偶数ページのヘッダ文字列
  2697.     mchar szFooter2[CCHWORD];        // 偶数ページのフッタ文字列
  2698.     mchar lfHeaderFaceName[LF_FACESIZE];// ヘッダのフォント名
  2699.     SIGNED_BYTE lfHeaderHeight;            // ヘッダのフォントサイズ
  2700.     // フォント
  2701.     BBOOL fUsePrintFontstyle;        // TRUE        本文、見出しをLPRINTのフォントで印刷
  2702.                                     // FALSE    文書の設定のフォントで印刷
  2703.     mchar lfFaceName[LF_FACESIZE];    // フォント名
  2704.     SIGNED_BYTE lfHeight;            // フォントサイズ
  2705.     // その他
  2706.     BBOOL fDispLineNo;                // 行番号を印刷?
  2707.     BBOOL f2pages;                    // 袋とじ?
  2708.     mchar szTemplateHeader[CCHWORD];// レターヘッダ用テンプレート
  2709.     mchar szTemplateFooter[CCHWORD];// レターフッタ用テンプレート
  2710.     BBOOL fColor;                    //WZ3.90H 980926 カラー印刷を行う?
  2711.     BYTE charatr;                    //WZ4.00Bo 991012 文字装飾(太字,下線,斜体)の印刷を行う?
  2712.         // Bold   mask:0x01(COLORING_BOLD)
  2713.         // Under  mask:0x02(COLORING_UNDER)
  2714.         // Italic mask:0x08(COLORING_ITALIC)
  2715.     // スタイル
  2716.     BBOOL fUseHeadlineStyle;        //WZ3.90I 981103 見出しのスタイルを使うか?
  2717.     HEADLINESTYLE tHeadlineStyle[HEADLINE_N];    //WZ3.90I 981030 見出しのスタイル
  2718. BYTE configEnd;
  2719. // 以下、内部情報。設定ファイルには出力しない
  2720.     mchar szstyle[CCHWORD];    // スタイル名
  2721.     TX* text;
  2722.     HANDLE hDevNames;        // デバイス名
  2723.     HANDLE hDevMode;        // デバイスモード
  2724.     int cbDevMode;            // sizeof DEVMODE
  2725.     CBOOL fHoldDev;            //WZ3.90O 981203 txLpFlushPreviewでhDevNames,hDevModeを保持?
  2726.     mchar szPrinterNameDefault[CCHWORD];//WZ3.90P 981206 現在の通常のプリンタ名
  2727.                                     // 空ならWindowsから通常のプリンタ名を取得
  2728.                                     // 空でなければ印刷ダイアログで選ばれたプリンタ名。
  2729.                                     // これをszPrinterNameよりも優先して使用し、印刷ダイアログでのプリンタの切り替えをサポート。
  2730.     // 各種サイズ
  2731.     SIGNED_DWORD logPixelsX;        // 1インチあたりのデバイスピクセル数 X
  2732.     SIGNED_DWORD logPixelsY;        // 1インチあたりのデバイスピクセル数 Y
  2733.     SIGNED_WORD lpxMarginTop;        // 上余白
  2734.     SIGNED_WORD lpxMarginLeft;        // 左余白
  2735.     SIGNED_WORD lpxMarginBottom;    // 下余白
  2736.     SIGNED_WORD lpxMarginRight;        // 右余白
  2737.     SIGNED_WORD lpxMarginLeftAdd;    // 縦書き & 袋とじ印刷用
  2738.     SIGNED_WORD lpxMarginHeader;    // ヘッダ上余白
  2739.     SIGNED_WORD lpxMarginFooter;    // ヘッダ下余白
  2740.     SIGNED_WORD lpxPaperWidth;        // 用紙幅(用紙の向きdmOrientationの影響は受けない)
  2741.     SIGNED_WORD lpxPaperHeight;        // 用紙サイズ(用紙の向きdmOrientationの影響は受けない)
  2742.     SIGNED_WORD lpxLineInt;            // 行間
  2743.     SIGNED_WORD lpxCharInt;            // 字間(未完成)
  2744.     SIGNED_WORD lpxClmInt;            // 段組間の空白
  2745.     SIGNED_WORD lpcxClm;            // 1段の幅
  2746.     SIGNED_WORD lpcxClient;            // 紙のサイズ(左右マージンの分も含む)
  2747.                                     // 用紙の向きが縦なら、lpxPaperWidthと同じ
  2748.                                     // 用紙の向きが横なら、lpxPaperHeightと同じ
  2749.     SIGNED_WORD lpcyClient;            // 紙のサイズ(上下マージンの分も含む)
  2750.                                     // 用紙の向きが縦なら、lpxPaperHeightと同じ
  2751.                                     // 用紙の向きが横なら、lpxPaperWidthと同じ
  2752.     // 印刷可能域
  2753.     SIGNED_WORD mcmMarginMinTop;    // 印刷マージンの最小値
  2754.     SIGNED_WORD mcmMarginMinLeft;
  2755.     SIGNED_WORD mcmMarginMinBottom;
  2756.     SIGNED_WORD mcmMarginMinRight;
  2757.     SIGNED_WORD lpxOffsetX;            //WZ3.90H 980926 
  2758.     SIGNED_WORD lpxOffsetY;            //WZ3.90H 980926 
  2759.     SIGNED_WORD lpxMarginMinRight;    //WZ3.90I 981014 for 縦書き
  2760.     // HDC
  2761.     HDC hdc;                // プリンタデバイスコンテキスト
  2762.     HDC hic;                // プリンタ情報コンテキスト
  2763.     int fGetHdc;            // GetHdcカウンタ
  2764.     int fGetHic;            // GetHicカウンタ
  2765.     BBOOL fNoPrinter;        //WZ3.90N 981130 プリンタがない。この場合hdc,hicは画面のDCになる
  2766.     // 印刷中ワーク
  2767.     int fPrint;                // 印刷モードフラグカウンタ
  2768.     NPARA npara;            // 印刷モードに入ったときのnpara
  2769.     IFILE ich;                // ich
  2770.     int ly;                    // ly
  2771.     SIGNED_WORD xbase;        // xbase
  2772.     WORD nSpaceTop;            // 
  2773.     WORD cySpace;            // 
  2774.     IFILE adr0;
  2775.     NPAGE npageStart;        // 印刷開始ページ
  2776.     NPAGE npageEnd;            // 印刷終了ページ
  2777.     NPAGE npageAll;            // 全ページ
  2778.     FILETIME time;            // 印刷開始時間
  2779.     BBOOL flpPreview;
  2780.     IFILE lpAdr0;            // 印刷プレビュー中に印刷した場合の位置保持
  2781.     FBOOL fVertical;        //WZ3.90O 981204 
  2782.     // プレビュー
  2783.     BYTE fNoViewportOrg;    // ViewportOrgを変更しない?
  2784.     int xViewportOrg;        // 原点X
  2785.     int yViewportOrg;        // 原点Y
  2786.     SIGNED_WORD cxWindow;    // hwndtextの幅
  2787.     SIGNED_WORD cyWindow;    // hwndtextの高さ
  2788.     // 設定保存しない、印刷時の設定
  2789.     BBOOL fNpagenum;        // 開始ページのページ番号を指定?
  2790.     NPAGE npagenum;            // 開始ページのページ番号
  2791.     BYTE modePrintPage;        // 0:全てのページを印刷,1:奇数ページを印刷,2:偶数ページを印刷
  2792.     BBOOL fLpSelect;        // 選択範囲を印刷?
  2793.     int nCopy;                // 部数
  2794.                             // プリンタが複数部数をサポートしている場合は1
  2795.     BBOOL fCollate;            // 部単位で印刷
  2796.                             // プリンタがサポートしている場合はFALSE
  2797.     // 範囲内の印刷
  2798.     BBOOL fLpClip;            // 範囲内の印刷モード中?
  2799.     IFILE adrClipEnd;        // 範囲の末尾アドレス
  2800.     int fClip0;
  2801.     IFILE cliptop0;
  2802.     IFILE texttopClip0;
  2803.     IFILE adrClip0;
  2804.     int lyClip0;
  2805.     NLINE nlineClip;        // 範囲先頭のnline
  2806.     NPARA nparaClip;        // 範囲先頭のnpara
  2807.     // 内部ワーク
  2808.     FBOOL fInsideSetupLcxLcyLineint;
  2809.     struct tagDIALOG* hd;
  2810.     BYTE errorLpstyle;        //WZ3.90H 980926 lpSetupLcxLcyLineintでのエラー
  2811.         #define ERROR_LPSTYLE_LCX            1
  2812.         #define ERROR_LPSTYLE_LCY            2
  2813.         #define ERROR_LPSTYLE_MARGIN_LEFT    3
  2814.         #define ERROR_LPSTYLE_MARGIN_TOP    4
  2815.         #define ERROR_LPSTYLE_MARGIN_RIGHT    5
  2816.         #define ERROR_LPSTYLE_MARGIN_BOTTOM    6
  2817.         #define ERROR_LPSTYLE_MARGIN_HEADER    7
  2818.         #define ERROR_LPSTYLE_MARGIN_FOOTER    8
  2819.         #define ERROR_LPSTYLE_LINEINT        9
  2820.         #define ERROR_LPSTYLE_NOPRINTER        10
  2821.     BYTE errorLpstyle0;        //WZ3.90H 980926 前回の表示
  2822.     CBOOL fHeadlinestylePreview;    //WZ3.90I 981030 見出しスタイルのプレビュー用?
  2823. } LPRINT;
  2824.  
  2825. //ページ
  2826. #define NPAGE_MAX    9999
  2827. typedef struct {
  2828.     IFILE ifilePagetop;        // ページ先頭のIFILE
  2829.     WORD lcy;                // ページ内の表示行数
  2830.     WORD yAdd;                //WCE1.01 980301 カラム2段目以降に付加したy
  2831.                             // 0 <= y <= yAddは1段組である
  2832.     BYTE nClm;                // このページの最大段組数
  2833. } PAGEATR;
  2834.  
  2835. // for 印刷プレビュー
  2836. // 現在ページ内の各行の情報
  2837. // 印刷プレビュー時もlyをメインに使うことにする
  2838. // 試しにyをメインで使ったら大変だった
  2839. #define LINE_N        1000    //WZ4.00Bj 990831 1頁に最大で印刷できる行数を500から1000行に拡大。588行で印刷したい方が居た。
  2840. typedef struct {
  2841.     WORD y;            // 行のy座標(nSpaceTopは含まない)
  2842.                     // 段組の場合は通しy座標。cyLineを取得するためにも使用
  2843.     BYTE iClm;        // この行の段番号(0:左端)
  2844.                     // gls_nClmとは異なる
  2845.     WORD off;        // curscreenからのオフセット
  2846.     WORD fLF:1;        // 改行の行?
  2847.     BYTE gls_iHeadline;    //WZ3.90H 980924 
  2848.     WORD gls_cyChar;    //WZ3.90H 980924 
  2849.     WORD gls_cyAscent;    //WZ3.90H 980924 
  2850.     WORD gls_cyDescent;    //WZ3.90H 980924 
  2851.     WORD gls_yFootnote;    //WZ3.90H 980924 
  2852. } LINEATR;
  2853.  
  2854. typedef struct {
  2855.     NPARA npara;
  2856.     IFILE offset;    // 段落先頭からのオフセット
  2857.     WORD size;        // 行の長さ
  2858.     LINEATR lineatr;// lineatr
  2859.     WORD cy;        // cyLine
  2860. } LINESIZE_ENTRY;    //WZ3.90H 980919 
  2861.  
  2862. typedef struct {
  2863.     NPARA nparaTop;        // lsc内の最小npara
  2864.     NPARA nparaEnd;        // lsc内の最大npara
  2865.     int n;                // エントリ数
  2866.     LINESIZE_ENTRY* lsc;
  2867. } LINESIZE_ENTRY_ROOT;    //WZ3.90H 980919 
  2868.  
  2869. //##多重化
  2870.  
  2871. #if !WINDOWSCE
  2872.  
  2873. typedef struct tagMT {
  2874.     HWND hwndbase;
  2875.     HWND hwndtext;
  2876.     HWND hwndOutline;
  2877.     HWND hwndOutlinePartition;    //WZ4.00Bj 990824 
  2878.     FBOOL fOutlineHide;
  2879.     FBOOL fOutlineSplited;
  2880.     HWND hwndCBCB;            // コマンドバーコンボボックス
  2881.     HWND hwndStatusbar;        // ステータスバー
  2882.     HWND hwndFunctionbar;    // ファンクションキー
  2883.     HWND hwndRuler;            // ルーラー
  2884.     TOOLBARCONTEXT* toolbar;
  2885.     STATUSBAR_PANE* tStatusbarPane;
  2886.     IFILE adr;
  2887.     int ly;
  2888.     WORD idMt;                // ID
  2889.     struct tagMT* prev;
  2890.     struct tagMT* next;
  2891. } MT;
  2892.  
  2893. #if 0
  2894. typedef struct {
  2895. // backup text
  2896.     TX* text;
  2897.     HWND hwndtext;
  2898.     RECT rHwndtext;
  2899.     IFILE adr;
  2900.     int ly;
  2901.     BOOL fClip;
  2902.     IFILE cliptop;
  2903.     DWORD nEdit;
  2904.     HWND hwndOutline;
  2905.     FBOOL fOutlineHide;
  2906.     FBOOL fOutlineSplited;
  2907.     BOOL fOutlineSplitWindow;
  2908. // dialog item
  2909.     HWND hwndDialog;
  2910.     BBOOL fOutline;
  2911. // work
  2912.     CBOOL fRedraw;
  2913.     FBOOL fFirst;
  2914.     SEARCHOPT* opt;
  2915. } TXMULTI_CONTEXT;
  2916. #endif
  2917.  
  2918. typedef struct {    // 前回の一時ウィンドウのコンテキスト
  2919.     IFILE adr;
  2920.     int ly;
  2921.     BBOOL fOutline;
  2922.     RECT rectTempWindow;
  2923. } TXMULTI_CONTEXT_TEMP;
  2924.  
  2925. #endif
  2926.  
  2927. //##HTML
  2928.  
  2929. typedef struct {    //WZ3.90I 981029 
  2930.     HBITMAP hbitmapBr;        // <BR>のビットマップ
  2931.     HBITMAP hbitmapP;        // <P>のビットマップ
  2932.     HBITMAP hbitmap_P;        // </P>のビットマップ
  2933.     HBITMAP hbitmapTr;        // <TR>のビットマップ
  2934.     HBITMAP hbitmap_Tr;        // </TR>のビットマップ
  2935.     HBITMAP hbitmapTd;        // <TD>のビットマップ
  2936.     HBITMAP hbitmap_Td;        // </TD>のビットマップ
  2937.     HBITMAP hbitmapInline;    // <インラインコンテナ>のビットマップ
  2938.     HBITMAP hbitmap_Inline;    // </インラインコンテナ>のビットマップ
  2939.     HBITMAP hbitmapControlblock;    // <コントロールコンテナ>のビットマップ
  2940.     HBITMAP hbitmap_Controlblock;    // </コントロールコンテナ>のビットマップ
  2941.     HBITMAP hbitmapSingle;    // <IMG,シングルエレメント>のビットマップ
  2942.     HBITMAP hbitmapItem;    // <アイテムエレメント>のビットマップ
  2943.     HBITMAP hbitmap_Item;    // </アイテムエレメント>のビットマップ
  2944.     HBITMAP hbitmapBlock;    // <ブロックコンテナ>のビットマップ
  2945.     HBITMAP hbitmap_Block;    // </ブロックコンテナ>のビットマップ
  2946.     TX* textcfgTag;            // "htmltag.cfg"の内容
  2947.     IFILE adr0;                //WZ3.90O 981203 
  2948. } HTMLATR;
  2949.  
  2950. typedef enum {
  2951.     VALIGN_NONE,VALIGN_TOP,VALIGN_CENTER,VALIGN_BOTTOM
  2952. } VALIGN;
  2953.  
  2954. //##ウィンドウプロシジャーのフック
  2955. //WZ3.90I 981026 多重フックができるようにした。これができないとマクロがつくれない。
  2956.  
  2957. typedef DWORD HOOKRESULT;
  2958. #define HOOK_CONTINUE    0
  2959. #define HOOK_CAPTURE    1
  2960. #define HOOK_ERROR        2
  2961. typedef HOOKRESULT (CALLBACK *WNDTEXTHOOKPROC)(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  2962.  
  2963. #define txSetHookWndproctextResult(text,result)    (text->resultWndtextHook = result)
  2964. #define txSetHookWndprocbaseResult(text,result)    (text->resultWndbaseHook = result)
  2965.  
  2966. typedef struct tagTXWNDHOOK {
  2967.     UINT fTxpcode:1;        // TX-PCODEからのフック
  2968.     WNDTEXTHOOKPROC lpHook;    // フックプロシジャ
  2969.     struct tagTXWNDHOOK* prev;
  2970.     struct tagTXWNDHOOK* next;
  2971. } TXWNDHOOK;
  2972.  
  2973. //##その他のサブ構造体
  2974.  
  2975. typedef struct {
  2976.     int ly;            //
  2977.     NPARA npara;    //
  2978.     IFILE address;    //
  2979.     IFILE ich;        //
  2980. } UNDISPCONTEXT;
  2981. #define UNDISPCONTEXT_N    5
  2982. // 裏テキストなど、fUndispがマイナス値の場合もある。
  2983. #define txGetUndispContextPre(text)    \
  2984.     ((1 <= text->fUndisp && text->fUndisp <= UNDISPCONTEXT_N) ? &text->tUndispContext[text->fUndisp - 1] : NULL)
  2985.  
  2986. typedef struct {
  2987.     SIGNED_BYTE fPacking;    // for クライアント動作チェック
  2988.     IFILE adrPackTop;        // pack開始時text->pundo
  2989.     WORD nPacked;            // packされたコマンド数
  2990. } UNDOPACK_CONTEXT;
  2991.  
  2992. #define TXWS_SZCLASS    L"txText"
  2993. #define TXWS_SZCLASSA    "txText"
  2994. #define TXWS_TEXT            0x0001L        // TEXT構造体をアロケートする
  2995.                                         // すなわちWZコントロールであることを示す
  2996. #define TXWS_OPENTEXT        0x0002L        // いきなりtxOpenTextする
  2997. #define TXWS_ENABLEUNDO        0x0008L        // undo可
  2998. #define TXWS_TEXTINHERIT    0x0080L        // textを丸ごと(text contextそのものを)引き継ぐ
  2999.  
  3000. #define WzBox_GetTx(hwnd)    ((LPVOID)GetWindowLong(hwnd,0))
  3001. extern WCHAR wszclassBase[];
  3002. extern WCHAR wszclassText[];
  3003. extern wchar wszclassWzicon[];
  3004. #if !WINDOWSCE
  3005. extern BOOL _fwin40;
  3006. #endif
  3007.  
  3008. typedef struct {
  3009.     //WCE 970819 
  3010.     BYTE lcxIndent;                // インデント数(0-255)
  3011.         #define LCXINDENT_MAX    255
  3012.     //WCE 970817 custmize
  3013.     int lchSymbol;                // 行頭文字のバイト数
  3014.     mchar szSymbol[CCHSWORD];    // 行頭文字
  3015.     //
  3016. BYTE articleTop;
  3017.     mchar szArticle[CCHSWORD];    // 見出し文字列
  3018.     SIGNED_WORD lchArticle;        // 0なら無効
  3019.     SIGNED_WORD cxArticle;
  3020.     WORD fArticleNum:1;            // szArticleは番号付きか?
  3021.     WORD fArticleSub:1;            // szArticleは小見出しか?
  3022.     WORD fArticleJnumber:1;        // szArticleは全角番号付きか?
  3023.     WORD fReserved:14;
  3024.     SIGNED_WORD nArticle;        // 先頭番号(0なら番号指定なし)
  3025.     SIGNED_WORD ichNum;            // szArticleの番号のオフセット
  3026.                                 // -1なら番号なし
  3027.     SIGNED_WORD lchNum;            // szArticleの番号の長さ
  3028. BYTE articleEnd;
  3029.     //WCE 970817 custmize
  3030.     SIGNED_WORD lcxSpace;        // szArticleと本文の間の余白
  3031.     // PARAATR custmize
  3032.     BYTE width;                    // 折り返し幅
  3033.     WORD modeAlign:3;            // 文字揃え
  3034.         // align(3bit)
  3035.         #define ALIGN_NONE        0    // なし
  3036.         #define ALIGN_LEFT        1    // 左揃え
  3037.         #define ALIGN_CENTER    2    // 中央寄せ
  3038.         #define ALIGN_RIGHT        3    // 右揃え
  3039.     WORD fApfScenarioSerifu:2;    //PWZ2BETA0.5 980617 せりふ段落かどうか?
  3040.                                 // 改行付きに変換中の場合は2になる
  3041. } PARAFORM_ARTICLE;
  3042.  
  3043. // size = 4bytes fixed
  3044. // 記号のうち、"、'、“”、‘’は変換しない
  3045. typedef struct {
  3046.     WORD fJkataToKana:1;    // 全角カタカナ->半角カナ
  3047.     WORD fJkanaToKana:1;    // 全角ひらがな・カタカナ->半角カナ
  3048.     WORD fJankToAnk:1;        // 全角ANK->半角ANK
  3049.     WORD fJalphabetToAnk:1;    // 全角アルファベット->半角ANK
  3050.     WORD fJnumberToAnk:1;    // 全角数字->半角ANK
  3051.     WORD fJkigouToAnk:1;    // 全角記号->半角ANK
  3052.     WORD fJspaceToAnk:1;    // 全角空白->半角ANK
  3053.     WORD fKanaToJhira:1;    // 半角カナ->全角ひらがな
  3054.     WORD fKanaToJkata:1;    // 半角カナ->全角カタカナ
  3055.     WORD fAnkToJank:1;        // 半角ANK->全角ANK
  3056.     WORD fAlphabetToJank:1;    // 半角アルファベット->全角ANK
  3057.     WORD fNumberToJank:1;    // 半角数字->全角ANK
  3058.     WORD fKigouToJank:1;    // 半角記号->全角ANK
  3059.     WORD fSpaceToJank:1;    // 半角空白->全角ANK
  3060.     WORD fJhiraToKana:1;    // 全角ひらがな->半角カナ
  3061.     WORD reserved:1;
  3062.     WORD fAc:1;                // オートコレクト
  3063.     WORD fJbraceToBrace:1;    // 「」を[]へ変換
  3064.     WORD fZenHanKanaAll:1;    // (独立フラグ)全角ひらがな・カタカナ<->半角カナですべて変換    //WZ3.90N 981130 
  3065.                             // これと一緒にfJkataToKanaなども指定してください。
  3066.     WORD reserved2:13;
  3067. } CHARCONVERT;
  3068.  
  3069. // for CHARCONVERT ui
  3070. typedef struct {
  3071.     BOOL fAutoCollect;
  3072.     BOOL fJbraceToBrace;
  3073.     int modeKata;
  3074.     int modeHira;
  3075.     int modeAlphabet;
  3076.     int modeNumber;
  3077.     int modeSpace;
  3078.     int modeKigou;
  3079. } CCCONTEXT;
  3080.  
  3081. // 段落体裁解析用
  3082. typedef struct {
  3083.     BYTE align;
  3084.     BYTE headline;
  3085.     SIGNED_BYTE indent;
  3086.     BYTE nClm;        //WZ3.90I 981106 0:標準
  3087.     DWORD anchor;    //WZ3.90L 981117 アンカー(0:なし)
  3088.     mchar szTag[CCHTXFTAG];
  3089. } CONTEXT_PARAPROPERTY;
  3090.  
  3091. #define LCX_CLMGAP        5    //WCE0.95 970923 
  3092.  
  3093. // 文字装飾解析用
  3094. typedef struct {
  3095.     BBOOL fBold;
  3096.     BBOOL fUnderline;
  3097.     BBOOL fItalic;
  3098.     BBOOL fIndex;
  3099.     BBOOL fSup;
  3100.     BBOOL fSub;
  3101.     BBOOL fDots;    //WZ3.90I 981030 
  3102.     int cxRate;
  3103.     DWORD anchor;                //WZ3.90L 981117 ジャンプ先のアンカー番号(0:なし)
  3104.     mchar szAnchor[CCHWORD];    //WZ3.90L 981117 ジャンプ先のアンカー
  3105.     FONTSET fontset;
  3106.     mchar szTag[CCHTXFTAG];
  3107. } CONTEXT_CHARPROPERTY;
  3108.  
  3109. typedef struct {
  3110.     LPBYTE pBuff;    // バッファ
  3111.                     // BYTE:cchName , mchar*:szName , WORD cchContent , LPVOID content
  3112.                     // 末尾はcchName = 0
  3113.     int sizeBuff;    // pBuffの現在のサイズ
  3114.     int sizeExpand;    // pBuffを拡大するとき、少なくともこの分のサイズで拡大
  3115. } VAR;
  3116. void varDelete(VAR* var);
  3117. VAR* varNew(int sizeInit,int sizeExpand);
  3118. BOOL varSetString(VAR* var,mchar* szName,mchar* szContent);
  3119. mchar* varReadString(VAR* var,mchar* szName,mchar* szDefault);
  3120.  
  3121. typedef struct tagTXCTEXTVAR {
  3122.     mchar szModule[CCHWORD];
  3123.     FILETIME filetime;        // for バージョンチェック
  3124.     LPBYTE pTextvar;
  3125.     struct tagTXCTEXTVAR* prev;
  3126.     struct tagTXCTEXTVAR* next;
  3127. } TXCTEXTVAR;
  3128.  
  3129. //##TEXT(テキストコンテキスト)
  3130.  
  3131. struct tagtx {
  3132. // 以下、[変更可]まで、変更してはいけません。
  3133. // テキストが破壊されるおそれがあります。
  3134.     WORD sizeStruct;
  3135.     // textbuff
  3136.     TEXTCHAR* buff;            // テキストバッファ
  3137.     wchar wszfilename[CCHPATHNAME];
  3138.                             // ファイル名(UNICODE)
  3139.                             // 新規のときは、wszfilename[0] == 0
  3140.     mchar szfilename[CCHPATHNAME];
  3141.                             //PWZ2BETA0.4 980604 new
  3142.                             // ファイル名(SJIS)
  3143.                             // 新規のときは、szfilename[0] == 0
  3144.                             // szfilenameはマクロ用。
  3145.                             // wszfilenameがマスターである。
  3146.     IBUFF sizebuff;            // テキストバッファの現在のサイズ
  3147.     // new textbuff pointer
  3148.     IFILE curgap;            // gapの先頭
  3149.     IBUFF curpara;            // カレント段落の先頭 & gapの末尾+1
  3150.     // textbuff pointer
  3151.     IBUFF cur;                // カーソル位置のテキストバッファオフセット
  3152.                             // text2の先頭
  3153.     IBUFF cur0;                // curの直前.cur0とcurの間にgapがある.
  3154.                             // gapの先頭
  3155.     IBUFF cury;                // カーソル表示行の先頭
  3156.                             // text1にある
  3157.     IBUFF curysize;            // 表示行のサイズ
  3158.     IBUFF curscreen;        // 画面先頭のテキストバッファオフセット
  3159.                             // text1にある
  3160.                             //1.00F IBUFF_ERRORのときは内容無効
  3161.     IBUFF ibuff;            //WZ3.90J 981110 任意使用可
  3162.     // view mode
  3163.     FBOOL fEditViewMode;    // 現在、view mode ?
  3164.                             // fSemiViewModeも見てください。
  3165.                             // あるいはtxGetViewmodeで調べるのが良いです。
  3166.     FBOOL fSemiViewMode;    // セミViewMode
  3167.     // textfile
  3168.     HANDLE hf;                // ファイルハンドル
  3169.     IFILE sizefileReal;        // ファイルサイズ(txatrを含む実際のサイズ)
  3170.     IFILE sizefile;            // ファイルサイズ(テキストデータの分のみ)
  3171.     IFILE sizeload;            // ファイルから読み込んだバイト数
  3172.     BBOOL fOpen;            // Openされている?
  3173.     BBOOL fQuit;            //PWZ2BETA0.3 980510 txQuit中?
  3174.     BBOOL fReadAll;            // ファイルを読み終えた
  3175.     BBOOL fAddEof;            // textbuffにEOFを追加した?
  3176.                             // ファイル末尾がEOFの場合はFALSE。
  3177.                             // ファイル末尾がEOFでなければTRUE。
  3178.     FILETIME timeFile;        // ファイルの日付
  3179.     FILETIME timeFile0;        //1.97 前回チェックしたときのファイルのタイムスタンプ
  3180.     BYTE crOpen;            // オープン時の改行コードの形式
  3181.         #define RETURNCODE_CRLF    0    //1.95 'D'から変更
  3182.         #define RETURNCODE_CR    1    //1.95 'M'から変更
  3183.         #define RETURNCODE_LF    2    //1.95 'U'から変更
  3184.         #define RETURNCODE_UNKNOWN    98    //WZ4.00Bl 990913 不明(internal)
  3185.         #define RETURNCODE_THROUGH    99    //XZ0.1 990614 そのまま(internal)
  3186.     BYTE crSave;            // 保存するときの改行コード
  3187.     BYTE kcOpen;            //1.95 オープン時のファイルの文字コード
  3188.         #define KC_SJIS            0
  3189.         #define KC_JIS            1
  3190.         #define KC_EUC            2
  3191.         #define KC_UNICODE        3
  3192.         #define KC_UNICODEBETA    4    // ヘッダなしのUNICODEファイル
  3193.         #if TB_EUC
  3194.             #define KC_DEFAULT    KC_EUC    //XZ0.1 990530 new
  3195.         #else
  3196.             #define KC_DEFAULT    KC_SJIS    //XZ0.1 990530 new
  3197.         #endif
  3198.         // 内部コード
  3199.         #define KC_INTERNAL_TOP    100
  3200.         #define KC_EUC_SJIS        100    // EUC or SJIS
  3201.         #define KC_ASCII        101    // no kanji
  3202.         #define kcIsUnicode(kc)    (kc == KC_UNICODEBETA || kc == KC_UNICODE)
  3203.     BYTE kcSave;            //1.95 保存するときの文字コード
  3204.     // textbox capture
  3205.     HWND ehHwnd;            // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  3206.     HWND ehHwndBase;        // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  3207.     WORD fEhHwndUndisp:2;    // ehHwndをUndisp中?
  3208.     BYTE ehTarget;            // キャプチャ対象のアプリケーション
  3209.         #define EHTARGET_VC4        10    // VC++ 4.2/VC++ 5.0(テキストの取得の対応。書出しはできない)
  3210.         #define EHTARGET_MSMAIL4    11    // Outlook Express 4.71(IE4.0付属)
  3211.     // WZ MAIL EDITOR
  3212.     struct tagMAILEDIT* mailedit;    //WCE1.01 980327 WZ MAIL EDITOR ?
  3213.                             // 真なら、RFC822のヘッダも付いていることになる。
  3214.     // 行編集の取消
  3215.     TEXTCHAR* buffUndopara;    // 行バッファ
  3216.     IBUFF sizebuffUndopara;    // バッファサイズ
  3217.     IBUFF lchUndopara;        // バッファ内の文字数
  3218.     BBOOL fUndoparaEffect;    //WCE1.01 980124 バッファに有効なデータがある?
  3219.     CBOOL fUndoparaing;        // Undopara中。再入防止フラグ
  3220.     CBOOL fNoUndoparaPrepare;//2.98 970307 txUndoparaPrepareしない?
  3221.     // instance information
  3222.     HANDLE hInstance;        // インスタンスハンドル
  3223.     HANDLE hInstanceParent;    //2.90 親モジュールのインスタンスハンドル
  3224.     wchar* wszCmdLine;        // コマンドライン(malloced)
  3225.     // window
  3226.     HWND hwndbase;            // ベースウィンドウ(with menubar)のハンドル
  3227.                             // text->fFrameのtextのみセットされる。
  3228.                             // WZ Controlや裏テキストではNULL
  3229.     HWND hwndtext;            // テキストウィンドウのハンドル
  3230.                             // 裏テキストではNULL
  3231.     HWND hwndCB;            // コマンドバー
  3232.     HWND hwndCBCB;            // コマンドバーコンボボックス
  3233.     HWND hwndStatusbar;        // ステータスバー
  3234.                             // MYSTATUSBARでコモンコントロール/独自になる。
  3235.     HWND hwndRuler;            // ルーラー
  3236. #if !WINDOWSCE
  3237.     TOOLBARCONTEXT* toolbar;//WZ3.90E 980806 ツールバー(コモンコントロール)
  3238.     RECT rectWindowClosed;    // DestroyWindow(text->hwndbase)したときの位置
  3239.     HWND hwndFunctionbar;    //WZ3.90I 981107 ファンクションキー
  3240. #endif
  3241.     STATUSBAR_PANE* tStatusbarPane;
  3242.     int cxClient;            // hwndTextのサイズ(ピクセル単位)
  3243.                             // 印刷時は右マージンの分を除く紙のサイズ(lpx)
  3244.     int cyClient;            // hwndTextのサイズ(ピクセル単位)
  3245.                             // 印刷時は下マージンの分を除く紙のサイズ(lpx)
  3246.     int cxBase;                // テキスト表示開始位置
  3247.     int cxCaretNow;            // 現在画面に表示しているキャレットの幅
  3248.     int cyCaretNow;            // 現在画面に表示しているキャレットの高さ
  3249.     int nOpenDC;
  3250.     int xCaret;                //WCE1.01 980409 
  3251.     // display/printer
  3252.     int cxWidth;            //1.00F テキストの横幅(ディスプレイドット座標)
  3253.     int cxWidthWhole;        //2.96 970206 テキストの横幅(ディスプレイ座標)
  3254.                             // 1段組の場合はcxWidthと同じ。
  3255.                             // n段組の場合は、1段目の左端からn段目の右端までの幅
  3256.     int lx;                    // カーソルX座標 (文字座標)
  3257.                             // lfProp時は、近似値(text->x / text->cxChar)
  3258.     int lx0;                // 縦移動時に使用
  3259.     int x;                    // カーソルX座標 (ドット座標)
  3260.     int x0;                    // 縦移動時に使用
  3261.     int xAlign;                //WCE1.01 971116 センタリング、右寄せ
  3262.     int cxCursor;            //WCE1.01 980223 カーソルの幅
  3263.     FBOOL fNoAddAlign;        //WCE1.01 971117 offsetFromCx,cxFromOffsetでxAlignを加えない?
  3264.     int xbase;                // basex
  3265.     int cxCharMax;            // 1文字の最大幅
  3266.     int ly;                    // カーソルy座標
  3267.     int lyUnder;            // アンダーラインy座標(非表示中は-1)
  3268.     int lyAtMinimized;        // 最小化したときのly    //WZ3.90M 981128 
  3269.     int hideUnder;            // fListboxのフォーカス表示がHideされているか?
  3270.     int lcySmupper;            // 現在のスクロールマージンTopY
  3271.     int lcySmlower;            // 現在のスクロールマージンTailY
  3272.     FBOOL fAddSmlower;        //WCE0.92 970918 最下行に半端行を表示している?
  3273.     int lcywindow;            // 表示行数(syTop,syTailの分も含む)
  3274.                             // 印刷プレビュー、印刷時は動的に変化します
  3275.                             // 0になることはない。必ず1以上になる
  3276.                             // 行の内容が全て表示できる分の値に設定されます。
  3277.                             // 但し、1に設定されている時は必ずしもこの通りではありません
  3278.                             // 必ずLINE_Nより5程度少なくなる
  3279.     int lcywindowClm;        //WCE0.95 970923 1段の表示行数
  3280.     int xCell;                //WCE1.01 971221 for fTxf 表
  3281.     int xCellSepa;            //WCE1.01 971221 for fTxf 表
  3282.     int lxCell;                //WCE1.01 971221 for fTxf 表
  3283.     int lcxCell;            //WCE1.01 971221 for fTxf 表
  3284.     BYTE CelllineTop;        //WCE1.01 971221 for fTxf 表 直前のセルのlineTop
  3285.     BYTE CelllineBottom;    //WCE1.01 971221 for fTxf 表 直前のセルのlineBottom
  3286.     FBOOL fCellExist;        // 「表がある段落は折り返しなし」に使用
  3287.     BBOOL fCellFlushing;    //WCE1.01 971226 表の幅計算中?
  3288.                             // 2:Undisp中?
  3289.     FBOOL fWestern;            //WCE1.01 980224 欧文表示
  3290.                             // 1バイト文字(ASCII+拡張ASCII)
  3291.                             // !TEXTCHAR_UNICODE時のみ有効
  3292.     //
  3293.     HDC hdc;
  3294.         #define HDC_PAINT    999    // WM_PAINTで確保したHDC
  3295.     HDC hdcMem;
  3296.     HDC hdcPrinter;            // これがNULLでなければ、このhdcに出力する
  3297.     // キー定義
  3298. //    KEY* key;                // キー定義
  3299.     mchar *tszfkey;            // ファンクションキーの文字列
  3300.                             // size = FKEY_N * FKEY_NKEY * FKEY_SIZE
  3301. // ツールバー
  3302. //    TXTOOLBAR *ttxtoolbar;    // ツールバーデータ
  3303.     int ntoolbar;            // ttxtoolbarの数
  3304.     HBITMAP hbitmapToolbar;    // ツールバービットマップ
  3305.     int cxToolbar;
  3306.     int cyToolbar;
  3307.     // for display
  3308.     HFONT hfont;            // フォントハンドル
  3309.                             // fontsetBase->hfontのコピー
  3310.     HFONT hfont2;            // fontsetBase->hfont2のコピー    //WZ4.00Bl 990920 
  3311.     BYTE fSelectFont2;        // hfont2をSelectObject中?        //WZ4.00Bl 990920 
  3312.     HFONT hfontSearch;        //WZ3.90K 981112 欧文編集時の検索ダイアログ、検索ボックス用のフォントハンドル
  3313.     //WCE1.01 980222 マルチフォント、プロポーショナルフォントサポート
  3314.     FONTSET* fontset;        // カレントfontset
  3315.     FONTSET* fontsetBase;    // 本文のfontset
  3316.                             // 常に開きっぱなし
  3317.     FONTSET* fontsetCache;    // fontsetのキャッシュ
  3318.     //WCE1.01 980225 図の表示・印刷サポート
  3319. #ifdef __TXC__
  3320.     LPVOID txbitmapCache;    // IMGキャッシュ
  3321. #else
  3322.     IMGSET* txbitmapCache;    // IMGキャッシュ
  3323. #endif
  3324.     //
  3325.     HBRUSH hbrushBack;        // WZのブラシ
  3326.     HBRUSH hbrushText;        // WZのブラシ
  3327.     HBRUSH hbrushBlock;        // 範囲選択時、反転表示用
  3328. #if !WINDOWSCE
  3329.     HBRUSH hbrushImeBack;    //WZ3.90O 981202 
  3330.     HBRUSH hbrushImeHiBack;    //WZ3.90O 981202 
  3331. #endif
  3332.     HPEN hpenUnderline;        // アンダーライン
  3333.     HPEN hpenNline;            // WZのペン
  3334.     HPEN hpenText;
  3335.     HPEN hpenBack;            // WZのペン
  3336.     HBITMAP hbitmapLf;        // LF記号のビットマップ
  3337.     HBITMAP hbitmapTab;        // TAB記号のビットマップ
  3338.     HBITMAP hbitmapEof;        // EOF記号のビットマップ
  3339.     HBITMAP hbitmapSpace;    // 全角空白のビットマップ
  3340.     HBITMAP hbitmapBeta;    // ベタのビットマップ
  3341.     HBITMAP hbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップ
  3342.     LPVOID pbitmapLf;        // LF記号のビットマップデータ
  3343.     LPVOID pbitmapTab;        // TAB記号のビットマップデータ
  3344.     LPVOID pbitmapEof;        // EOF記号のビットマップデータ
  3345.     LPVOID pbitmapSpace;    // 全角空白のビットマップデータ
  3346.     LPVOID pbitmapBeta;        // ベタのビットマップデータ
  3347.     LPVOID pbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップデータ
  3348. #if WINDOWSCE
  3349.     HBRUSH hbrushPendot;    // WINDOWSCEにはPS_DOTがないのでBRUSHで作る
  3350.     LPVOID pbrushPendot;    // PS_DOTのメモリデータ
  3351. #else
  3352.     HPEN hpenPendot;
  3353. #endif
  3354.     SIGNED_BYTE color;        // 現在設定中の色コード
  3355.     COLORREF rgb;            // 現在表示中の色RGB
  3356.     WORD fColorReverse:1;    // 反転表示中?
  3357.     WORD fColorIme:1;        //WZ3.90O 981202 IME変換文字描画中?
  3358.     // GetLineSize/DispLineコンテキスト
  3359.     //WCE1.01 980216 GetLineSizeの処理結果
  3360.     BYTE gls_iHeadline;        // 見出しコード
  3361.     WORD gls_cyChar;        // 行の高さ(行間を除く)
  3362.     WORD gls_cyAscent;        // 行のベースラインより上の部分の高さ
  3363.     WORD gls_cyDescent;        // 行のベースラインより下の部分の高さ
  3364.     WORD gls_cyLine;        // 行の高さ(行間を含む)
  3365.     BYTE gls_nClm;            //WCE1.01 980301 この段落の段組数
  3366.                             // 通常はtext->nClmだが、<CLM>タグで段組数が指定されている場合に対応
  3367.     WORD gls_yFootnote;        //WCE1.01 980302 ページ内脚注表示位置(cyClientベース)
  3368.     WORD gls_cxCursor;        // LSOP_OFFSET_TO_X,LSOP_X_TO_OFFSET時のx位置の文字幅
  3369. //##TEXT - 現在の内部情報
  3370.     mchar* szexedir;        //WZ3.90I 981027 WZEDITOR.EXEの存在するパスが入っています。
  3371.                             // "a:\wz\"や"b:\"のように入っています。
  3372.                             // マクロからは、次の様にして、WZ.EXEと同じディレクトリにあるファイルの
  3373.                             // フルパスを得ることができます
  3374.                             //         text->szexedir + "myfile"
  3375.     FBOOL fTXWS_TEXT;        // TXWS_TEXTのtext?
  3376.     FBOOL fFrame;            // 表テキスト?
  3377.                             // 裏テキスト、WZコントロールのtextの場合はFALSE
  3378.     FBOOL fReadOnly;        // 修正はできるがセーブできない。
  3379.     FBOOL fCurWestern;        // 現在のカーソル行が欧文フォントかどうか示す。
  3380.                             // txDispCursorでフラッシュされるので、いつも必ずしも
  3381.                             // 正しいとは限らない。
  3382.     WORD fReopenInternaling:1;// txReopenInternal中?
  3383.     WORD fShared:1;            // WZプロセス間で共有されているtext?
  3384.                             // WINDOWSCE
  3385.     WORD fNoFlushBaseDisp:2;// txFlushBaseでtxDispAllしない
  3386.     WORD fFlushBaseDisped:1;// fNoFlushBaseDisp中にtxDispAllがあった
  3387.     WORD fEnableUndo:1;
  3388.     WORD fNewFile:2;        // 新規ファイル?(1か2なら真なので注意)
  3389.     WORD fOpenLockedFile:1;    // 排他制御がかかっているファイルを開いた
  3390.     WORD fDispEofed:1;        // 最後に表示を行ったときにEOFを表示した?
  3391.     WORD fHaveFocusLine:1;  // フォーカスラインを持っている?
  3392.     WORD fNoCaret:1;        // キャレットを表示しない
  3393.     WORD fOriginalCaret:1;    //WCE1.01 980409 独自のキャレットを表示
  3394.                             // 普通のキャレットは主スレッドしか対応しないが、
  3395.                             // これはマルチスレッド対応。
  3396.     WORD fMouseJumpx:2;        // txJumpXで文字の中心を基準とする
  3397.     WORD nlineByPage:1;        // dummy
  3398.     WORD lpy:1;                // dummy
  3399.     WORD fNoFlushSelectNow:1;//txFlushSelectNowしない
  3400.     WORD fDestorying:1;        // textを破棄中?
  3401.     WORD fStatprintfing:1;    // statprintfが表示されている状態?
  3402.     WORD fUndispLinenum:2;    // 行番号を表示しない
  3403.     DWORD FlushCuryResult;    // 内部ワーク
  3404.     BBOOL fNomoveBase;        // 画面の横スクロールをしない(text->basexを動かさない)
  3405.     WORD ftxuiSaveNamed:1;    // txuiSaveで名前を付けたときにONになり、txuiSaveを抜けるとOFFになる
  3406.     WORD fSaveCanceled:1;    // (text->lasterror == TXERROR_SAVECANCELED)
  3407.     WORD fInsideIsClose:1;    // ehHwndでIsClose()中
  3408.     WORD fClipMouseStart:1;    // マウスによる範囲選択開始時?
  3409.     WORD fCursorSeted:1;    // WINDOWSCE カーソルが変更されている
  3410.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  3411.     WORD fReplaceCanceled:1;// 直前のReplaceがキャンセルされた?
  3412.     WORD fGetDownAble:2;    //WZ3.90H 980923 現在txGetDownAble中?
  3413.     WORD fPageChanged:1;    //WZ3.90H 980923 txBuffNextLineN/txBuffPrevLineNでページを越えた
  3414.     WORD fError:1;            //WZ3.90H 980925 エラー状態
  3415.     WORD fNoInitScrollBar:2;//WZ3.90I 981030 _InitScrollBarしない。
  3416.     WORD fPageScrollBarV:2;    //WZ3.90I 981030 印刷プレビュー時に縦スクロールバーをページ内のプロポーショナルスクロールバーにする?
  3417.     WORD fGetXAlign:2;        //WZ3.90I 981106 
  3418.     WORD fAutoScrolling:1;    //WZ3.90J 981110 自動スクロール中?
  3419.     WORD fAutoScrollPause:1;//WZ3.90J 981110 自動スクロール一時停止中?
  3420.     WORD fAutoScrollPrev:1;    //WZ3.90L 981125 自動スクロール前方向中?
  3421.     WORD fApfuBeamtabFlush:1;//WZ3.90L 981115 タブ桁揃えフラッシュ中?
  3422.     WORD fLpFlushPreviewing:1;//WZ3.90L 981117 
  3423.     WORD fIdmExecing:3;        //WZ4.00Aa 990107 //WZ4.00Ac 990207 ネストする場合があるので1bitでは足りなかった
  3424.     WORD fUserInserting:2;    //WZ4.00Bn 991007 
  3425.     WORD fNoPushDeleteString:2;    //WZ4.00Aa 990107 削除バッファに入れない?
  3426.     WORD fPushDeleteString:2;    //WZ4.00Bj 990825 txDeleteParaで削除した分も削除バッファに入れる?
  3427.     WORD fSaving:2;            //WZ4.00Ab 990202 保存中?
  3428.     WORD fSaveAsDoing:1;    //WZ4.00Ab 990202 txuiSaveAs中?
  3429.     WORD fEndSessioning:1;    //WZ4.00Ac 990205 WM_QUERYENDSESSION中?
  3430.     WORD fHistAddAtSave:1;    //WZ4.00Ac 990206 txSave時にhistAddし、このフラグをクリア?
  3431.     WORD fWindowClosedMax:1;//WZ4.00Ad 990211 DestroyWindow(text->hwndbase)したとき最大化されていたかどうか?
  3432.     WORD fByMouse:1;        //WZ4.00Bl 990909 マウスによるコマンド実行時かどうか?
  3433.     WORD fNetnewsList:1;    //WZ4.00Bl 990916 for SPEAK
  3434.     WORD fQueryBigEdited:1;    //WZ4.00Bl 990918 
  3435.     WORD fResultXtoOffset:1;//WZ4.00Bl 990918 
  3436.     WORD fOnDeletePrev:2;    //WZ4.00Bp 991014 
  3437.     CBOOL fBusy;            //WCE1.01 980203 
  3438.     //WCE1.01 980205 変更行の表示
  3439.     FBOOL fDispLineEdit;    // 変更行の表示を行う?
  3440.     PARAATR_CONTEXT paraatr;//WZ4.00Bl 990920 paraatrtextcontextから名称変更。
  3441.     // binary
  3442.     FBOOL fBinedit;            // バイナリ編集(16進表示バイナリエディタ)モード?
  3443.                             // ファイルをバイナリとして読み込む
  3444.                             // ファイル末尾のEOFをEOFコードとしてはみなさなず、text->buffロード時に必ずEOFを加える
  3445.                             // fBinaryもTRUEにセットすること。
  3446.                             // fBinedit時は、curparaはcuryと同じになり段落先頭を示さなくなる。
  3447.                             // また、nparaはnlineと同等になる。
  3448.     CBOOL fBinary;            // 全角文字を半角2文字として扱う
  3449.                             // !fBineditなら、ファイルはテキストファイルとして読み込む
  3450.                             // fBineditの場合は、fBinaryもTRUE。
  3451.     CBOOL fNoJumpChartop;    //WZ3.90P 981206 txJumpAddress,txJumpAddressNearで、アドレスが文字の先頭でない場合、文字の先頭ではなく、指定されたアドレスにジャンプ。
  3452. #if WZFUNC_MEMOEDIT    //WZ3.90L 981124 メモモード
  3453.     WORD fMemoedit:1;                // メモ編集モード?
  3454.     struct tagMEMOEDIT* memoedit;    // メモ編集コンテキスト
  3455. #endif
  3456.     // undo
  3457.     TX* ttextUndo;            // undoバッファ textUndo[0],textUndo[1]が有効
  3458.     UNDOPACK_CONTEXT undopack[2];
  3459.     mchar* szGeneComment;    //WCE1.01 980201 世代管理:次の世代のコメント
  3460.     FBOOL fTextUndoInited;    // textUndo inited?
  3461.     FBOOL fUndoing;            // アンドゥとリドゥの区別
  3462.     FBOOL fUndoView;        // undoバッファのビューモード
  3463.     FBOOL fUndoExec;        // undo()中かどうか
  3464.     FBOOL fUndoResetTexttop;//PWZ2BETA0.3 980511 undo中にtexttopを0にしたか?
  3465.     HWND hwndUndo;            // 
  3466.     BBOOL fGene;            // 世代管理テキスト?
  3467.     FBOOL fGeneWalking;        // 世代管理テキストを作成中?    //WZ4.00Bl 990921 
  3468.     BYTE fNoUndoAdd;        // 0以外ならundoAddされない
  3469.     BYTE adrTextUndoTop;    // undoバッファのヘッダ長
  3470.     BYTE uc;                // UC
  3471.     FBOOL fUndoFindCellFlush;//WCE1.01 971226 
  3472.     SIGNED_WORD igene;        //WCE1.01 980201 現在の世代
  3473.     FBOOL fNoGeneDelete;    //WCE1.01 980206 
  3474.     BBOOL fUndoOverflowed;    //WZ4.00Bj 990825 
  3475.     // autosave
  3476.     int nAutoSaveCmdNow;    // 前回のオートセーブから現在までに実行された編集コマンド数
  3477.     BBOOL fAutoSaving;        // autosave中?
  3478.     BBOOL fAutoSaveValidTimer;    // 自動保存実行タイマセット中?
  3479.     //
  3480.     CMDLINECONTEXT* pcc;    // fFrameのみコマンドラインコンテキスト
  3481.                             // このオブジェクトはdeleteしてはいけないが、
  3482.                             // pcc=NULLにしてもいい
  3483.     DWORD nEdit;            // 編集が行われた回数をカウントしています
  3484.     IFILE adrLastEdit;        //WZ4.00Bj 990824 最後に編集した位置
  3485.     BYTE fNoCountNedit;        // nEditをカウントアップしない?
  3486.     BYTE fNoReduceGap;        // テキストバッファの縮小を一時的にしない
  3487.     // キー入力
  3488.     mchar key2;                // 2ストロークキー入力用.1ストローク目のキーコード
  3489.     IDM f2Stroke;            // ストロークキー入力用.1ストローク目のidm
  3490.     FBOOL fTranslated;        //WCE1.00.1 970926 WM_KEYDOWN/SYSKEYDOWNの後にWM_CHAR/SYSCHARが来る?
  3491. //    FBOOL fKeyD;            // 次のWM_CHAR/WM_SYSCHARを無視?
  3492.     UINT idmLast;            //WZ3.90I 981102 最後にキーから実行したIDMコマンド
  3493.     struct tag_EMACSWZ_CONTEXT* emacswz;    //WZ3.90I 981102 EMACSライクキー割り当て用コンテキスト
  3494.     BYTE lastfocus;            //WZ4.00A 981229 最後にSETFOCUSされた部位
  3495.         #define FOCUS_OUTLINE        1
  3496.         #define FOCUS_MAILTO        100    //WZ4.00Bj 990812 
  3497.         #define FOCUS_MAILCC        101    //WZ4.00Bj 990812 
  3498.         #define FOCUS_MAILSUBJECT    102    //WZ4.00Bj 990812 
  3499.         #define FOCUS_ISMAILEDIT(l)    (100<=l)    //WZ4.00Bj 990812 
  3500.     // 本文フォントの情報
  3501.     int cxChar;                // 文字幅
  3502.     int cxLetter;            // 字間をふくむ文字幅
  3503.     int cyChar;                // 文字高さ
  3504.     int cyLine;                // 行高さ
  3505.     FBOOL lfEditProp;        // プロポーショナルか?
  3506.     //
  3507.     BBOOL fUndispSelect;    // 範囲選択を表示しない
  3508.     SEARCHMODE searchmode;    // 現在の検索オプション
  3509.     int nCmdShow;            // 現在のtext->hwndbaseのShowWindowモード
  3510.     int fHigh;                // Highspeed flag
  3511.                             // カーソル位置(cury,curysize)の計算をしない。
  3512.                             // nparaは計算します。for 編集した行の強調表示
  3513.                             // nlineは計算しないのでズレます。
  3514.                             // <使用要注意>
  3515.                             // txSetHighで開始してください。
  3516.                             // 直接このフラグを操作しないでください。
  3517.                             // TXHIGHのAPIのみ使えます。
  3518.                             // それ以外のAPIは使えません。
  3519.                             // 使った場合の動作は保証しません。
  3520.                             // できるだけチェックをして回避していますが、
  3521.                             // テキストを破壊する恐れもあります。
  3522.                             // <使用後>
  3523.                             // txResetHighかtxResetHighFlagを使ってください。
  3524.     int lyHigh;                // txSetHigh()時、ly保存
  3525.     UINT nEditHigh;            // txSetHigh()時、nEdit保存。for paraatr
  3526.     UNDISPCONTEXT tUndispContext[UNDISPCONTEXT_N];
  3527.     int fUndisp;            // 非表示フラグ
  3528.     int fUndraw;            //2.00B 非描画フラグ
  3529.                             // fUndispだと描画しないだけでなく各種
  3530.                             // 計算なども行わないが、このフラグは単に
  3531.                             // 描画を行わない
  3532.     HCURSOR hcursor;        // マウス砂時計表示時、元の形状
  3533.     BBOOL fUndispCursor;    // txDispCursor/txDispLocateの処理をしない
  3534.                             // txDeletePara etc のちらつきをなくすため、
  3535.     BBOOL fNoCursor;        // マウス形状を変更しない
  3536.     FBOOL fCursorBold;        // カーソル位置強調?
  3537.     NPARA fUndispNpara;        // 0以外にすると、その段落のみ描画を行わない
  3538.     NPARA fUndispExceptNpara;// (内部用)0以外にすると、その段落以外の描画を行わない
  3539.     // scroll by scrollbar
  3540.     BBOOL fScrollSB;        // スクロールバーでスクロール中
  3541.     BBOOL fInvalidLySB;        // lySBは無効?    //WZ4.00Bl 990921 
  3542.                             // lySB=-1の時に無効の仕様だったが、スクロールすると増減されてしまい、問題があった。
  3543.     int lySB;                // カーソル位置(fInvalidLySBなら無効)
  3544.     // scrollbarによるスクロール開始時の情報
  3545.     NLINE nlineSB;            // npara/nline
  3546.     NLINE nparaSB;            // npara    //WZ3.90L 981123 
  3547.     IFILE adrSB;            // カーソル位置
  3548.     int lxSB;                // lx
  3549.     int cxCaretSB;            // カーソルの幅
  3550.     int fClipSB;            // fClip
  3551.                             // 途中でtxSelectXXXが実行されたときはリセットする
  3552.                             // そうしないと、以前はtxFlushSelectNowで、
  3553.                             // fScrollSBならスクロール開始時の情報を範囲選択エリアとして
  3554.                             // 返していたが、選択モードを変更したときに、
  3555.                             // そのモードの情報が返されず、テキスト<->高速モード変換で
  3556.                             // テキストが破壊されることがあった。
  3557.                             // txSelectAllしてコピーし、テキストを全削除してペースト
  3558.                             // すると元に戻らなかった
  3559.     SIGNED_WORD xSB;        // SB開始時x
  3560.     TXCHAR chSB;            // カーソル位置の文字    //WZ4.00Bl 990913 
  3561.     IFILE mark[MAXMARK];    // マーク
  3562.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.91 970910 最近参照した位置
  3563.     BYTE iAdrRefer;            // tAdrRefer参照ポインタ
  3564.     BBOOL fEdit;            // 編集された?
  3565.     BBOOL fEdit0;            // for txDoCaption
  3566.     BBOOL fEditable;        // 修正できる?
  3567.                             // txOpenTextでデフォルト値設定
  3568.                             // fEditViewModeならFALSE、そうでなければTRUE
  3569.     BBOOL fOverWrite;        // 上書きモード?
  3570.     DWORD sizefileMax;        // 0のときはファイルをすべて読み込む
  3571.                             // 1以上のときは、そのサイズまでしかファイルを読み込まない
  3572.                             // for preview
  3573.     NLINE npara;            // text->curの論理行番号
  3574.                             // nparaは高速/詳細モードでは大変重要な役割
  3575.                             // (段落書式indexとなる)を果たすので、
  3576.                             // 必ず正確な値にしておかないといけない。
  3577.     NLINE nline;            // 表示-行番号(fLineDが真の時しか数えない)
  3578.                             // fLineDが偽の時は、不定
  3579.                             //2.93 fCountNlineが真なら、常に数える
  3580.     BYTE fCountNline;        //2.93 !fLineDでもnlineのカウントをする
  3581.     BYTE fCountNpara;        //2.96A 970213 fHighでeditmode=0でもnparaのカウントをする
  3582.                             // カウントがされないときもあります。
  3583.     BYTE lyScreenEndResult;    //2.98 970307 Disp(DISP_GETCURSCREENEND)のly結果
  3584.     NLINE nlineAll;            //WZ3.90I 981004 これが0以外でfLineDならばプロポーショナルスクロールバーを表示する
  3585.     WORD cxVH;                //WZ3.90I 981015 !=0なら縦中横の表示中
  3586.     //WCE1.01 980216 ページ数 印刷時・プレビュー時のみ使用
  3587.     NPAGE npage;            // カーソル行のページ番号(1origin)
  3588.     PAGEATR* tPageatr;        // ページ情報
  3589.                             // tPageatr[text->npage]までが有効。
  3590.                             // ifilePagetopだけはtPageatr[text->npage+1]まで有効。
  3591.     LINEATR* tLineatr;        // 表示行情報
  3592.     LINESIZE_ENTRY_ROOT* ttLsc[2];//WZ3.90H 980919 
  3593.     NPARA nparaLsc;                //WZ3.90H 980921 対象のnpara
  3594.     // clip
  3595.     int fClip;                        // 範囲選択モード
  3596.         #define CLIP_NONE        0    // 範囲選択されてない
  3597.         // 基本範囲選択
  3598.         #define CLIP_CHAR        10    // 文字単位
  3599.         #define CLIP_LINE        11    // 表示行単位
  3600.         #define CLIP_PARA        12    // 論理行単位
  3601.         #define CLIP_BOX        13    // 箱形
  3602.         #define CLIP_WORD        14    // 単語
  3603.         #define CLIP_SENTENCE    15    // 文
  3604.         // すべてを選択
  3605.         #define CLIP_ALL        20
  3606.         // txSelectGetMode,txSelectEx用
  3607.         #define CLIP_LINECUR    31
  3608.         #define CLIP_PARACUR    32
  3609.         // txSelectEx用
  3610.         #define CLIP_VZ            40
  3611.         #define CLIP_WZ            41
  3612.         #define CLIP_SEARCH        42
  3613.         #define CLIP_MOUSE        43
  3614.         // 内部用
  3615.         #define CLIP_PARA1        90    // 1論理行
  3616.         #define CLIP_DELSTRPREV    91    // BSによる文字列削除
  3617.         #define CLIP_DELSTRNEXT    92    // DELによる文字列削除
  3618.         // txClipCopyEx用
  3619.         #define CLIP_COPYPARA1    100    // カーソル論理行をコピー
  3620.     //2.95 970125 ビットフィールド化
  3621.     FBOOL fClipMouse;        // マウスによる範囲選択?(fClipが0のときはFALSEであること)
  3622.     WORD fClipVz:1;            // VZ clip?
  3623.     WORD fClipWz:1;            // WZ clip?
  3624.                             // 最初に横に動かせば文字単位
  3625.                             // 下に動かせば論理行単位
  3626.     WORD fClipCur:1;        // (WZ内部用)
  3627.                             // CLIP_PARA/CLIP_LINE時にカーソル位置も範囲に含めるか?
  3628.     WORD fClipSearch:1;        // 検索による範囲選択?
  3629.     WORD fClipPasteJump:1;    // 最後のtxPasteで、ペーストした分カーソルを移動した?
  3630.     WORD fDispUnderClip:1;    // 選択開始時fDispUnder
  3631.     WORD fKeyVkShift:2;        // for キーボードマクロ時ms shiftキー範囲選択
  3632.                             // 0:実際のVK_SHIFTの押し下げ状態に従う
  3633.                             // 1:SHIFTは押されていないとみなす
  3634.                             // 2:SHIFTは押されているとみなす
  3635.     WORD fClipReserved:8;
  3636.     int lxClip;                // 範囲選択開始時lx
  3637.     int lyClip;                // 範囲選択開始時ly
  3638.     NPARA nparaClip;        // 範囲選択開始時npara
  3639.     NLINE nlineClip;        // 範囲選択開始時nline
  3640.     IFILE cliptop;            // 範囲選択開始位置
  3641.                             // 行単位の場合は行頭からになるので、
  3642.                             // clipcur0とは必ずしも一致しない
  3643.                             // Insert/Deleteでもズレないよう補正する
  3644.     IFILE clipcur0;            // 範囲選択開始時のカーソル位置のアドレス
  3645.                             // Insert/Deleteでズレるが問題ない
  3646.     IFILE cliptoppara;        // 範囲選択開始時の論理行頭のアドレス
  3647.                             // 必ずしも正確な値ではない
  3648.                             // Insert/Deleteでズレるが問題ない
  3649.     IFILE cliptopparatail;    // 範囲選択開始時の次の論理行頭のアドレス
  3650.                             // 必ずしも正確な値ではない
  3651.                             // Insert/Deleteでズレるが問題ない
  3652.     IBUFF clipend;            // ClipParaワーク
  3653.     BYTE modeFreeCursorClip;// 選択開始時modeFreeCursor
  3654.     IFILE cliptoptail;        // 範囲選択開始時の次の単語/文/行の先頭アドレス
  3655.     IFILE cliptopnow;        // 正確な選択開始アドレス(cliptopがベース)
  3656.     IFILE clipendnow;        // 正確な選択Tailアドレス(txGetAddressがベース)
  3657.     int xClip;                // 範囲選択開始時x
  3658.     WORD fNoScrollLinenum:2;// 行番号をスクロールしない
  3659.     IFILE clippastetop;        // 最後にペーストした時のペースト開始アドレス
  3660.     IFILE clippasteend;        // ペースト終了アドレス
  3661.     int xClipMouse;            //WZ3.90I 981105 マウスでの箱型選択、D&D用。選択終了時のx座標。
  3662.     //WZ3.90I 981104 D&D
  3663.     WORD fClipDrag:1;        // drag&drop-cut&paste
  3664.                             // 途中でtxSelectXXXが実行されたときはリセットする
  3665.     WORD fClipDragCaret:1;    //WZ3.90I 981107 ドロップターゲットカーソルモード中?
  3666.     WORD fOriginalCaret0:2;    // 保存用
  3667.     WORD fDispUnder0:2;        // 保存用
  3668.     WORD reservedCD:11;
  3669.     IFILE ifileDrop;        //WZ3.90I 981104 ドロップされた位置
  3670.     int lyDrop;                //WZ3.90I 981104 
  3671.     // ime
  3672.     //WZ3.90H 980928 IME描画を全面変更
  3673.     WORD sizeImeCompstr;    // 挿入した変換中文字列のバイト数
  3674.     int xCompstrEnd;        // 変換中文字列の表示の最終行の右端の座標
  3675.                             // (cxBase,xbase含む)
  3676.     int xImecurCompstr;        // IMEのカーソル位置 x(cxBase,xbaseは除く)
  3677.     int yImecurCursor;        // IMEのカーソル位置 y(yBaseは除く)
  3678. #if !UNIX
  3679.     HRGN hrgnCompstrDraw;    // 変換中文字列を描画したhrgn
  3680. #endif
  3681.     WORD fCompstrDrawing:2;    //WZ3.90H 980928 描画中?
  3682.     WORD fImeCursorIme:1;    // カーソル位置(IMEの描画)で変換中?    //WZ4.00Aa 990110
  3683.     WORD fImeOnInactive:1;    //WZ4.00Bl 990913 WA_INACTIVE時にIMEがONだった?    //WZ4.00Bl 990913 
  3684.     FBOOL fImeCompstr;        // カーソル位置(WZの描画)で変換中?(インライン変換は除く)
  3685.     FBOOL fImeWasOn;        // 2ストロークキー入力開始時にIMEがONだった?
  3686. #if !WINDOWSCE
  3687.     //WZ3.90H 980913 一時ウィンドウ
  3688.     #if 0    //WZ3.90H 980915 多重化がうまく実装できたので、少々難のあった一時ウィンドウは廃止
  3689.     TXMULTI_CONTEXT* multi;            // 一時ウィンドウあり?
  3690.     #endif
  3691.     TXMULTI_CONTEXT_TEMP* multi0;    // 前回の多重化/一時ウィンドウのコンテキスト
  3692.     //WZ3.90H 980915 多重化
  3693.     MT* mt;                    // 多重化
  3694.     WORD idMt;                // 表ウィンドウのID
  3695.     WORD idMtMax;            // 今までの最大値のID
  3696.     WORD fMtRedraw:2;        // 
  3697.     WORD fMtOpening:1;        // 起動中
  3698. #endif
  3699.     // 最近入力した文字列
  3700.     mchar szInserted[30];    // 現在入力中の文字列
  3701.     BYTE lchInserted;        // szInserted内の文字数
  3702.     // 自動整形
  3703.     FBOOL fApfing;            // 自動整形中?
  3704.     FBOOL fApf;                // 自動整形を行う?
  3705.     WORD fApfUndisp:2;        // Undisp nest
  3706.     BYTE modeApfIndentSpace;// lcxIndentのmodeSpace
  3707.     WORD fApfSpaceJspace:1; // lchSpaceは全角空白か?
  3708.     WORD fApfNakaguroAsArticleForce:1;// 一時的に"・"を"■"と同様に扱う
  3709.     WORD fApfValidAutoFormat:1;    // 一時的に行頭の"・","1."を調べる
  3710.     NPARA nparaApf;            // 自動整形中のnpara
  3711.     PARAFORM_ARTICLE apf;
  3712.     IFILE adrApfCurscreen;
  3713.     int lx0Apf;
  3714.     int x0Apf;
  3715.     NLINE nline0Apf;        //WCE0.95 970923 
  3716.     // 見出し文字列
  3717.     HEADLINE* tHeadline;        // on demand alloc    //WZ4.00Bj 990823 
  3718.     //WZ4.00Bj 990823 tpHeadline,tlchHeadline,head,lchHeadlineContent,offsetHeadlineContent廃止。
  3719.     //WZ3.90K 981113  tszHeadline廃止
  3720.     // アウトライン
  3721.     HWND hwndOutline;
  3722.     #if !WINDOWSCE
  3723.     HWND hwndOutlinePartition;    //WZ4.00Bj 990824 
  3724.     BYTE rateOutline;            //WZ4.00Bj 990824 
  3725.     WORD cxHwndbase0;            //WZ4.00Bj 990824 for fOutlineSplitExtend
  3726.     #endif
  3727.     FBOOL fOutlineHide;
  3728.     FBOOL fOutlineSplited;    //WCE1.01 980204 
  3729.     CBOOL fOutlineNoJump;    //WCE1.01 980204 
  3730.     // caret
  3731.     FBOOL fHaveCaret;        // キャレットを持っている?
  3732.     CBOOL fUndispCaret;        //WCE 970902 HideCaretしてもカーソルが消えないことがあるので、
  3733.                             // 位置を動かして強制的にカーソルを画面から除くために使用
  3734.     POINT pointCaret;        //WCE 970902 
  3735.     // keyword
  3736.     struct tagKeywordContext* keyword;    //WZ4.00Aa 990108 new。txKeyword,fKeywordNoSenseCaseは廃止。
  3737.     // 変数
  3738.     WORD fTxfVarConfig:1;    //PWZ2BETA0.3 980519 設定中なので、内容が空なら代わりに指示文字列を表示
  3739.     VAR* var;                //PWZ2BETA0.3 980519 
  3740.     // TX-C
  3741.     TXCTEXTVAR* textvarRoot;//PWZ2BETA0.4 980602 for TEXTVAR
  3742.     // link
  3743.     LINKHIST* linkhist;        //WZ3.90L 981117 リンク移動ヒストリ
  3744.     // テキストの変換
  3745.     struct tagContextConverttext* converttext;    //WZ4.00Ac 990206 テキストの変換の設定を覚えるようにした
  3746.     WORD ctDst:4;
  3747. //##TEXT - 現在の内部設定
  3748.     FBOOL fSilent;            //WCE0.94 970922 1行が長すぎるなどの警告を出さない
  3749.     FBOOL fKcAuto;            //WCE0.93 970919 漢字コード自動変換する?
  3750.                             // text->fFrameは設定によりセットされます。
  3751.                             // それ以外のtextはFALSEになってます。
  3752.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  3753.     FBOOL fCrAuto;            //WZ3.90J 981109 改行コード自動判別する?
  3754.                             // text->fFrameは設定によりセットされます。
  3755.                             // それ以外のtextはFALSEになってます。
  3756.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  3757.     BBOOL fDispControlSpace;// 制御コードを半角空白で表示(折り返しも対応)
  3758.                             // 改行なども半角空白で表示
  3759.     int width;                // 折り返し幅
  3760.     BYTE nClm;                //WCE1.01 980216 段数
  3761.     WORD cySpace;            //WCE1.01 980307 行間
  3762.     BYTE fNoMarkCur;        // txMarkCurしない? (++,--)を使う
  3763.                             // txMarkNow/txJumpMarkNow 専用
  3764.     IFILE mark0;            //WCE1.01 971222 txMarkNow時にオリジナルのmark[0]の値を保存
  3765.     FBOOL fDebug;
  3766.     FBOOL fReadMode;        // 閲覧モード
  3767.     WORD fNoConfig:1;        // txSetFileNameで設定データをロードしない
  3768.                             //参考:txInitTextで、"標準"の設定がロードされます
  3769.     WORD fNoProfile:1;        // txOpenTextでプロファイルを参照しない
  3770.     WORD fPreview:1;        // プレビュー用
  3771.                             // 表示中にキー入力を監視し、キー入力があれば
  3772.                             // 表示処理を中断して応答性を上げる
  3773.     WORD fTxAllocText:1;    // txAllocTextでアロケートされたtext
  3774.     WORD fUndispWmpaint:1;    // WM_PAINTで描画しない?
  3775.     WORD fFilelist:1;        //WZ4.00Ac 990207 FILELISTウィンドウ?
  3776.     WORD fFilepreview:1;    //WZ4.00Ac 990207 ファイルプレビューウィンドウ?
  3777.     WORD fMemo:1;            // メモテキストウィンドウ?
  3778.     WORD fGrep:1;            // Grep結果一覧ウィンドウ?
  3779.     WORD fHelp:1;            // ヘルプテキストウィンドウ?
  3780.     WORD fContexthelp:1;    // コンテキストヘルプテキスト?    //WZ4.00Bo 991011 new
  3781.     WORD fMailPreview:1;    //PWZ2BETA0.3 980509 メールプレビューアー
  3782.     WORD fMailTemplate:1;    //PWZ2BETA0.3 980520 メールテンプレート
  3783.     WORD fTML:1;            //PWZ2BETA0.3 980511 TMLヘッダあり、すなわちTMLファイル?
  3784.                             // これがONならRFC822形式のヘッダがあるということになる。
  3785. #if 1//WZ3.90G 980903 デフォルトではAlt+M etc を処理しないように変更 for WZテキストボックスを使いやすく。
  3786.     WORD fUseDefaultAltKey:1;//WZ3.90G 980903 Alt+M etc を処理する
  3787. #else
  3788.     WORD fNoSyskeydown:1;    //PWZ2BETA0.3 980519 Alt+M etc を処理しない
  3789. #endif
  3790.     WORD fTags:1;            //PWZ2BETA0.4 980612 タグファイル?
  3791.     WORD fNoFlushWindow:1;    //WZ3.90J 981109 txFlushWindowをしない?
  3792.     WORD fClickActive:1;    //WZ3.90I 981103 
  3793.     WORD fOnCheckJumpX:2;    //WZ3.90I 981104 
  3794.     BBOOL modeFileShare:2;    //WZ3.90H 980925 
  3795.                             // 0のときはsh->modeFileShareに従う。
  3796.                             // FILESHARE_DENY_WRITE,FILESHARE_EXCLUSIVEのときは、
  3797.                             // sh->modeFileShareに関わらず、排他制御を行う。裏テキストも行う。
  3798.                             // 直接変更せず、txSetFileShareを使うこと。
  3799.     WORD fNoBuffReduceAuto:2;//WZ3.90O 981204 自動のtxBuffReduceをしない
  3800.     WORD fHeadlineOutline:1;//WZ4.00Bj 990810 見出しのみのテキスト(見出し番号は段落先頭の1文字)
  3801.     WORD fDispMail:1;        //WZ4.00Bl 990913 MAIL PREVIEW/MAIL EDITOR用の色分け?
  3802.     WORD fDispRuby:1;        //WZ4.00Bl 990919 通常編集時にルビを表示する?
  3803.     BBOOL fConfigtext;        //WCE1.01 980301 テキスト埋め込みの設定あり?
  3804.     WORD dlgcode;            // TXWS_TEXTのWM_GETDLGCODE処理コード
  3805.                             // default:DLGC_WANTALLKEYS
  3806.     BBOOL fNoImeControl;    // IMEの制御をしない
  3807.                             // BBOOLに拡大
  3808.     KEY* key;                // 現在のキー配列
  3809.                             // text->fFrame/fTXWS_TEXTのみセットされる
  3810.                             // 裏テキストではNULL
  3811. #if 0//WZ3.90H 980927 SHAREに移動した
  3812.     BYTE pagingmode;        // ページングモード('S','C','P',' ')
  3813. #endif
  3814.     WORD nSpaceTop;            // 上端を空けるドット数
  3815.                             //WCE1.01 980305 BYTE->WORD 印刷時は上マージン
  3816.     BBOOL fListbox;            // リストボックスモード?
  3817.         #define TXLB_SIZEATR        2    // 行アトリビュートバイト数(1.00C)
  3818.         // リストボックスモード時の行アトリビュート1バイト目
  3819.             #define TXLB_NORMAL        ' '    // ノーマル
  3820.             #define TXLB_SELECT        '*'    // 選択されたファイル
  3821.         // リストボックスモード時の行アトリビュート2バイト目(1.00C)
  3822.             //    色コードを指定する
  3823.             //    '1'-'5'を指定するとrgbComment-rgbPreprocessor色で表示
  3824.             //    それ以外はテキスト色で表示
  3825.     int nListboxSelect;            //WCE0.94 970921 選択中の数
  3826.     WORD fListboxSelCur:1;        // カーソル行を選択表示する?
  3827.     WORD fDispEofFull:1;        // EOF行はlcxmaskを無視して表示?
  3828.     WORD fScrolled:1;            // 最後のtxDispFlushでスクロールした?
  3829.     WORD fCustdataAutoFree:1;    // txCloseでcustdataをfreeしNULLにセットする?
  3830.     LPVOID custdata;            // マクロユーザデータ
  3831.     int lcxmask;                // 左からlcxmask文字は表示しない
  3832.                                 // lcxmaskに満たない行は、マスクしない
  3833.     BYTE iLastJumpMark;            // uiMarkで最後にジャンプしたマーク番号
  3834.     DWORD abAdjustGauIncrease;    //WCE0.91 970915 AdjustGapでテキストバッファサイズを拡大するときに
  3835.                                 // このサイズずつ拡大する。0を指定するとデフォルトで拡大する
  3836.     // txMsghdr
  3837.     UINT fTextcfg:1;        //WZ3.90I 981027 テキスト設定ファイル?
  3838.     UINT fTextcfgOnConfigRead:1;//WZ3.90I 981106 fTextcfgでconfigRead時?
  3839.     UINT fMsghdrLiteral:2;    //WZ3.90I 981027 txMsghdrXXXでszHeaderの末尾の':'を省略する。
  3840.     UINT fMsghdrSetAdd:2;    //WZ3.90N 981202 txMsghdrSetで常に追加する。
  3841.     IBUFF ibuffMsghdrCache;    //WZ3.90I 981027 txMsghdrGet高速化用キャッシュ
  3842.     // wndprocのフック
  3843.     TXWNDHOOK* rootWndtextHook;    //WZ3.90I 981026 
  3844.     TXWNDHOOK* rootWndbaseHook;    //WZ3.90I 981026 
  3845.     LRESULT resultWndtextHook;    //WZ3.90I 981024 標準値は0
  3846.     LRESULT resultWndbaseHook;    //WZ3.90I 981024 標準値は0
  3847. #if 0    //WZ3.90I 981026 廃止。
  3848.     WORD fWndtextHookTxpcode:1;    //PWZ2BETA0.4 980607 
  3849.     WORD fWndbaseHookTxpcode:1;    //PWZ2BETA0.4 980607 
  3850.     WNDTEXTHOOKPROC lpWndtextHook;
  3851.                             // このtextのwndprocTextをフック
  3852.                             // fWndtextHookTxpcodeならマクロでフック
  3853.     WNDTEXTHOOKPROC lpWndbaseHook;
  3854.                             // このtextのwndprocBaseをフック
  3855.                             // fWndbaseHookTxpcodeならマクロでフック
  3856. #endif
  3857.     // walk
  3858.     IFILE curwalkstart;
  3859.     int lywalkstart;
  3860.     FBOOL fwalkselectjump;
  3861.     FBOOL fAutoSaveForce;        // !fFrameでもオートセーブを行う?
  3862.     FBOOL fWalking;                //WZ4.00A 981229 
  3863.     HWND hwndAutoSaveProxy;        // 裏テキストの自動保存のためのもの
  3864.                                 // 代理WM_TIMER_TXAUTOSAVE受け取りhwnd
  3865.                                 // NULLならhwndtextを使用
  3866.     // apfu
  3867.     CBOOL fApfuShiftEnter;        // 自動段落体裁 Shift+Enter中?
  3868.     CBOOL fParaIchCountTabOne;    //WCE1.01 980115 txGetParaIch/txJumpParaIchで連続するTABを一文字として数える?
  3869.     CBOOL fParaIchCountTxfNone;    //WCE1.01 980308 txGetParaIch/txJumpParaIchで文字でないCHAR_TXFを数えない
  3870.     // txf
  3871.     TAGNEST* tagnest;            // root
  3872.     TAGNEST* tagnestNext;        // 文字挿入時に付加するタグ
  3873.     FBOOL fTagnestNextClear;    //WCE1.01 980308 次の文字挿入時に
  3874.                                 // 文字装飾をクリアして文字を挿入する。
  3875.     IFILE adrInsertPre;            //WCE1.01 980308 
  3876.     CBOOL fTxfDirect;            // txRight etcでCHAR_TXFを直接一文字として扱うか?
  3877.                                 // 普段は0にしておくこと
  3878.     FBOOL fGetCharBytes;        // txGetCharBytesモード?
  3879.     IFILE texttop;                //WCE1.01 980228 テキストの先頭IFILE
  3880.     IFILE ifileTmlBody;            //WZ3.90H 980923 TMLの本文先頭IFILE
  3881.                                 // 通常はtexttopと等しい
  3882.                                 // 範囲内印刷時はtexttopを範囲の先頭にセットするので、
  3883.                                 // この場合に、ifileTmlBody <= texttopにセットされる。
  3884.     // 罫線
  3885.     FBOOL fTableKeisen;            // 内部用 罫線表mode?
  3886.     FBOOL fTableProperty;        // 表のプロパティダイアログ表示中
  3887.     // disp
  3888.     FBOOL fDispParse;            // 構文解析による字句の色分け表示を行う?
  3889.     FBOOL fDispColoring;        // 構文解析以外の色分け表示を行う?    //WZ4.00Ab 990202 new
  3890.     // 箱型選択
  3891.     DWORD wtmBoxDisped;
  3892.     FBOOL fBoxDispNeed;
  3893.     // 印刷
  3894.     LPRINT* lp;                    // 印刷情報コンテキスト
  3895.     mchar szlpstyle[CCHLPSTYLE];// 印刷スタイル名
  3896.     int pvRate;                    // 印刷プレビューの表示レート(1-2000)
  3897.                                 //WZ3.90H 980928 %だと1きざみが大きすぎるので‰に変更
  3898.     int pvRate0;                //WZ3.90H 980921 for 元に戻す
  3899.     IFILE adrFlushDispDetail;    //WZ3.90I 981106 
  3900.     WORD flpPreview:1;            // 印刷プレビュー中?
  3901.     WORD fDispDetail:1;            //WZ3.90I 981106 詳細表示?これがTRUEなら、flpPreviewもTRUEであること。
  3902.     WORD fFlushDispDetail:1;    //WZ3.90I 981106
  3903.     // html
  3904.     BBOOL fHtmlDispReduceTag;    //WZ3.90I 981027 HTMLのタグの縮小表示
  3905.     BBOOL fHtmlDispReduceAmp;    //WZ3.90I 981027 HTMLの文字参照の縮小表示
  3906.     BBOOL fHtmlTableTml;        //WZ3.90I 981027 表を解釈中?
  3907.     CBOOL fHtmlTmlConverting;    //WZ3.90O 981203 TML<->HTML変換中?
  3908.     HTMLATR* htmlatr;                //WZ3.90I 981029 
  3909. //##TEXT - TMLファイルの埋め込み設定専用
  3910. //通常ファイルでは使用頻度が低いし、それにしては設定サイズが大きいため。
  3911.     //PWZ2BETA0.3 980514 「名前を付けて保存」の初期値
  3912.     mchar szFilenameSaveAs[CCHWORD];    // 拡張子まで指定した場合はその名前で保存
  3913.                                         // "*.拡張子"の場合はファイル名はそのままで
  3914.     BYTE modeSaveAs;
  3915.         #define MODE_SAVEAS_THROUGH        0        // そのまま
  3916.         #define MODE_SAVEAS_PLAINTEXT    1        // プレーンテキストに変換して保存
  3917.         #define MODE_SAVEAS_LFTEXT        2        // 改行付きテキストに変換して保存
  3918.         #define MODE_SAVEAS_WORD        3        //PWZ2BETA0.5 980614 ワープロ用テキストに変換して保存
  3919.         #define MODE_SAVEAS_LFTEXT_TEMPLATE    99    // for WZ MAIL TEMPLATE
  3920. //##TEXT - 現在のユーザ設定(ファイルに保存されない)
  3921.     mchar szcfg[CCHSTYLENAME];    //WZ3.90I 981028 現在使用している設定の名前
  3922.                                 //WZ3.90I 981028 同じ拡張子で異なる設定を利用可能にした。
  3923.                                 // 空なら、拡張子の設定を使用
  3924.     BBOOL fAppendEof;            // EOFコードを付加するかどうか?
  3925.                                 //WZ3.90J 981110 WZ3.0とは意味が異なる。
  3926.                                 // 0:そのまま
  3927.                                 // 1:付加する
  3928.                                 // 2:EOFを取り除く
  3929.     BYTE nlineHeader;            // ページ数計算に入れないヘッダ行数
  3930.     BBOOL fDispFull;            //WZ3.90J 981109 全画面表示?
  3931. //##TEXT - 拡張子毎の設定(設定ファイルに保存される)
  3932.     int configExtGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  3933.                                 // アライメントが変わることがあるのを防止
  3934. BYTE configExtTop;                // 0:未初期化,1:初期化済み
  3935.     WORD configWidth;            // (TML埋込)折り返し幅
  3936.     int height;                    // (TML埋込)1ページの行数
  3937.     SIGNED_WORD tabsize;        // (TML埋込)タブカラム数
  3938.     BBOOL fSetWidthByWindow;    // (TML埋込)ウィンドウの幅に合わせて、表示カラム数を自動設定する
  3939.     int cyConfigSpace;            // (TML埋込)行間
  3940.                                 //WCE1.01 980307 cySpace -> cyConfigSpace
  3941.     BBOOL fDispUnder;            // アンダーライン表示
  3942.     BBOOL fDispTab;                // TABの表示
  3943.     BBOOL fDispJspace;            // 全角スペースの表示
  3944.     BBOOL fDispLf;                // CR の表示
  3945.     BBOOL fDispEof;                // EOFの表示
  3946.     BBOOL fDispLine;            // 行番号表示
  3947.     BBOOL fLineD;                // 表示行モード(1)/論理行モード(0)
  3948.                                 // 通し番号表示行(2)    //WZ4.00Bl 990913 
  3949.     SIGNED_WORD modeImeAtOpen;    // オープン時のIME制御
  3950.         #define ISF_NONE    0
  3951.         #define ISF_OFF        1
  3952.         #define ISF_ON        2
  3953.         #define ISF_ONKANA    3
  3954.     BBOOL modeFreeCursor;        // フリーカーソル OFF(0),ON(1),VZ(2)
  3955.     BBOOL fTabToSpace;            // [TAB]でスペースコードを入力
  3956.     BBOOL modeAutoIndent;        // オートインデント
  3957.         #define AUTOINDENT_NONE        0    // しない
  3958.         #define AUTOINDENT_EXEC        1    // する
  3959.         #define AUTOINDENT_JSPACE    2    // 全角スペースもする
  3960.     BBOOL fJkinsoku;            // (TML埋込)禁則
  3961.         //2.93 禁則を改良
  3962.         #define KINSOKU_OUT_HANG    1    // 追い出し、句読点ぶら下げ
  3963.         #define KINSOKU_OUT            2    // 追い出し、句読点追い出し
  3964.         #define KINSOKU_IN_HANG        3    // 追い込み、句読点も追い込み
  3965.     SIGNED_BYTE lfHeight;        // (TML埋込)フォントサイズ
  3966.     BBOOL fScrollBarV;            // 縦スクロールバー
  3967.     BYTE widthApf;                // 自動整形標準折り返し幅
  3968.     BYTE fConfigApf;            // 自動整形ON?
  3969.     BYTE indentApf;                // 自動整形インデント単位
  3970.     CHARCONVERT charconvert;    // オートコレクト
  3971.     BBOOL fAfn;                    // ファイル名の自動決定
  3972.     mchar szAfn[CCHSWORD];        // 自動決定の方法
  3973.     BYTE nConfigClm;            // (TML埋込)段数
  3974.                                 //WCE1.01 980216 nClm->nConfigClm
  3975.     mchar cszHeadline[CCHWORD];    // (TML埋込)見出し文字列
  3976.                                 // TAB区切りカラム文字列
  3977.     BBOOL modeApfu;                // 体裁認識 (PWZ1.0の段落体裁の自動認識と同じ)
  3978.         #define APFU_ON            1
  3979.         #define APFU_ARTICLESUB    2
  3980.     BBOOL fWordlap;                //WCE0.91 970911 (TML埋込)英字禁則
  3981.     BBOOL fDispStatusbar;        //WCE0.91 970911 ステータスバー
  3982.     BYTE fDispHeadlineBold;        //WCE0.91 970912 見出しを太字で表示
  3983.         //WCE1.01 980119
  3984.         // Bold  mask:0x01(COLORING_BOLD)
  3985.         // Under mask:0x02(COLORING_UNDER)
  3986.         // Color mask:0x04(COLORING_COLOR)
  3987.         #define COLORING_NONE                0
  3988.         #define COLORING_BOLD                1
  3989.         #define COLORING_UNDER                2
  3990.         #define COLORING_BOLDUNDER            3
  3991.         #define COLORING_COLOR                4
  3992.         #define COLORING_COLOR_BOLD            5
  3993.         #define COLORING_COLOR_UNDER        6
  3994.         #define COLORING_COLOR_BOLDUNDER    7
  3995.         #define COLORING_ITALIC                8    //WZ4.00Bo 991012 new (LPRINTのみ)
  3996.     mchar lfFaceName[LF_FACESIZE];//WCE0.91 970912 (TML埋込)フォント名の指定
  3997.     BBOOL fMyFont;                //WCE0.91 970912 自分専用のフォントを使用?
  3998.     BBOOL lfBold;                //WCE0.91 970912 太字で表示
  3999.     BBOOL fDispRuler;            //WCE0.91 970912 ルーラー表示
  4000.     BYTE nGageRuler;            //WCE0.91 970912 ルーラーゲージ単位(10 か 8)
  4001.     BBOOL fDispControl;            //WCE0.91 970913 制御コードを表示?(折り返しも対応)
  4002.     BBOOL fSubtitleApf;            //WCE0.91 970914 自動整形小見出有効
  4003.     BBOOL modeAcfu;                //WCE0.92 970918 自動文字体裁 認識
  4004.     BBOOL fOpenReadmode;        //WCE0.94 970921 閲覧モードで開く
  4005.     BBOOL fOutlineSplitWindow;    //WCE1.01 980312 アウトライン浮動しない?
  4006.     BYTE lcxOutlineWindow;        //WCE1.01 980312 アウトラインウィンドウの幅
  4007.     FBOOL fTxf;                    //WCE1.01 971106 TRUE:タグを非表示、FALSE:タグを表示
  4008.     FBOOL fTxfEnable;            //WCE1.01 980113 CHAR_TXFを特別に扱う?
  4009.     BYTE modeKeisen;            //WCE1.01 980116 罫線モード
  4010.     //WCE1.01 980119 headline
  4011.     COLORREF rgbHeadline;                // 見出しの色
  4012.     //WCE1.01 980119 keyword
  4013.     BYTE fDispKeyword;                    // COLORING_xxx
  4014.     wchar wszfilenameKeyword[CCHNAME];    // キーワードファイル名
  4015.     mchar szKeyword[30];                // 即席キーワード指定
  4016.     COLORREF rgbKeyword;                // キーワードの色
  4017.     //WCE1.01 980119 検索文字列の色分け
  4018.     BYTE fDispFind;                // 検索後に検索文字列を色分け?
  4019.     COLORREF rgbFind;            // その色
  4020.     //WCE1.01 980126 
  4021.     BBOOL fWidthInfinity;        // 折り返しなし?
  4022.                                 ////WCE1.01 980126  nlineのカウントなど、もっと最適化できる。
  4023.     BBOOL fApfu2;                // 「タブ体裁」?
  4024.     //WCE1.01 980201 世代管理
  4025.     BBOOL fUnlimitUndoBuff;        // アンドゥバッファサイズを制限しない?
  4026.     WORD kbGeneBuffMax;            // 世代管理保持の最大サイズ(KB)
  4027.     BBOOL fGeneEnable;            // 世代管理を行う?
  4028.     //WCE1.01 980202 色分け
  4029.     BBOOL fDispComment;            // コメントを色分け?
  4030.     COLORREF rgbComment;        // コメントの色
  4031.     BBOOL fDispString;            // 文字列を色分け?
  4032.     COLORREF rgbString;            // 文字列の色
  4033.     BBOOL fDispConst;            // 定数を色分け?
  4034.     COLORREF rgbConst;            // 定数
  4035.     BBOOL fDispPreprocessor;    // プリプロセッサを色分け?
  4036.                                 // 2なら、#if/else/endifも条件で色分け    //WZ4.00Bl 990921 
  4037.     COLORREF rgbPreprocessor;    // プリプロセッサ
  4038.     BBOOL fDispTag;                // タグを色分け?
  4039.     COLORREF rgbTag;            // タグ
  4040.     COLORREF rgbHottext;        // リンク
  4041.     BYTE filekind;                // ファイルの種類
  4042.         #define TEXT_PLAIN        0    // プレーンテキスト
  4043.         #define TEXT_APFU        1    // 体裁認識テキスト
  4044.         #define TEXT_DOCUMENT    2    // タブ体裁テキスト
  4045.         #define TEXT_WZ            3    // TML文書
  4046.         #define TEXT_HTML        4    // HTML文書
  4047.         #define TEXT_XML        5    // XML文書
  4048.         #define TEXT_TEXT        6    // 任意のテキスト
  4049.         #define TEXT_PROGRAM    7    // プログラムファイル(ワーク)
  4050.         //
  4051.         #define TEXT_C            100    // Cプログラム
  4052.         #define TEXT_PASCAL        101    // pascalプログラム
  4053.         #define TEXT_FORTRAN    102    // fortranプログラム
  4054.         #define TEXT_SCRIPT        103    // スクリプトプログラム
  4055.         #define TEXT_ASM        104    // アセンブラプログラム
  4056.         #define TEXT_BASIC        105    // BASICプログラム
  4057.     BBOOL fDispURL;                // URLの色分け?
  4058.     BBOOL fApfArticleSpace;        //WCE1.01 980206 自動整形で、箇条書きの後に余白を空ける?
  4059.                                 // TXF、体裁認識の箇条書きの体裁と合わせるために付けた
  4060.     mchar szEditor[CCHNAME];    //WCE1.01 980209 エディタ名
  4061.     BBOOL fNoDispHeadlineString;//WCE1.01 980212 見出しを表示しない?
  4062.     BBOOL fApfuTab;                //WCE1.01 980217 段落先頭のタブを字下げとみなす?
  4063.     BBOOL fHeadlineStringStd;    //PWZ2BETA0.3 980509 標準の見出し文字列を使用?
  4064.     BBOOL fDispQuote;            //PWZ2BETA0.3A 980526 引用を色分け?
  4065.     COLORREF rgbQuote;            //PWZ2BETA0.3A 980526 引用の色
  4066.     BBOOL fApfJspaceIndentTop;    //PWZ2BETA0.3A 980526 自動整形で、全角空白は行頭の字下げとみなす?
  4067.     BBOOL fApfScenario;            //PWZ2BETA0.5 980617 シナリオ整形を行う?
  4068.     BYTE lcxScenarioSerifuIndent;//PWZ2BETA0.5 980618 せりふの2行目のインデント数
  4069.                                 // 0を指定すると標準値(2)になります。
  4070.     //WZ3.90E 980804 
  4071.     BYTE modeWs;                // ウィンドウサイズモード
  4072.         #define WS_PAGE            0    // ページサイズで指定
  4073.         #define WS_MAX            1    // 最大化
  4074.         #define WS_DESTEXT        2    // 中身を指定
  4075.     WORD lcxWindowDefault;        // ウィンドウの幅
  4076.     WORD lcyWindowDefault;        // 高さ
  4077.     FBOOL fVertical;            //WZ3.90I 981013 (TML埋込)縦書き?
  4078.     BBOOL fVH;                    //WZ3.90I 981015 縦中横?
  4079.     BBOOL fPageTurn;            //WZ3.90I 981015 ページめくりモード?
  4080.     BBOOL fDispToolbar;            // ツールバー表示        実効値はtxGetDispToolbar()
  4081.     BBOOL fDispFunctionKey;        //WZ3.90I 981107 ファンクションキーの表示
  4082.     BBOOL fDispTitlebar;        //WZ3.90J 981109 タイトルバーを表示?
  4083.     BBOOL fDispMenubar;            //WZ3.90J 981109 メニューバーを表示?
  4084. #if !POCKETWZ
  4085.     // 外部ヘルプ
  4086.     #define HELP_N    2
  4087.     mchar tszhelp[HELP_N][CCHWORD];
  4088. #endif
  4089.     BYTE modeConvertSpaceAtSave;    //WZ3.90J 981109 保存時にタブをスペースに変換
  4090.                         // 0:変換しない
  4091.                         // 1:tab->spc
  4092.                         // 2:spc->tab
  4093.     BYTE modeConvertKanaAtSave;        //WZ3.90J 981109 保存時のカタカナの変換
  4094.                         // 0:変換しない
  4095.                         // 1:半角->全角
  4096.                         // 2:全角->半角
  4097.     BBOOL fDeleteTailSpaceAtSave;    //WZ3.90J 981109 保存時に行末の空白を除去
  4098.     BBOOL fConfigBinedit;        //WZ3.90J 981109 バイナリ編集を開始
  4099.     BBOOL fAutoFormat;            //WZ3.90J 981109 オートフォーマット
  4100.     BYTE cxSpace;                //WZ3.90J 981109 字間
  4101.     BBOOL fDispRightMargin;        //WZ3.90J 981109 右マージンの表示
  4102.     BBOOL fApfuBeamtab;            //WZ3.90K 981114 段落先頭以外のタブを桁揃えする?
  4103.     BBOOL fScrollBarH;            // 横スクロールバー
  4104.                                 //WZ4.00A 981227 横スクロールバーの設定が保存されてなかった。txcマクロの再コンパイル必要。
  4105.         #define SCROLLBAR_OFF    0
  4106.         #define SCROLLBAR_ON    1
  4107.         #define SCROLLBAR_AUTO    2    //2.99D 970329 2:自動を追加
  4108.     BBOOL fOutlineDispHeadstr;    //WZ4.00Bj 990824 
  4109. #if !WINDOWSCE
  4110.     mchar szlpstyleStd[CCHLPSTYLE];    //WZ4.00Bj 990830 標準の印刷スタイル名
  4111.     mchar szToolbar[CCHNAME];        //WZ4.00Bl 990909 ツールバーの名前
  4112.     mchar szMenu[CCHNAME];            //WZ4.00Bl 990909 メニューバー
  4113.     mchar szMenuMouseR[CCHNAME];    //WZ4.00Bl 990909 マウス右クリックメニュー
  4114.     mchar szMenuMouseRClip[CCHNAME];//WZ4.00Bl 990909 選択時のマウス右クリックメニュー
  4115. #endif
  4116.     SEARCHMODE searchmodeInit;    //WZ4.00Bl 990908 検索モード
  4117.     BYTE lcxLinenum;            //WZ4.00Bl 990916 行番号の表示桁数(0=標準)
  4118. #if WINDOWSCE
  4119.     mchar cszCondition[CCHSWORD];    //WZ4.00Bl 990922 #if色分け条件 ,で区切って複数指定可
  4120. #else
  4121.     mchar cszCondition[CCHWORD];    //WZ4.00Bl 990922 #if色分け条件 ,で区切って複数指定可
  4122. #endif
  4123.     BBOOL fApfuBeamtabInfinity;    //WZ4.00Bl 990923 桁揃えタブの行は折り返ししない?
  4124. BYTE configExtEnd;
  4125. //##TEXT - 共通設定(設定ファイルに保存される)
  4126.     int configShareGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  4127.                                 // アライメントが変わることがあるのを防止
  4128. BYTE configShareTop;            // 0:未初期化,1:初期化済み
  4129.     BBOOL fUndoContinue;        // 連続アンドゥ
  4130.                                 // カーソルを移動しないで行った
  4131.                                 // 挿入・削除・BSを一回の操作で一括アンドゥ
  4132.     BBOOL fJumpCursorCenter;    // ジャンプ後カーソルを画面の中央へ
  4133.     BYTE modeDispSearch;        // WINDOWSCE
  4134.         #define DISPSEARCH_STANDARD    0    // 標準(modeEditorによって異なる)
  4135.         #define DISPSEARCH_NORMAL    1    // 通常表示
  4136.         #define DISPSEARCH_REVERSE    2    // 反転表示
  4137.         #define DISPSEARCH_SELECT    3    // 選択
  4138.     BBOOL fSpaceLeft;            // 左端を空ける
  4139.     BYTE modeEditor;            // キー配列
  4140.         #define ME_WIN        0
  4141.         #define ME_VZ        1
  4142.         #define ME_MI        2
  4143.         #define ME_EMACS    3    //PWZ2BETA0.5 980617 new
  4144.     SIGNED_WORD nCursorFaceInsert;    // カーソル形状 (挿入)
  4145.     SIGNED_WORD nCursorFaceWrite;    // カーソル形状 (上書)
  4146.         #define CURSORFACE_STANDARD    0    // 標準(modeEditorによって異なる)
  4147.                                         // WINDOWSCE
  4148.         #define CURSORFACE_WINDOWS    1    // Windows標準
  4149.         #define CURSORFACE_FULL        2    // フル
  4150.         #define CURSORFACE_HALF        3    // 縦半分
  4151.         #define CURSORFACE_HALFHALF    4    // 縦1/4
  4152.         #define CURSORFACE_UNDERBAR    5    // アンダーバー
  4153.     BBOOL fJumpTxPasteEnd;        // VZ - ブロックペースト後カーソル位置更新
  4154.     BBOOL fSearchTitle;            // VZ - タイトルサーチモード有効
  4155.     WORD kbUndoBuffMax;            // アンドゥバッファの最大サイズ(KB)
  4156.     BYTE modeImeComposition;    // 変換中文字列の表示方法
  4157.         #define IMECOMP_WINDOW        0    // 変換ウィンドウで表示
  4158.         #define IMECOMP_CURSOR        1    // カーソル位置に表示
  4159.         #define IMECOMP_CURSORIME    2    // IMEの描画でカーソル位置に表示    //WZ4.00Aa 990110 new
  4160.         #define IMECOMP_INLINE        3    // インラインに表示(未完成)    //WZ4.00Aa 990110 2->3
  4161.     COLORREF rgbText;            // 通常のテキスト
  4162.     COLORREF rgbBack;            // 背景
  4163.     COLORREF rgbBlockText;        // ブロック内の文字色
  4164.     COLORREF rgbBlock;            // ブロック
  4165.     COLORREF rgbNline;            // 行番号
  4166.     COLORREF rgbUnderline;        // アンダーライン
  4167.     COLORREF rgbControl;        // 制御文字の色
  4168.     COLORREF rgbURL;            // URLの色
  4169.     BBOOL fUseMenuKey;            // @<英字キー>,@[特殊キー] 入力可
  4170.     BYTE modeTagJump;            // タグジャンプオプション
  4171.         #define TAGJUMP_STD    0    // 標準
  4172.         #define TAGJUMP_VZ    1    // VZのタグジャンプも認識
  4173.     // 自動保存
  4174.     BBOOL fAutoSave;            // オートセーブを行う?
  4175.     BYTE autosaveMode;            //WCE 970902 WZ3.0とは実際値が違う
  4176.         #define AUTOSAVE_BACKUP            0
  4177.         #define AUTOSAVE_OVERWRITE        1
  4178.     BYTE autosaveAtQuit;
  4179.         #define AUTOSAVE_QUIT_NONE        0
  4180.         #define AUTOSAVE_QUIT_DELETE    1
  4181.         #define AUTOSAVE_QUIT_BACKUP    2
  4182.     BYTE autosaveAtOpen;        //WCE 970902 WZ3.0とは実際値が違う
  4183.         #define AUTOSAVE_OPEN_NONE            0
  4184.         #define AUTOSAVE_OPEN_MESSAGE        1
  4185.         #define AUTOSAVE_OPEN_UIATTENTION    2
  4186.         #define AUTOSAVE_OPEN_UIBACKUP        3
  4187.         #define AUTOSAVE_OPEN_UIREPLACE        4
  4188.         #define AUTOSAVE_OPEN_REPLACE        5
  4189.         #define AUTOSAVE_OPEN_UIBACKUPFORCE    6    //WZ3.90J 981108 new
  4190.     WORD nAutoSaveCmd;            // 編集コマンド数
  4191.     WORD secAutoSaveWait;        // 待ち時間
  4192.     //
  4193.     BBOOL fCursorMoveBySB;        //WCE0.92 970918 スクロールバーでカーソル移動?
  4194.     BYTE modeKeyClip;            // SHIFT+矢印での選択モード
  4195.         #define MC_CUA    0        // Windows準拠
  4196.         #define MC_WZ    1        // 開始方向感応
  4197.         #define MC_VZ    2        // 方向感応(VZライク)
  4198.     BYTE modeMouseClip;            // マウスでの選択モード
  4199.     BBOOL modeUseTextstack;        //WCE0.93 970920 テキストスタックを使うか?
  4200.         #define TEXTSTACK_OFF        0
  4201.         #define TEXTSTACK_ON        1
  4202.         #define TEXTSTACK_ON_AT_VZ    2
  4203.     SIGNED_BYTE nDispFileHist;    //WCE1.01 980203 メニューヒストリ表示数(0..70)
  4204.     BBOOL fNoClmMove;            //WCE1.01 980312 ←→で段の移動をしない
  4205.     BYTE modeRe;                //WZ3.90H 980908 正規表現の動作モード
  4206.         #define MODERE_WZ        0
  4207.         #define MODERE_VWXW        1
  4208.         #define MODERE_VWXWEX    2
  4209.     BBOOL fDispPathFull;        //WZ3.90I 981103 ファイル名をフルパスで表示?
  4210.     BBOOL fClipboardNoSelect;    //WZ3.90I 981103 選択されてないときもコピー、カットする?
  4211.     BBOOL fHalfPage;            //WZ3.90I 981103 PAGEUP/PAGEDOWN半画面?
  4212.     BBOOL fSetLocateByMouseFocus; //WZ3.90I 981103 アクティブ時に、クリック位置に移動する
  4213.     BBOOL fOutlineSplitLeft;    //WZ3.90I 981103 アウトラインを左側に表示?
  4214.     BBOOL fDispCharcode;        //WZ3.90J 981107 文字コードの表示?
  4215. #if !WINDOWSCE
  4216.     //WZ3.90J 981108 バックアップ
  4217.     BBOOL fBackup;                // バックアップファイルの作成
  4218.     mchar szBackup[CCHWORD];    // バックアップ作成フォルダ
  4219. #endif
  4220.     BBOOL fCursorNoLf;            //WZ3.90J 981109 カーソル横移動で行をまたがらない
  4221.     BBOOL fTxkeyVertical;        //WZ3.90J 981109 縦書き時にtxkeyUp,Down,Left,Rightの縦横を入れ替え
  4222.     BBOOL modeMouseHide;        //WZ3.90J 981109 マウスカーソルを消すかどうか?
  4223.         #define MOUSEHIDE_CHAR    0    // 文字入力で消す
  4224.         #define MOUSEHIDE_NONE    1    // 消さない
  4225.         #define MOUSEHIDE_KEY    2    // キー入力で消す
  4226.     BBOOL modeMouseFace;        //WZ3.90J 981109 マウスカーソルの形状 1:arrow,0:Ibeam
  4227.     BYTE nSpaceTopH;            //WZ3.90J 981109 横書き時、上端を空けるドット数
  4228.     BYTE nSpaceTopV;            //WZ3.90J 981109 縦書き時、右端と左端を空けるドット数
  4229.     BBOOL fConfirmNewFile;        //WZ3.90J 981109 新規ファイルの確認
  4230.     //WZ3.90J 981110 スクロールの加速
  4231.     BYTE nKeyScrollAccStart;    // 加速開始行数
  4232.     BYTE nKeyScrollAcc;            // 加速中の一度にスクロールする行数
  4233.     BYTE nCursorScrollH;        // 左右のスクロールを何文字毎に行うか
  4234.                                 //WZ3.90J 981110 設定ファイルに保存するようにした
  4235.     //WZ3.90J 981110 自動スクロール
  4236.     BYTE iScrollSpeed;            // スムーススクロール速度 (0..9)
  4237.     BBOOL fVzEs;                // txJumpScreenTop,txJumpScreenEnd 2回でスムーススクロール
  4238.     WORD mbCheckFilesize;        //WZ3.90K 981112 これ以上のファイルを開くときは確認ダイアログを出す
  4239. #if !WINDOWSCE
  4240.     //WZ3.90O 981202 IME変換文字の色を指定できるようにした。テキストと背景色が同じなら規定の色を使う。
  4241.     COLORREF rgbImeText;        // IME変換文字のテキスト
  4242.     COLORREF rgbImeBack;        // IME変換文字の背景。
  4243.     COLORREF rgbImeHiText;        // 注目中のIME変換文字のテキスト
  4244.     COLORREF rgbImeHiBack;        // 注目中のIME変換文字の背景
  4245. #endif
  4246.     BBOOL fClipboardNoDD;        //WZ3.90O 981204 D&Dでカットアンドペーストしない?
  4247. #if !WINDOWSCE
  4248.     BBOOL fNoSaveWindowPos;        // ウィンドウ位置をセーブしない    //WZ4.00Ab 990203 new
  4249.     BBOOL fNoSaveEditContext;    // カーソル位置をセーブしない    //WZ4.00Ab 990203 new
  4250.     BBOOL fOutlineSplitExtend;    //WZ4.00Bj 990824 分割アウトラインを表示しても本文ウィンドウサイズが変化しない設定を追加
  4251. #endif
  4252.     BBOOL fOutlineNoButton;        //WZ4.00Bj 990824 アウトラインにボタンを表示するかどうか設定できるようにした。
  4253.     BBOOL fNoDispSmlower;        //WZ4.00Bl 990913 
  4254.     BBOOL fNoAutoSaveFD;        //WZ4.00Bl 990914 
  4255.     BBOOL fOutlineJumpLyTop;    //WZ4.00Bj 990824 アウトラインにボタンを表示するかどうか設定できるようにした。
  4256.     BBOOL fScrollBarProp;        //WZ4.00Bl 990920 プロポーショナルスクロールバー?
  4257.     BBOOL fOutlineTextfont;        //WZ4.00Bl 990924 テキストのフォントで表示?
  4258. BYTE configShareEnd;
  4259. };
  4260.  
  4261. #define SIZE_TXCONFIGEXT        (&text1->configExtEnd - &text1->configExtTop)
  4262. #define SIZE_TXCONFIGSHARE        (&text1->configShareEnd - &text1->configShareTop)
  4263. #define SIZE_CONFIGSHARE        (&sh->configEnd - &sh->configTop)
  4264. #define SIZE_PERMANENT            (&sh->permanentEnd - &sh->permanentTop)
  4265.  
  4266. IBUFF _ibuffparaPreColoring;    //WZ4.00Bl 990921 
  4267.  
  4268. //##macro functions
  4269. #define LoadCurAtr(text)        
  4270. #define txGetApfu(text)                (text->modeApfu || text->fApfu2 || text->fApfuBeamtab || text->fApfuTab)    //WZ3.90L 981115 fApfuBeamtabとfApfuTabを追加
  4271. #define txGetUseTextstack(text)        ((text->modeUseTextstack == TEXTSTACK_ON) || (text->modeUseTextstack == TEXTSTACK_ON_AT_VZ && text->modeEditor == ME_VZ))
  4272. #define txGetLcySmlower(text)        (text->lcySmlower + text->fAddSmlower)
  4273. //#define txGetDispSearch(text)            (text->modeDispSearch != DISPSEARCH_NORMAL)
  4274. #define txGetDispSearch(text)            (!(text->modeDispSearch == DISPSEARCH_NORMAL || (text->modeDispSearch == 0 && text->modeEditor == ME_VZ)))    //WZ3.90P 981204 VZの見つけた文字の表示は「通常表示」に変更した。
  4275. #define txGetNoReplaceSelSearch(text)    (text->modeDispSearch == DISPSEARCH_REVERSE || (text->modeDispSearch == 0 && text->modeEditor != ME_WIN))
  4276. #define hwndtextIsTxwsText(hwnd)    (GetWindowLong(hwnd,GWL_STYLE) & TXWS_TEXT)
  4277. #define txGetMultiClmTextmode(text)    (text->nClm >= 2)    // テキストモード専用
  4278. #define txGetViewmode(text)            (text->fSemiViewMode || text->fEditViewMode)
  4279. #define txGetEditable(text)            (text->fEditable && !text->fReadMode)    //WCE1.01 980426 
  4280. #define txGetLineD(text)            (text->fLineD || text->fBinedit)
  4281. #define txGetDispLineNo(text)        (IsAtPrint(text) ? text->lp->fDispLineNo : text->fDispLine)
  4282. #define txGetPageTurnLp(text)        (text->hdcPrinter)    // 印刷/印刷プレビュー時で、ページめくりモード?
  4283. #define txGetPageTurn(text)            (text->fPageTurn && text->height && !text->hdcPrinter)    // 通常時で、ページめくりモード?
  4284. #define xToClient(text,x)            (text->cxBase + text->xbase + x)
  4285. #define xToClientEx(text,x,cxBase)    (cxBase + text->xbase + x)
  4286. #define txGetCySpace(text)            (text->cySpace)
  4287. #define txLpGetCxLinenoBinedit(text)    (text->cxLetter*9)    //WZ4.00Bj 990831 
  4288. #if WZFUNC_PRINT
  4289.     #define IsAtPrint(text)            (text->hdcPrinter)    // 印刷プレビューまたは印刷時
  4290.     #define txGetPrinting(text)        (text->hdcPrinter && !text->flpPreview)    // 印刷中?
  4291. #else
  4292.     #define IsAtPrint(text)            (FALSE)
  4293.     #define txGetPrinting(text)        (FALSE)
  4294. #endif
  4295. #define txGetProp(text)                (text->lfEditProp || text->hdcPrinter)    // プロポーショナルフォントの可能性。
  4296. #define txGetTexttopEnable(text)    (text->fTxf || text->mailedit)    //WCE1.01 980329 
  4297. #if 1//WZ4.00Bl 990925 
  4298.     #define txGetConfigtextValid(text)    (text->fConfigtext)    //WZ4.00Bl 990925 新規作成ウィザードで作成したTML文書の埋め込み設定を修正。
  4299. #else
  4300.     #define txGetConfigtextValid(text)    (text->fConfigtext && text->szcfg[0] == 0)    //WZ3.90I 981028 埋め込み設定が有効かどうか返す
  4301. #endif
  4302. #define txGetOriginalCaret(text)    (text->fOriginalCaret)
  4303. #define txGetCurNpara(text)            (text->fScrollSB ? text->nparaSB : text->npara)    //WZ3.90L 981123 WZ FILERでスクロールバースクロールすると矩形枠と選択表示が分離した
  4304. #define CheckOverWrite(text,old)    TRUE
  4305. #define structClear(bodystruct)        (memset(&(bodystruct),0,sizeof(bodystruct)))
  4306. #define __WZ2__    0
  4307. #define __ERR__
  4308. #define __FLAT__
  4309.  
  4310. #define TEXT_BUFF1    0    // buffaddress = offset
  4311. #define TEXT_BUFF2    1    // buffaddress = offset - (text->cur - text->cur0)
  4312. #define TEXT_BUFF0    2    // (offset < text->cury) ? TEXT_BUFF1 : TEXT_BUFF2
  4313.  
  4314. #define CXCONTROLCHAR    8
  4315. // WINDOWSCE cxCharがCXCONTROLCHARより小さいことがある
  4316. #define txGetCxControlChar(text)    (CXCONTROLCHAR <= text->cxChar ? CXCONTROLCHAR : text->cxChar)
  4317.  
  4318. //##STRBLK/ヒストリ
  4319.  
  4320. // 標準ヒストリ
  4321. typedef int HHIST;
  4322. #define HIST_NULL        0            // 内部ワーク用
  4323.                                     // WINDOWSCE:使用不可
  4324. #define HIST_FILE        ((HHIST)1)    // ファイル名
  4325. #define HIST_SEARCH        ((HHIST)2)    // 検索文字列
  4326. #define HIST_PATH        ((HHIST)3)    // パス文字列
  4327. #define HIST_STR        ((HHIST)4)    // 最近入力した文字列
  4328. #define HIST_COPY        ((HHIST)5)    // コピーした文字列
  4329. #define HIST_IME        ((HHIST)6)    // IMEに入力した文字列
  4330. #define HIST_DELSTR        ((HHIST)7)    // 削除した文字列
  4331. #define HIST_JUMP        ((HHIST)8)    // カーソル位置    //WZ3.90H 980928 new
  4332. #define MAXHIST                    9    // ハンドルの個数
  4333. #define DEFAULT_SIZEHIST    512        // デフォルト ヒストリサイズ
  4334. #if WINDOWSCE
  4335.     #define SIZEHIST_JUMP        1024
  4336.     #define SIZEHIST_UNDELETE    1024    //XZ0.20 990825 
  4337. #else
  4338.     #define SIZEHIST_JUMP        4096
  4339.     #define SIZEHIST_UNDELETE    8192    //XZ0.20 990825 
  4340. #endif
  4341.  
  4342. // share構造体に置くためだけに、データ構造を公開する。
  4343. // ユーザーは、メンバを参照してはいけない。
  4344. typedef struct tagSTRBLK {
  4345.     LPBYTE buff;
  4346.     LPBYTE ptail;
  4347.     WORD sizebuff;        // buffのサイズ
  4348.     WORD nstr;            // 文字列数
  4349.     WORD unit;            // 拡大単位
  4350.     FBOOL fShared;
  4351.     FBOOL fCustData;
  4352.     // WORD bit field
  4353.     WORD fSenseCase:1;
  4354.     WORD fstatic:1;        // for internal
  4355.     WORD fAlloc:1;        //2.90 buff is allced by strblk
  4356.     WORD fAllocEx:1;
  4357.     WORD fReverse:1;    // hist用にiを反転させる
  4358.     WORD reserved:11;
  4359.     // WORD bit field end
  4360.     LPBYTE pfound;
  4361. } STRBLK,*HSTRBLK;
  4362.  
  4363. HSTRBLK TXAPI_(409) sbNewStatic(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4364. HSTRBLK TXAPI_(410) sbNewStaticShare(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4365. HSTRBLK TXAPI_(411) sbNew(LPBYTE buff,WORD sizebuff);
  4366. HSTRBLK TXAPI_(412) sbNewAlloc(WORD sizebuff);
  4367. HSTRBLK TXAPI_(413) sbNewAllocEx(WORD sizebuff);
  4368. void TXAPI_(414) sbSetBuff(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  4369. LPVOID TXAPI_(415) sbGetBuff(HSTRBLK sb);
  4370. BOOL TXAPI_(416) sbReverse(HSTRBLK sb);
  4371. void TXAPI_(417) sbSetSenseCase(HSTRBLK sb,BOOL fSet);
  4372. BOOL TXAPI_(418) sbGetSenseCase(HSTRBLK sb);
  4373. void TXAPI_(419) sbSetCustData(HSTRBLK sb,BOOL fSet);
  4374. BOOL TXAPI_(420) sbGetCustData(HSTRBLK sb);
  4375. void TXAPI_(421) sbSetReverse(HSTRBLK sb,BOOL fSet);
  4376. void TXAPI_(422) sbDelAll(HSTRBLK sb);
  4377. BOOL TXAPI_(423) sbObjectLoadMem(HSTRBLK sb,LPVOID p,int len);
  4378. int TXAPI_(424) sbObjectGetSize(HSTRBLK sb);
  4379. BOOL TXAPI_(425) sbObjectSave(HSTRBLK sb,HANDLE hf);
  4380. BOOL TXAPI_(426) sbObjectSaveMem(HSTRBLK sb,LPVOID p);
  4381. mchar* TXAPI_(427) sbAdd(HSTRBLK sb,mchar *szstr);
  4382. mchar* TXAPI_(248) sbAddW(HSTRBLK sb,wchar* szstr);
  4383. int TXAPI_(428) sbiPreSearch(HSTRBLK sb,mchar *szstr);
  4384. int TXAPI_(429) sbiSearch(HSTRBLK sb,mchar *szstr);
  4385. BOOL TXAPI_(430) sbSearch(HSTRBLK sb,mchar *szstr);
  4386. int TXAPI sbiSearchLen(HSTRBLK sb,mchar* szstr,int lch);
  4387. BOOL TXAPI_(431) sbDel(HSTRBLK sb,mchar *szstr);
  4388. mchar* TXAPI_(432) sbAddHist(HSTRBLK sb,mchar *szstr);
  4389. mchar* TXAPI_(433) sbInsert(HSTRBLK sb,int i,mchar* szstr);
  4390. mchar* TXAPI_(434) sbAddHistW(HSTRBLK sb,wchar* szstr);
  4391. mchar* TXAPI_(435) histAdd(HHIST hist,mchar* szstr);
  4392. mchar* TXAPI_(436) histAddW(HHIST hist,wchar* szstr);
  4393. int TXAPI_(437) sbGetCount(HSTRBLK sb);
  4394. int TXAPI_(438) sbReverseI(HSTRBLK sb,int i);
  4395. mchar* TXAPI_(439) sbRead(HSTRBLK sb,int istr);
  4396. #define sbReadHist(sb,i)    sbRead(sb,sbGetCount(sb) - (i) - 1)
  4397. mchar* TXAPI sbReadLast(HSTRBLK sb);
  4398. DWORD TXAPI_(440) sbReadCustdata(HSTRBLK sb,int istr);
  4399. BOOL TXAPI_(441) sbWriteCustdata(HSTRBLK sb,int istr,DWORD CustData);
  4400. BOOL TXAPI_(442) sbDelI(HSTRBLK sb,int i);
  4401. mchar* TXAPI_(443) sbRead2(HSTRBLK sb,int istr,WORD* lchstr);
  4402. int TXAPI_(444) sbiSearchPrev(HSTRBLK sb,mchar *szstr,int istr);
  4403. int TXAPI_(445) sbiSearchNext(HSTRBLK sb,mchar *szstr,int istr);
  4404. BOOL TXAPI_(446) sbDelete(HSTRBLK sb);
  4405. HHIST TXAPI_(447) sbToHist(HSTRBLK sb);
  4406. HSTRBLK TXAPI_(448) sbFromHist(HHIST hist);
  4407. HSTRBLK TXAPI_(449) sbSetup(HSTRBLK sb,mchar** tszItem,DWORD* tIdItem);
  4408. HSTRBLK TXAPI_(450) sbSetupInteger(HSTRBLK sb,int* tItem,int nItem);
  4409. int TXAPI_(519) ComboBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4410. int TXAPI_(520) ComboBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4411. int TXAPI_(521) ComboBox_SetHist(HWND hctrl,HHIST hist);
  4412. int TXAPI_(522) ComboBox_SetHistSearch(HWND hctrl);
  4413. int TXAPI_(523) ListBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4414. int TXAPI_(524) ListBox_SetStrblkFirstclm(HWND hctrl,HSTRBLK sb);
  4415. int TXAPI_(525) ListBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4416. int TXAPI_(526) ListBox_SetStrblkHistFirstclm(HWND hctrl,HSTRBLK sb);
  4417. void TXAPI sbReduce(HSTRBLK sb);
  4418. void stdlibInit(void);
  4419. HSTRBLK sbSetupDrive(void);
  4420. HSTRBLK sbSetupInttable(HSTRBLK sb,int* table);
  4421. HSTRBLK sbSetupLfHeight(HSTRBLK sb);
  4422. HSTRBLK sbSetupWeight(HSTRBLK sb);
  4423.  
  4424. //ユーザヒストリ
  4425. HSTRBLK TXAPI_(278) historyOpen(mchar* szName,int cbHistBuff);
  4426. void TXAPI_(279) historyClose(mchar* szName,HSTRBLK sb);
  4427. void historyDelete(HSTRBLK sb);
  4428.  
  4429. //##SHARE
  4430. // このメンバにはポインタは配置できない。
  4431. // ポインタの指すメモリがプロセス毎に異なるため。
  4432.  
  4433. #define MAXOPEN            100        // 最大プロセス数
  4434. #define MAXOPENAP        20        // 最大(Filer,Grep,...)数
  4435. typedef struct {
  4436.     HWND hwnd;                // hwndbase
  4437.     WORD fCloseEvery:1;        // CloseEvery実行済み?    //PWZ2BETA0.3 980508 FBOOL->bitfield
  4438.     WORD fMailEditor:1;        //PWZ2BETA0.3 980508 WZ MAIL EDITOR?
  4439.     WORD fSearched:1;        //WZ4.00Bl 990916 SEARCH_ALLTEXT済?
  4440. } WZPROCESS;
  4441.  
  4442. #if WINDOWSCE
  4443.     #define MAXPROFILE    20
  4444. #else
  4445.     // Win95では、速度より便利さを求める。沢山覚えてくれていたほうが便利。
  4446.     #define MAXPROFILE    100
  4447. #endif
  4448. typedef struct {
  4449.     WORD lchFilename;                // パス名の長さ
  4450.                                     // 0なら無効レコード
  4451.     wchar wszfilename[CCHPATHNAME];    // パス名
  4452.     // window pos
  4453.     SIGNED_WORD window_left;
  4454.     SIGNED_WORD window_top;
  4455.     SIGNED_WORD window_right;
  4456.     SIGNED_WORD window_bottom;
  4457.     // current position
  4458.     NPARA npara;                    // 行番号
  4459.     WORD ich;                        // 段落先頭からのバイト数
  4460.     BYTE ly;                        // カーソルy座標
  4461.     IFILE address;                    // カーソル位置
  4462.     //
  4463.     WORD editmode:2;                // editmode
  4464.     WORD dispstylemode:2;            // 表示スタイル
  4465.     WORD fOutline:1;                // アウトラインウィンドウ
  4466.     WORD fMaximized:1;                //WZ4.00Ad 990211 最大化で閉じられた
  4467.     WORD freserved:10;
  4468.     IFILE mark[MAXMARK];            // マーク位置
  4469.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.92 970918 最近参照した位置
  4470.     BYTE iAdrRefer;                    // tAdrRefer参照ポインタ
  4471.     mchar szlpstyle[CCHLPSTYLE];    //WCE1.01 980211 印刷スタイル名
  4472.     RECT rectTempWindow;            //WZ3.90H 980915 一時ウィンドウの位置
  4473.     WORD pvRate;                    //WZ3.90H 980921 印刷プレビューの倍率
  4474.     mchar szcfg[CCHSTYLENAME];        //WZ3.90I 981028 設定名
  4475.     BYTE rateOutline;                //WZ4.00Bj 990824 アウトラインの画面比率
  4476.     IFILE adrLastEdit;                //WZ4.00Bj 990824 最後に編集した位置
  4477. } PROFILE;
  4478.  
  4479. #define MAX_KEYMACRO        5
  4480. #define SIZE_KEYMACROBUFF    1024
  4481. typedef struct {
  4482.     mchar szname[CCHNAME];            // 名前
  4483.     WORD len;                        // buff内のデータの長さ
  4484.     BYTE buff[SIZE_KEYMACROBUFF];    // buff
  4485. } KEYMACRO;
  4486.  
  4487. #define DIRECTORYATR_N    3
  4488. typedef struct {
  4489.     mchar cvszDirectory[CCHPATHNAME];    // パス列
  4490.     BYTE kc;                            // 漢字コード
  4491.     BYTE cr;                            // 改行コード
  4492. } DIRECTORYATR;
  4493.  
  4494. #if WINDOWSCE
  4495.     #define wszShareId        L"PWZ20_Mem"    // __VERSION__
  4496. #else
  4497.     #define wszShareId        L"WZ40_Mem"        // __VERSION__
  4498. #endif
  4499.  
  4500. typedef struct tagSHARE {
  4501.     int nOpen;                        // 起動中の表PWZ Editorウィンドウ数
  4502.                                     // PWZアプリケーション(Filer,Grep,etc)は除く
  4503.     WZPROCESS tWzprocess[MAXOPEN];    //1.99C 起動中の表PWZ Editorウィンドウのモード
  4504.                                     // 起動された順序で入っている
  4505.                                     // 有効な要素は、[0]から[nOpen-1]まで
  4506.                                     // WZアプリケーション(Filer,Grep,etc)は除く
  4507.     int nOpenAp;                    // 起動中のWZアプリケーション(Filer,Grep,etc)
  4508.                                     // の数
  4509.     HWND tOpenAp[MAXOPENAP];        // //WZ4.00Bl 990912 起動中のWZアプリケーションのhwnd
  4510.                                     // 有効な要素は、[0]から[nOpenAp-1]まで
  4511.     TX textConfig;                    // 設定データを保持するtext
  4512.                                     // shared text
  4513.     BYTE reservedSC[4];                // 4バイトは確保しておくこと!
  4514.     WORD sizehist[MAXHIST];            // ヒストリバッファのサイズを指定(デフォルト:512)
  4515.     STRBLK hist[MAXHIST];            // ヒストリ
  4516.                                     // 複数のインスタンスで共有するので、
  4517.                                     // ヒストリ用のHSTRBLKの実体は、shareで定義する。
  4518.                                     // shareで定義しないと、ヒストリ用のHSTRBLKは
  4519.                                     // インスタンス毎に持たれてしまい、異常動作する
  4520.     BYTE buffhist[9216+SIZEHIST_JUMP+SIZEHIST_UNDELETE];// データバッファ
  4521.     PROFILE tProfile[MAXPROFILE];    // プロファイル
  4522.                                     // 最近アクセスされたデータ順
  4523.     int nProfile;                    // 現在のプロファイル数
  4524.     KEYMACRO tKeymacro[MAX_KEYMACRO];// キーボードマクロ
  4525. //##SHARE - 現在の状態
  4526.     FBOOL fMemoAdding;                // メモに追加中?
  4527.     HWND hwndMemo;                    // メモのhwndbase
  4528.     mchar szMemoAddCaption[CCHWORD];// 次にメモに追加するキャプション
  4529.                                     // NULLならデフォルト("クリップボード")
  4530.     HWND hwndFiler;                    // forkPwzFilerSingle用
  4531.     HWND hwndGrep;                    // forkPwzGrepSingle用
  4532.     HWND hwndMailer;                // forkPwzMailSingle用
  4533.     HWND hwndTerm;                    // forkPwzTermSingle用
  4534.     HWND hwndIcon;                    // WZ Iconオープン中?
  4535.     HWND hwndHelp;                    // WZ Helpオープン中?
  4536.     FBOOL fMacroRec;                // KEYMACRO記録中
  4537.     FBOOL fMacroPlay;                // 再生中
  4538.     LPBYTE pMacroCur;                // 記録/再生ポインタ
  4539.     LPBYTE pMacroEnd;                // 記録/再生終了位置
  4540.     LPBYTE pMacroStr;                // 前回のコマンドがIDM_OVERWRITESTR,IDM_INSERTSTR
  4541.                                     // なら、その位置
  4542.     int fClip;                        // WZがクリップボードにペーストしたテキストデータ
  4543.                                     // の範囲選択モードを保持
  4544.     FBOOL fClipTxfEnable;            //WZ3.90I 981105 クリップボードにコピーしたデータにTXFタグが入っている可能性がある?
  4545.     FBOOL fStatprintfToMailer;        //PWZ2BETA0.3 980525 statprintfをhwndMailerに出力?
  4546.     #if !WINDOWSCE
  4547.     BYTE modeSplit;                    //WZ3.90H 980913 現在のウィンドウ分割
  4548.                                     // 画面分割モード('U'/'C'/'V'/'H'),初期値0
  4549.     #endif
  4550.     BYTE pagingmode;                // ページングモード('S','C','P',' ')
  4551.                                     //WZ3.90H 980927 ページングモードは以前textにあったが、全テキストで共有するため(VZではこうなっている)にSHAREに移した
  4552.     UINT idmRegisterShare;            //WZ3.90I 981102 for idmRegisterShareで登録したIDMは全WZで共通。
  4553.     FBOOL fDragDroping;                //WZ3.90I 981104 D&D中?
  4554.     int nDirAtr;                    //WZ3.90J 981110 DIRECTORYATRの数
  4555.     DIRECTORYATR tDirAtr[DIRECTORYATR_N];    //WZ3.90J 981110 フォルダ毎の漢字コード、改行コード指定。"folder.cfg"からロードするが、書き込みはしない。
  4556.     WORD fSpeak:1;                //WZ3.90L 981117 音声化?
  4557.     WORD fEndSessioned:1;        //WZ4.00Ac 990205 new
  4558.     SEARCH_PACKET search;        //WZ4.00Aa 990108 現在の検索・置換文字列。高速オープン以外でも検索文字列を共有できるようにした。
  4559. // 現在のネットワークの状態
  4560.     BYTE env_network;            // ネットワーク?
  4561.     UINT fSpecUserName:1;        // ユーザ名が指定された?
  4562.     UINT fReservedNet:15;        //
  4563.     mchar szUserName[30];        // 現在のユーザ名
  4564.                                 // szUserName[0] != 0なら、ユーザ毎に設定保存されます。
  4565.                                 // 次のファイルがユーザ毎に、wzディレクトリの
  4566.                                 // ユーザ名サブディレクトリの下に作られます
  4567.                                 //  wz.key,wz.mnu,wz.bar
  4568.                                 //  wzcfg.cfg,wzprint.cfg
  4569.                                 // 以上のファイルがユーザ名サブディレクトリに存在しない時は
  4570.                                 // ルートのファイルがコピーされて使用されます。
  4571. //    ユーザ設定
  4572.     BYTE configTextShare[256];        // text->configShareの内容
  4573.                                     // ([0] == TRUEなら初期化済み)
  4574.     #if WZFUNC_TEXTCFGBIN
  4575.     BBOOL fConfigChanged;            //WZ3.90N 981201 設定が変更され、まだテキスト設定ファイルには保存されていない。WZFUNC_TEXTCFGBIN用
  4576. //    mchar szConfigChanged[CCHWORD];    //WZ3.90N 981202 fConfigChangedかつszConfigChangedがセットされている場合はszConfigChangedだけをテキスト設定ファイルに更新
  4577.     #endif
  4578. //##SHARE - 共通設定(設定ファイルに保存される)
  4579. //    save to cfg file
  4580.     int configGap;                    // これ以前のメンバの変更でWORD,DWORDメンバの
  4581.                                     // アライメントが変わることがあるのを防止
  4582. BYTE configTop;        // 0:未初期化,1:初期化済み
  4583.     mchar szKinsokuTop[300];        // 行頭禁則文字(行の先頭にきてはいけない文字)
  4584.     mchar szKinsokuEnd[200];        // 行末禁則文字(行の末尾にきてはいけない文字)
  4585.     mchar szKinsokuKuten[200];        // 句読点
  4586.     BBOOL fSearchGetText;            // カーソル位置の文字列を取り込んで、検索ダイアログを開く
  4587.     BYTE modeFileOpen;                // ファイルオープンモード
  4588.         #define FILEOPEN_OPEN        0    // プロセス起動オープン
  4589.         #define FILEOPEN_OPENHIGH    1    // 高速オープン
  4590.         #define FILEOPEN_CLOSEOPEN    2    // 閉じてオープン
  4591.         #define FILEOPEN_CLOSEOPENFORCE    99    // 閉じてオープンで保存しますか?を表示しない。//WZ3.90L 981125 
  4592.     BBOOL fEnglishMenubar;            // 英語メニューバー
  4593.     SIGNED_WORD wtmEhWait;            // キャプチャ開始時のウェイト数
  4594.     mchar szQuote[CCHNAME];            // 引用符
  4595.     BBOOL fFilelistCurSelect;        // ファイルリストのカーソル位置を選択表示
  4596.     mchar cszExtBinary[128];        // バイナリファイルの拡張子。';'で区切って複数指定可。
  4597.     BBOOL modeUseMyKey;                // キー定義を"My Key"にする
  4598.         #define MYKEY_ADD    1    // "My Key"を追加
  4599.         #define MYKEY_SET    2    // "My Key"に置き換え
  4600.     BBOOL fWzStay;                    // WZを常駐?
  4601.     BBOOL modeFileShare;            // 排他制御
  4602.         #define FILESHARE_DENY_WRITE    1    // 書き込み禁止
  4603.         #define FILESHARE_EXCLUSIVE        2    // 読み書き禁止
  4604.                                     // 裏テキストは排他制御しない。
  4605.     mchar cszPathText[300];            // 文書パス
  4606.                                     // ';'で区切って複数指定できる
  4607.     SIGNED_BYTE lfHeight;            // (共通)フォントサイズ
  4608.     mchar lfFaceName[LF_FACESIZE];    // (共通)フォント名の指定
  4609.     BBOOL lfBold;                    // (共通)太字で表示
  4610.     BBOOL fComboboxEx;                //WCE0.91 970912 コンボボックスを拡張する
  4611.                                     // ↑、↓の絞り込み機能を追加する
  4612.     mchar szFolderDefault[100];        // 標準フォルダ
  4613.     BBOOL fKcAuto;                    //WCE0.93 970919 漢字コードの自動判別?
  4614.     BYTE iMouseScrollSpeed;            //WCE1.01 980209 マウスドラッグスクロール速度 (0..9)
  4615.     BBOOL fNoCursorBlink;            //WZ3.90H 980913 カーソルを点滅しない? !WINDOWSCEのみ
  4616.     BBOOL fWsWideAtSplit;            //WZ3.90I 981103 上下分割時に、ツールバーを消す? !WINDOWSCEのみ
  4617.     BBOOL fNoUpDownAtClipMouse;        //WZ3.90I 981103 方向キーでWindows範囲選択を抜けるときに範囲の先頭/末尾に移動しない。
  4618.     mchar cszExtText[200];            //WZ3.90I 981103 標準の拡張子。';'で区切って複数指定可。
  4619.     BBOOL fCheckFiletimeOnSave;        //WZ3.90J 981109 保存時にファイルの日付を調べる
  4620.     BBOOL fCheckFiletimeOnActive;    //WZ3.90J 981109 アクティブ時にファイルの日付を調べる
  4621.     BBOOL fCrAuto;                    //WZ3.90J 981109 改行コードの自動判別?
  4622.     BYTE modeOfn;                    //WZ3.90J 981111 オープンダイアログの形状
  4623.         #define OFN_STD            0
  4624.         #define OFN_WIN3        1
  4625.         #define OFN_WZ            2
  4626.         #define OFN_STDSIMPLE    3    // Win標準    //WZ4.00Ab 990203 new
  4627.         #define OFN_VZ            4
  4628.     mchar cszOfnFilter[CCHPATHNAME];//WZ3.90J 981112 GetOpenFileName szFilter
  4629.                                     // 例:"*.c;*.h,*.txt テキストファイル:*.txt"
  4630.     BBOOL fNoIntelliMouse;            //WZ3.90P 981205 WZのインテリマウス機能を使わない
  4631. #if UNIX
  4632.     BYTE modeImShiftSpace;            //WZ4.00Bg 990718 XZのShift+Spaceの処理を選択できるようにした。
  4633.     BBOOL fImSwitchByAltZenhan;        //WZ4.00Bg 990719 Alt+半角/全角にIMのon/offを割り当てるか設定できるようにした。
  4634.     BBOOL fMouseMoveXz;                //WZ4.00Bg 990718 XZがマウスカーソルを移動するかどうかを設定できるようにした。
  4635. #endif
  4636.     BBOOL fFileopenFocusList;        //WZ4.00Bj 990826 PWZファイルオープンダイアログで初期フォーカスを一覧に設定?
  4637.     BBOOL fVzKey98;                    //WZ4.00Bl 990904 VZ(98)準拠キー定義を内部で持つようにした。
  4638.     BYTE nFunctionKey;                //WZ4.00Bl 990909 ファンクションキーの個数
  4639.     mchar szArticle[100];            //WZ4.00Bl 990911 箇条書き文字。空なら標準のものを使用。
  4640.     BBOOL fProfileNewtext;            //WZ4.00Bl 990912 新規ウィンドウの位置を保存?
  4641. #if !WINDOWSCE
  4642.     BBOOL fToolbarFlat;                //WZ4.00Bl 990913 
  4643. #endif
  4644.     USERFONTSET tUserfontset[USERFONTSET_N];    //WZ4.00Bl 990920 ユーザフォントセット定義
  4645.     BYTE nFunctionKeySet;            //WZ4.00Bn 991004 ファンクションキーをn個ずつ表示
  4646.     BBOOL fNoSaveConfigAsText;        //WZ4.00Bn 991006 終了時に設定をテキストで出力するのをやめる?
  4647. BYTE configEnd;
  4648. //##SHARE - permanent 変数
  4649. //    save to hist/profile file
  4650.     int permanentGap;                // これ以前のメンバの変更でWORD,DWORDメンバの
  4651.                                     // アライメントが変わることがあるのを防止
  4652. BYTE permanentTop;
  4653.     BBOOL fFilePreview;                // ファイルプレビュー?
  4654.     CHARCONVERT charconvert;        // 最後に実行した文字の変換内容を記憶
  4655.     NPARA nparaTemplateTarget;        // 慣用句の挿入:前回挿入した位置を記憶
  4656.     BBOOL reserved_1;    //PWZ2BETA0.4 980610 廃止 memo_modeDispDate
  4657.     NPARA reserved_2;    //PWZ2BETA0.4 980610 廃止 memo_nparaTarget
  4658.     // grep
  4659.     BBOOL grep_fSearchSubFolder;
  4660.     BBOOL grep_fNoSearchWindows;
  4661.     BBOOL grep_fNoSearchBinaryFiletype;
  4662.     SEARCHMODE grep_searchmode;
  4663.     BYTE grep_modeDispFind;
  4664.     BBOOL grep_fPreview;
  4665.     // filer
  4666.     BBOOL filer_fDoubleWindow;
  4667.     BBOOL filer_fPreview;
  4668.     mchar filer_szPath1[CCHPATHNAME];
  4669.     mchar filer_szPath2[CCHPATHNAME];
  4670.     // edit
  4671.     BYTE edit_iInsertBrace;            // 前回挿入した括弧番号
  4672.     //
  4673.     BBOOL filer_fDispDatesize;
  4674.     BYTE reserved_3;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolist
  4675.     BYTE reserved_4;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolistNarrow
  4676.     BYTE filelist_modeSort;            // 
  4677.     BBOOL filer_fEscClose;            // {Esc}で直ぐ閉じる
  4678.     BBOOL filer_fOpenWin;            // {Enter}で関連アプリで起動
  4679.     BYTE edit_iInsertDate;            //WCE0.91 970911 前回挿入した日付記号
  4680.     SIGNED_BYTE filer_lfHeight;            // フォントサイズ
  4681.     mchar filer_lfFaceName[LF_FACESIZE];// フォント名の指定
  4682.     BBOOL filer_lfBold;                    // 太字で表示
  4683.     //WZ3.90G 980905 ウィンドウ位置の保存
  4684.     RECT filer_rect;
  4685.     RECT grep_rect;
  4686.     RECT memo_rect;
  4687.     RECT help_rect;
  4688.     BBOOL help_fContent;
  4689.     BYTE filelist_lfHeight;                //WZ3.90J 981111 
  4690.     BBOOL filelist_fSetWidthByWindow;    //WZ3.90J 981111 
  4691.     BYTE reserved_5;
  4692.     BYTE help_lfHeight;                    //WZ3.90J 981112 
  4693.     BYTE filer_ratePreview;                //WZ3.90L 981123 
  4694.     BYTE grep_ratePreview;                //WZ3.90L 981123 
  4695.     WORD filelist_cyPreviewWindow;        //WZ3.90J 981111 BYTE->WORD
  4696.     BBOOL lp_fNoConfirmProperty;        //WZ3.90P 981206 
  4697.     BBOOL config_SelDispAll;            //XZ0.20 990704 
  4698.     BYTE help_rateOutline;                //WZ4.00Bj 990824 
  4699.     BYTE reservedPermanent[907];
  4700. BYTE permanentEnd;
  4701. } SHARE;
  4702.  
  4703. //##グローバル変数
  4704.  
  4705. #ifdef __TXC__
  4706. extern HINSTANCE _hinstance;
  4707. //WZ4.00Aa 990108 TX-CからSHARE(sh)にアクセスできるようにした。
  4708. SHARE* TXAPI_(898) _shGet(void);
  4709. #define sh    (_shGet())
  4710. #else
  4711. extern SHARE* sh;
  4712. extern HINSTANCE _hinstance;
  4713. extern TX* text1;    // text1はいつも必ず存在します。
  4714.                     // ただしtxOpenTextされている状態とは限りません。
  4715.                     // hwndbase,hwndtextが存在するとも限りません。
  4716.                     // text1への参照はやむを得ない場合を除いてしないでください。
  4717.                     // textfは廃止されました。
  4718. extern wchar _wszfilenameExe[CCHPATHNAME];    // WZEDITOR.EXEのフルパス名
  4719. extern mchar _szexedir[CCHPATHNAME];        //WZ3.90I 981027 text->szexedirの実体
  4720. extern mchar _szuiwz[];                        //WZ3.90J 981110 UI定義ファイルの名前
  4721. #if !UNIX
  4722. extern MSG _msg;        // WINDOWSCE
  4723. #endif
  4724. extern BYTE _nOpenAp;    // このプロセスで起動中のPWZアプリケーション
  4725. extern struct tagDIALOG * _topModeless;    // モードレスダイアログリスト
  4726. extern BBOOL _fTimeLimit;
  4727. extern mchar _szSearchHeadline[];
  4728. extern BYTE _cyCommandBar;
  4729. extern mchar _cszHeadlineStd[];
  4730. extern mchar szMsGossic[];
  4731. extern mchar szMsPGossic[];
  4732. extern mchar szMsMintyo[];
  4733. extern mchar _szPasswordHead[];
  4734. extern mchar _szComputerName[30];    // このコンピュータ名。無効なときは{0}    //WZ4.00Bp 991014 new
  4735. extern BBOOL _foverwriting;
  4736. extern BBOOL _modeProcess;    // このプロセスのモード(0:通常)    //WZ4.00Bo 991011 new
  4737.     #define PROCESS_MAIL    1
  4738. #endif    // __TXC__
  4739.  
  4740. //{###text API
  4741.  
  4742. //##基本編集
  4743.  
  4744. IBUFF TXAPI_(1) TXHIGH txInsert(TX* text,mchar *str);
  4745. int TXAPI_(179) txInsertChar(tx *text,TXCHAR code);
  4746. void txInsertNchar(TX* text,int ch,int n);
  4747. int TXAPI_(180) txCurInsertChar(TX* text,TXCHAR code);
  4748. int TXAPI_(181) txInsertReturn(TX* text);
  4749. BOOL TXAPI_(182) TXAPIBASE txCurInsertReturn(TX* text);
  4750. BOOL TXAPI_(911) TXHIGH txCurInsertTextArea(TX* text,TX* textInsert,IFILE adrTop,IFILE adrEnd);
  4751. BOOL TXAPI TXHIGH txInsertTextArea(TX* text,TX* textInsert,IFILE adrTop,IFILE adrEnd);
  4752. int txInsertWithReturn(TX* text,mchar* sz);
  4753. int txInsertWithSpace(TX* text,mchar* sz);
  4754. int TXAPI_(767) TXAPIBASE txInsertf(TX* text,mchar* _format,...);
  4755. int TXAPI_(206) TXHIGH txInsertW(TX* text,wchar* sz);
  4756. void TXAPI_(207) txInsertNspace(TX* text,int nspace,int modeSpace);
  4757.     #define SPACE_SPACE        0    // 半角スペースを使う
  4758.     #define SPACE_JSPACE    1    // できるだけ全角空白で挿入、残りは半角スペースで挿入
  4759.     #define SPACE_TAB        2    // できるだけTabで挿入、残りは半角スペースで挿入
  4760. BOOL TXAPI_(250) txInsertText(TX* text,TX* textInsert);
  4761. BOOL TXHIGH txCurInsertText(TX* text,TX* textInsert);
  4762. BOOL TXHIGH txInsertTextCur(TX* text,TX* textInsert);
  4763. BOOL TXAPI_(251) txInsertTextSelect(TX* text,TX* textInsert);
  4764. BOOL txCurInsertTextSelect(TX* text,TX* textInsert);
  4765. IBUFF TXAPI_(166) TXHIGH txCurInsertBuff(TX* text,mchar *str,IBUFF len);
  4766.     #define txCurInsert(text,sz)    txCurInsertBuff(text,sz,strlen(sz))
  4767. BOOL TXAPI_(167) TXHIGH txCurInsertMemorySpace(TX* text,IMEM len);
  4768. IBUFF TXAPI_(168) TXHIGH txInsertBuff(TX* text,mchar *str,IBUFF len);
  4769. BOOL txInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  4770. BOOL txCurInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  4771. //
  4772. IBUFF TXAPI_(172) TXHIGH txDeleteBytes(TX* text,IBUFF len);
  4773. IBUFF TXAPI_(8) txDeleteChar(TX* text);
  4774. IBUFF TXAPI_(9) txDeletePrev(TX* text);
  4775. int TXAPI_(223) txDeletePrevWord(TX* text);
  4776. int TXAPI_(201) txDeleteWord(TX* text);
  4777. int TXAPI_(202) txDeleteWordMi(TX* text);
  4778. void TXAPI_(236) txDeleteText(tx *text);
  4779. int TXAPI TXHIGH txDeleteParaPrim(TX* text);
  4780. IBUFF DeleteTailReturn(mchar* buff,IBUFF len);
  4781. //
  4782. typedef struct {
  4783.     BOOL f;
  4784.     BOOL fSemiViewMode;
  4785.     BOOL fReadMode;
  4786.     BOOL fEditable;
  4787. } EDITABLE_CONTEXT;    //WZ4.00Bj 990825 new
  4788. BOOL txEnterEditable(TX* text,EDITABLE_CONTEXT* context);    //WZ4.00Bj 990825 new
  4789. void txExitEditable(TX* text,EDITABLE_CONTEXT* context);    //WZ4.00Bj 990825 new
  4790. //
  4791. BOOL txBuffExpand(TX* text,IBUFF size);
  4792. IBUFF TXHIGH InsertBytes(TX* text,mchar* str,IBUFF len,int nLf,BOOL fMove);
  4793. void FlushAddressAtInsert(TX *text,IFILE len);
  4794.  
  4795. //##一般編集
  4796.  
  4797. int TXAPI_(203) TXHIGH txDeletePara(TX* text);
  4798. int TXAPI_(204) txDeleteParaEnd(TX* text);
  4799. int TXAPI_(205) txDeleteParaTop(TX* text);
  4800. int TXAPI_(817) txDeleteParaline(TX* text);
  4801. int TXAPI_(818) txDeleteParalineEnd(TX* text);
  4802. int TXAPI_(819) txDeleteParalineTop(TX* text);
  4803. BOOL TXAPI_(899) txDeleteLine(TX* text);    //WZ4.00Aa 990109 
  4804. //
  4805. BOOL txuiInsertHistSearch(TX* text);
  4806. BOOL txuiInsertHistCopy(TX* text);
  4807. BOOL txuiInsertHistStr(TX* text);
  4808. BOOL txuiInsertDelete(TX* text);
  4809. BOOL txuiInsertDate(TX* text);
  4810. BOOL txuiTextInfo(TX* text);
  4811. //
  4812. int TXAPI_(219) txInsertPara(tx *text);
  4813. int TXAPI_(225) txInsertCharModal(tx *text,TXCHAR code);
  4814. int TXAPI txInsertAutoIndent(TX* text,int modeAutoIndent);
  4815. BOOL TXAPI_(273) txInsertFileW(TX* text,wchar* wszfilename);
  4816. BOOL TXAPI_(804) txInsertFile(TX* text,mchar* szfilename);
  4817. int TXAPI_(291) TXHIGH_THROUGH txInsertSpaceFreeCursor(TX* text);
  4818. int TXAPI_(224) txWriteChar(tx *text,TXCHAR code);
  4819. int TXAPI_(287) txWriteReturn(TX* text);
  4820. int TXAPI_(288) txWriteTab(TX* text);
  4821. int TXAPI_(226) txOverWrite(TX* text,mchar *szstr);
  4822. int TXAPI_(227) txOverWriteChar(TX* text,WORD code);
  4823. int TXAPI_(228) txOverWriteBuff(TX* text,mchar *szstr,IBUFF lch);
  4824. BOOL TXAPI_(229) txDeleteOverWriteChar(tx *text,TXCHAR code);
  4825. void TXAPI_(230) txSwitchInsert(tx *text);
  4826. BOOL TXAPI_(272) txuiInsertFile(TX* text);
  4827.  
  4828. //##移動/基本ジャンプ
  4829.  
  4830. IBUFF TXAPI_(133) TXHIGH txRightBytes(TX* text,IBUFF lenMove);
  4831. int TXAPI_(151) TXHIGH txRight(TX* text);
  4832. int TXAPI_(197) txRightWordMi(TX* text);
  4833. int TXAPI_(198) txRightWord(TX* text);
  4834. IBUFF TXAPI_(132) TXHIGH txLeftBytes(TX* text,IBUFF lenMove);
  4835. int TXAPI_(152) TXHIGH txLeft(TX* text);
  4836. int TXAPI_(187) txLeftWord(TX* text);
  4837. int TXAPI_(188) txLeftWordMi(TX* text);
  4838. //
  4839. int TXAPI_(143) txDown(TX* text);
  4840. int TXAPI_(144) txDownN(TX* text,int n);
  4841. int TXAPI_(145) txNextRoll(TX* text);
  4842. int TXAPI_(146) txNextRollN(TX* text,int n);
  4843. int TXAPI_(147) txUp(TX* text);
  4844. int TXAPI_(148) txUpN(TX* text,int n);
  4845. int TXAPI_(149) txPrevRoll(TX* text);
  4846. int TXAPI_(150) txPrevRollN(TX* text,int n);
  4847. //
  4848. BOOL TXAPI_(134) TXHIGH txJumpAddress(TX* text,IFILE address);
  4849. BOOL TXAPI_(135) TXHIGH txJumpAddressBinary(TX* text,IFILE address);
  4850. BOOL txJumpAddressNear(TX* text,IFILE address);
  4851. BOOL txJumpCharTop(TX* text);
  4852. void TXAPI_(136) txJumpAddressAddLy(TX* text,IFILE address);
  4853. BOOL TXAPI_(173) TXHIGH txJumpFileTop(TX* text);
  4854. BOOL TXAPI_(183) TXHIGH txJumpFileEnd(TX* text);
  4855. BOOL TXAPI_(174) txJumpFileTopLine(TX* text);
  4856. BOOL TXAPI_(184) txJumpFileEndLine(TX* text);
  4857. //
  4858. int TXAPI_(2) txJumpLineTop(TX* text);
  4859. int TXAPI_(3) txJumpLineEnd(TX* text);
  4860. int TXAPI_(178) txJumpLineTail(TX* text);
  4861. int TXAPI_(193) TXHIGH txJumpParaTop(TX* text);
  4862. BOOL TXAPI_(194) TXHIGH txJumpParaEnd(TX* text);
  4863. int TXAPI_(189) txJumpWordTop(TX* text);
  4864. int TXAPI_(190) txJumpWordEnd(TX* text);
  4865. int TXAPI_(191) txJumpWordTopMi(TX* text);
  4866. int TXAPI_(192) txJumpWordEndMi(TX* text);
  4867. int TXAPI_(375) txPrevLineN(TX* text,int n);
  4868. int TXAPI_(376) txNextLineN(TX* text,int n);
  4869. //
  4870. int TXAPI_(235) TXAPIBASE txJumpNpara(TX* text,NPARA npara);
  4871. NPARA txPrevParaN(TX* text,NPARA y);
  4872. NPARA txNextParaN(TX* text,NPARA y);
  4873. BOOL TXAPI_(195) TXHIGH txNextPara(TX* text);
  4874. BOOL TXAPI_(196) TXHIGH txPrevPara(TX* text);
  4875. //
  4876. int TXAPI_(215) txPrevPage(tx *text);
  4877. int TXAPI txPrevPage1(tx *text);
  4878. int TXAPI_(216) txPrevHalfPage(tx *text);
  4879. int TXAPI_(217) txNextPage(tx *text);
  4880. int TXAPI txNextPage1(tx *text);
  4881. int TXAPI_(218) txNextHalfPage(tx *text);
  4882. //
  4883. int TXAPI_(394) txJumpLx(TX* text,int lx);
  4884. BOOL TXHIGH_THROUGH txJumpXPrim(TX* text,int x);
  4885. int JumpLineEnd(TX* text);
  4886. BOOL TXAPI_(399) txDownBuff(TX* text);
  4887. BOOL TXAPI_(400) txUpBuff(TX* text);
  4888.  
  4889. //##検索/ジャンプ
  4890.  
  4891. int TXAPI_(169) TXHIGH txSearchEx(TX* text,mchar* szfind,DWORD searchmode);
  4892. int TXAPI_(824) txReplaceEx(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  4893. BOOL TXAPI_(395) txSearchContinue(TX* text);
  4894. BOOL TXAPI_(396) txSearchContinuePrev(TX* text);
  4895. BOOL TXAPI_(397) txSearchContinueModal(TX* text);
  4896. int TXAPI_(633) txSearchCmd(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  4897. void TXAPI_(596) txSetSearchContinue(TX* text,mchar* szFind,SEARCHMODE searchmode);
  4898. int TXAPI_(249) txSearchNextPrim(TX* text,mchar *sFind,DWORD searchmode,int lchFind);
  4899. #if !__TXC__
  4900. BOOL txSearchTabbeam(TX* text,SEARCHMODE searchmode);
  4901. void txSearchAlltextInit(TX* text,SEARCHMODE searchmode);
  4902. BOOL txSearchAlltextGetFirst(TX* text);
  4903. void txSearchAlltextNext(TX* text,DWORD searchmode,BOOL fReplace);
  4904. BOOL txuiSearchGet(TX* text,SEARCH_PACKET* search);
  4905. BOOL txuiSearchList(TX* text,SEARCH_PACKET* search);
  4906. BOOL txuiSearch(TX* text);
  4907. BOOL txuiSearchSet(TX* text);
  4908. BOOL txuiSearchFunction(TX* text);
  4909. BOOL txuiSearchlist(TX* text,SEARCH_PACKET* search);
  4910. int _SearchNext(TX* text,mchar *szFind,DWORD searchmode,int lchFind);
  4911. //
  4912. void searchoptFromSearchmode(SEARCHOPT* opt,SEARCHMODE searchmode);
  4913. void searchoptSetupMode(SEARCHOPT* opt);
  4914. SEARCHMODE searchoptToSearchmode(SEARCHOPT* opt);
  4915. void wndSetEnableSearchOption(HWND hwnd);
  4916. mchar* GetFind(void);
  4917. void SetFind(mchar* szfind);
  4918. void txInitSearchContinueCB(TX* text);
  4919. #endif    // !__TXC__
  4920. //jump
  4921. int TXAPI_(289) txJumpPara(tx *text,NLINE line);
  4922. int TXAPI_(290) txJumpLine(TX* text,NLINE line);
  4923. int TXAPI_(292) txJumpX(TX* text,int x);
  4924. BOOL TXAPI_(294) txJumpLy(TX* text,int y);
  4925. IFILE TXAPI_(295) TXHIGH txGetParaIch(TX* text);
  4926. BOOL TXAPI_(296) TXHIGH txJumpParaIch(tx* text,IFILE lch);
  4927. BOOL TXAPI TXHIGH txJumpParaIchEx(TX* text,IFILE ich);
  4928. BOOL TXAPI_(341) txJumpPrevEditPara(TX* text);
  4929. BOOL TXAPI_(342) txJumpNextEditPara(TX* text);
  4930. BOOL TXAPI_(318) txMarkN(TX* text,int n);
  4931. BOOL txMarkEx(TX* text,int n,IFILE adr);
  4932. BOOL TXAPI_(319) txJumpMarkN(TX* text,int n);
  4933. int TXAPI_(324) txJumpBrace(TX* text);
  4934. BOOL TXAPI_(326) TXCMDBASE txuiMark(TX* text);
  4935. BOOL TXAPI_(327) TXCMDBASE txJumpTagEx(TX* text);
  4936. BOOL TXAPI_(402) TXCMDBASE txuiRefer(TX* text);
  4937. void TXAPI_(366) txMarkCur(TX* text);
  4938. void TXAPI_(367) txJumpMarkCur(tx *text);
  4939. void TXAPI_(368) txMarkNow(TX* text);
  4940. void TXAPI_(369) txMarkNowAddress(TX* text,IFILE adr);
  4941. void TXAPI_(370) txJumpMarkNow(TX* text);
  4942. IFILE TXAPI_(371) txEndMarkNow(TX* text);
  4943. #if !__TXC__
  4944. BOOL txuiJump(TX* text);
  4945. BOOL txJumpPrev(TX* text);
  4946. BOOL txJumpNext(TX* text);
  4947. void jumphistAdd(TX* text);
  4948. BOOL txLinkhistJumpPrevGetAble(TX* text);
  4949. BOOL txLinkhistJumpNextGetAble(TX* text);
  4950. BOOL txLinkhistJumpPrev(TX* text);
  4951. BOOL txLinkhistJumpNext(TX* text);
  4952. BOOL txuiJumpHist(TX* text);
  4953. BOOL txJumpTagPrim(TX* text,int mode);
  4954. #endif // !__TXC__
  4955. // re
  4956. LPVOID TXAPI_(820) reSearchMem(LPVOID pMem,DWORD len,mchar* szFind,SEARCHMODE searchmode,SEARCHRE searchre,DWORD* pLenMatch);
  4957. mchar* TXAPI_(821) re(mchar* sztext,mchar* szfind);
  4958. mchar* TXAPI_(822) reSearch(mchar* sztext,mchar* szfind,SEARCHMODE searchmode);
  4959. mchar* TXAPI_(823) reSearchEx(mchar* sztext,mchar* szfind,SEARCHMODE searchmode,UINT* pLenMatch);    //WZ4.00Bj 990830 プロトタイプを修正
  4960. mchar* TXAPI_(878) regular(TXSTR sztext,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  4961. mchar* TXAPI_(879) regularStr(mchar* sztext,UINT cch,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  4962.     #define ITAG_TAIL    0x00010001    // 最後のタグ
  4963. #if !__TXC__
  4964. mchar* TXAPI retagGetP(int iTag);
  4965. BOOL TXAPI retagGetEx(int iTag,mchar* szbuff,int cch);
  4966. int TXAPI retagGetLch(int iTag);
  4967. mchar* TXAPI retagGetTop(int iTag);
  4968. void reFreeContext(struct tagRE_CONTEXT* context);
  4969. struct tagRE_CONTEXT* reAllocContext(mchar* szFind,SEARCHMODE searchmode,SEARCHRE searchre);
  4970. void reSetContext(struct tagRE_CONTEXT* context);
  4971. IBUFF memGetCharSize(mchar* p,mchar* pEnd,SEARCHRE searchre);
  4972. mchar* memGetPrevChar(mchar* p,mchar* pTop,mchar* pEnd,SEARCHRE searchre);
  4973. #endif // !__TXC__
  4974. //
  4975.  
  4976. //##情報取得
  4977.  
  4978. #ifdef __TXC__
  4979. int TXAPI_(782) txGetWord(TX* text,TXSTR dst);
  4980. int TXAPI_(826) txGetWordWhole(TX* text,TXSTR dst);
  4981. int TXAPI_(827) txGetWordAfter(TX* text,TXSTR dst);
  4982. int TXAPI_(783) txGetPara(TX* text,TXSTR dst);
  4983. int TXAPI_(784) txGetParaRear(TX* text,TXSTR dst);
  4984. int TXAPI_(895) txGetLine(TX* text,TXSTR dst);    //WZ4.00A 981229 
  4985. int TXAPI_(896) txGetLineRear(TX* text,TXSTR dst);    //WZ4.00A 981229 
  4986. #endif
  4987. //
  4988. IFILE TXAPI_(156) txGetParaTop(tx *text);
  4989. IFILE TXAPI_(362) TXHIGH txGetParaEnd(tx *text);
  4990. IFILE TXAPI_(902) TXHIGH txGetParaContentEnd(TX* text);
  4991. IFILE TXAPI_(155) TXHIGH txGetParaTail(TX* text);
  4992. int TXAPI_(237) TXHIGH txGetParaLen(TX* text);
  4993. int TXAPI_(779) TXHIGH txGetParaContentLen(TX* text);
  4994. int TXAPI_(238) TXHIGH txGetParaEx(tx *text,mchar *buff,IBUFF sizebuff);
  4995. int TXAPI_(239) TXHIGH txGetParaRearEx(TX* text,mchar *buff,IBUFF sizebuff);
  4996. mchar* TXHIGH txGetParaAlloc(TX* text);
  4997. BOOL TXAPI_(828) txGetBuff(TX* text,mchar* buff,IFILE adrtop,IFILE adrend);
  4998. //
  4999. IFILE TXAPI_(354) txGetLineTop(TX* text);
  5000. IFILE TXAPI_(355) txGetLineTail(TX* text);
  5001. int TXAPI_(780) txGetLineContentLen(TX* text);
  5002. //
  5003. IFILE TXAPI_(158) txGetWordTop(TX* text);
  5004. IFILE TXAPI_(157) txGetWordTail(TX* text);
  5005. IFILE TXAPI_(159) txGetSentenceTop(TX* text);
  5006. IFILE TXAPI_(160) txGetSentenceTail(TX* text);
  5007. IBUFF TXAPI_(280) txGetWordEx(TX* text,mchar* buff,IBUFF sizebuff);
  5008. IBUFF TXAPI txGetWordWholeEx(TX* text,mchar* buff,IBUFF sizebuff);
  5009. IBUFF TXAPI txGetWordAfterEx(TX* text,mchar* buff,IBUFF sizebuff);
  5010. //
  5011. IFILE TXAPI_(161) txGetTextSize(TX* text);
  5012. IFILE TXAPI_(162) txGetTextSizeSemi(TX* text);
  5013. wchar* TXAPI_(349) txGetFileExtW(TX* text);
  5014. IFILE TXAPI_(350) txGetAddress(TX* text);
  5015. IFILE TXAPI_(351) txGetAddressSelectTop(tx *text);
  5016. IFILE TXAPI_(352) txGetAddressSelectEnd(tx *text);
  5017. IFILE TXAPI_(308) txGetAddressCurscreen(TX* text);
  5018. IFILE TXAPI_(353) txGetSelectLen(TX* text);
  5019. int TXAPI_(407) txGetLxLineEnd(TX* text);
  5020. int TXAPI_(408) txGetLxLineTail(TX* text);
  5021. BOOL TXAPI_(906) txGetDownAble(TX* text,int n);
  5022. BOOL TXAPI_(907) txGetUpAble(TX* text,int n);
  5023. // pが示す文字のタイプ(CT_SPACE,CT_XXX,etc)を返す
  5024. int TXAPI_(163) GetCharType(TX* text,mchar *p);
  5025. int chGetType(TXCHAR c,TX* text);
  5026.     #define CT_SPACE    2    // (0x00-0x20),全角スペース(0x8140)
  5027.     #define CT_SYMBOL    3    // '$','_'を除く英記号
  5028.                             // 全角記号(0x8152-0x815Bを除く)
  5029.     #define CT_KATA        4    // 半角カタカナ
  5030.     #define CT_HIRA        5    // 全角ひらがな
  5031.     #define CT_KANJI    6    // 上記以外の全角文字
  5032.     #define CT_CHAR        7    // 上記以外の半角文字
  5033.     #define CT_LF        8
  5034.     #define CT_EOF        9
  5035. //
  5036. TXCHAR TXAPI_(305) TXHIGH txGetChar(TX* text);
  5037. TXCHAR TXAPI_(306) TXHIGH txGetPrevChar(TX* text);
  5038. TXCHAR TXAPI_(867) txReadChar(TX* text);
  5039. IBUFF TXAPI_(377) TXHIGH txGetCharSize(TX* text,IBUFF off);
  5040. int txCharGetWidth(TX* text,TEXTCHAR ch);
  5041. int txCharGetWidthKanji(TX* text,TEXTCHAR* p);
  5042. int txGetCaretCx(TX* text);
  5043. int txGetCurCx(TX* text);
  5044. //
  5045. BOOL TXAPI_(281) txGetFreeCursor(TX* text);
  5046. int TXAPI_(282) txRightFree(TX* text);
  5047. int TXAPI_(283) txLeftFree(TX* text);
  5048. BOOL TXAPI_(364) TXAPIBASE TXHIGH_THROUGH txIsCurFree(tx *text);
  5049. //
  5050. BOOL TXAPI_(284) TXHIGH txIsCurReturn(TX* text);
  5051. BOOL TXAPI_(314) TXAPIBASE txIsCurParaTop(TX* text);
  5052. BOOL TXAPI_(286) TXAPIBASE txIsCurLineTop(TX* text);
  5053. BOOL TXAPI_(285) TXHIGH txIsCurLineEnd(TX* text);
  5054. BOOL TXAPI TXHIGH txIsCurLineReturn(TX* text);
  5055. BOOL TXHIGH_COND txIsCurMsgsepa(TX* text);
  5056. BOOL TXAPI TXHIGH txIsCurTof(TX* text);
  5057. BOOL TXAPI_(329) TXHIGH txIsCurEof(TX* text);
  5058. BOOL txIsCurscreenDispEof(TX* text);
  5059. //
  5060. BOOL TXAPI_(310) txIsLineReturn(TX* text);
  5061. BOOL TXAPI_(311) txIsLineEnd(TX* text);
  5062. BOOL TXAPI_(312) TXAPIBASE txIsLineParaTop(TX* text);
  5063. //比較
  5064. int TXAPI_(838) TXHIGH txCmpCur(TX* text,mchar* szstr);
  5065. int TXAPI_(839) TXHIGH txCmpCurI(TX* text,mchar* szstr);
  5066. int TXAPI_(840) TXHIGH txCmpCurLen(TX* text,mchar* szstr,int lch);
  5067. int TXAPI_(841) TXHIGH txCmpCurLenI(TX* text,mchar* szstr,int lch);
  5068. int TXAPI_(842) TXHIGH txCmpCurPrev(TX* text,mchar* szstr);
  5069. int txCmpParaOffset(TX* text,mchar* szstr,IBUFF offset);
  5070. int txCmpIParatop(TX* text,mchar* szstr);
  5071. int txCmpIParatopLen(TX* text,mchar* szstr,int lch);
  5072. //
  5073. wchar* TXAPI_(379) txGetTitleFilenameW(TX* text);
  5074. wchar* TXAPI_(380) txGetTitleFilenameFullW(TX* text);
  5075. BOOL TXAPI_(270) txGetEdit(TX* text);
  5076. mchar* TXAPI_(908) txSprintLocate(TX* text,mchar buff[CCHWORD],UINT mode);
  5077. #if !__TXC__
  5078. //clm
  5079. int clmGetLy(TX* text,int iClm);
  5080. BOOL txGetMultiClm(TX* text);
  5081. int txGetNclm(TX* text);
  5082. int lyToYClm(TX* text,int ly);
  5083. int clmFromLy(TX* text,int ly);
  5084. int clmGetX(TX* text,int iClm);
  5085. int clmGetY(TX* text,int iClm);
  5086. //
  5087. int txGetLcxLinenum(TX* text);
  5088. BOOL txGetScrollBarPreviewH(TX* text);
  5089. int txCharGetWidthStr(TX* text,TEXTCHAR* str,int lch);
  5090. UINT txFormChar(TX* text,mchar* str,UINT offset);
  5091. int txGetXAlign(TX* text,IBUFF off,IBUFF linesize,int align,int cxWidth);
  5092. int txchWidth(TX* text,TXCHAR ch);
  5093. mchar* txGetStringReturn(TX* text);
  5094. int txGetCursorFaceInsert(TX* text);
  5095. int txGetCursorFaceWrite(TX* text);
  5096. int GetWidthCx(TX* text,IBUFF offset,NPARA npara,int nClm);
  5097. int GetPosLeft(TX* text,IBUFF offset,NPARA npara,BOOL fPrinter);
  5098. #endif // !__TXC__
  5099.  
  5100. //##範囲選択/カットアンドペースト
  5101.  
  5102. //
  5103. BOOL TXAPI_(214) txSelectEx(tx *text,int fClip);
  5104. BOOL TXAPI_(175) txSelect(TX* text);
  5105. BOOL TXAPI_(176) txSelectWord(tx *text);
  5106. BOOL TXAPI_(177) txSelectLine(tx *text);
  5107. BOOL txSelectLineCur(TX* text);
  5108. BOOL TXAPI txSelectPara(TX* text);
  5109. BOOL TXAPI txSelectParaCur(TX* text);
  5110. BOOL TXAPI_(220) txSelectBox(TX* text);
  5111. BOOL TXAPI_(221) txSelectAll(tx *text);
  5112. BOOL TXAPI_(222) txSelectVz(tx *text);
  5113. //
  5114. void TXAPI_(812) txJumpSelectTop(TX* text);
  5115. void TXAPI_(813) txJumpSelectEnd(TX* text);
  5116. BOOL TXAPI_(170) txSelectJump(tx *text);
  5117. BOOL TXAPI_(171) txSelectToChar(tx* text);
  5118. BOOL TXAPI_(186) TXHIGH txSelectCopy(tx *text);
  5119. int TXAPI_(790) txSelectGetMode(TX* text);
  5120. BOOL TXAPI_(912) txSelectGetPrev(TX* text);
  5121. BOOL TXAPI_(185) txPaste(tx *text);
  5122. BOOL TXAPI_(199) txFlushSelectNow(TX* text);
  5123. BOOL TXAPI_(360) TXAPIBASE txIsClipInPara(tx *text);
  5124. BOOL txSelectToMemo(TX* text);
  5125. BOOL txSelectToMemoEx(TX* text,mchar* szCaption);
  5126. //
  5127. BOOL TXAPI_(300) TXAPIBASE txWalkStart(TX* text);
  5128. BOOL TXAPI_(301) TXAPIBASE txIsWalking(TX* text);
  5129. BOOL TXAPI_(302) TXAPIBASE txWalkEnd(TX* text);
  5130. BOOL TXAPI_(303) TXAPIBASE txWalkStartPrev(TX* text);
  5131. BOOL TXAPI_(304) TXAPIBASE txIsWalkingPrev(TX* text);
  5132. //
  5133. void TXAPI_(200) txSelectCopyQuit(tx *text);
  5134. BOOL TXAPI_(212) TXHIGH txSelectDelete(tx *text);
  5135. void TXAPI_(213) txSelectCopyDelete(tx *text);
  5136. BOOL TXAPI_(373) txSelectQuit(tx *text);
  5137. BOOL TXAPI_(385) TXCMDBASE txClipboardAddCopy(TX* text);
  5138. BOOL TXAPI_(386) TXCMDBASE txClipboardAddCut(TX* text);
  5139. BOOL SelectQuit(TX* text);
  5140. //
  5141. BOOL TXAPI_(231) TXHIGH txClipPaste(tx *text,HCLIP hclip,BOOL fJump,int _fClip);
  5142. BOOL TXAPI_(232) TXHIGH txClipCopyEx(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int fClip,NPARA nparaTop,NPARA nparaEnd);
  5143. BOOL TXAPI_(315) TXHIGH txClipPasteEx(TX* text,HCLIP hclip,int istack,DWORD cbPasteMax,BOOL fJump,int _fClip);
  5144. BOOL TXAPI_(363) TXHIGH txClipCopy(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int _clipkind);
  5145. BOOL TXAPI_(875) TXHIGH memClipCopy(LPVOID pmem,DWORD cbsize,HCLIP hclip,int fClip);
  5146. DWORD TXAPI_(876) TXHIGH memClipPaste(LPVOID pmem,HCLIP hclip);
  5147. //
  5148. BOOL TXAPI_(343) TXAPIBASE txPrivatePop(TX* text);
  5149. BOOL TXAPI_(344) TXAPIBASE txPrivatePopJump(TX* text);
  5150. BOOL TXAPI_(345) TXAPIBASE txPrivateDeleteTop(TX* text);
  5151. BOOL TXAPI_(346) TXAPIBASE txPrivatePaste(TX* text);
  5152. void TXAPI_(347) TXAPIBASE txPrivateClear(TX* text);
  5153. BOOL TXAPI_(348) TXAPIBASE TXHIGH txPrivatePush(TX* text);
  5154. //
  5155. int TXAPI_(316) clipIsWz(void);
  5156. BOOL TXAPI_(317) clipGetExistText(void);
  5157. BOOL TXAPI_(401) clipClear(HCLIP hclip);
  5158. //
  5159. #if !__TXC__
  5160. void DispFlushClipBox(TX* text);
  5161. void DispFlushClipBoxExec(TX* text);
  5162. void txGetBoxOffset(TX* text,IBUFF cury,IBUFF curysize,int x,int* pOff1,int* pOff2);
  5163. BOOL ClipCopyBox(TX* text,IFILE cliptop,IFILE clipend,HCLIP hclip);
  5164. BOOL ClipPasteBox(TX* text,mchar* pstr,IBUFF cbClip);
  5165. BOOL SelectDeleteBox(TX* text);
  5166. IFILE ClipCopyBoxToHglobal(TX* text,IFILE cliptop,IFILE clipend,HGLOBAL hGlobal);
  5167. //
  5168. BOOL txSelectOverwrite(TX* text);
  5169. BOOL txSelectGetOverwrite(TX* text);
  5170. IFILE txGetWordTailForSelect(TX* text);
  5171. IFILE txGetWordTopForSelect(TX* text);
  5172. BOOL clipPush(HCLIP hclip,mchar* lpData,DWORD cbData);
  5173. BOOL clipboardToMemo(void);
  5174. BOOL oleclipCopy(CLIPITEM* clipitem);
  5175. void wzoleTerm(void);
  5176. //textstack
  5177. typedef struct {
  5178.     HANDLE hf;
  5179.     IFILE sizefile;
  5180. } TSHANDLE;
  5181. BOOL tsOpen(TSHANDLE* ts);
  5182. void tsClose(TSHANDLE* ts);
  5183. void tsClearTop(TSHANDLE* ts);
  5184. void tsClearAll(void);
  5185. BOOL tsGetExist(void);
  5186. #endif // !__TXC__
  5187.  
  5188. //##表示
  5189.  
  5190. void TXAPI_(358) txSetUndisp(tx *text);
  5191. BOOL TXAPI_(359) txSetDisp(tx *text);
  5192. BOOL TXAPI_(844) txSetDispExJump(TX* text,BOOL fJump);
  5193. #define txSetUndispSilent(text)    txSetUndisp(text)
  5194. #define txSetDispSilent(text)    txSetDisp(text)
  5195. void TXAPI_(321) TXAPIBASE txSetUndispEx(TX* text);
  5196. BOOL TXAPI_(322) TXAPIBASE txSetDispEx(TX* text);
  5197. #define txSetUndispExSilent(text)    txSetUndispEx(text)
  5198. #define txSetDispExSilent(text)        txSetDispEx(text)
  5199. void TXAPI_(405) txSetUndispEdit(TX* text);
  5200. BOOL TXAPI_(406) txSetDispEdit(TX* text);
  5201. void TXAPI_(336) txSetBusy(TX* text);
  5202. void TXAPI_(337) txSetUnbusy(TX* text);
  5203. //
  5204. void TXAPI_(365) txDispAll(tx *text);
  5205. void TXAPI_(141) txDispTextAll(TX* text);
  5206. void TXAPI_(142) txDispTextAllCursor(TX* text);
  5207. void TXAPI_(153) txDispText(TX* text,int yTop,int yEnd);
  5208. void TXAPI_(154) txDispNpara(TX* text,NPARA npara);
  5209. void TXAPI_(356) txDispCursor(TX* text);
  5210. void TXAPI_(357) txDispLocate(TX *text);
  5211. void TXAPI_(361) txSetLy(tx *text,int ly);
  5212. void TXAPI_(374) txSetLyCenter(tx *text);
  5213. BOOL TXAPI_(309) txSetLyCurscreen(TX* text,IFILE adrCurscreen);
  5214. void TXHIGH_THROUGH txSetLyUndisp(TX* text,int ly);
  5215. //
  5216. BOOL TXAPI_(209) txSetHigh(tx *text);
  5217. BOOL TXAPI_(233) txResetHigh(tx *text);
  5218. BOOL TXAPI_(234) txResetHighFlag(tx *text);
  5219. #define txSetHighSilent(text)    txSetHigh(text)
  5220. #define txResetHighSilent(text)    txResetHigh(text)
  5221. //Flush
  5222. void TXAPI_(307) txFlush(TX* text);
  5223. void TXAPI_(843) txFlushUI(TX* text);
  5224. void TXAPI_(372) TXHIGH_THROUGH txFlushLx(TX* text);
  5225. void TXAPI_(378) txFlushCxBase(TX* text);
  5226. void TXAPI_(320) txFlushColor(TX* text);
  5227. void TXAPI_(208) TXHIGH_THROUGH txFlushCury(TX* text);
  5228. void TXAPI txFlushCurysize(TX* text);
  5229. #if !__TXC__
  5230. //
  5231. IBUFF Disp(TX* text,int yTop,int yEnd,int mode);
  5232.     #define DISP_FLUSHLINENO        1
  5233.     #define DISP_TYFLUSH            2
  5234.     #define DISP_GETCURSCREENEND    3
  5235.     #define DISP_SPACEEND            4
  5236.     #define DISP_FLUSHALIGN            5    // yTopからyEndのtcxAlignをフラッシュ
  5237.     #define DISP_LPRINT                6    //WCE1.01 980216 1ページ分を表示し、lcywindow,tLineatrをセットする
  5238. void DispLine(TX* text,int ly,IBUFF off,IBUFF linesize,NPARA npara);
  5239. void DispLineNo(TX* text,int ly,NLINE nLine,NPARA npara,NPAGE npage,IBUFF off);
  5240. void DispNull(TX* text,int ly);
  5241. void txDispFlushClip(tx* text,IFILE cliptopnow,IFILE clipendnow);
  5242. void tyFlush(TX* text);
  5243. void ScrollY(TX* text,int lyTop,int lyEnd,int dy);
  5244. void DispFlushClipBox(TX* text);
  5245. void FlushDispLines(tx *text,int lines0,int lines,int nLf);
  5246. void TXHIGH_THROUGH FlushClipVz(TX* text,UINT fClip);
  5247. int txSetupDispLine(TX* text,IBUFF cury,NPARA npara);
  5248. void DispLineNull(TX* text);
  5249. int GetCurLines(TX* text,IBUFF off,int nLf);
  5250. void txSetupCyLine(TX* text,IBUFF cury,IBUFF curysize);
  5251. void ScrollPreviewY(TX* text,int yViewportOrgNew);
  5252. void txSetColorReverse(TX* text,BOOL fReverse);
  5253. void txSetColorTextForce(TX* text);
  5254. //
  5255. void InitDC(TX* text);
  5256. void TermDC(TX* text);
  5257. void OpenDC(TX* text);
  5258. void CloseDC(TX* text);
  5259. void MapDC(TX* text,HDC hdc);
  5260. HWND txGetHwndtext(TX* text);
  5261. BOOL lfSet(TX* text,LOGFONT* lf);
  5262. void FreeFont(TX* text);
  5263. void txFontsetcacheTerm(TX* text);
  5264. void logfontSetup(LOGFONT* lf,mchar* lfFaceName,int lfHeight,HDC hdc);
  5265. //
  5266. void caretFlush(TX* text);
  5267. void txOnCaretGet(TX* text,BOOL fGet);
  5268. int TXHIGH txOffsetToX(TX* text,IBUFF cury,IBUFF offset);
  5269. int TXHIGH txXToOffset(TX* text,IBUFF cury,int *pX,IBUFF curysize);
  5270. void underlineDraw(tx *text,int ly);
  5271. void DispUnderline(tx *text,int lynew,int lyold);
  5272. void focuslineHide(tx *text);
  5273. void focuslineShow(tx *text);
  5274. void focuslineXor(tx *text);
  5275. void focuslineInit(TX* text);
  5276. void txRulerFlushDisp(TX* text);
  5277. void txRulerOnCursorMove(TX* text,int x,int cx);
  5278. //
  5279. int checkLy(TX* text,int ly);
  5280. void TXHIGH_THROUGH txSetLyUndispEx(tx *text,int ly);
  5281. int txGetLyCenter(TX* text);
  5282. //
  5283. int hvGetCxClient(TX* text);
  5284. int hvGetCyClient(TX* text);
  5285. int VX(TX* text,int y);
  5286. int VXP(TX* text,int y);
  5287. #if WZFUNC_VERTICAL
  5288. int hvDrawText(TX* text,HDC hdc,LPCTSTR lpszStr,int cchStr,RECT* r,UINT op);
  5289. void hvMoveTo(TX* text,HDC hdc,int x,int y);
  5290. void hvLineTo(TX* text,HDC hdc,int x,int y);
  5291. #else
  5292. #define hvTextOut(text,hdc,x,y,str,len)    TextOut(hdc,x,y,str,len)
  5293. #define hvExtTextOut(text,hdc,x,y,op,r,lpszString,cbCount,lpDx)    ExtTextOut(hdc,x,y,op,r,lpszString,cbCount,lpDx)
  5294. #define hvMoveTo(text,hdc,x,y)    MoveTo(hdc,x,y)
  5295. #define hvLineTo(text,hdc,x,y)    LineTo(hdc,x,y)
  5296. #define hvDrawText(text,hdc,lpszStr,cchStr,r,op)    DrawText(hdc,lpszStr,cchStr,r,op)
  5297. #endif
  5298. void hvRect(TX* text,RECT* r);
  5299. void hvRectBack(TX* text,RECT* r);
  5300. //色分け
  5301. void txFreeKeyword(TX* text);
  5302. TX* txGetKeywordText(TX* text);
  5303. void txFlushKeyword(TX* text);
  5304. IFILE txGetUrlTopEnd(TX* text,BOOL fTop);
  5305. //Flush
  5306. BOOL txFlushBase(TX* text);
  5307. void txFlushFont(TX* text);
  5308. void txFlushWidth(TX* text);
  5309. void txFlushCxCyClient(TX* text);
  5310. void txFlushLcywindow(TX* text);
  5311. void txFreeBitmap(TX* text);
  5312. void txFlushBitmap(TX* text);
  5313. void txCheckWidthTab(TX* text);
  5314. void txFlushTable(TX* text);
  5315. void TXHIGH_THROUGH _txFlushCury(TX* text,BOOL fTail);
  5316. void txFlushToolbar(TX* text);
  5317. void _txFlushMenu(TX* text,BOOL fShow);
  5318. void txFlushMenu(TX* text);
  5319. void txFlushMenuFilewindowlist(TX* text,HMENU hmenu);
  5320. void txFlushPreviewW(TX* text,wchar* wszfilename);
  5321. void txFlushPreview(TX* text,mchar* szfilename);
  5322. void txFlushWindow(TX* text);
  5323. IBUFF txFlushCurscreen(TX* text);
  5324. void txFlushCurscreenForce(TX* text);
  5325. BOOL TXHIGH_THROUGH txFlushFree(TX* text);
  5326. void txFlushScrollBar(TX* text);
  5327. void txFlushMenuCheck(TX* text,UINT mask);
  5328.     #define FMC_ALL        0x0001
  5329.     #define FMC_UNDO    0x0002
  5330.     #define FMC_CLIP    0x0004
  5331.     #define FMC_CONFIG    0x0008
  5332.     #define FMC_ATOPEN    0x0010
  5333.     #define FMC_FORM    0x0020
  5334. void txFlushScrollBarPos(TX* text);
  5335. //
  5336. void txDoCaption(TX* text);
  5337. void txDoCaptionEx(TX* text,HWND hwndbase,int idMt);
  5338. void txCloseToolbar(TX* text);
  5339. void txReflectCc(TX* text,CMDLINECONTEXT* pcc,BOOL fProfile);
  5340. void ehHwndSetDisp(TX* text,RECT* rWork,BOOL fDisp);
  5341. #endif    // !__TXC__
  5342.  
  5343. //##ツール
  5344.  
  5345. BOOL TXAPI_(323) TXCMDBASE txuiConvertCharZenhan(TX* text);
  5346. int TXAPI_(293) txCharConvert(TX* text,CHARCONVERT* cc);
  5347. BOOL TXAPI_(334) txCmpFirst(TX* text);
  5348. BOOL TXAPI_(335) txCmp(TX* text);
  5349. void TXAPI_(338) txIndentInc(TX* text);
  5350. void TXAPI_(339) txIndentDec(TX* text);
  5351. void TXAPI_(340) txHelpOpenW(TX* text,wchar* _wszfilename);
  5352. void TXAPI_(854) txHelpOpen(TX* text,mchar* szfilename);
  5353. void TXAPI_(331) txSwitchIme(TX* text);
  5354. BOOL TXAPI_(330) txuiImeConvert(TX* text);
  5355. BOOL TXAPI_(381) TXCMDBASE txuiConvertChar(TX* text);
  5356. BOOL TXAPI_(384) TXCMD TXUI txuiQuote(TX* text);
  5357. BOOL TXAPI txQuoteEx(TX* text,mchar* szQuote,int mode);
  5358.     #define TXQUOTE_SELECT    0x01    // 範囲選択されてなかった時でも選択状態にする
  5359. //
  5360. void TXAPI_(325) txInsertBrace(TX* text);
  5361. void TXAPI_(313) txJankToAnk(TX* text);
  5362. void TXAPI_(785) txJkanaToKana(TX* text);
  5363. void TXAPI_(786) txJkataToKana(TX* text);
  5364. void TXAPI_(787) txKanaToJhira(TX* text);
  5365. void TXAPI_(788) txKanaToJkata(TX* text);
  5366. void TXAPI_(789) txAnkToJank(TX* text);
  5367. // ソート
  5368. // WZ4.0/PWZ2.0C EOF行を含むソートもできるようになりました。
  5369. typedef struct {
  5370.     UINT sizeStruct;    // sizeof(SORTARG) for version check
  5371.     NPARA lineTop;        // ソート開始論理行(origin:1)
  5372.     NPARA lineEnd;        // ソート終了論理行(origin:1)
  5373.                         //WZ3.90I 981029 lineTop,lineEndがテキストの範囲を超えている場合は、
  5374.                         // テキストに収まる範囲をソートします。
  5375.                         // lineEndが0ならlineTopからテキストの終わりまでをソートします。
  5376.     IBUFF lchItem;        // 比較項目の最大長
  5377.                         // fCsvまたはchItemが0以外なら指定は無視されます。
  5378.                         // 0なら行末までを比較します。
  5379.                         // 行末までに \0 文字があれば、そこまでを比較します。
  5380.     IBUFF iItem;        // 比較項目位置:行先頭からのオフセット
  5381.                         // fCsvがONの場合は、行先頭項目を0とした、比較項目NOを指定します。
  5382.     BYTE chItem;        // 0を指定すると何もしません。
  5383.                         // 0以外を指定すると、iItem以降の最後のchItemの文字から
  5384.                         // 行末までを比較します。
  5385.                         // 行末までに \0 文字があれば、そこまでを比較します。
  5386.     FBOOL fCsv;            // 1にすると、タブで区切られたiItem番目の内容で比較します。
  5387.                         //WZ3.90I 981029 機能実装。
  5388.     FBOOL fBack;        // 逆順にソート?
  5389.     FBOOL fNoSenseCase;    // 半角英大小文字を区別しない
  5390. // result
  5391.     NPARA nparaCur;        //WZ3.90I 981029 0以外に指定すると、その段落がソート後にどこの段落に移動したかを返します。
  5392. // 以下は使われなくなりました。指定は無視されます。//WZ3.90I 981029 
  5393.     IBUFF lchLine;
  5394.     LPVOID pfuncCmpKey;
  5395.     LPARAM lCust;
  5396. // 以上は使われなくなりました。
  5397. // 拡張用予備
  5398.     BYTE reserved[16];
  5399. } SORTARG;
  5400. BOOL TXAPI_(846) TXHIGH txSort(TX* text,SORTARG* arg);
  5401. //
  5402. #if !__TXC__
  5403. void TXAPI txTabToSpace(TX* text);
  5404. void TXAPI txSpaceToTab(TX* text);
  5405. void TXAPI txDeleteTailSpace(TX* text);
  5406. //
  5407. BOOL txuiRegisterWord(TX* text,HWND hwndParent);
  5408. BOOL uiCustToolbar(mchar* szApp,mchar* szName);
  5409. BOOL txuiCustKey(TX* text);
  5410. void txKeylist(TX* text);
  5411. BOOL TXCMDBASE uiComplete(TX* text);
  5412. BOOL txCaseWord(TX* text,BOOL fToLower);
  5413. BOOL txuiConvertText(TX* text);
  5414. BOOL txuiSort(TX* text);
  5415. BOOL txuiProof(TX* text);
  5416. BOOL txuiReWording(TX* text);
  5417. BOOL txuiSpellCheck(TX* text);
  5418. BOOL txuiSpellCheckCur(TX* text);
  5419. BOOL txfUiFootnoteInsert(TX* text);
  5420. BOOL txfUiFootnoteOp(TX* text);
  5421. BOOL txuiRegFiletypeConnection(TX* text);
  5422. void SetExtRegTml(BOOL fSet);
  5423. void SetExtRegTxt(BOOL fSet);
  5424. void SetExtRegUnknown(BOOL fSet);
  5425. void SetExtRegTextsPwz(void);
  5426. //
  5427. BOOL txInsertFileWztext(TX* textInsert,wchar* wszfilename,int mode);
  5428. BOOL wordicGetExist(void);
  5429. BOOL txDicWord(TX* text);
  5430. BOOL txCompletePrev(TX* text);
  5431. BOOL txCompleteNext(TX* text);
  5432. void txAddRefer(TX* text,IFILE adr);
  5433. void uiHelp(int idStartHeadline);
  5434. BOOL txJumpThp(TX* text,mchar* szHeadline);
  5435. BOOL txuiInsertTemplate(TX* text);
  5436. BOOL TXCMDBASE uiInsertControl(TX* text);
  5437. BOOL txGrepTagJump(TX* text);
  5438. BOOL CALLBACK dlgprocConvertChar(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  5439. void ccToCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5440. void ccFromCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5441. BOOL uiOpenHistFile(void);
  5442. #endif // !__TXC__
  5443.  
  5444. //##キー/IDMコマンド実行
  5445.  
  5446. BOOL TXAPI_(766) txKeySetWzcmd(TX* text,mchar* szKey,WZCMD wzcmd);
  5447. void TXAPI_(901) txKeySet2Stroke(TX* text,IDM idm);
  5448. BOOL TXAPI_(619) txKeyLoad(TX* text);
  5449. BOOL TXAPI_(620) txKeyLoadFrame(TX* text);
  5450. BOOL TXAPI_(621) txKeyInit(TX* text);
  5451. BOOL TXAPI_(622) txIdmToSzkey(TX* text,WZCMD wzcmd,mchar szstr[CCHWORD]);    //WZ3.90I 981103 txKeyWzcmdToSzstrから名称変更
  5452. BOOL TXAPI_(623) keymacroPlayStep(void);
  5453. BOOL TXAPI_(624) keymacroPlay(void);
  5454. BOOL TXAPI_(625) keymacroPlayN(int number);
  5455. BOOL TXAPI_(626) keymacroRecord(void);
  5456. BOOL TXAPI_(627) keymacroAddIdm(int idm);
  5457. BOOL TXAPI_(628) keymacroAddStr(mchar* szStr,BOOL fOverWrite);
  5458. BOOL TXAPI_(629) keymacroAddSearch(mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  5459. BOOL keymacroBusy(void);
  5460. BOOL TXAPI_(630) txuiKeymacro(TX* text);
  5461. void TXAPI_(631) txInsertPreprocess(TX* text);
  5462. void TXAPI_(632) txInsertPostprocess(TX* text);
  5463. BOOL TXAPI_(634) wpathIsAutosave(wchar* wszfilename);
  5464. BOOL TXAPI_(635) txAutosaveGetFileNameW(TX* text,wchar wszfilename[CCHPATHNAME]);
  5465. void TXAPI_(636) txAutosaveExec(TX* text);
  5466. BOOL TXAPI_(637) txAutosaveAtQuit(TX* text);
  5467. BOOL TXAPI_(638) txAutosaveAtOpen(TX* text);
  5468. void TXAPI_(639) txAutosaveAtCmd(TX* text);
  5469. BOOL TXAPI_(640) txAutosaveDelete(TX* text);
  5470. BOOL TXAPI_(641) txAutosaveGetDelete(TX* text,wchar* wszfilename);
  5471. mchar* TXAPI_(403) txWzkeyToSzkey(TX* text,WZKEY wzkey,mchar szkey[CCHKEY]);
  5472. mchar* TXAPI_(404) szkeyToStr(mchar szkey[CCHKEY],mchar szstr[CCHWORD]);
  5473. void keylistCreate(void);
  5474. BOOL hwndControlProcWmKey(HWND hwnd);
  5475. BOOL txKeyProcMessage(TX* text,UINT message,WPARAM wParam,LPARAM lParam);    //WZ3.90I 981102 引数(BOOL fKeyD)廃止。TXAPI化中止。
  5476. BOOL txKeyProcMessageByMouse(TX* text,UINT message,WPARAM wParam,LPARAM lParam);
  5477. BOOL txPeekWM_CHAR(TX* text);
  5478. BOOL txPeekWM_SYSCHAR(TX* text);
  5479. mchar* idmToString(mchar szCmd[CCHWORD],int idm);
  5480. mchar* idmToSzEmacsFunction(int idm);
  5481. void txKeylistOutputEmacs2Stroke(TX* textDst);
  5482. #if !WINDOWSCE
  5483. BOOL txGetEmacsIsearching(TX* text);
  5484. #else
  5485.     #define txGetEmacsIsearching(text)    FALSE
  5486. #endif
  5487. int TXAPI_(164) txIdmExec(TX* text,int idm);
  5488. int txIdmExecEx(TX* text,int idm,int nRepeat,UINT mode);
  5489.     #define TXIDM_KEYMACRO_ADD    0x01
  5490.     #define TXIDM_PRIM            0x02
  5491. BOOL txIdmExecFilehist(TX* text,int idm);
  5492. int TXAPI_(903) txIdmExecPrim(TX* text,int idm,UINT mode);    //WZ4.00Ac 990207 new
  5493. int TXAPI_(825) idmRegister(void);    //WZ3.90I 981027 new
  5494. //WZ3.90I 981027 txIdmExecDirect廃止
  5495. BOOL txuiIdmSelect(TX* text);
  5496.  
  5497. //##ウィンドウ
  5498.  
  5499. #define WNDTX_MOVING        0x0001    // 内部移動中
  5500.  
  5501. #define OFFSET_WNDTX_LEFT    4
  5502. #define OFFSET_WNDTX_TOP    6
  5503. #define OFFSET_WNDTX_CX        8
  5504. #define OFFSET_WNDTX_CY        10
  5505. #define OFFSET_WNDTX_FLAG    12
  5506. #define OFFSET_WNDTX_END    14
  5507.  
  5508. BOOL TXAPI_(261) TXCMD uiWindowlist(TX* text);
  5509. int TXAPI_(252) textSearch(HWND hwnd);
  5510. HWND TXAPI_(253) textRead(int i);
  5511. void TXAPI_(262) wndtxSetActive(HWND hwndbase);
  5512. HWND TXAPI_(527) wndtxGetActive(HWND hwndbase);
  5513. BOOL TXAPI_(848) wndtxIsEditor(HWND hwndbase);
  5514. HWND TXAPI_(263) SearchTextW(wchar* szfilename);
  5515. HWND TXAPI_(865) SearchText(mchar* szfilename);
  5516. BOOL TXAPI_(328) txSwitchWindow(TX* text);
  5517. //
  5518. #if !__TXC__
  5519. WORD wndtxGetFlag(HWND hwnd);
  5520. HWND TXAPI wndGetTopPopupWindow(HWND hwndbase);
  5521. void TXAPI wndtxGetOriginalRect(HWND hwnd,RECT* r);
  5522. void TXAPI wndtxSetOriginalRect(HWND hwnd,RECT* r);
  5523. void wndtxSetPosSizeWork(HWND hwnd,int x,int y,int cx,int cy);
  5524. void wndtxSetMoving(HWND hwnd,BOOL fSet);
  5525. TX* hwndbaseIsMailer(void);
  5526. TX* hwndbaseIsTerm(void);
  5527. TX* hwndbaseIsHelp(void);
  5528. TX* hwndMailerGetText(HWND hwnd);
  5529. //
  5530. HWND textGetLast(void);
  5531. HWND textGetPrev(HWND cur);
  5532. HWND textGetNext(HWND cur);
  5533. void txPrevWindow(TX* text);
  5534. void txNextWindow(TX* text);
  5535. BOOL TXCMDBASE windowTileOverlap(void);
  5536. BOOL TXCMDBASE windowTile(void);
  5537. BOOL TXCMDBASE windowTileV(void);
  5538. BOOL TXCMDBASE windowTileH(void);
  5539. BOOL TXCMDBASE windowTileUndo(void);
  5540. //
  5541. #if !WINDOWSCE
  5542. MT* txFindMtHwndbase(TX* text,HWND hwnd);
  5543. #endif
  5544. BOOL txMultiWindow(TX* text,BOOL fSaveAddress);
  5545. BOOL on_mt_WM_ACTIVATE(TX* text,HWND hwnd);
  5546. BOOL on_mt_WM_PAINT(TX* text,HWND hwnd);
  5547. BOOL on_mt_WM_SIZE(TX* text,HWND hwnd);
  5548. BOOL on_mt_txQuit(TX* text);
  5549. #endif // !__TXC__
  5550.  
  5551. //##マクロ
  5552.  
  5553. BOOL TXAPI_(868) macroExec(mchar* szMacro,TX* text);
  5554. #if !__TXC__
  5555. LRESULT CALLBACK dialogCallDlgprocTxpcode(FARPROC proc,HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  5556. void txpcodeNotifyTextClose(TX* text);
  5557. void txpcodeSetDlgproc(FARPROC proc,BOOL fRelease);
  5558. void txTextvarFreeAll(TX* text);
  5559. WZCMD szMacroToWzcmd(mchar* szMacro);
  5560. mchar* wzcmdToSzmacro(WZCMD wzcmd);
  5561. BOOL uiTxcConfig(void);
  5562. BOOL uiMacroExec(TX* text);
  5563. BOOL txMacroCompile(TX* text);
  5564. BOOL txMacroExec(TX* text);
  5565. BOOL txMacroDump(TX* text);
  5566. void txMacroLog(TX* text);
  5567. BOOL txeExec(mchar* szfilename,wchar* wszCmdLine);
  5568. void macroTerm(void);
  5569. mchar* txcGetEventMacro(void);
  5570. #endif // !__TXC__
  5571.  
  5572. //##自動整形
  5573.  
  5574. typedef struct {
  5575.     int lch;                // 段落書式の長さ(lchIndent+lchArticle+lchSubtitle)
  5576.     int lchIndent;            // 字下げ文字列の長さ
  5577.     int lcxIndent;            //WZ3.90L 981115 字下げ文字列のLCX
  5578.     int lchArticle;            // 箇条書きの長さ
  5579.     int lchSubtitle;        // 小見出文字列の長さ
  5580.     int lchSubtitleBody;    // 小見出文字列の末尾の空白を除く長さ
  5581.     int lchSubtitleSymbol;    //WCE1.01 980113 小見出しの先頭部分の記号列(一般文字を除く)の長さ
  5582.     int nBeamtab;            //WZ3.90L 981115 桁揃えによる折り返し2行目以降の開始位置
  5583.     FBOOL fSubtitleChar;    //WCE1.01 980113 小見出し文字列は文字列(記号列でない)?
  5584.     FBOOL fArticleNum;        // 番号付き箇条書き段落?
  5585.     FBOOL fArticleJnumber;    // szArticleは全角番号付きか?
  5586.     SIGNED_WORD nArticle;    // 先頭番号
  5587.     SIGNED_WORD ichNum;        // szArticleの番号のオフセット
  5588.     SIGNED_WORD lchNum;        // szArticleの番号の長さ
  5589.     FBOOL fCurArticleNext;    //WCE1.01 971226 カーソル位置が箇条書きの直後にある?
  5590. } APFU_ANALYZE;
  5591. extern BBOOL _fApfNameSymbol;    //WCE1.01 980504 "名前>"を整形するか?
  5592. extern mchar _szLineTop[];
  5593.  
  5594. int TXAPI_(642) txApfuGetLcxLeft(TX* text,IBUFF offset,APFU_ANALYZE* ana,NPARA npara);
  5595. BOOL TXAPI_(643) txApfuIndentInc(TX* text);
  5596. BOOL TXAPI_(644) txApfuIndentDec(TX* text);
  5597. void TXAPI_(382) txApfInsertHR(TX* text);
  5598. BOOL TXAPI_(383) TXCMD txuiApfConfig(TX* text);
  5599. //
  5600. #if !__TXC__
  5601. mchar* mystrread(mchar* sz,TXCHAR* ch);
  5602. BOOL txApfExitModal(TX* text);
  5603. BOOL txApfExitEx(TX* text,DWORD mode);
  5604.     #define APF_TO_PLAINTEXT    0x01
  5605.     #define APF_TO_TML            0x02    //WZ3.90K 981113 
  5606. BOOL txApfExit(TX* text);
  5607. BOOL txApfEnter(TX* text);
  5608. BOOL txApfEnterModal(TX* text);
  5609. BOOL txApfEnterDeleteParaform(TX* text);
  5610. BOOL txApfEnterConnect(TX* text);
  5611. BOOL txApfEnterConnectPrev(TX* text);
  5612. BOOL txApfIndentInc(TX* text);
  5613. BOOL txApfIndentDec(TX* text);
  5614. BOOL txApfAtInsertBefore(TX* text);
  5615. BOOL txApfAtInsertAfter(TX* text);
  5616. void txApfIncrementArticle(TX* text);
  5617. void txApfExitFlag(TX* text);
  5618. int txApfGetWidth(TX* text);
  5619. int txApfGetLcxScenarioSerifuIndent(TX* text);
  5620. BOOL txApfCheckEnter(TX* text);
  5621. //
  5622. void txMailtextToPlaintext(TX* text);
  5623. void txPlaintextToMailtext(TX* text);
  5624. void txPlaintextToWordtext(TX* text);
  5625. #endif // !__TXC__
  5626.  
  5627. //##設定
  5628.  
  5629. void TXAPI_(607) txConfigGetGroupName(TX* text,mchar szbuff[CCHWORD]);
  5630. void TXAPI_(608) txConfigGetNamePrim(TX* text,mchar szbuff[CCHWORD]);
  5631. BOOL txConfigGetNamePrimEx(TX* text,mchar szbuff[CCHWORD]);
  5632. LPVOID TXAPI_(609) txConfigGetName(TX* text,mchar szbuff[CCHWORD]);
  5633. BOOL TXAPI_(610) txConfigGet(TX* text);
  5634. BOOL txConfigextGetExist(TX* text,mchar* sz);
  5635. BOOL TXAPI_(611) txConfigAdd(TX* text,mchar* szName);
  5636. BOOL TXAPI_(612) txConfigConnect(TX* text,mchar* szLoad);
  5637. BOOL TXAPI_(613) txConfigSet(TX* text);
  5638. BOOL TXAPI_(614) txConfigSetEx(TX* text);
  5639. void TXAPI_(914) txConfigRead(TX* text,mchar* szcfg);    //WZ4.00Bl 990913 設定切替TXAPI txConfigReadを追加。ユーザ要望。WZ3のように設定を1キーで切替たい。
  5640. void txConfigGetPlug(TX* text);
  5641. BOOL txConfigReadName(TX* text,mchar* szName);
  5642. BOOL txConfigDel(TX* text,mchar* szName);
  5643. //
  5644. void TXAPI_(615) txProfileAdd(TX *text);
  5645. BOOL TXAPI_(616) txProfileLoad(TX* text,PROFILE* pLoad);
  5646. BOOL txProfileLoadPrim(TX* text,PROFILE* pLoad);
  5647. //
  5648. #if !__TXC__
  5649. TX* shconfigGetText(void);
  5650. void shconfigInit(void);
  5651. BOOL shconfigWriteConfigshare(void);
  5652. BOOL shconfigWriteTextconfigshare(TX* text);
  5653. void shconfigSaveAtEdited(void);
  5654. //
  5655. void configtxMakeList(LPVOID dst,UINT mode);
  5656. BOOL configtxNameIsSystem(mchar* p);
  5657. BOOL configtxUpdown(mchar* szName,BOOL fDown,BOOL fTml);
  5658. void textcfgWriteAllModal(void);
  5659. void textcfgReadAll(void);
  5660. void shconfigReadTextconfigshare(TX* text);
  5661. //
  5662. BOOL histLoad(void);
  5663. BOOL histSave(void);
  5664. //
  5665. BOOL configOpen(CONFIG* config,wchar* wszFilename);
  5666. BOOL configSetDataid(CONFIG* config,int dataid,int datalen,BOOL fName);
  5667. int configGetCount(CONFIG* config);
  5668. int configFind(CONFIG* config,mchar* szName);
  5669. BOOL configRead(CONFIG* config,int index,LPVOID pConfig);
  5670. BOOL configWrite(CONFIG* config,int index,LPVOID pConfig);
  5671. BOOL configDelete(CONFIG* config,int index);
  5672. BOOL configRename(CONFIG* config,int index,mchar* szNewName);
  5673. int configAdd(CONFIG* config,mchar* szName,LPVOID pConfig);
  5674. int configMakeList(CONFIG* config,HWND hctrl);
  5675. void configClose(CONFIG* config);
  5676. //
  5677. void txConfigtextRead(TX* text);
  5678. IFILE txConfigtextWrite(TX* text,IFILE adr);
  5679. IFILE txConfigtextDelete(TX* text,IFILE adr);
  5680. void txConfigtextGetOriginal(TX* text);
  5681. //
  5682. #define CFGLIST_STRBLK        0x0000    // strblkに出力
  5683. #define CFGLIST_LISTBOX        0x0100    // listboxに出力
  5684. #define CFGLIST_GETOP(mode)    ((mode) & 0xFF)
  5685. #define CFGLIST_ALL            0        // 設定名の一覧をすべて出力
  5686. #define CFGLIST_NAME        1        // 名前のみを出力。拡張子で始まる名前は出力しない
  5687. #define CFGLIST_EXT_NAME    2        // "拡張子" + " (名前)"を出力
  5688. #define CFGLIST_NAMESEL        3        // CFGLIST_NAMEと同じだが、CとHTMLを表示しない。    //WZ3.90N 981202 
  5689.                                     //WZ3.90P 981205 TMLタグを使う設定も表示しない
  5690. #define CFGLIST_NAMESELTML    4        // CFGLIST_NAMESELと同じだが、TMLタグを使う設定のみを表示    //WZ3.90P 981205 
  5691. int _textmsgMakeList(TX* text,LPVOID dst,UINT mode);
  5692. int textmsgMakeList(TX* text,HWND hctrl);
  5693. void _cfglistAdd(LPVOID dst,UINT mode,mchar* szName);
  5694. void _cfglistClear(LPVOID dst,UINT mode);
  5695. int cfglistAdd(LPVOID dst,UINT mode,mchar* szItem);
  5696. //
  5697. BOOL szextIsMail(mchar* szext);
  5698. BOOL szextIsNote(mchar* szext);
  5699. BOOL szextIsMailPreview(mchar* szext);
  5700. #if WZFUNC_TEXTCFGBIN
  5701.     void shSetConfigChanged(mchar* szName);
  5702. #else
  5703.     #define shSetConfigChanged(szName)
  5704. #endif
  5705. void txSetGetCommonfont(TX* text,BOOL fSet);
  5706. void sbSetupConfigName(HSTRBLK sb);
  5707. void txConfigFlushFilekind(TX* text);
  5708. void txInsertConfigtextNone(TX* text);
  5709. void txSetConfigDefaultDev(TX* text,mchar* szext);
  5710. #endif // !__TXC__
  5711.  
  5712. //##ファイル
  5713.  
  5714. BOOL TXAPI_(259) forkexW(wchar* szfilename,wchar* sw,UINT mode,TXFORKRESULT* pResult);
  5715.     // szfilenameのファイルをオープンします。
  5716.     // szfilenameにスイッチ指定を含むことはできません
  5717.     // 空白を含むファイル名もszfilenameにそのまま指定できます
  5718.     // szfilenameは""で括ってあっても構いません
  5719.     // szswに、起動オプションを指定できます。
  5720.     // オープンできたらTRUE
  5721.     // 既にオープンされていたらその窓をアクティブにしてFALSE、
  5722.     // オープンできなかったらFALSEを返します。
  5723.     // modeにはTXFORK_XXXを指定します。_text.hを参照してください。
  5724.     #define TXFORK_NODISP            0x0001    // ウィンドウを表示しない
  5725.     #define TXFORK_CLOSE_NULL        0x0002    // 現在のtextが無題ファイルで内容が空なら閉じる
  5726.     #define TXFORK_CLOSE_TEXT        0x0004    // 現在のtextを強制的に閉じる
  5727.     #define TXFORK_FORKWZ_ENABLE    0x0008    // 高速オープンができなければ、
  5728.                                             // 別WZを起動することも検討する
  5729.     #define TXFORK_FORKWZ            0x0010    // 別WZを起動してオープンする
  5730.                                             // TXFORK_REPLACE_NULLが指定されている場合、
  5731.                                             // TXFORK_REPLACE_NULLができれば別WZは起動しない
  5732.     #define TXFORK_SYNC                0x0020    // (未完成です)
  5733.                                             // 返り値は、szfilenameの窓のhwndbase。
  5734.                                             // オープンできなかったらNULL
  5735.                                             // 別WZを起動してオープンした場合は、
  5736.                                             // オープン処理が終わるまで待つ。
  5737.     #define TXFORK_ENABLE_MULTI        0x0080    // szfilenameが既にオープンされていても
  5738.                                             // 構わずオープンする。
  5739.     #define TXFORK_REPLACE_NULL        0x0100    // 現在のtextが無題ファイルで内容が空なら
  5740.                                             // 閉じて再利用する
  5741.     #define TXFORK_REPLACE_TEXT        0x0200    // 現在のtextを強制的に閉じて
  5742.                                             // 再利用する
  5743. BOOL TXAPI_(260) forkstdW(wchar* szfilename,wchar* sw);
  5744. BOOL TXAPI_(781) forkstd(mchar* szfilename,mchar* szsw);
  5745. BOOL forkstdPrimW(wchar* wszfilename,wchar* wszsw,int modeFileOpen);    //WZ3.90F 980820 
  5746. //
  5747. BOOL TXAPI_(257) TXHIGH txSave(TX* text);
  5748. BOOL TXAPI_(258) TXHIGH txSaveToW(TX* text,wchar* wszfilename);
  5749. BOOL TXAPI_(805) TXHIGH txSaveTo(TX* text,mchar* szfilename);
  5750. BOOL TXAPI_(266) txuiSave(TX* text);
  5751. BOOL TXAPI_(267) txuiSaveAs(TX* text);
  5752. BOOL TXAPI_(268) txuiSaveAsVz(TX* text);
  5753. BOOL TXAPI_(269) txuiSaveTo(TX* text);
  5754. BOOL TXAPI_(271) txuiClose(TX *textClose);
  5755. BOOL TXAPI_(264) txuiCloseAllEvery(TX* text);
  5756. int txuiCloseEvery(TX* text,HWND hwndbase);
  5757. void TXAPI_(265) txQuit(TX* text);
  5758. BOOL TXAPI_(274) txuiReopenInternal(TX* text);
  5759. BOOL TXAPI_(275) txReopenInternalExW(TX* text,wchar* szfilenameNew,BOOL fJumpOld,CMDLINECONTEXT* cc);
  5760.     #define RIEX_JUMPOLD            0x01
  5761. BOOL TXAPI_(276) txuiFileOpen(TX* text);
  5762. BOOL TXAPI_(277) txuiFileOpenVz(TX* text);
  5763. //
  5764. TX* TXAPI_(254) txAllocText(DWORD mode);
  5765.     #define textalloc()    txAllocText(0)    //PWZ2BETA0.3 980519 
  5766. void TXAPI_(255) txFreeText(TX* text);
  5767. TX* TXAPIBASE TXAPI_(96) textopenW(wchar* wszfilename);
  5768. TX* TXAPIBASE TXAPI_(97) textopen(mchar* szfilename);
  5769.     #define textnew()    textopen(NULL)    //PWZ2BETA0.4 980610 
  5770. TX* TXAPIBASE TXAPI_(916) textopenExW(wchar* wszfilename,UINT mode);    //WZ4.00Bm 990928 new
  5771. TX* TXAPIBASE TXAPI_(917) textopenEx(mchar* szfilename,UINT mode);    //WZ4.00Bm 990928 new
  5772.     #define TXO_KCAUTO        0x00000001    // 文字コードを自動判別
  5773.     #define TXO_CRAUTO        0x00000002    // 改行コードを自動判別
  5774.     #define TXO_KCAUTOMODAL    0x00000004    // 設定に従って文字コードを自動判別
  5775.     #define TXO_CRAUTOMODAL    0x00000008    // 設定に従って改行コードを自動判別
  5776.     #define TXO_LINED_0        0x00000010    // fLineDをクリアして開く
  5777.     #define TXO_TML            0x00000020    // TMLファイルとして開く
  5778. TX* TXAPI_(861) textFrameOpenEx(mchar* szfilename,mchar* szsw);
  5779.     #define textFrameOpen(szfilename) textFrameOpenEx(szfilename,NULL);
  5780. void TXAPIBASE TXAPI_(98) textclose(TX* text);
  5781. //
  5782. BOOL TXAPI_(256) txuiGetOpenFileNameW(TX* text,wchar wszfilename[CCHPATHNAME],wchar* wszCaption,TXOFN_ARG* arg);
  5783. BOOL TXAPI_(807) txuiGetOpenFileName(TX* text,mchar szfilename[CCHPATHNAME],mchar* szCaption,TXOFN_ARG* arg);
  5784. //
  5785. #if !__TXC__
  5786. BOOL txuiGetOpenFileNameHtml(TX* text,mchar szfilename[CCHPATHNAME],mchar* szmask);
  5787. BOOL txuiFileOpenPrim(TX* text,int modeFileOpen,TXOFN_ARG* arg);
  5788. BOOL TXAPI txuiFileOpenReadVz(TX* text);
  5789. BOOL txuiProject(TX* text,int mode);
  5790. void txProjectOpen(TX* text);
  5791. //
  5792. BOOL txSaveEh(TX* text);
  5793. BOOL txuiSaveMacroFile(TX* text);
  5794. void txCheckFiletimeActive(TX* text);
  5795. BOOL txConvertForSaveAs(TX* text,int modeSaveAs,wchar* wszfilename,BOOL* pfFileout);
  5796. //
  5797. BOOL txuiConfirmNewfile(TX* text,CMDLINECONTEXT* pcc,wchar* wszfilename);
  5798. BOOL TXAPI txOpenMail(TX* text,mchar* szMailAddress);
  5799. BOOL TXAPI txOpenURL(TX* text,mchar* szURL);
  5800. void txOpenProcFrameText(TX* text,CMDLINECONTEXT* pcc);
  5801. void txOpenNewInstance(TX* text,BOOL fPost);
  5802. void txSetImeAtOpen(TX* text);
  5803. void txNew(TX* text,BOOL fNewProcess);
  5804. BOOL txuiNew(TX* text);
  5805. //
  5806. BOOL txAutosaveAtOpenEx(TX* text,BYTE autosaveAtOpen);
  5807. BOOL txGetBackupFilenameW(TX* text,wchar* wszfilename,wchar dst[CCHPATHNAME]);
  5808. BOOL txAutosaveGetOverwrite(TX* text);
  5809. #define txAutosaveGetBackup(text)    (!txAutosaveGetOverwrite(text))    //PWZ2BETA0.3 980510 new
  5810. //
  5811. void txSetFileShare(TX* text,int modeFileShare);
  5812. void sharefileOpen(TX* text);
  5813. BOOL sharefileClose(TX* text);
  5814. BOOL sharefileLoadAllClose(TX* text);
  5815. void SetReadAll(TX* text);
  5816. BOOL TXHIGH txReadAll(TX* text);
  5817. //
  5818. BOOL IsClose(TX* text);
  5819. BOOL fileIsWztext_W(wchar* wszfilename);    // for WZ3 wz文書ファイル
  5820. #endif // !__TXC__
  5821.  
  5822. //##IBUFF操作
  5823.  
  5824. IFILE TXAPI_(650) TXHIGH txIfileGetParaTop(TX* text,IFILE ifile);
  5825. IFILE TXAPI_(651) TXHIGH txIbuffToIfile(TX* text,IBUFF ibuff);
  5826. IBUFF TXAPI_(652) TXHIGH txIfileToIbuff(TX* text,IFILE ifile);
  5827. IBUFF TXAPI_(653) TXHIGH txGetGapSize(TX* text);
  5828. IBUFF TXHIGH txIbuffGetGapTop(TX* text);
  5829. IBUFF TXHIGH txIbuffGetGapEnd(TX* text);
  5830. IBUFF TXAPI_(654) TXHIGH txIbuffGetCurParaTop(TX* text);
  5831. IBUFF TXAPI_(655) TXHIGH txIbuffGetChartop(TX* text,IBUFF ibuff);
  5832. IBUFF TXAPI_(656) TXHIGH txIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  5833. IBUFF TXAPI_(657) TXHIGH txfIbuffGetChartop(TX* text,IBUFF ibuff);
  5834. IBUFF TXAPI_(658) TXHIGH txfIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  5835. IBUFF TXAPI_(659) TXHIGH txfIbuffFlushOffset(TX* text,IBUFF ibuffChartop,IBUFF offset);
  5836. IBUFF TXAPI_(660) TXHIGH txIbuffFlushOffset(TX* text,IBUFF ibuffChartop,IBUFF offset);    //XZ0.1 990524 (int offset) -> (IBUFF offset)
  5837. BOOL TXAPI_(661) txBuffCheckInsert(TX* text,DWORD size);
  5838. BOOL TXAPI_(662) txIbuffIsParaTop(TX* text,IBUFF ibuff);
  5839. BOOL TXAPI_(663) txIbuffIsCharTop(TX* text,IBUFF ibuff);
  5840. IBUFF TXAPI_(664) txIbuffGetCrTop(TX* text,IBUFF ibuff);
  5841. IBUFF TXAPI_(665) txIbuffGetParaTop(TX* text,IBUFF ibuff);
  5842. BOOL TXAPI_(666) txIbuffIsParaEnd(TX* text,IBUFF ibuff);
  5843. BOOL txIbuffIsEof(TX* text,IBUFF ibuff);
  5844. IBUFF TXAPI_(667) txIbuffGetParaEnd(TX* text,IBUFF ibuff);
  5845. IBUFF txIbuffGetParaEndLimit(TX* text,IBUFF ibuff,IBUFF maxlen);
  5846. IBUFF txIbuffGetParaContentEnd(TX* text,IBUFF ibuff);
  5847. IBUFF txIbuffGetPrevPara(TX* text,IBUFF ibuff);
  5848. IBUFF TXAPI_(668) txIbuffGetNextPara(TX* text,IBUFF ibuff);
  5849. #define txIfileGetNextPara(text,ifile)    txIbuffToIfile(text,txIbuffGetNextPara(text,txIfileToIbuff(text,ifile)))
  5850. // IFILEの文字サイズを取得(CHAR_TXF対応)
  5851. #define txIfileGetCharsize(text,ifile) txGetCharSize(text,txIfileToIbuff(text,ifile))
  5852. BOOL TXAPI_(670) txIbuffIsTop(TX* text,IBUFF ibuff);
  5853. BYTE TXAPI_(671) txIbuffGetPrevByte(TX* text,IBUFF ibuff);
  5854. IBUFF txIbuffFromNpara(TX* text,NPARA npara);    //WZ4.00Bj 990824 new
  5855. IBUFF txIbuffFromNparaEx(TX* text,NPARA npara,IBUFF ibuffStart,NPARA nparaStart);
  5856. NPARA txIbuffGetNpara(TX* text,IBUFF ibuff);
  5857. IBUFF txIfileGetTop(TX* text);
  5858. IBUFF txIbuffFromLy(TX* text,int ly,IBUFF* pCurysize);
  5859. BOOL txIbuffIsUrl(TX* text,IBUFF ibuff);
  5860. BOOL txIbuffJumpLink(TX* text,IBUFF ibuff);
  5861. BOOL txIbuffIsNspace(TX* text,IBUFF ibuff,int n);
  5862. TXCHAR TXHIGH txIbuffGetChar(TX* text,IBUFF ibuff);
  5863. NPARA GetNparaFromOffset(TX* text,IBUFF offset);
  5864.  
  5865. //##アンドゥ/世代管理
  5866.  
  5867. BOOL TXAPI_(210) txUndo(TX* text);
  5868. BOOL TXAPI_(211) txRedo(TX* text);
  5869. BOOL TXAPI_(332) TXHIGH_THROUGH txUndoPara(TX* text);
  5870. BOOL TXAPI_(333) txuiGene(TX* text);
  5871. #if !__TXC__
  5872. BOOL undoGetEditAble(TX* text);
  5873. void undoInit(TX* text);
  5874. void undoTerm(TX* text);
  5875. void undoAddDeleteSelect(TX* text,DWORD address,DWORD size);
  5876. void undoAddDelete(TX* text,DWORD sizedelete);
  5877. void undoAddInsert(TX* text,IFILE address,LPVOID pinsert,DWORD sizeinsert,BOOL fMove);
  5878. void undoAddOpen(TX* text);
  5879. void undoAddCellFlush(TX* text,BOOL fStart);
  5880. void undoPackStart(TX* text);
  5881. BOOL undoPackEnd(TX* text);
  5882. BOOL undoSaveW(TX* text,wchar *wszfilename,FILETIME* ft,FILETIME* ft0);
  5883. BOOL undoClear(TX* text);
  5884. BOOL undoGetAble(TX* text);
  5885. BOOL redoGetAble(TX* text);
  5886. void undoAddAutoForm(TX* text,BOOL fEnd);
  5887. BOOL geneReadText(TX* textTarget,int igene,TX* text);
  5888. #endif // !__TXC__
  5889.  
  5890. //##メッセージ(RFC822)テキスト処理
  5891.  
  5892. #if !__TXC__
  5893. int txMsghdrGet(TX* text,mchar* szHeader,mchar** pSz);
  5894. int txMsghdrGetInt(TX* text,mchar* szHeader,int intDefault);
  5895. BOOL txMsghdrGetString(TX* text,mchar* szHeader,mchar* szDefault,mchar* szbuff,int cchbuff);
  5896. BOOL txMsghdrGetStringW(TX* text,mchar* szHeader,wchar* szDefault,wchar* szbuff,int cchbuff);
  5897. int txMsghdrGetAlloc(TX* text,mchar* szHeader,mchar** pSz);
  5898. BOOL txMsghdrSetInt(TX* text,mchar* szHeader,int data);
  5899. BOOL txMsghdrGetExist(TX* text,mchar* szHeader);
  5900. BOOL txMsghdrGetsetString(TX* text,mchar* szHeader,mchar* szbuff,int cchbuff,BOOL fSet);
  5901. void txMsghdrGetsetStringInit(TX* text,mchar* szHeader,mchar* szInit,mchar* szbuff,int cchbuff,BOOL fSet);
  5902. BOOL txMsghdrGetsetInt(TX* text,mchar* szHeader,int* data,BOOL fSet);
  5903. void txMsghdrGetsetIntInit(TX* text,mchar* szHeader,int initdata,int* data,BOOL fSet);
  5904. BOOL txMsghdrGetsetIntW(TX* text,mchar* szHeader,WORD* data,BOOL fSet);
  5905. BOOL txMsghdrGetsetIntB(TX* text,mchar* szHeader,BYTE* data,BOOL fSet);
  5906. BOOL txMsghdrJumpHeader(TX* text,mchar* szHeader);
  5907. BOOL txMsghdrSetFiletimeWzdate(TX* text,mchar* szHeader,FILETIME* filetime);
  5908. BOOL txMsghdrSetChoice(TX* text,mchar* szHeader,int data,mchar** tsz);
  5909. int txMsghdrGetChoice(TX* text,mchar* szHeader,int intDefault,mchar** tsz);
  5910. DWORD txMsghdrGetBinary(TX* text,mchar* szHeader,LPVOID pData);
  5911. BOOL txMsghdrSetW(TX* text,mchar* szHeader,wchar* wszContent);
  5912. BOOL txMsghdrSetBinary(TX* text,mchar* szHeader,DWORD sizedata,LPVOID pdata);
  5913. void txMsgJumpMsgTop(TX* text);
  5914. BOOL txMsghdrSetEx(TX* text,mchar* szHeader,mchar* szContent,int lchContent);
  5915. int txMsghdrGetContentMultiline(TX* text,int lchHeader,mchar** pSz);
  5916. void txMsghdrGetsetIntInitB(TX* text,mchar* szHeader,int initdata,BYTE* data,BOOL fSet);
  5917. void txMsghdrGetsetIntInitW(TX* text,mchar* szHeader,int initdata,WORD* data,BOOL fSet);
  5918. BOOL txMsghdrDeleteMultiline(TX* text,mchar* szHeader);
  5919. BOOL txMsghdrGetsetStringW(TX* text,mchar* szHeader,wchar* szbuff,int wcchbuff,BOOL fSet);
  5920. BOOL txMsghdrSetTextbuff(TX* text,mchar* szHeader);
  5921. TEXTCHAR* txMsghdrGetTextbuff(TX* text,mchar* szHeader);
  5922. BOOL txMsghdrDelete(TX* text,mchar* szHeader);
  5923. BOOL txMsghdrSet(TX* text,mchar* szHeader,mchar* szContent);
  5924. BOOL TXHIGH txIbuffIsMsgsepa(TX* text,IBUFF ibuff);
  5925. //
  5926. TX* textmsgopen(mchar* szfilename,mchar* szName);
  5927. BOOL textmsgclose(TX* text);
  5928. BOOL textmsgDel(TX* text,mchar* szName);
  5929. void textmsgAdd(TX* text,mchar* szName);
  5930. BOOL textmsgSetNull(TX* text,mchar* szName);
  5931. BOOL textmsgNext(TX* text);
  5932. TX* textmsgopenWzapp(mchar* szName);
  5933. BOOL textmsgGetRecord(TX* text,mchar* szName);
  5934. BOOL textmsgSearch(TX* text,mchar* szName);
  5935. BOOL textmsgJumpTop(TX* text);
  5936. #endif // !__TXC__
  5937.  
  5938. //##初期化/オープン/クローズ
  5939.  
  5940. void TXAPI_(137) txInitText(TX* text);
  5941. BOOL TXAPI_(138) txSetFileNameW(TX* text,wchar* wszfilename);
  5942. BOOL TXAPI_(808) txSetFileName(TX* text,mchar* szfilename);
  5943. BOOL txSetFileNamePrimW(TX* text,wchar* wszfilename);
  5944. BOOL TXAPI_(139) txOpenText(TX* text);
  5945. BOOL TXAPI_(140) txClose(TX* text);
  5946. BOOL Init(TX* text,BOOL fTxDeleteText);
  5947. void txInitConfig(TX* text);
  5948. void txFreeColor(TX* text);
  5949. BOOL txCreateWindow(TX* text);
  5950. BOOL Exit(void);
  5951.  
  5952. //##TXF
  5953.  
  5954. BOOL TXAPI_(673) txfTagIsSingle(TEXTCHAR* pTag);
  5955. BOOL TXAPI_(674) txfTagIsChar(TEXTCHAR* pTag);
  5956. BOOL TXAPI_(675) txfTagIsEnd(TEXTCHAR* pTag);
  5957. BOOL TXAPI_(676) txfTagIsPara(TEXTCHAR* pTag);
  5958. BOOL TXAPI_(677) txfTagIsParaMulti(TEXTCHAR* pTag);
  5959. int TXAPI_(678) txfTagGetLch(TEXTCHAR* pTag);
  5960. TEXTCHAR* TXAPI_(679) txfTagGetName(TEXTCHAR* pTag);
  5961. BOOL TXAPI_(680) txfTagNameIs(TEXTCHAR* pName,TEXTCHAR* pTagname);
  5962. int txfTagNameGetLch(TEXTCHAR* pName);
  5963. BOOL TXAPI_(681) txfTagIsBeam(TEXTCHAR* pTag);
  5964. BOOL TXAPI_(682) txfTagAnalyze(TAGANA* ana,TEXTCHAR* pTag);
  5965. int TXAPI_(683) txfTagInsert(TX* text,TAGANA* ana);
  5966. int TXAPI_(684) txfTagInsertEx(TX* text,TAGANA* ana,TEXTCHAR* szAtr);
  5967. void TXAPI_(685) txfTagInsertBeam(TX* text,int lx);
  5968. void TXAPI_(686) txfTagnestFree(TX* text);
  5969. void TXAPI_(687) txfTagnestNextFree(TX* text);
  5970. TAGNEST* TXAPI_(688) txfTagnestSearch(TX* text,TAGANA* ana,UINT mode);
  5971. TAGNEST* TXAPI_(689) txfTagnest(TX* text,TEXTCHAR* pTag,int mode);
  5972. mchar* txfTagSkip(mchar* p);
  5973. void TXAPI_(690) txfSplit(TX* text);
  5974. void TXAPI_(691) txfFlushTagAtInsert(TX* text,IFILE address,IFILE cbClip);
  5975. int TXAPI_(692) txfGetDispString(TEXTCHAR* pTag,TEXTCHAR szbuff[CCHWORD]);
  5976. void TXAPI_(693) txfClearCharatr(TX* text);
  5977. void TXAPI_(694) txfClearCharatrArea(TX* text,IFILE* pTop,IFILE* pEnd);
  5978. void TXAPI_(695) txfCharatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr);
  5979.     #define TXFCHARATR_CLEAR    ((TEXTCHAR*)1)
  5980. void TXAPI_(696) txfParaatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr,int chTxftag);
  5981.     #define TXFPARAATR_CLEAR    ((TEXTCHAR*)1)
  5982. BOOL TXAPI_(697) txfRightChartop(TX* text);
  5983. BOOL TXAPI_(698) txfRightChartopTxf(TX* text);
  5984. BOOL TXAPI_(699) txfDeleteChar(TX* text);
  5985. BOOL TXAPI_(700) txfDeleteChartag(TX* text);
  5986. BOOL TXAPI_(701) txfDeleteChartagPrev(TX* text);
  5987. BOOL TXAPI_(702) txfLeftChartail(TX* text);
  5988. BOOL TXAPI_(703) txfLeftChartailEx(TX* text,BOOL fStopParaTag);
  5989. BOOL TXAPI_(704) txfLeftChartailTxf(TX* text);
  5990. BOOL TXAPI_(705) txfLeftChartop(TX* text);
  5991. BOOL TXAPI_(706) txfLeftChartopTxf(TX* text);
  5992. IBUFF TXAPI_(707) txfDeleteNull(TX* text);
  5993. IBUFF TXAPI_(708) txfDeleteNullTxf(TX* text);
  5994. void TXAPI_(709) txfUiInsertTable(TX* text);
  5995. BOOL TXAPI_(710) txfUiInsertImg(TX* text);
  5996. void TXAPI_(711) txfImgAnalyze(TX* text,TEXTCHAR* pTag,IMGATR* atr);
  5997. void TXAPI_(712) txfImgAnalyzeFree(TX* text,IMGATR* atr);
  5998. void TXAPI_(713) txfImgSet(TX* text,IMGATR* atr);
  5999. void imgatrToString(IMGATR* atr,TEXTCHAR szAtr[CCHPATHNAME * 2]);
  6000. TEXTCHAR* TXAPI_(714) txfCellGetLeft(TX* text);
  6001. void TXAPI_(715) txfCellAnalyze(TX* text,TEXTCHAR* pTag,CELLATR* atr);
  6002. void TXAPI_(716) txfCellSet(TX* text,CELLATR* atr);
  6003. BOOL TXAPI_(717) txfCellProperty(TX* text);
  6004. BOOL TXAPI_(718) txfCellFlush(TX* text);
  6005. void TXAPI_(719) txfIndentInc(TX* text);
  6006. void TXAPI_(720) txfIndentDec(TX* text);
  6007. BOOL TXAPI_(721) txfIsCurParaTop(TX* text);
  6008. void TXAPI_(722) txfBeam(TX* text);
  6009. int TXAPI_(723) txfGetLcxLeft(TX* text,IBUFF offset);
  6010. BOOL TXAPI_(724) txfProperty(TX* text);
  6011. BOOL TXAPI_(725) txfCharProperty(TX* text);
  6012. BOOL TXAPI_(726) txfParaProperty(TX* text);
  6013. BOOL txfParaPropertyEx(TX* text,BOOL fSimple);
  6014. void TXAPI_(727) txfParaOp(TX* text,int idm);
  6015. void TXAPI_(728) txfCharOp(TX* text,int idm);
  6016. void TXAPI_(729) txfGetCharProperty(TX* text,CONTEXT_CHARPROPERTY* context);
  6017. void TXAPI_(730) txfBeamFlush(TX* text,BOOL fAtInsertBeam);
  6018. BOOL txfConvert(TX* text,int modeSaveAs,HANDLE hf,TX* textQuote);
  6019. int txfParaTagsGetLch(mchar* p);
  6020. mchar* txfGetSubject(TX* text,mchar* buff,int cch);
  6021. int txfGetIndent(TX* text,BOOL fDelete);
  6022. TEXTCHAR* TXAPI_(731) atrnext(TEXTCHAR* p);
  6023. int TXAPI_(732) atrlen(TEXTCHAR* pAtr);
  6024. TEXTCHAR* TXAPI_(733) atrAddInt(TEXTCHAR* dst,TEXTCHAR* szAtr,int data);
  6025. TEXTCHAR* TXAPI_(734) atrAddBool(TEXTCHAR* dst,TEXTCHAR* szAtr,BOOL f);
  6026. TEXTCHAR* TXAPI_(735) atrAddString(TEXTCHAR* dst,TEXTCHAR* szAtr,TEXTCHAR* szString);
  6027. TEXTCHAR* TXAPI_(736) atrAddStringW(TEXTCHAR* dst,TEXTCHAR* szAtr,wchar* wszString);
  6028. TEXTCHAR* TXAPI_(737) atrAddAlign(TEXTCHAR* dst,TEXTCHAR* szAtr,int align,int alignDefault);
  6029. TEXTCHAR* TXAPI_(738) atrAddLine(TEXTCHAR* dst,TEXTCHAR* szAtr,int line,int lineDefault);
  6030. BOOL TXAPI txfAtrAddString(TX* text,TEXTCHAR* szAtr,TEXTCHAR* szString);
  6031. int TXAPI_(739) txfAtrGetInt(TEXTCHAR* pName,TEXTCHAR* szAtr,int defaultInt);
  6032. BOOL TXAPI_(740) txfAtrGetBool(TEXTCHAR* pName,TEXTCHAR* szAtr);
  6033. TEXTCHAR* TXAPI_(741) txfAtrGetString(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault);
  6034. mchar* txfAtrGetStringEx(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault,mchar* szBuff,int cchBuff);
  6035. int TXAPI_(742) txfAtrGetAlign(TEXTCHAR* pName,TEXTCHAR* szAtr,int alignDefault);
  6036. int TXAPI_(743) txfAtrGetLine(TEXTCHAR* pName,TEXTCHAR* szAtr,int lineDefault);
  6037. void TXAPI_(744) txfAtrGetFont(TEXTCHAR* pName,FONTSET* fontset,TX* text);
  6038. void TXAPI_(745) txfAtrSetFont(TEXTCHAR szAtr[256],FONTSET* fontset);
  6039. IBUFF TXAPI_(746) TXHIGH txfTagSearchPrev(TX* text,IFILE adr0,TAGANA* anaFind);
  6040. void TXAPI_(747) txfFlushXAlign(TX* text);
  6041. #define txfTagIsUser(p)                            (p[0] == 'u' && p[1] == '_')
  6042. #define txfTagNameIsEx(pBuff,pTagname,lchTagname)    (!textstrncmp(pBuff,pTagname,lchTagname) && !IschTagname(pBuff[lchTagname]))
  6043. // TAGID
  6044. #define TAG_INDENT    1
  6045. #define TAG_H        2
  6046. #define TAG_ALIGN    3
  6047. #define TAG_B        4
  6048. #define TAG_I        5
  6049. #define TAG_U        6
  6050. #define TAG_CLM        7
  6051. int TXAPI_(748) txfTagidInsert(TX* text,int id,int arg1,int arg2);
  6052. extern TEXTCHAR* _tszTag[];
  6053. #define txfTagidToString(id)    (_tszTag[id])
  6054. void TXAPI_(749) txfBeamAnalyze(TX* text,TEXTCHAR* pTag,BEAMATR* atr);
  6055. UINT TXAPI_(909) txfTagRemove(mchar* pMem,UINT size0);
  6056. #if !__TXC__
  6057. int txfTagInsertTag(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind);
  6058. int txfTagInsertWithAtr(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind,TEXTCHAR* szAtr);
  6059. void txfFootnoteInsert(TX* text,int number,TX* text2);
  6060. BOOL txfProcDateGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  6061. BOOL txfProcMequoteGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  6062. int txBeamtabGetIndex(TX* text,IBUFF paratop,TEXTCHAR* pSrc);
  6063. int txBeamtabGetLx(TX* text,NPARA npara,int iTab,int lxNow);
  6064. DWORD txfIbuffIsLink(TX* text,IBUFF ibuff);
  6065. BOOL txfAnchorJump(TX* text,DWORD anchor);
  6066. BOOL txfCellGetExist(TX* text);
  6067. BOOL TXHIGH txfCellJumpClm(TX* text,int clm);
  6068. BOOL txfCellGetExistRear(TX* text);
  6069. void txInsertCell(TX* text);
  6070. void txfRowSetLineBottom(TX* text,int lineBottom);
  6071. void txfToHtml(TX* text);
  6072. void txfFromHtml(TX* text);
  6073. void txBeamtabFlushAll(TX* text);
  6074. void cellatrInit(CELLATR* atr);
  6075. void cellatrToString(CELLATR* atr,TEXTCHAR szAtr[80]);
  6076. void txfCellJumpTableTop(TX* text);
  6077. BOOL txfBeamGetExist(TX* text);
  6078. int txfFootnoteFlushPara(TX* text,int number);
  6079. BOOL txfRowAdd(TX* text);
  6080. int txfCellGetRightX(TX* text);
  6081. int txfCellGetClm(TX* text);
  6082. BOOL txfCellIsCur(TX* text);
  6083. void txFlushMenuCheckAll(TX* text);
  6084. void txfInsertSf(TX* text,mchar* sf);
  6085. void txfCellFlushAll(TX* text);
  6086. void txfCharPropertyPrint(TX* text);
  6087. void txSetTml(TX* text);
  6088. BOOL txSetTmlModal(TX* text);
  6089. typedef struct {
  6090.     IFILE adr;
  6091.     IFILE texttop;
  6092.     int ly;
  6093. } TEXTTOPEXIT;
  6094. void txSetTexttopCur(TX* text);
  6095. void txResetTexttopEnter(TX* text,TEXTTOPEXIT* context);
  6096. void txResetTexttopExit(TX* text,TEXTTOPEXIT* context);
  6097. void txResetTexttop(TX* text);
  6098. void TXHIGH txFlushTexttopPrim(TX* text);
  6099. void txFlushTexttop(TX* text);
  6100. void txfFlushXAlign(TX* text);
  6101. BOOL txfAnchorContextHelp(DWORD anchor,RECT* r);
  6102. #endif // !__TXC__
  6103.  
  6104. //##HTML
  6105.  
  6106. #if !__TXC__
  6107. BOOL txuiHtmlInsertTable(TX* text);
  6108. void txHtmlCharOp(TX* text,int idm);
  6109. BOOL txHtmlBrowser(TX* text);
  6110. void txHelpOpenExtend(TX* text,int iHelp);
  6111. BOOL strhtmlTagIsA(mchar* p);
  6112. int strhtmlGetTagLch(mchar* sz);
  6113. UINT strhtmlIsCharRefer(mchar* p);
  6114. BOOL strhtmlTagIsHR(mchar* p);
  6115. HBITMAP strhtmlTagGetReduceHbitmap(TX* text,mchar* p,VALIGN* pValign);
  6116. mchar* strhtmlTagIsIMG(mchar* p);
  6117. #endif // !__TXC__
  6118.  
  6119. //##文字コード
  6120.  
  6121. #if !__TXC__
  6122. int kcDetectEx(TX* text,BOOL fInternal);
  6123. DIRECTORYATR* txFlushDirectoryAtr(TX* text);
  6124. BOOL kcFromTB(TX* text,int kc);
  6125. BOOL kcToTB(TX* text,int kc);
  6126. void kcToTBEx(TX* text,int kc);
  6127. int kcDetect(TX* text);
  6128. #endif // !__TXC__
  6129.  
  6130. //##見出し/アウトライン
  6131.  
  6132. //WZ4.00Bj 990823 TX-C:outline周りの実装を全面変更。TX-API outlineRegisterClass,outlineFlushTree,outlineFlushMemo,outlineFlushTargetNpara,outlineSaveEdited,dialogTree廃止。
  6133.  
  6134. #define WM_TV_NOTIFY            (WM_USER+950)    // NotifyCode        arg    //WZ4.00Bj 990823 new
  6135.     #define TVN_SETFOCUS                10
  6136.     #define TVN_RBUTTONUP                11
  6137.  
  6138. typedef struct {
  6139.     int offset;    // 段落先頭から特別見出内容までのオフセット
  6140.     int lch;    // 見出内容の長さ(見出し内容に\x00を含む場合、それも含めた長さなので注意)
  6141.     WORD fHtmlNoTagend:1;    // HTMLで</Hn>が無かった?
  6142. } HEADLINE_INFO;    //WZ4.00Bj 990824 new
  6143.  
  6144. BOOL TXAPI_(597) txHeadlineChange(TX* text,int iHeadline);
  6145. int TXAPI_(600) txHeadlineMatch(TX* text);
  6146. BOOL TXAPI_(598) txHeadlineGetContent(TX* text,TXSTR sz);
  6147. BOOL TXAPI_(837) txHeadlineSearchNext(TX* text);
  6148. BOOL TXAPI_(836) txHeadlineSearchPrev(TX* text);
  6149. int TXAPI_(669) txIbuffGetHeadline(TX* text,IBUFF ibuff,HEADLINE_INFO* res);    //WZ4.00Bj 990824 newarg:res
  6150. #if !__TXC__
  6151. int headline_uistyle(HEADLINE_SET* context);
  6152. void txHeadlineFree(TX* text);
  6153. BOOL txHeadlineInit(TX* text);
  6154. BOOL txIbuffHeadlineGetContentPrim(TX* text,IBUFF ibuff,HEADLINE_INFO* res,mchar* szbuff,int cchbuff);    //WZ4.00Bj 990824 arg変更
  6155. BOOL txHeadlineGetContentEx(TX* text,mchar* szbuff,int cchbuff);
  6156. BOOL txHeadlineGet(TX* text,int iHeadline,mchar sz[CCHHEADLINE]);
  6157. int txHeadlineGetLen(TX* text,int iHeadline);
  6158. void txHeadlineSetupMiseiri(TX* text);
  6159. BOOL txHeadlineJumpSameNestTop(TX* text,int nNest);
  6160. BOOL txHeadlineJumpSameNestEnd(TX* text,int nNest);
  6161. BOOL txHeadlineJumpSameNestTail(TX* text,int nNest);
  6162. BOOL txuiHeadlineChange(TX* text);
  6163. BOOL txuiHeadlineMap(TX* text);
  6164. BOOL txHeadlineSearchPrevEx(TX* text,int iHeadline);
  6165. BOOL txHeadlineSearchNextEx(TX* text,int iHeadline);
  6166. BOOL txHeadlineSearch(TX* text,mchar* szHeadline,int iHeadline);
  6167. BOOL txIbuffIsFunctionDefine(TX* text,IBUFF ibuff,HEADLINE_INFO* res);    //WZ4.00Bj 990824 newarg:res
  6168. //アウトライン
  6169. void txolOpenEx(TX* text,mchar* szCaption);
  6170. void txolOpen(TX* text);
  6171. void txolClose(TX* text);
  6172. void txolFlush(TX* text);
  6173. void txolFlushNpara(TX* text);
  6174. BOOL txolSyskeydown(TX* text,int wParam);
  6175. void txolAdjustNparaChange(TX* text,long nparaD);
  6176. int txolGetCxOutline(TX* text);
  6177. int txolGetOriginalCxHwndbase(TX* text);
  6178. void txolOnProcFrameText(TX* text);
  6179. void txolSetFontText(TX* text);
  6180. #endif // !__TXC__
  6181.  
  6182. //##印刷/FONTSET
  6183.  
  6184. void TXAPI_(750) txLpDispOutsideText(TX* text);
  6185. BOOL TXAPI_(751) txLpInit(TX* text);
  6186. void TXAPI_(752) txLpTerm(TX* text);
  6187. BOOL TXAPI_(753) txuiLpStyle(TX* text);
  6188. BOOL TXAPI_(754) txuiLprint(TX* text);
  6189. BOOL TXAPI_(756) txLpSwitchPreview(TX* text);
  6190. BOOL TXAPI_(757) txLprint(TX* text);
  6191. BOOL TXAPI_(759) txLpFlushBaseY(TX* text);
  6192. void TXAPI_(760) txLpFlushPage(TX* text);
  6193.  
  6194. #if !__TXC__
  6195.  
  6196. #if WZFUNC_PRINT
  6197.     int xLPtoDP(HDC hdc,int x);
  6198.     int yLPtoDP(HDC hdc,int y);
  6199.     int xLPadd1(HDC hdc,int x);
  6200.     int yLPadd1(HDC hdc,int y);
  6201.     int yLPsub1(HDC hdc,int y);
  6202.     int xLP(HDC hdc,int x);    //WZ3.90H 980917 
  6203.     int yLP(HDC hdc,int y);    //WZ3.90H 980917 
  6204.     int lpcxGetFrameLeft(TX* text,int iHeadline);
  6205.     int lpcxGetFrameRight(TX* text,int iHeadline);
  6206.     int lpcxGetFrameLeftRight(TX* text,int iHeadline);
  6207.     void txLpToolbarFlush(TX* text);
  6208.     BOOL txuiLpStyleDetail(TX* text);
  6209.     void txLpToolbarNotify(TX* text,int cmd);
  6210.     int lpdot(TX* text);
  6211. #else
  6212.     #define xLPtoDP(hdc,x)    (x)
  6213.     #define yLPtoDP(hdc,y)    (y)
  6214.     #define xLPadd1(hdc,x)    (x)
  6215.     #define yLPadd1(hdc,y)    (y)
  6216.     #define yLPsub1(hdc,y)    (y)
  6217.     #define xLP(hdc,x)        (x)
  6218.     #define yLP(hdc,y)        (y)
  6219.     #define lpcxGetFrameLeft(text,iHeadline)        (0)
  6220.     #define lpcxGetFrameRight(text,iHeadline)        (0)
  6221.     #define lpcxGetFrameLeftRight(text,iHeadline)    (0)
  6222.     #define txLpToolbarFlush(text)
  6223.     #define txuiLpStyleDetail(text)        (FALSE)
  6224.     #define txLpToolbarNotify(text,cmd)
  6225.     #define lpdot(text)        (1)
  6226. #endif
  6227. //
  6228. BOOL txuiLprintExec(TX* text);
  6229. void txLprintHeader(TX* text);
  6230. #if WZFUNC_PRINT
  6231.     int yToLy(TX* text,int y);
  6232.     int lyToY(TX* text,int ly);
  6233.     int lyGetCy(TX* text,int ly);
  6234. #else
  6235.     #define yToLy(text,y)            (((y) - text->nSpaceTop) / text->cyLine)
  6236.     #define lyToY(text,ly)            (text->nSpaceTop + (ly) * text->cyLine)
  6237.     #define lyGetCy(text,ly)        (text->cyLine)
  6238. #endif
  6239. //
  6240. int lpxToMmtext(TX* text,int lpx);
  6241. int mmtextToLpx(TX* text,int mmtext);
  6242. void txLpSetRateAuto(TX* text,int mode);
  6243. BOOL txLpSetRate(TX* text,int pvRate);
  6244. int txLpGetCyPaper(TX* text);
  6245. void txLpWriteMsghdr(TX* text,LPRINT* lp);
  6246. BOOL txLpReadMsghdr(TX* text,LPRINT* lp);
  6247. int txLpGetCxPaper(TX* text);
  6248. BOOL txLpAddRate(TX* text,int d);
  6249. BOOL txLpConfigtextRead(TX* text);
  6250. mchar* configGetName(CONFIG* config,int index);
  6251. void txLpConfigtextWrite(TX* text);
  6252. void lpSetDefaultConfig(LPRINT* lp);
  6253. BOOL txuiLpStyleSelect(TX* text);
  6254. //FONTSET
  6255. void fontsetSetText(TX* text,FONTSET* fontset);
  6256. void txFontsetGet(TX* text,FONTSET* fontset);
  6257. void fontsetFlush(TX* text,FONTSET* fontset);
  6258. void txFontsetSetBase(TX* text);
  6259. typedef struct {
  6260.     BOOL fGetLineSize;    //(in)    LSOP_GETLINESIZE?
  6261.     BOOL fLineOver;        //(out)    fGetLineSize時に折り返し幅を超えるのでこの文字の直前までをcurysizeとする?
  6262.     int src;            //(in)    fGetLineSize時にcurysize>0のチェックに使用
  6263.     int x;                //(i/o)    x座標
  6264.     int cxWidth;        //(in)    fGetLineSize時に折り返し幅のチェックに使用
  6265.     int cxRate;            //(i/o) 横幅の拡大縮小パーセント for <CXRATE>
  6266. } TXFPROC_LINESIZEOP_ARG;
  6267. void txfProcTag_LINESIZEOP(TX* text,TEXTCHAR* pTag,TEXTCHAR* pName,TXFPROC_LINESIZEOP_ARG* arg);
  6268. void headlinestyleSetDefaultFont(HEADLINESTYLE* style,int iHeadline,int lfHeight);
  6269. int pointsToLpx(LPRINT* lp,int points);
  6270. #endif // !__TXC__
  6271.  
  6272. //##MAIL
  6273.  
  6274. #define MAILEDIT_USEEDIT    UNIX    // To,Cc,Subjectに常にEDITコントロールを使用?。UNIXだと調子が悪いのでこれを使う。
  6275.  
  6276. typedef struct tagMAILEDIT {
  6277.     HWND hwndMailer;        // メーラのhwnd
  6278.                             // 0: WZ MAIL EDITORではない
  6279.     WORD idMail;            // このメールのID
  6280.     BYTE modeMail;            // モード
  6281.         #define MODEMAIL_NEW    1    // 新規
  6282.         #define MODEMAIL_REPLY    2    // 返信
  6283.         #define MODEMAIL_EDIT    3    // 編集
  6284.         #define MODEMAIL_VIEW    4    // ビュー
  6285.     WZMAILEDITORFLAGS flags;
  6286. //
  6287.     HWND hwndMailheader;    // メールヘッダウィンドウ
  6288.     HWND hwndReferTo;        // "To:..."
  6289.     HWND hwndReferCc;        // "Cc:..."
  6290.     HWND hwndMenu;            // メニューボタン
  6291.     HWND hwndSend;            //WZ3.90I 981012 送信ボタン
  6292.     HWND hwndMime;            // 添付ファイル
  6293.     struct tagLIST* listMime;    // 添付ファイル
  6294.     mchar szBoundary[70];    // boundary
  6295.     mchar szReplytoFrom[70];//WCE1.01 980505 コメントや返信の場合のコメント先のメッセージの差出人の名前
  6296.     mchar szSubject[100];    // txDoCaption用に現在のSubject内容を入れておくバッファ
  6297.                             // fTML時は編集時のバッファも兼ねる
  6298.     BOOL fMailReserve;        // 現在の「保留」状態
  6299.     TX* text;                // 本文のテキスト
  6300.     int x;                    // hwndTo etc x
  6301.     int y;                    // for at init
  6302.     HFONT hfontControl;        // コントロールのフォントハンドル
  6303.     int cxCharControl;        // hfontControlのcxChar
  6304.     int cyCharControl;        // hfontControlのcyChar
  6305. #if MAILEDIT_USEEDIT
  6306.     HWND hwndTo;
  6307.     HWND hwndCc;
  6308.     HWND hwndSubject;
  6309. #endif
  6310.     RECT rTo;                // "To"ウィンドウの位置
  6311.     RECT rCc;                // "Cc"ウィンドウの位置
  6312.     RECT rSubject;            // "件名"ウィンドウの位置
  6313.     BYTE charset0;            //WZ3.90M 981129 オリジナルのcharset
  6314.     BYTE charset;            //WZ3.90M 981129 旧fEnglish
  6315.     FBOOL fDispHeader;        //WZ3.90I 981005 ヘッダの表示?
  6316. // Popup window
  6317.     HWND hwndPopup;            // popup "EDIT" window handle
  6318.     int idPopup;            // IDD_SUBJECT;
  6319. // for txDoCaption
  6320.     BOOL fSaved;            // 保存したかどうか?
  6321.     wchar wszCaption[80];    // for txGetTitleFilenameW buffer
  6322. } MAILEDIT;
  6323.  
  6324. #if !__TXC__
  6325. void txConvertMailTemplateToPlain(TX* text,TX* textDest,TX* textQuote);
  6326. HWND hwndMailerGetStatusbar(HWND hwnd);
  6327. void mailerOpenMenuMouseRMessage(TX* text);
  6328. mchar* memJisToKc(mchar* sz,int kc);    //WZ4.00Bg 990720 
  6329. BOOL memJisToSjis(mchar* sz);
  6330. BOOL _lwriteEncodeBase64(HANDLE hfDst,HANDLE hfSrc,IFILE size);
  6331. void txMailheaderClose(TX* text);
  6332. BOOL txMaileditorAttachW(TX* text,wchar* wszfilename,BOOL fNote);
  6333. void txMaileditSetDateNow(TX* text);
  6334. LRESULT txMaileditNotify(TX* text,UINT message,LPARAM lParam);
  6335. int maileditpopupOpenSubject(MAILEDIT* mailedit);
  6336. void maileditpopupOpenLastfocus(MAILEDIT* mailedit);
  6337. void maileditpopupClose(MAILEDIT* mailedit);
  6338. BOOL maileditOnSyskeydown(TX* text,WPARAM wParam);
  6339. BOOL maileditOnTab(TX* text);
  6340. BOOL txuiCheckMailedit(TX* text,BOOL fUi);
  6341. void txMailheaderRead(TX* text);
  6342. void mailheaderSetWindowPos(TX* text,RECT* r);
  6343. //MIME
  6344. typedef struct {
  6345.     int lchTopReturn;        // 0以外ならlchTopReturn文字ごとに改行を入れる(先頭行のみ)
  6346.                             // 0ならlchReturnを使う
  6347.     int lchTopIndent;        // 0以外なら先頭に空白を入れる(先頭行のみ)
  6348.                             // 0なら入れない
  6349.     int lchReturn;            // 0以外ならlchReturn文字ごとに改行を入れる
  6350.     int lchIndent;            // 0以外なら改行を入れた後に空白を入れる
  6351.     BOOL fDataEndReturn;    // データの末尾に改行を2つ入れる
  6352. } BASE64ENCODEARG;
  6353. BOOL txBase64Encode(TX* text,wchar* wszfilename);
  6354. BOOL txBase64Decode(TX* text,wchar* wszfilename);
  6355. mchar* memBase64Decode(mchar* buff,int lch,int* plchResult);
  6356. mchar* memBase64Encode(mchar* buff,int lch,int* plchResult,BASE64ENCODEARG* arg);
  6357. #endif // !__TXC__
  6358.  
  6359. //##PARAATR
  6360.  
  6361. #if !__TXC__
  6362. PARAATR* txParaatrGet(TX* text,NPARA npara);
  6363. void txParaatrTerm(TX* text);
  6364. IBUFF txNparaGetParaTop(TX* text,IBUFF ibuff,NPARA npara);
  6365. BOOL txParaatrClearNlineAll(TX* text);
  6366. BOOL txParaatrClearEditAll(TX* text);
  6367. BOOL txParaatrGetEdit(TX* text,NPARA npara);
  6368. //
  6369. IBUFF txGplGetParaoff(TX* text,NPARA npara);
  6370. void txGplDebug(TX* text);
  6371. //
  6372. BOOL txPsbCounting(TX* text);
  6373. void txPsbCalcOnIdle(TX* text);
  6374. //
  6375. int txCparaGet(TX* text,IBUFF curpara,NPARA npara);
  6376. void txParaatrClearCparaAll(TX* text);
  6377. //
  6378. WORD* txParaatrbeamGet(TX* text,NPARA npara,int iTab);
  6379. UINT txBeamtabGetOffset(TX* text,IBUFF paratop,int iTab);
  6380. BOOL txBeamtabSetLx(TX* text,NPARA npara,int iTab,int lx);
  6381. BOOL txBeamtabGetExist(TX* text,IBUFF paratop);
  6382. int txBeamtabGetCount(TX* text,IBUFF paratop);
  6383. BOOL txBeamtabFlushScreen(TX* text);
  6384. void txParaatrbeamClearAll(TX* text);
  6385. #endif // !__TXC__
  6386.  
  6387. //##その他
  6388.  
  6389. //罫線
  6390. BOOL TXAPI_(645) txKeisenIsNeedOp(TX* text,int op);
  6391. mchar* TXAPI_(646) txKeisenGetLeft(TX* text);
  6392. BOOL TXAPI_(647) txuiKeisenInsertTable(TX* text);
  6393. BOOL TXAPI_(648) txKeisenProperty(TX* text);
  6394. BOOL TXAPI_(649) txKeisenOp(TX* text,int op,mchar* szstr);
  6395.  
  6396. #if !__TXC__
  6397. //txvar
  6398. BOOL txVarSetString(TX* text,mchar* szName,mchar* szContent);
  6399. mchar* txVarReadString(TX* text,mchar* szName,mchar* szDefault);
  6400. //hook
  6401. void txAddHookWndproctext(TX* text,WNDTEXTHOOKPROC lpHook);
  6402. void txAddHookWndprocbase(TX* text,WNDTEXTHOOKPROC lpHook);
  6403. void txAddHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,BOOL fTxpcode,BOOL fHwndbase);
  6404. //speak
  6405. BOOL speak(LPCSTR lpszText,UINT fuType);
  6406. void speakNoAttachFile(void);
  6407. void txSpeakText(TX* text,UINT fuType,BOOL fTxf);
  6408. //オープン中のfFrameテキスト管理
  6409. BOOL shareInit(void);
  6410. void shareTerm(void);
  6411. void shareProcEndSession(void);
  6412. BOOL textAdd(HWND hwnd);
  6413. BOOL textAddEx(HWND hwnd,WZPROCESS* arg);
  6414. BOOL textDelete(HWND hwnd);
  6415. BOOL frametextAdd(TX* text,wchar* wszCmdLine);
  6416. BOOL frametextSetTextFree(TX* text);
  6417. int frametextGetTextCount(void);
  6418. HWND isopenW(wchar *path);
  6419. //オープン時の処理
  6420. void __on_txFrameNewEmacs(TX* text);
  6421. void __on_txFrameNewEmacsPrim(TX* text);
  6422. void __on_txFrameNewHtml(TX* text);
  6423. void __on_txFrameNewSpeak(TX* text);
  6424. void __on_txNewSpeakFilelist(TX* text);
  6425. void __on_txNewSpeakGrep(TX* text);
  6426. void __on_txFrameNewSpeak(TX* text);
  6427. //バイナリ編集
  6428. BOOL txIsCurDigitH(TX* text);
  6429. void txSetCurDigitL(TX* text);
  6430. BOOL txIsCurDigitL(TX* text);
  6431. void txSetCurDigitH(TX* text);
  6432. BOOL txSwitchBinedit(TX* text);
  6433. //ネットワーク版WZ
  6434. void shStartNetwork(void);
  6435. //その他
  6436. LRESULT txSendWmNotify(TX* text,int txn);
  6437. void imeSetPosPrim(TX* text);
  6438. #define txImeGetOpen(text)            wndImeGetOpen(text->hwndtext)        //WZ3.90L 981121 
  6439. #define txImeSetOpen(text,fOpen)    wndImeSetOpen(text->hwndtext,fOpen)    //WZ3.90L 981121 
  6440. BOOL txuiMemo(TX* text);
  6441. #endif // !__TXC__
  6442.  
  6443. //{###WZ/PWZアプリケーション特有
  6444.  
  6445. //##WZ/PWZ 起動/終了
  6446.  
  6447. BOOL TXAPI_(537) wzexecW(wchar* lpszCmdline);
  6448. BOOL TXAPI_(809) wzexec(mchar* lpszCmdline);
  6449. //
  6450. HWND TXAPI_(513) hwndbaseSet(HWND hwndbase);
  6451. void hwndbaseDelete(HWND hwnd);
  6452. HWND TXAPI_(514) hwndbaseGet(void);
  6453. HWND TXAPI_(515) hwndbaseGetTopPopupWindow(void);
  6454. TX* TXAPI_(516) hwndbaseIsWzeditor(void);
  6455. #define pwzapFocused(hwnd) hwndbaseSet(hwnd)
  6456. BOOL TXAPI_(517) pwzapAdd(HWND hwndbase);
  6457. BOOL TXAPI_(518) pwzapDelete(HWND hwndbase);
  6458. int pwzapSearch(HWND hwndbase);    //WZ4.00Bm 990930 new
  6459. #define wzapAdd(hwndbase)        pwzapAdd(hwndbase)        //WZ3.90L 981123 
  6460. #define wzapDelete(hwndbase)    pwzapDelete(hwndbase)    //WZ3.90L 981123 
  6461. #define wzapFocused(hwndbase)    pwzapFocused(hwndbase)    //WZ3.90L 981123 
  6462. //
  6463. #if !__TXC__
  6464. BOOL forkPwzTermSingle(wchar* wszcmdline);
  6465. BOOL forkPwzIcon(void);
  6466. BOOL forkPwzFiler(void);
  6467. BOOL forkPwzMail(void);
  6468. BOOL forkPwzGrep(void);
  6469. BOOL forkPwzMemo(void);
  6470. BOOL forkPwzFilerSingle(wchar* wszcmdline);
  6471. BOOL forkPwzMailSingle(wchar* wszcmdline);
  6472. BOOL forkPwzMailSingleI(wchar* wszcmdline);
  6473. BOOL forkPwzGrepSingle(wchar* wszcmdline);
  6474. BOOL pwzIcon(void);
  6475. HWND pwzFiler(void);
  6476. HWND pwzGrep(void);
  6477. BOOL pwzMemo(wchar* wszcmdline);
  6478. #if 0    // XZ0.2 990629 _mailer.cのstatic pwzMailと定義が異なる
  6479. HWND pwzMail(void);
  6480. #endif
  6481. mchar* pwzGetVersion(void);
  6482. mchar* pwzGetVersionPrim(void);
  6483. mchar* pwzGetName(void);
  6484. mchar* pwzGetNameStrcat(mchar* szAdd);
  6485. #endif // !__TXC__
  6486.  
  6487. //##permanent変数記憶
  6488.  
  6489. void TXAPI_(240) _permanentGetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  6490. void TXAPI_(241) _permanentSetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  6491. void TXAPI_(242) _permanentGetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  6492. void TXAPI_(243) _permanentSetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  6493. void TXAPI_(244) _permanentFlush(void);
  6494.  
  6495. //##スタイルシート
  6496. //WZ3.90K 981113 new
  6497.  
  6498. typedef struct {
  6499.     mchar* szfilenameCfg;    // スタイルを保存するCFGファイル名
  6500.     void (*txMsghdrGetset)(TX* text,LPVOID appContext,BOOL fSet);    // txMsghdrGetsetするクライアント定義関数。
  6501.     LPVOID appContext;    // クライアント定義コンテキスト
  6502. } STYLESHEETARG;
  6503.  
  6504. int stylesheet_uiMente(STYLESHEETARG* arg,mchar szStyle[CCHWORD]);
  6505. BOOL stylesheet_Load(STYLESHEETARG* arg,mchar* szStyle);
  6506. BOOL stylesheet_Save(STYLESHEETARG* arg,mchar* szStyle);
  6507.  
  6508. //##アプリケーションレイヤの設定
  6509. //WZ3.90L 981116 new
  6510. // 設定の読み書きはあまり早くはないが、基本レイヤの設定とは別にしたいので。
  6511.  
  6512. typedef struct {
  6513.     mchar dicpath[CCHPATHNAME];        // 用語統一辞書パス
  6514.     mchar if_path[CCHPATHNAME];        // ファイルの挿入初期パス
  6515.     mchar prj_path[CCHPATHNAME];    // プロジェクトのパス
  6516. // クリッカブルURL
  6517.     mchar url_service[CCHNAME];        // サービス
  6518.     mchar url_topic[CCHNAME];        // トピック
  6519. } CONFIGAPP;
  6520.  
  6521. void configappLoad(CONFIGAPP* config);
  6522. void configappSave(CONFIGAPP* config);
  6523.  
  6524. //##パス文字列
  6525.  
  6526. wchar* TXAPI_(495) wpathFullConfig(wchar* wszfilenameDst,wchar* wszfilename);
  6527. mchar* TXAPI_(806) pathFullConfig(mchar* szfilenameDst,mchar* szfilename);
  6528. mchar* TXAPI_(890) pathFullExedir(mchar* szfilenameDst,mchar* szfilename);
  6529. wchar* TXAPI_(891) wpathFullExedir(wchar* wszfilenameDst,wchar* wszfilename);
  6530. wchar* wpathFullConfigNoCreate(wchar* wszfilenameDst,wchar* wszfilename);
  6531. BOOL wpathFullConfigNetwork(wchar wszdst[CCHPATHNAME],wchar* wszfilename);
  6532.  
  6533. //##ダイアログ
  6534.  
  6535. typedef struct tagDTRECT {    // ダイアログ座標
  6536.     SHORT x;    // cxChar/4 単位
  6537.     SHORT y;    // cyChar/8 単位
  6538.     SHORT cx;
  6539.     SHORT cy;
  6540. } DTRECT;
  6541. #if WINDOWSCE
  6542.     #define NFONT_MAX    100
  6543. #else
  6544.     #define NFONT_MAX    1000    //WZ3.90P 981206 100だと足りない(300個ある場合もある)ので1000に拡大
  6545. #endif
  6546. typedef struct {
  6547.     WORD nFont;    // 数
  6548.     wchar tFontName[NFONT_MAX][LF_FACESIZE];
  6549.     BYTE lfPitch;            // PitchAndFamily
  6550.     BYTE lfCharSet;            // lfCharSet
  6551.     WORD fPrinterFont:1;    // プリンタフォントの取得中
  6552.     WORD fPrinterFontOnly:1;
  6553.     WORD freserved:14;
  6554.     HDC hdcPrinter;
  6555. } FONTNAMES;
  6556. typedef struct {
  6557.     BYTE lfPitch;
  6558.     BYTE lfCharSet;
  6559.     BYTE sizeLfHeight;                // lfHeightのサイズ(0,1:BYTE,2;WORD,4:DWORD)
  6560.     BYTE lcxFaceName;                // 0:default
  6561.     BYTE lcxFaceSize;                // 0:default
  6562.     HDC hdcPrinter;                    // プリンタフォントも列挙するばあいは、プリンタのhdc
  6563.     WORD fPrinterFontOnly:1;        //1.99F プリンタフォントのみ
  6564.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  6565.                                     // 選択値は""になる
  6566.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  6567.                                     // 選択値は0になる
  6568.     WORD fEnableUserfont:1;            //WZ4.00Bl 990919 ユーザ定義フォントセットを選択可能にする。
  6569.     WORD freserved:12;
  6570.     FONTNAMES* fontnames;            //1.99H 同じフォント名セットを複数使う場合に対応
  6571.     BYTE reserved[17];
  6572. } SELFONTARG;
  6573. #define CCHFONTSIZE    20
  6574. typedef struct {
  6575.     WORD id;                    // 対応付けられているフォント名コンボボックスのid
  6576.     FONTNAMES* fontnames;        // フォント名
  6577.     // フォントサイズ
  6578.     WORD nFontSize;                // 数
  6579.     BYTE tFontSize[NFONT_MAX];    // 内容
  6580.     WORD nFontType;                // EnumFaceSizeで返される
  6581.     // 初期値の受け取り/結果の受け渡し用
  6582.     mchar* lfFaceName;
  6583.     BYTE* lfHeight;
  6584.     BYTE sizeof_lfHeight;            // lfHeight=BYTE/WORD/DWORD?
  6585.                                     //WZ3.90G 980826 class -> sizeof_lfHeight
  6586.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  6587.                                     // 選択値は""になる
  6588.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  6589.                                     // 選択値は0になる
  6590.     WORD freserved:14;
  6591. } CONTEXTSELFONT;
  6592. typedef struct tagDIALOG {
  6593. #ifdef __TXC__
  6594.     LPVOID dialog;
  6595. #else
  6596.     DLGTEMPLATE* dialog;    // 
  6597. #endif
  6598.     DWORD sizeDialog;        // dialogのサイズ
  6599.     LPBYTE pBuff;            // dialogに現在書き込み中のポインタ
  6600.     LPBYTE itemTop;            // dialogのアイテムの先頭位置
  6601.     LPBYTE itemNow;            // 現在アクセス中のアイテム
  6602. //
  6603.     int xMax;
  6604.     int xMaxLf;
  6605.     int yMax;
  6606.     int yMaxLf;
  6607.     int xBase;                // 改行時、復改位置
  6608.     int yBase;                // 改行時、復改位置
  6609.     DTRECT r;                // 現在位置
  6610.     int cxInt;                // 項目間
  6611.     int cyInt;                // 行間
  6612.     CBOOL fNoSetHist;        // dialogReadでヒストリをいじらない
  6613.     FBOOL fNoAddDefaultButton;//WCE1.01 980201 標準の"OK","Cancel"を付けない?
  6614. //
  6615.     struct tagITEMINFO* info;// ITEMINFO配列
  6616.     int sizeinfo;            // ITEMINFO配列の確保した要素数
  6617.     int ninfo;                // 現在の要素数
  6618. //
  6619.     int id;                    // 現在の自動設定ID
  6620.     int idUpdown;            // 次に追加するアップダウンコントロールのID
  6621. // user指定
  6622.     int setid;                // 0:自動ID else IDを指定値にセット
  6623.     CBOOL fH;                // 横に並べる?
  6624.     FBOOL fCmd;                // OK,Cancelボタン不要
  6625. #ifdef __TXC__
  6626.     LPVOID dlgproc;            // ダイアログプロシジャー
  6627. #else
  6628.     DLGPROC dlgproc;        // ダイアログプロシジャー
  6629. #endif
  6630.     FBOOL fDlgprocTxpcode;    // dlgprocはTX-PCODE中にある?
  6631.     WORD stateHook;            // dlgprocフックステート
  6632.     LPVOID custdata;        // user data
  6633.     LPVOID custdata2;        //PWZ2BETA0.3 980519 user data2
  6634.     LPVOID custdata3;        //PWZ2BETA0.3 980519 user data3
  6635.     HWND hwndParent;        // 親ウィンドウ
  6636.     FBOOL fHwndParentSeted;    // hwndParentが設定された(NULLも設定できるよう)
  6637.     FBOOL fModelessAutoClose;// WM_CLOSEで閉じる?
  6638.     WORD fWizard:1;            //WZ3.90G 980830 ウィザード?
  6639.     WORD fPspcGuideLf:1;    //WZ4.00Be 990509 ガイド文字の後で改行する?
  6640.     WORD fPspcGuideLfOnce:1;//WZ4.00Be 990511 
  6641.     WORD fPspcCaptionNoLf:1;//WZ4.00Be 990509 dialogCaption etcで自動折り返し追加しない?
  6642.     WORD fPspcNoLimitSize:1;//WZ4.00Be 990512 PSPCでダイアログサイズを制限しない?
  6643.     int cx;                    // サイズ
  6644.     int cy;                    // サイズ
  6645.     int notifyIdd;            // dialogSetNotifyAsOK
  6646.     int notify;                // dialogSetNotifyAsOK
  6647.     int idFocus;            // 
  6648.     int idDialoghelp;        // ダイアログヘルプのアンカー番号    //WZ4.00Ab 990124 new
  6649. // user直接指定
  6650.     WORD fAutoAccessKey:1;    //WZ3.90H 980910 アクセスキーを自動で付ける?
  6651.                             // chAutoAccessKeyを初期化すること。
  6652.     WORD fUseLastFontnames:1;//WZ4.00Bl 990920 FONTNAMESをアロケートせずに、最後にアロケートしたものを使用?
  6653.     BYTE chAutoAccessKey;    //WZ3.90H 980910 現在の自動決定アクセスキー
  6654.     TX* text;                //WZ3.90I 981026 dialogControlReferで"-html"を指定する場合に必要
  6655. // フォント選択
  6656.     #define SELFONT_N            20
  6657.     CONTEXTSELFONT* tFontselContext;    // コンテキスト
  6658.     int nFontselContext;                // 現在のコンテキスト数
  6659.     #define FONTNAMES_N            2        // FONTNAMESコンテキスト最大数
  6660.     FONTNAMES *tFontnames;                // FONTNAMESコンテキスト
  6661.     int nFontnames;                        // 現在のFONTNAMESコンテキスト数
  6662. // for property sheet
  6663.     struct tagDIALOG* child;
  6664.     struct tagDIALOG* parent;
  6665.     struct tagDIALOG* next;
  6666.     int iStartPage;
  6667.     FBOOL fApplyed;            //WCE0.95 970923 IDD_APPLYが押された
  6668.     #if !WINDOWSCE
  6669.     FBOOL fCentered;        //WZ3.90I 981005 既に中央に位置をセット済み
  6670.     #endif
  6671. // dialog open時 status
  6672.     HWND hwndDlg;            // ダイアログウィンドウハンドル
  6673.     HWND hwndbase;            //WZ3.90L 981122 ダイアログを開いたときのhwndbaseGet()の内容
  6674.     FBOOL fActived;            // ページがアクティブになった?
  6675.     FBOOL fModeless;        // モードレスダイアログ?
  6676.     FBOOL fCaptionOkBtn;    // タイトルバーに[OK]を付ける?
  6677.     struct tagDIALOG* now;    // 現在選択されているページ
  6678.     struct tagDIALOG* nextModeless;    // 次のモードレスダイアログ
  6679. // 以下、次にaddするコントロールの属性
  6680. BYTE controlTop;
  6681.     FBOOL fHist;            // ヒストリ付き?
  6682.     FBOOL fHistRead;        // readonly history
  6683.     FBOOL fSbAlloced;        // sb is alloced
  6684.     FBOOL fDisenable;        // 無効化
  6685.     FBOOL fControlReverseBool;
  6686.     FBOOL fRadioV;
  6687.     DWORD fUpdown;            // アップダウンコントロールを付ける?
  6688.                             // 0なら、付けない。
  6689.                             // MAKELONG(max,min)なら付ける。
  6690.     BYTE idMap;                //WCE1.01 980210 idMap
  6691.     HSTRBLK sb;
  6692.     int cyLastControl;        // 最後に追加したコントロールのウィンドウの高さ
  6693.     int idContextHelp;        // コンテキストヘルプIDが指定された
  6694.     SIGNED_BYTE dtyAdd;        // y座標に付加する値
  6695.     mchar szguide[CCHWORD];    // ガイド文字列
  6696.     int wguide;                // ガイドの幅
  6697.     mchar* szRefer;            // 参照ボタン
  6698.     int idrefer;            // 参照ボタンのID
  6699.     LPVOID procConv;        //WZ3.90L 981115 コンバータ
  6700. BYTE controlEnd;
  6701. // 以下、クリアしない次にaddするコントロールの属性
  6702.     DWORD controlStyle;
  6703. } DIALOG,*HDIALOG;
  6704. #define DIALOGHOOKSTATE_HOOKONCE    0x01    // 一度だけ標準ダイアログをスキップする
  6705. #define DIALOGHOOKSTATE_HOOKALL        0x02    // 全フックする
  6706. #define DTCX                4        // 1文字の幅
  6707. #define DTCY                8        // 1文字の高さ
  6708. #define DTCXINT                4        // 標準の間隔
  6709. #if WINDOWSCE2
  6710.     #define DTCYINT            1    // 標準の間隔
  6711.                                 //WCE1.01 980312 2->1
  6712.                                 // ダイアログのフォントが大きくなって
  6713.                                 // ダイアログボックスが画面からはみ出るため。
  6714. #else
  6715.     #define DTCYINT            2    // 標準の間隔
  6716. #endif
  6717. #define DTCYKEY                10        // (&K)などのアンダーバーも含む高さ
  6718. #define DTCYBOX                12        // TEXTBOXの高さ
  6719. #define DTCYCMDBUTTON        14        // コマンドボタンの高さ
  6720. #define DTCYBUTTON            12        // ボタンの高さ
  6721. #define DTCYBOX_KEY            2        // DTCYBOX - DTCYKEY
  6722. // dialogSetDlgprocのWM_INITDIALOGでの返り値の定義
  6723. // FALSEを返すのは、INITDIALOG_TRUEを返すのと同じ
  6724. #define INITDIALOG_TRUE            0    // WM_INITDIALOGの返り値にTRUEを返す
  6725.                                     // (WindowsがデフォルトのSETFOCUSをする)
  6726. #define INITDIALOG_FALSE        1    // FALSEを返す
  6727.                                     // (WindowsがデフォルトのSETFOCUSをしない)
  6728. #define INITDIALOG_SKIP_TRUE    2    // dialog.c内のWM_INITDIALOG処理をスキップ
  6729. #define INITDIALOG_SKIP_FALSE    3    // 同上
  6730. //
  6731. #define DCS_PUSHBUTTON        0x01    // "BUTTON",    BS_PUSHBUTTON | WS_TABSTOP
  6732. #define DCS_DEFPUSHBUTTON    0x02    // "BUTTON",    BS_DEFPUSHBUTTON | WS_TABSTOP
  6733. #define DCS_CHECKBOX        0x03    // "BUTTON",    BS_CHECKBOX | WS_TABSTOP
  6734. #define DCS_RADIOBUTTON        0x04    // "BUTTON",    BS_RADIOBUTTON | WS_TABSTOP
  6735. #define DCS_GROUPBOX        0x05    // "BUTTON",    BS_GROUPBOX | WS_TABSTOP
  6736. #define DCS_LTEXT            0x06    // "STATIC",    SS_LEFT | WS_GROUP
  6737. #define DCS_CTEXT            0x07    // "STATIC",    SS_CENTER | WS_GROUP
  6738. #define DCS_RTEXT            0x08    // "STATIC",    SS_RIGHT | WS_GROUP
  6739. #define DCS_ICON            0x09    // "STATIC",    SS_ICON
  6740. #define DCS_EDITTEXT        0x0A    // "EDIT",        ES_LEFT | WS_BORDER | WS_TABSTOP
  6741. #define DCS_SCROLLBAR        0x0B    // "SCROLLBAR",    SBS_HORZ
  6742. #define DCS_LISTBOX            0x0C    // "LISTBOX",    LBS_NOTIFY | WS_BORDER | WS_VSCROLL
  6743. #define DCS_COMBOBOX        0x0D    // "COMBOBOX",    CBS_SIMPLE | WS_TABSTOP
  6744. //
  6745. #define IDD_APPLY            29699    //WCE0.95 970923 new
  6746. //
  6747. BOOL TXAPI_(42) __dialogAddItem(HDIALOG hd,mchar *szClass,mchar *szText,int id,DTRECT *dtRect,long style);
  6748. BOOL TXAPI_(43) _dialogAddItem(HDIALOG hd,int nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  6749. int TXAPI _dialogAddControlInfo(HDIALOG hd,int id);
  6750. BOOL TXAPI_(44) dialogAddItem(HDIALOG hd,BYTE nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  6751. int TXAPI_(45) dialogAddListbox(HDIALOG hd,mchar *szcaption,int width,int height);
  6752. void TXAPI_(46) dialogWriteItem(HDIALOG hd,int id);
  6753. HSTRBLK TXAPI_(47) dialogGetItemStrblk(HDIALOG hd,int id);
  6754. HWND TXAPI_(48) dialogGetItemUpdown(HDIALOG hd,int id);
  6755. void TXAPI_(49) dialogWrite(HDIALOG hd);
  6756. void TXAPI dialogWriteEx(HDIALOG hd,DWORD mode);
  6757. void TXAPI_(50) dialogReadItem(HDIALOG hd,int id);
  6758. void TXAPI dialogReadItemEx(HDIALOG hd,int id,DWORD mode);
  6759. void TXAPI_(51) dialogRead(HDIALOG hd);
  6760. void TXAPI_(52) dialogReadEx(HDIALOG hd,DWORD mode);
  6761.     #define DIALOGREAD_NOSETHIST    0x0001    // ヒストリをいじらない
  6762. #ifndef __TXC__
  6763. void TXAPI dialogSetDlgproc(HDIALOG hd,DLGPROC proc);
  6764. #endif
  6765. void TXAPI_(53) dialogSetDlgprocTxpcode(HDIALOG hd,FARPROC proc);
  6766. LPVOID TXAPI_(54) dialogSetCustdata(HDIALOG hd,LPVOID custdata);
  6767. LPVOID TXAPI dialogSetCustdata2(HDIALOG hd,LPVOID custdata);
  6768. LPVOID TXAPI dialogSetCustdata3(HDIALOG hd,LPVOID custdata);
  6769. void TXAPI_(55) dialogSetNotifyAsOK(HDIALOG hd,int idd,int notify);
  6770. void TXAPI_(56) dialogSetStyle(HDIALOG hd,long style);
  6771. void TXAPI dialogSetDialoghelp(HDIALOG hd,int idAnchor);
  6772. void TXAPI_(58) dialogSetContexthelp(HDIALOG hd,DWORD fSet);
  6773. void TXAPI_(59) dialogSetFocus(HDIALOG hd,int id);
  6774. void TXAPI_(60) dialogSetNoButton(HDIALOG hd);
  6775. LPVOID TXAPI_(61) dialogGetCustdata(HDIALOG hd);
  6776. LPVOID TXAPI dialogGetCustdata2(HDIALOG hd);
  6777. LPVOID TXAPI dialogGetCustdata3(HDIALOG hd);
  6778. DWORD TXAPI_(62) dialogGetStyle(HDIALOG hd);
  6779. #ifdef __TXC__
  6780. LPVOID TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  6781. #else
  6782. DLGTEMPLATE* TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  6783. #endif
  6784. HWND TXAPI_(64) dialogGetWindow(HDIALOG hd);
  6785. void TXAPI_(65) dialogSetIntXY(HDIALOG hd,int dtcx,int dtcy);
  6786. void TXAPI_(66) dialogResetInt(HDIALOG hd);
  6787. void TXAPI_(67) dialogSetH(HDIALOG hd);
  6788. void TXAPI_(68) dialogSetV(HDIALOG hd);
  6789. BOOL TXAPI_(69) dialogControlGuide(HDIALOG hd,mchar *szguide,int wguide);
  6790. void TXAPI_(70) dialogControlStyle(HDIALOG hd,DWORD style);
  6791. void TXAPI_(71) dialogControlHist(HDIALOG hd,HHIST hhist);
  6792. void TXAPI_(72) dialogControlHistRead(HDIALOG hd,HHIST hhist);
  6793. void TXAPI_(73) dialogControlStrblk(HDIALOG hd,HSTRBLK sb);
  6794. void TXAPI_(74) dialogControlStrblkHist(HDIALOG hd,HSTRBLK sb);
  6795. void TXAPI_(75) dialogControlEnable(HDIALOG hd,BOOL fEnable);
  6796. void TXAPI_(76) dialogControlReverseBool(HDIALOG hd);
  6797. #if WINDOWSCE
  6798.     #define dialogControlHelp(hd,id)    //WZ4.00Ab 990117 PWZではdialogControlHelpは何もしない#defineに変更。プログラムサイズ削減のため。
  6799. #else
  6800. void TXAPI_(77) dialogControlHelp(HDIALOG hd,int id);
  6801. #endif
  6802. void TXAPI_(78) dialogControlID(HDIALOG hd,int id);
  6803. void TXAPI_(79) dialogControlUpdown(HDIALOG hd,int minSpin,int maxSpin);
  6804. void TXAPI dialogControlConvertproc(HDIALOG hd,LPVOID procConv);
  6805. void TXAPI_(80) dialogControlMap(HDIALOG hd,int idMap);
  6806.     #define DIALOGCONTROLMAP_TWIPS_MCM    1    // TWIPS(1/1440 inch)データを1/10mm単位で表示
  6807.     #define DIALOGCONTROLMAP_10            2    // データを/10して表示
  6808. int TXAPI_(81) dialogCaption(HDIALOG hd,mchar *szCaption);
  6809. int TXAPI_(82) dialogCaptionDynamic(HDIALOG hd,mchar *szCaption,int width);
  6810. int TXAPI_(83) dialogCaptionDynamicEx(HDIALOG hd,mchar *szCaption,int width,int height);
  6811. int TXAPI dialogCaptionGuide(HDIALOG hd,mchar *szCaption);
  6812. int TXAPI_(84) dialogColor(HDIALOG hd,mchar* szCaption,mchar* szTitle,COLORREF* rgb,int wCaption,LPVOID pPreview);
  6813. int TXAPI_(85) dialogPushbutton(HDIALOG hd,mchar *szCaption,int wCaption);
  6814. int TXAPI_(86) dialogPushbuttonBig(HDIALOG hd,mchar *szCaption,int wCaption);
  6815. int TXAPI_(87) dialogCmd(HDIALOG hd,mchar *szCaption,int wCaption);
  6816. int TXAPI_(88) dialogCmdDefault(HDIALOG hd,mchar *szCaption,int wCaption);
  6817. int TXAPI_(89) dialogCmdID(HDIALOG hd,mchar *szCaption,int wCaption,int id);
  6818. int TXAPI_(90) dialogCheck(HDIALOG hd,mchar *szCaption,BOOL *bool);
  6819. int TXAPI_(91) dialogCheckB(HDIALOG hd,mchar *szCaption,BBOOL *bool);
  6820. int TXAPI_(92) dialogOK(HDIALOG hd,int wCaption);
  6821. int TXAPI_(93) dialogCancel(HDIALOG hd,int wCaption);
  6822. void TXAPI_(94) dialogApply(HDIALOG hd,int dtx,int dty);
  6823. int TXAPI_(95) dialogClose(HDIALOG hd,int wCaption);
  6824. int TXAPI_(12) dialogString(HDIALOG hd,mchar *szCaption,int wCaption,mchar *szText,int cchText,int wBox);
  6825. int TXAPI_(113) dialogTxstr(HDIALOG hd,mchar *szCaption,int wCaption,TXSTR szText,int wBox);
  6826. int TXAPI_(13) dialogStringW(HDIALOG hd,mchar *szCaption,int wCaption,wchar *wszText,int cchText,int wBox);
  6827. int TXAPI_(14) dialogInteger(HDIALOG hd,mchar *szCaption,int wCaption,int *integer,int wBox);
  6828. int TXAPI_(15) dialogIntegerW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* integer,int wBox);
  6829. int TXAPI_(16) dialogIntegerB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* integer,int wBox);
  6830. int TXAPI_(17) _cdecl dialogChoice(HDIALOG hd,mchar *szCaption,int wCaption,int *data,int wBox,mchar* szItem,...);
  6831. int TXAPI_(18) _cdecl dialogChoiceW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* data,int wBox,mchar* szItem,...);
  6832. int TXAPI_(19) _cdecl dialogChoiceB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* data,int wBox,mchar* szItem,...);
  6833. int TXAPI_(20) _cdecl dialogChoiceString(HDIALOG hd,mchar *szCaption,int wCaption,mchar* szText,int cchText,int wBox,mchar* szItem,...);
  6834. int TXAPI _cdecl dialogChoiceStringWA(HDIALOG hd,mchar *szCaption,int wCaption,wchar* szText,int cchText,int wBox,mchar* szItem,...);
  6835. int TXAPI_(21) _cdecl dialogChoiceRadio(HDIALOG hd,int *data,mchar* szItem,...);
  6836. int TXAPI_(22) _cdecl dialogChoiceRadioW(HDIALOG hd,SIGNED_WORD* data,mchar* szItem,...);
  6837. int TXAPI_(23) _cdecl dialogChoiceRadioB(HDIALOG hd,SIGNED_BYTE* data,mchar* szItem,...);
  6838. int TXAPI_(25) dialogList(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  6839. int TXAPI dialogChoiceList(HDIALOG hd,mchar* szCaption,int* data,int width,int height);
  6840. void TXAPI_(26) dialogIndent(HDIALOG hd,int dx);
  6841. void TXAPI_(27) dialogLFV(HDIALOG hd);
  6842. void TXAPI_(28) dialogCmdLFV(HDIALOG hd);
  6843. void TXAPI_(29) dialogLF(HDIALOG hd);
  6844. void TXAPI_(30) dialogSpace(HDIALOG hd);
  6845. void TXAPI_(31) dialogSpaceH(HDIALOG hd);
  6846. void TXAPI_(32) dialogSpaceV(HDIALOG hd);
  6847. void TXAPI_(33) dialogGetPos(HDIALOG hd,DTRECT *r);
  6848. int TXAPI_(34) dialogGetPosX(HDIALOG hd);
  6849. int TXAPI_(35) dialogGetPosY(HDIALOG hd);
  6850. void TXAPI_(36) dialogSetPos(HDIALOG hd,DTRECT *r);
  6851. void TXAPI_(37) dialogSetPosLX(HDIALOG hd,int lx);
  6852. void TXAPI_(38) dialogSetPosX(HDIALOG hd,int x);
  6853. void TXAPI_(39) dialogSetPosY(HDIALOG hd,int y);
  6854. void TXAPI dialogSetPosXY(HDIALOG hd,int x,int y);
  6855. #define dialogAddPosY(hd,y)    (dialogSetPosY(hd,(dialogGetPosY(hd) + y)))
  6856. int TXAPI_(897) dialogHeadline(HDIALOG hd,mchar* szCaption,int wHeadline);    //WZ4.00A 981229 
  6857. HDIALOG TXAPI_(40) dialogFromHwnd(HWND hwnd);
  6858. void TXAPI_(41) dialogTerm(HDIALOG hd);
  6859. HDIALOG TXAPI_(10) dialog(mchar* szCaption);
  6860. void TXAPI_(672) dialogSetHookState(HDIALOG hd,int state);
  6861. int TXAPI_(11) dialogOpen(HDIALOG hd);
  6862. #define dialogLFSetV(hd)    {dialogSetV(hd);dialogLF(hd);}
  6863. #if PSPC
  6864.     #define dialogLFIndentPSPC(hd,n)    {dialogLF(hd);dialogIndent(hd,n);}
  6865.     #define dialogLfPSPC(hd)            {dialogLF(hd);}
  6866.     #define dialogSetGuideLfPSPC(hd)    hd->fPspcGuideLf = TRUE;
  6867.     #define dialogSetGuideLfOncePSPC(hd)    hd->fPspcGuideLfOnce = TRUE;
  6868.     #define dialogSetCaptionNoLfPSPC(hd,f)    hd->fPspcCaptionNoLf = f;
  6869. #else
  6870.     #define dialogLFIndentPSPC(hd,n)    ;
  6871.     #define dialogLfPSPC(hd)            ;
  6872.     #define dialogSetGuideLfPSPC(hd)    ;
  6873.     #define dialogSetGuideLfOncePSPC(hd)    ;
  6874.     #define dialogSetCaptionNoLfPSPC(hd,f)    ;
  6875. #endif
  6876. void TXAPI_(577) dialogSetPosLF(HDIALOG hd);
  6877. void TXAPI_(578) dialogSetParent(HDIALOG hd,HWND hwndParent);
  6878. BOOL TXAPI_(579) dialogAddPage(HDIALOG hd,HDIALOG hdPage);
  6879. void TXAPI_(580) dialogSetStartPage(HDIALOG hd,int iStartPage);
  6880. void dialogAddAboutTimeLimit(HDIALOG hd);
  6881. void TXAPI dialogSetSize(HDIALOG hd,DTRECT *r);
  6882. void TXAPI dialogApplyEx(HDIALOG hd,int dtx,int dty,mchar* szCaption);
  6883. HWND TXAPI_(581) dialogGetBaseWindow(HDIALOG hd);
  6884. void TXAPI_(582) dialogControlRadioV(HDIALOG hd);
  6885. int TXAPI_(583) dialogEditWz(HDIALOG hd,mchar* szCaption,TX* text,int width,int height,DWORD ws);
  6886. HWND TXAPI_(584) dialogCreate(HDIALOG hd);
  6887. BOOL TXAPI_(585) dialogFree(HWND hwnd);
  6888. BOOL TXAPI_(586) dialogControlRefer(HDIALOG hd,mchar *szpath);
  6889. int TXAPI_(587) dialogSelectFont(HDIALOG hd,mchar* szCaption,int wCaption,mchar* lfFaceName,BYTE* lfHeight,SELFONTARG* arg);
  6890. // sub dialog proc
  6891. BOOL subdlgprocSblist(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam,HSTRBLK sb);
  6892. void comboboxex_Exec(HWND hwnd);
  6893. // dialog application
  6894. mchar* TXAPI_(588) dialogaSelHistEx(mchar* szCaption,HHIST hist,DWORD mode,TX* text);
  6895. mchar* TXAPI_(589) dialogaSelectSb(mchar* szCaption,HSTRBLK sb,DWORD mode,TX* text,mchar* szStdAdd);
  6896.     #define SELHIST_FILEOPEN    0x0001
  6897.     #define SELHIST_IMECONVERT    0x0002
  6898.     #define SELHIST_READMODE    0x0004    // 編集不可
  6899.     #define SELHIST_REVERSE        0x0008    // 内部用
  6900.     #define SELHIST_REFERFOLDER    0x0010
  6901.     #define SELHIST_PATH        0x0020
  6902. mchar* TXAPI_(590) dialogaSelHist(mchar* szCaption,HHIST hist);
  6903. mchar* TXAPI_(591) dialogaSelFolderlist(mchar szResult[CCHPATHNAME],mchar* szStdAdd);
  6904. int TXAPI_(592) TXAPIBASE dialogaText(TX* text,mchar* szcaption);
  6905. #if 1//WZ4.00Be 990405 CE2.11ではprintf,wprintfが既定義。
  6906.     #ifdef __TXC__    // TX-Cの関数名は変えない様にする。CE1.01やCE2.0のTX-CでコンパイルしたTXMと互換性を保つため。
  6907.         void TXAPI_(593) printf(LPCSTR szFormat,...);
  6908.         void wprintf(wchar* szFormat,...);
  6909.     #else
  6910.         #if !UNIX
  6911.             void ty_printf(LPCSTR szFormat,...);
  6912.             void ty_wprintf(wchar* szFormat,...);
  6913.             #define printf    ty_printf
  6914.             #define wprintf    ty_wprintf
  6915.         #endif
  6916.     #endif
  6917. #else
  6918. void TXAPI_(593) printf(LPCSTR szFormat,...);
  6919. void wprintf(wchar* szFormat,...);
  6920. #endif
  6921. TX* printfGetText(void);
  6922. void TXAPI_(594) dialogaDebugEnd(void);
  6923. HWND TXAPI_(595) dialogaDebugStart(void);
  6924. int TXAPI_(893) dialogGetPage(HDIALOG hd);
  6925. // ダイアログ作成 for TX-C互換
  6926. int TXAPI_(869) dialogSelect(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,HSTRBLK sb);
  6927. int TXAPI_(870) _varyarg dialogSelectID(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,mchar* szItem,...);
  6928. int TXAPI_(871) _varyarg dialogSelectStr(HDIALOG hd,mchar* szCaption,TXSTR data,int wCaption,int wBox,mchar* szItem,...);
  6929. int TXAPI_(872) dialogButton(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  6930. int TXAPI_(873) dialogButtonBig(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  6931. // 簡単ダイアログ for TX-C互換
  6932. BOOL TXAPI_(862) inputint(mchar* szcaption,int* data);
  6933. BOOL TXAPI_(863) inputstr(mchar* szcaption,TXSTR dst);
  6934. int  TXAPI_(864) _varyarg intselect(mchar* szcaption,mchar* szstr,...);
  6935. mchar* TXAPI_(877) _varyarg strselect(mchar* szcaption,mchar* szstr,...);
  6936. //
  6937. #ifndef __TXC__
  6938. BOOL IntoModal(BOOL fOutputErrorMessage);
  6939. void ExitModal(void);
  6940. void dialogaErrorOpenDialog(void);
  6941. BOOL dialogaAutoFilename(TX* text,mchar* szfilename,DWORD mode);
  6942.     #define AFN_SILENT    0x0001
  6943.     #define AFN_REFER    0x0002
  6944.     #define AFN_DETAIL    0x0004
  6945. HDIALOG TXAPI dialogGetPageDialog(HDIALOG hd,int iPage);
  6946. #ifndef TXC_DLL
  6947.     DWORD    (WINAPI *txpcodeCallAddress)(LPBYTE pc,UINT nArg,LPVOID pArg);
  6948. #endif
  6949. #endif
  6950. void dialogAddConvertChar(HDIALOG hd,CCCONTEXT* ccc);
  6951. HDIALOG dialogNewAbout(mchar* szAppName,mchar* szVersion);
  6952. int dialogOpenAbout(HDIALOG hd);
  6953. void dialogAddAboutCopyright(HDIALOG hd);
  6954. //WZ4.00Bk 990902 dialogTreeニーズに応え復活。
  6955. LPVOID TXAPI_(24) dialogTree(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  6956. void dialogAddSearchopt(HDIALOG hd,SEARCHOPT* opt,int mode);
  6957.  
  6958. //##information/question/attention
  6959.  
  6960. void _cdecl TXAPI_(539) winformation(wchar* szformat,...);
  6961. void _cdecl TXAPI_(540) wattention(wchar* szformat,...);
  6962. int _cdecl TXAPI_(541) wquestion(wchar* szformat,...);
  6963. int _cdecl TXAPI_(542) wquestionYesNo(wchar* szformat,...);
  6964. int _cdecl TXAPI_(543) wquestionNoYes(wchar* szformat,...);
  6965. int _cdecl wquestionNoYesCancel(wchar* szformat,...);
  6966. void _cdecl TXAPI_(544) wstatprintf(wchar* szformat,...);
  6967. void debugf(mchar* szformat,...);
  6968. wchar* TXAPI_(545) rcStringW(int ids);
  6969. mchar* TXAPI_(546) rcString(int ids);
  6970. #ifndef TXC_DLL
  6971. void _cdecl statprintf_V(mchar** szformat);
  6972. void _cdecl TXAPI_(7) statprintf(mchar* szformat,...);
  6973. #endif
  6974. void _cdecl TXAPI_(4) information(mchar* szformat,...);
  6975. int TXAPIBASE textinformation(TX* text,mchar* szcaption);
  6976. void _cdecl TXAPI_(5) attention(mchar* szformat,...);
  6977. int _cdecl TXAPI_(6) question(mchar* szformat,...);
  6978. void TXAPI_(900) txStatusbarPrintf(TX* text,mchar* szformat,...);
  6979. void statprintfClearFlush(TX* text);
  6980. void statprintfClear(TX* text);
  6981. int myMessageBoxW(LPCWSTR lpText,UINT uType);
  6982.  
  6983. //##FILER/ファイルリストコントロール
  6984.  
  6985. typedef struct {
  6986.     int iFileName;    // ファイル名先頭文字オフセット        (旧FILER_IFILENAME)
  6987.     int lchLine;    // 行長:改行コード(0x0Aのみ)も含む    (旧FILER_LCHLINE)
  6988.     UINT fld;        // ロードモード
  6989.     mchar* szexts;    // 拡張子色分け用
  6990.     BOOL fLong;        // ロングファイル名モード
  6991. } FILERATR;
  6992. //
  6993. #define FLD_NORMAL    0x0000        // "*.*"なら、ディレクトリとファイル
  6994.                                 // そうでなければ、ファイルのみ
  6995. #define FLD_DIR        0x0001        // ディレクトリのみ
  6996. #define FLD_FILE    0x0002        // ファイルのみ
  6997. #define FLD_NOUNDO    0x1000        // *.~*は無視
  6998. #define FLD_HIDDEN    0x2000        // 隠しファイルも表示
  6999. #define FLD_LASTACCESS    0x4000    // 最後にアクセスした日付を表示
  7000. // 行アトリビュート
  7001. #define FATR_DIR    'D'            // ディレクトリ
  7002. #define FATR_FILE    'F'            // ファイル名
  7003. //
  7004. #define FILELIST_IDIRECTORY    2    //(TXLB_SIZEATR+0)    ファイル/ディレクトリ文字オフセット
  7005. #define FILELIST_LCXMASK    3    //(TXLB_SIZEATR+1)    左端表示マスク
  7006. //
  7007. int TXAPI_(547) _filerLoadDiskW(TX* text,wchar* _path,FILERATR* fileratr);
  7008.  
  7009. typedef struct tagFILELIST {
  7010.     TX* text;                    // ファイル一覧のデータを保持する
  7011.     HWND hwnd;                    // ファイルリスト
  7012.     //
  7013.     FBOOL fPreview;
  7014.     FBOOL fIniting;
  7015.     FBOOL fSaveAs;                // 名前を付けて保存?
  7016.     FBOOL fSaveAsVz;            // VZライクの名前を付けて保存?
  7017.                                 // fSaveAsもTRUEにすること
  7018.     FBOOL fDotDot;                // 親フォルダに移れる場合は".."をリスト先頭に表示する
  7019.     TXOFN_ARG arg;                // txuiGetOpenFileNameW arg
  7020.     FBOOL fFolderOnly;            // フォルダのみ表示?
  7021.     wchar* wszCaption;
  7022.     TX* textTarget;                // 対象のtext
  7023.     // sort
  7024.     int modeSort;                // ソートモード
  7025.     int modeSort2;                // ソートモード2
  7026.     int nDir;                    // ディレクトリ数
  7027.     int nFile;                    // ファイル数
  7028.     int nDirFile;                // ディレクトリ数+ファイル数
  7029.     // status
  7030.     int nSel;                    // 選択されたファイル数
  7031.     int nSelDir;                // 選択されたディレクトリ数
  7032.     DWORD cbSel;                // 選択されたファイルのファイルサイズの合計
  7033.     DWORD cbDiskFree;            // ドライブの空き容量
  7034.     // walk
  7035.     FBOOL fWalking;
  7036.     NPARA nparaWalk;            // 次にWalkする行
  7037.     NPARA npara0;
  7038.     int ly0;
  7039.     // now
  7040.     wchar wszpath[CCHPATHNAME];    // カレント パス、マスク
  7041.     // result
  7042.     wchar wszfilename[CCHPATHNAME];
  7043.     // TXOFN_SAVETO
  7044.     wchar wszfilenameSaveto[CCHWORD];    //WCE1.01 980503 保存先のファイル名
  7045.     // mode
  7046.     WORD fNoLoad:1;                //XZ0.10 990624 ファイル一覧を読み込まない?
  7047.     // link
  7048.     struct tagFILELIST* filelistPrev;
  7049.     struct tagFILELIST* filelistNext;
  7050. } FILELIST;
  7051.  
  7052. // sort
  7053. #define FILELIST_SORT_FILENAME    1
  7054. #define FILELIST_SORT_FILETYPE    2
  7055. #define FILELIST_SORT_NEW        3
  7056. #define FILELIST_SORT_OLD        4
  7057. #define FILELIST_SORT_BIG        5
  7058. #define FILELIST_SORT_SMALL        6
  7059.  
  7060. // position
  7061. #define FILELIST_IFILEDATE        4    // 日付文字オフセット
  7062. #define FILELIST_IFILESIZE        19    // ファイルサイズオフセット
  7063. #define FILELIST_IFILENAME        32    // ファイル/ディレクトリ文字オフセット
  7064.  
  7065. #define FILELIST_LCHFILEDATE    14    // 日付文字長さ
  7066. #define FILELIST_LCHFILESIZE    12    // ファイルサイズ長さ
  7067. #define FILELIST_CCHFILENAME    CCHPATHNAME    // ファイル/ディレクトリ長さ
  7068.                                             // \Windowsフォルダのアクセスが遅いのでファイル名の長さを制限
  7069.                                             //WCE0.91 970915 64文字の制限に気づいた人がいたので長さ制限を廃止
  7070.  
  7071. FILELIST* TXAPI_(548) filelistNew(void);
  7072. BOOL TXAPI_(549) filelistDelete(FILELIST* filelist);
  7073. FILELIST* TXAPI_(550) filelistSearch(TX* text);
  7074. BOOL TXAPI_(551) filelistIsCurDir(FILELIST* fl);
  7075. BOOL TXAPI_(552) filelistIsCurDirFile(FILELIST* fl);
  7076. BOOL TXAPI_(553) filelistIsCurFile(FILELIST* fl);
  7077. BOOL TXAPI_(554) filelistGetCurFilenameW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  7078. BOOL TXAPI_(555) filelistGetCurFilenameFullW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  7079. DWORD TXAPI_(556) filelistGetCurFileSize(FILELIST* fl);
  7080. wchar* TXAPI_(557) filelistFullFilenameW(FILELIST* fl,wchar* wszfilename);
  7081. int TXAPI_(558) filelistGetSelect(FILELIST* fl);
  7082. void TXAPI_(559) filelistFlush(FILELIST* fl);
  7083. BOOL TXAPI_(560) filelistInfoFolder(FILELIST* fl);
  7084. BOOL TXAPI_(561) filelistExitFolder(FILELIST* fl);
  7085. BOOL TXAPI_(562) filelistSelect(FILELIST* fl,BOOL fSelect);
  7086. BOOL TXAPI_(563) filelistIsCurSelect(FILELIST* fl);
  7087. void TXAPI_(564) filelistSelectReverse(FILELIST* fl);
  7088. int TXAPI_(565) filelistWalkGetCount(FILELIST* fl);
  7089. void TXAPI_(566) filelistWalkStart(FILELIST* fl);
  7090. BOOL TXAPI_(567) filelistWalkW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  7091. BOOL TXAPI_(568) filelistWalkDeleteCur(FILELIST* fl);
  7092. void TXAPI_(569) filelistWalkEnd(FILELIST* fl);
  7093. void TXAPI_(570) filelistSelectReverseAll(FILELIST* fl);
  7094. void TXAPI_(571) filelistSelectClearAll(FILELIST* fl);
  7095. void TXAPI_(572) filelistSelectAll(FILELIST* fl);
  7096. BOOL TXAPI_(573) filelistSearchFileW(FILELIST* filer,wchar* wsz);
  7097. void TXAPI_(574) filelistSetText(FILELIST* filelist,TX* text);
  7098.  
  7099. //##SHAREアクセスロック
  7100.  
  7101. #define LOCK_NULL            0    // 欠番
  7102.                                 // 以下、空きの番号はもったいないので作らない事
  7103. #define LOCK_WZPROCESS        1
  7104. #define LOCK_HIST            2
  7105. #define LOCK_WZAP            3
  7106. #define LOCK_PROFILE        4
  7107. #define LOCK_KEYMACRO        5
  7108. #define LOCK_WZICON            6
  7109. #define LOCK_WZMEMO            7
  7110. #define LOCK_WZTERMREAD        8
  7111. #define LOCK_WZTERMCHECK    9
  7112. #define LOCK_N                9    // 最終番号と同じにする
  7113. void TXAPI_(575) wzlock(int no);
  7114. void TXAPI_(576) wzunlock(int no);
  7115.  
  7116. //{###TX-Cサポート
  7117.  
  7118. //##for TX-C
  7119.  
  7120. #ifdef __TXC__    // 互換
  7121. HWND TXAPI_(847) txGetNextEditor(TX* text);
  7122. BOOL TXAPI_(885) txInit(TX* text,mchar* szfilename);
  7123. BOOL TXAPI_(855) fileCopy(mchar* szfilenameSrc,mchar* szfilenameDst);
  7124. BOOL TXAPI_(856) fileDelete(mchar* szfilename);
  7125. BOOL TXAPI_(857) fileRename(mchar* szfilenameSrc,mchar* szfilenameDst);
  7126. int TXAPI_(858) mkdir(mchar* szpath);
  7127. int TXAPI_(859) rmdir(mchar* szpath);
  7128. BOOL TXAPI_(860) CommandExec(mchar* szline);
  7129. txstr TXAPI_(768) txstrcpylen(txstr dst,mchar* src,int lch);
  7130. txstr TXAPI_(769) _strmid(txstr dst,mchar* str,int offset,int lchmid);
  7131. txstr TXAPI_(770) _strleft(txstr dst,mchar* str,int lchleft);
  7132. txstr TXAPI_(771) _inttostr(txstr dst,int num);
  7133. txstr TXAPI_(772) _chartostr(txstr dst,int ch);
  7134. mchar* TXAPI_(773) strright(mchar* str,int lchright);
  7135. mchar* TXAPI_(774) strrear(mchar* str,int lchleft);
  7136. extern "stdlib" {
  7137.     BOOL CommandBar_mySetMenu(HWND hwndCB,WORD iButton,HMENU hmenuAdd);
  7138. }
  7139. #if !WINDOWSCE
  7140.     #define CommandBar_Height(hwnd)        (0)
  7141. #endif
  7142. #endif
  7143.  
  7144. void txpcodeNotifyTextOpen(TX* text);
  7145. void txReleaseHookWndprocAll(TX* text,TXWNDHOOK* root);
  7146. FARPROC TXAPI_(814) txpcodeRegisterCallback(FARPROC procTxpcode,UINT nArg);
  7147. void    TXAPI_(815) txpcodeUnregisterCallback(FARPROC procRegistered);
  7148. void    TXAPI_(246) txSetHookWndproctextTxpcode(TX* text,FARPROC procTxpcode);
  7149. void    TXAPI_(247) txSetHookWndprocbaseTxpcode(TX* text,FARPROC procTxpcode);
  7150. void    TXAPI_(883) txReleaseHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,BOOL fHwndbase);
  7151.     #define txReleaseHookWndproctext(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,FALSE)
  7152.     #define txReleaseHookWndprocbase(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,TRUE)
  7153.  
  7154. //##TX-C3.0以前との互換
  7155.  
  7156. #ifdef __TXC__
  7157. #define beepAsterisk()                    MessageBeep(0x0040)
  7158. #define beepDefault()                    MessageBeep(0)
  7159. #define beepExclamation()                MessageBeep(0x0030)
  7160. #define beepHand()                        MessageBeep(0x0010)
  7161. #define beepQuestion()                    MessageBeep(0x0020)
  7162. #define    txReplaceContinue(t)            txIdmExec(t,IDM_UIREPLACECONTINUE)
  7163. #define txSearch(text,sz)                txSearchEx(text,sz,SEARCH_NOSENSECASE|SEARCH_NOSENSEZENHAN)
  7164. #define txSearchPara(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP)
  7165. #define txSearchPrev(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP|SEARCH_PREV)
  7166. #define txGetCharPrev(text)                txGetPrevChar(text)
  7167. #define txGetWordBuff(text,sz,cch)        txGetWordEx(text,sz,cch)
  7168. #define informationex                    statprintf
  7169. #define isreturn(c)                        txchIsReturn(c)
  7170. #define iszenkaku(c)                    txchIsKanji(c)
  7171. #define txClipboardCopy(text)            txSelectCopy(text)
  7172. #define txClipboardCut(text)            txSelectCopyDelete(text)
  7173. #define txClipboardPaste(text)            txPaste(text)
  7174. #define txSelectTsPush(text)            txPrivatePush(text)
  7175. #define txTsClear(text)                    txPrivateClear(text)
  7176. #define txTsPaste(text)                    txPrivatePaste(text)
  7177. #define txTsPop(text)                    txPrivatePop(text)
  7178. #define txTsPopJump(text)                txPrivatePopJump(text)
  7179. #define exec(sz)                        WinExec(sz,SW_SHOWNORMAL)
  7180. #define wzExec(sz)                        wzexec(sz)
  7181. #define txofnGetOpenFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  7182. #define txofnGetOpenFileNameEx(text,sz,szCaption,mode)    txuiGetOpenFileName(text,sz,szCaption,NULL)
  7183. #define txofnReferFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  7184. #define dialogbig(sz)                    dialog(sz)
  7185. #define dialogGroup(hd,sz)
  7186. #define dialogGroupEnd(hd)
  7187. #define dialogSetGroupRight(hd,x)
  7188. #define dialogEdit(hd,sz,text,lcx,lcy)        dialogEditWz(hd,sz,text,lcx,lcy,WS_VSCROLL)
  7189. #define dialogInt(hd,sz,data,lcx,lcxBox)    dialogInteger(hd,sz,lcx,data,lcxBox)
  7190. #define dialogStr(hd,sz,txstr,lcx,lcxBox)    dialogTxstr(hd,sz,lcx,txstr,lcxBox)
  7191. #define dialogStrC(hd,sz,str,lcx,cch,lcxBox)    dialogString(hd,sz,lcx,str,cch,lcxBox)
  7192. #define dialogButtonCmd(hd,sz,szMacro,lcx)    dialogButtonBig(hd,sz,szMacro,lcx)
  7193. #define dialogRadioID                    dialogChoiceRadio
  7194. #define isopen(sz)                        SearchText(sz)
  7195. #define txSearchText(text,sz)            SearchText(sz)
  7196. #define txSearchTitle(text)                txHeadlineSearchNext(text)
  7197. #define txSearchTitlePrev(text)            txHeadlineSearchPrev(text)
  7198. #define txOpenNew(text)                    textFrameOpen(NULL)
  7199. #define call(sz)                        macroExec(sz,text)
  7200. #define fork(sz)                        forkstd(sz,NULL)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  7201. #define forksw(sz,szSw)                    forkstd(sz,szSw)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  7202. #endif
  7203.  
  7204. //##日付関数
  7205.  
  7206. #ifdef __TXC__
  7207. int TXAPI_(866) timeGetEx(int mode);
  7208. #define timeGetDay()        timeGetEx(0)
  7209. #define timeGetDayofWeek()    timeGetEx(1)
  7210. #define timeGetDayofweek()    timeGetEx(1)    //WZ4.00Bp 991013 TX-C:timeGetDayofweek(WZ3と同じ名前)を追加
  7211. #define timeGetHour()        timeGetEx(2)
  7212. #define timeGetMinute()        timeGetEx(3)
  7213. #define timeGetMonth()        timeGetEx(4)
  7214. #define timeGetSecond()        timeGetEx(5)
  7215. #define timeGetYear()        timeGetEx(6)
  7216. #define timeGetYoubi()        ((mchar*)timeGetEx(7))
  7217. #endif
  7218.  
  7219. //{###END
  7220.  
  7221. #endif    // RC_INVOKED
  7222. #endif    //__PWZ_H
  7223.