home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 October / VPR9910A.BIN / APUPDATE / VC / TXC2M328 / txc2m328.lzh / _WZ.H < prev    next >
C/C++ Source or Header  |  1999-03-04  |  279KB  |  6,470 lines

  1. /*
  2.     WZ EDITOR 4.0 / Pocket WZ EDITOR 2.0
  3.         TX object define
  4.         Start 1997年 7月22日
  5.     
  6.     UNICODEを基本とする。ただしテキスト処理はANSIを使う。
  7.     WinAPIはUNICODE版を呼び出す。
  8.     Win95用のANSI版は、UNICODE版のWinAPIが実装されてないので、
  9.     自分でUNICODE版WinAPIラッパ(関数名:WinAPIの末尾に"_W"を付ける)
  10.     を作成しこれを呼び出す
  11.         WindowsCE : UNICODE only
  12.         WindowsNT : UNICODE / ANSI(UNICODEに内部で変換している)
  13.         Windows95 : ANSI only
  14.         一番軽く動作したいWindowsCEがUNICODEなのと、将来的にはWindows98は
  15.         WindowsNTに吸収される様なので、UNICODEベースとした。
  16. */
  17.  
  18. #ifndef __WZ_H
  19. #define __WZ_H
  20.  
  21. //##とりあえず開発時用 本来は_main.cに置くのが善い。
  22.  
  23. #define __DEV__            01    // 開発中?
  24. #define __HARDCOPY__    0    // 画面ハードコピー機能を使う?
  25. #define __BETA__        0    // ベータ版特有機能。製品では外す
  26. // CE用は常にリリース
  27. #ifdef _WIN32_WCE
  28.     #undef  __DEV__
  29.     #define __DEV__        0
  30. #endif
  31. // Win32 Release用
  32. #ifdef WZ_RELEASE
  33.     #undef  __DEV__
  34.     #define __DEV__        0
  35. #endif
  36.  
  37. //##汎用?
  38. //WZ3.90L 981126 
  39.  
  40. #define GENERAL        0
  41. #if defined(TXC_DLL) || defined(SETUP) || defined(WZUP)
  42.     #undef    GENERAL
  43.     #define GENERAL    1
  44. #endif
  45.  
  46. //##WZ/PWZ基本定義
  47.  
  48. #define __WZ__            0x4002    // __VERSION__ WZのバージョン番号
  49.                                 // 0x4000 WZ4.00
  50.                                 // 0x4001 WZ4.00A
  51.                                 // 0x4002 WZ4.00B
  52. #define __PWZ__            0x2002    // __VERSION__ PWZのバージョン番号
  53.                                 // 0x2000 PWZ2.00/2.00A
  54.                                 // 0x2002 PWZ2.05
  55. #define __TXSTRUCT__    102        // __VERSION__ text,mailerなどの構造体のバージョン番号(WZ,PWZ共通)
  56.                                 //WZ4.00Ac 990206 101
  57.                                 //WZ4.00Ba 990304 101->102
  58.  
  59. //WCE1.00A 971103 
  60. // _WIN32_WCE        WinCE版
  61. // WINDOWSCE        WinCE版
  62. // POCKETWZ            Pocket版? WZ4ではない
  63. // WZ4                WZ4版? Pocketではない
  64. // NEWWZ            PWZ or WZ4。WZ1-3ではない。
  65. #ifdef _WIN32_WCE    // この_WIN32_WCEはWINDOWSCEに変更しないこと
  66.     #define WINDOWSCE    1
  67.     #if _WIN32_WCE >= 200
  68.         #define WINDOWSCE1    0
  69.         #define WINDOWSCE2    1    // WindowsCE2.0
  70.     #else
  71.         #define WINDOWSCE1    1
  72.         #define WINDOWSCE2    0
  73.     #endif
  74.     #define POCKETWZ        1
  75.     #define WZ4                0
  76.     #define WS_TITLEBAR            WS_VISIBLE
  77.     #define SHELLEXECUTEINFOW    SHELLEXECUTEINFO
  78.     #define MYSTATUSBAR        1
  79.     #define WZFUNC_PRINT    0    // 印刷機能を使う?
  80.     #define WZFUNC_PROP        1    // プロポーショナルフォントを使う?
  81.     #define WZFUNC_BITMAP    0    // 図の表示機能を使う?
  82.     #define WZFUNC_TMLHIGH    0    // マルチフォント等高度なTML機能を使う?
  83.     #define WZFUNC_CONV        0    // ファイルコンバータ機能を使う?
  84.     #define WZFUNC_EMAIL    1    // E-Mail機能を使う?
  85.     #define WZFUNC_TXC        1    // TX-Cを使う?
  86.     #define WZFUNC_TEXTCFG    0    // 設定をテキストファイルで保持?
  87.     #define WZFUNC_TEXTCFGBIN 0    //WZ3.90N 981201 設定をテキストファイルにも出力。テキストファイルの設定が更新されていたらそれを読み込む。
  88.     #define WZFUNC_OLECLIP    0    // OLEクリップボードを使う?
  89.     #define WZFUNC_OLEDD    0    // OLEドラッグアンドドロップを使う?
  90.     #define WZFUNC_UIREFER    0    // 「最近参照した位置に移動」を使う?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  91.     #define WZFUNC_CONVERTTEXT 1// 「テキストの変換」機能を使う?        //WZ3.90K 981114 
  92.     #define WZFUNC_TABBEAM    1    // 「タブ桁揃え」機能を使う?            //WZ3.90K 981114 
  93.                                 // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  94.     #define WZFUNC_HTMLHIGH    0    // タグのアトリビュート・縮小表示等、高度なHTML機能を使う?    //WZ4.00Ab 990117 
  95.     #define WZFUNC_HEADLINECONVERT    0    // 見出しの変換・見出しスタイルを使う?    //WZ4.00Ab 990118 
  96. #else
  97.     #define WINDOWSCE        0
  98.     #define WINDOWSCE1        0
  99.     #define WINDOWSCE2        0
  100.     #define POCKETWZ        0
  101.     #define WZ4                1
  102.     #define WS_TITLEBAR        WS_OVERLAPPEDWINDOW
  103.     #define MYSTATUSBAR        0
  104.     #define WZFUNC_PRINT    1    // 印刷機能を使う?
  105.     #define WZFUNC_PROP        1    // プロポーショナルフォントを使う?
  106.     #define WZFUNC_BITMAP    1    // 図の表示機能を使う?
  107.     #define WZFUNC_TMLHIGH    1    // マルチフォント等高度なTML機能を使う?
  108.     #define WZFUNC_CONV        1    // ファイルコンバータ機能を使う?
  109.     #define WZFUNC_EMAIL    1    // E-Mail機能を使う?
  110.     #define WZFUNC_TXC        1    // TX-Cを使う?
  111.     #define WZFUNC_TEXTCFG    0    // 設定をテキストファイルで保持?
  112.                                 //WZ3.90N 981201 やはり1割のオーバヘッドがあるので、WZFUNC_TEXTCFGBINに変更した。
  113.     #define WZFUNC_TEXTCFGBIN 1    //WZ3.90N 981201 WZ EDITORを閉じたときにバイナリ設定ファイルが更新されていたらテキスト設定ファイルに出力
  114.                                 // WZ EDITORを開いたときに、テキスト設定ファイルが更新されていたらそれを読み込む。
  115.                                 // WZFUNC_TEXTCFGも1にしておくこと。
  116.     #define WZFUNC_OLECLIP    1    // OLEクリップボードを使う?
  117.                                 // ONにすると、TMLでコピーして他アプリにペーストしたとき素のテキストとしてペーストされる。
  118.                                 // OFFにすると、TMLタグが付いてペーストされる。
  119.     #define WZFUNC_OLEDD    1    // OLEドラッグアンドドロップを使う?
  120.     #define WZFUNC_UIREFER    0    // 「最近参照した位置に移動」を使う?    //WZ3.90J 981108 「前位置に戻る」に置き換え
  121.     #define WZFUNC_CONVERTTEXT 1// 「テキストの変換」機能を使う?        //WZ3.90K 981114 
  122.     #define WZFUNC_TABBEAM    1    // 「タブ桁揃え」機能を使う?            //WZ3.90K 981114 
  123.                                 // これをONにすると従来の「タブ体裁」の機能はOFFになる。
  124.     #define WZFUNC_HTMLHIGH    1    // タグのアトリビュート・縮小表示等、高度なHTML機能を使う?    //WZ4.00Ab 990117 
  125.     #define WZFUNC_HEADLINECONVERT    1    // 見出しの変換・見出しスタイルを使う?    //WZ4.00Ab 990118 
  126. #endif
  127. #define WZFUNC_MEMOEDIT        0    // MEMOEDITモードを使う?    //WZ3.90L 981124 とりあえず使わない。
  128. #define NEWWZ            1    // POCKETWZ|WZ4
  129.  
  130. //##以上、RCでも有効
  131.  
  132. #ifndef RC_INVOKED
  133.  
  134. //##テキストバッファの文字コード定義
  135.  
  136. #define TC_SJIS            0        // ShiftJIS (1byte or 2bytes)
  137.                                 // 拡張ASCIIコード(欧文文字:0x80-0xFF)は
  138.                                 // iskanjiと重なるコードは0x80を追加して
  139.                                 // 2bytesで表現する。
  140.                                 // (!TEXTCHAR_UNICODE時のみ)
  141. #define TC_SINGLEBYTE    1        // 1バイト文字(ASCII+拡張ASCII)
  142.                                 // 日本語は使えない
  143.                                 // (!TEXTCHAR_UNICODE時のみ)
  144. #define TC_UNICODE        2        // UNICODE(all 2bytes)
  145.                                 // UNICODEで定義された16bitで表現できる文字が
  146.                                 // 使用可能
  147.                                 // (TEXTCHAR_UNICODE時のみ)
  148.  
  149. #define TEXTCHAR_UNICODE    0    // 0:TEXTBUFFはTC_SJIS/TC_SINGLEBYTE
  150.                                 // 1:TEXTBUFFはTC_UNICODE
  151. #if TEXTCHAR_UNICODE
  152.     typedef unsigned short TEXTCHAR;    // textbuff char set is UNICODE
  153.     #define TEXTSTR(quote)            L##quote
  154.     #define textvsprintf            vsprintf_W
  155.     #define textsprintf                sprintf_W
  156.     #define textstrlen                wstrlen
  157.     #define textstrcpy                wstrcpy
  158.     #define textstrcpylen            wstrcpylen
  159.     #define textstricmp                wstricmp
  160.     #define textcchof                wcchof
  161.     #define textsprintf                sprintf_W
  162.     #define textatol                watol
  163.     #define textstrchr                wstrchr
  164.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,(n)*2)
  165.     #define textstrnicmp(s1,s2,n)    wstrnicmp(s1,s2,n)
  166.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,(n)*2)
  167.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,(n)*2)
  168.     #define textmemmove(s1,s2,n)    memmove(s1,s2,(n)*2)
  169.     #define textitoa(n,s,r)            itow(n,s,r)
  170.     #define textstrcpylenmax        wstrcpylenmax
  171. #else
  172.     typedef unsigned char TEXTCHAR;        // textbuff char set is ShiftJIS(ANSI)
  173.     #define TEXTSTR(quote)            quote
  174.     #define textvsprintf            vsprintf_A
  175.     #define textsprintf                sprintf_A
  176.     #define textstrlen                strlen
  177.     #define textstrcpy                strcpy
  178.     #define textstrcpylen            strcpylen
  179.     #define textstricmp                stricmp
  180.     #define textcchof                cchof
  181.     #define textsprintf                sprintf_A
  182.     #define textatol                atol
  183.     #define textstrchr                strchr
  184.     #define textstrncmp(s1,s2,n)    memcmp(s1,s2,n)
  185.     #define textstrnicmp(s1,s2,n)    strnicmp(s1,s2,n)
  186.     #define textmemcmp(s1,s2,n)        memcmp(s1,s2,n)
  187.     #define textmemcpy(s1,s2,n)        memcpy(s1,s2,n)
  188.     #define textmemmove(s1,s2,n)    memmove(s1,s2,n)
  189.     #define textmemchr(s,c,n)        memchr(s,c,n)
  190.     #define textitoa(n,s,r)            itoa(n,s,r)
  191.     #define textstrcpylenmax        strcpylenmax
  192. #endif
  193.  
  194. //##基本型定義
  195.  
  196. #define EXPORT __declspec(dllexport)
  197. //#define EXPORT extern "C" __declspec(dllexport)    // VC++でエラーになった
  198.  
  199. #ifdef __TXC__
  200.  
  201. // LPSTR等が<char>なので、漢字を扱うのが不便。
  202. // そこで<char=unsigned char>とする
  203. #pragma char=unsigned
  204.  
  205. #define VOID                void
  206. #define PASCAL              _pascal
  207. #define CDECL               _cdecl
  208. #define FAR
  209. #define NEAR
  210. typedef int                 BOOL;
  211. #define FALSE               0
  212. #define TRUE                1
  213. typedef unsigned char       BYTE;
  214. typedef unsigned short      WORD;
  215. typedef unsigned long       DWORD;
  216. typedef unsigned int        UINT;
  217. typedef signed long         LONG;
  218. typedef int                 INT;    //1.00F EXEのint型
  219.  
  220. #define MAKELONG(a, b)      ((LONG)(((WORD)(a)) | (((DWORD)((WORD)(b))) << 16)))
  221. #define LOWORD(l)           ((WORD)(l))
  222. #define HIWORD(l)           ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
  223. #define LOBYTE(w)           ((BYTE)(w))
  224. #define HIBYTE(w)           ((BYTE)(((WORD)(w) >> 8) & 0xFF))
  225. #define max(a,b)            (((a) > (b)) ? (a) : (b))
  226. #define min(a,b)            (((a) < (b)) ? (a) : (b))
  227.  
  228. typedef UINT WPARAM;
  229. typedef LONG LPARAM;
  230. typedef LONG LRESULT;
  231. #define MAKELPARAM(low, high)   ((LPARAM)MAKELONG(low, high))
  232. #define MAKELRESULT(low, high)  ((LRESULT)MAKELONG(low, high))
  233.  
  234. #ifndef NULL
  235.     #define NULL                0
  236. #endif
  237.  
  238. typedef char NEAR*          PSTR;
  239. typedef char NEAR*          NPSTR;
  240. typedef char FAR*           LPSTR;
  241. typedef const char FAR*     LPCSTR;
  242.     // LPSTR,LPCSTRはsigned charで、日本語が扱いにくいので使わない
  243. typedef BYTE NEAR*          PBYTE;
  244. typedef BYTE FAR*           LPBYTE;
  245. typedef int NEAR*           PINT;
  246. typedef int FAR*            LPINT;
  247. typedef WORD NEAR*          PWORD;
  248. typedef WORD FAR*           LPWORD;
  249. typedef long NEAR*          PLONG;
  250. typedef long FAR*           LPLONG;
  251. typedef DWORD NEAR*         PDWORD;
  252. typedef DWORD FAR*          LPDWORD;
  253. typedef void NEAR*          PVOID;//1.00F
  254. typedef void FAR*           LPVOID;
  255.  
  256. typedef UINT size_t;
  257.  
  258. #define MAKELP(sel, off)    ((void FAR*)MAKELONG((off), (sel)))
  259. #define SELECTOROF(lp)      HIWORD(lp)
  260. #define OFFSETOF(lp)        LOWORD(lp)
  261. #define FIELDOFFSET(type, field)    ((int)(&((type NEAR*)1)->field)-1)
  262.  
  263. #ifdef STRICT
  264. typedef void *HANDLE;
  265. #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
  266. #else
  267. typedef PVOID HANDLE;
  268. #define DECLARE_HANDLE(name) typedef HANDLE name
  269. #endif
  270. typedef HANDLE *PHANDLE;
  271.  
  272. //##TX-C std define for WindowsAPI
  273.  
  274. #define __stdcall _pascal
  275. #define __import
  276. #define WINAPI      __stdcall __import
  277. #define CALLBACK    __stdcall
  278. DECLARE_HANDLE(HWND);
  279. DECLARE_HANDLE(HMENU);
  280. typedef int HFILE;
  281. #define HFILE_ERROR ((HFILE)-1)
  282. DECLARE_HANDLE(HGLOBAL);
  283. DECLARE_HANDLE(HLOCAL);    //WCE1.01 980313 
  284. DECLARE_HANDLE(HINSTANCE);
  285. typedef HINSTANCE HMODULE;
  286. DECLARE_HANDLE(HBITMAP);
  287. DECLARE_HANDLE(HPEN);
  288. DECLARE_HANDLE(HBRUSH);
  289. DECLARE_HANDLE(HRGN);
  290. DECLARE_HANDLE(HPALETTE);
  291. DECLARE_HANDLE(HFONT);
  292. DECLARE_HANDLE(HICON);
  293. DECLARE_HANDLE(HDC);
  294. typedef HICON HCURSOR;
  295. typedef DWORD                COLORREF;
  296. typedef int (FAR WINAPI *FARPROC)();
  297. #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
  298. typedef struct tagRECT {
  299.     LONG left;
  300.     LONG top;
  301.     LONG right;
  302.     LONG bottom;
  303. } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
  304. typedef struct tagPOINT {//2.94 
  305.     LONG x;
  306.     LONG y;
  307. } POINT;
  308. typedef struct tagSIZE {//2.94 
  309.     LONG cx;
  310.     LONG cy;
  311. } SIZE;
  312.  
  313. // Virtual key codes
  314. #define VK_BACK             0x08    // [Backspace]
  315. #define VK_TAB              0x09    // [Tab]
  316. #define VK_CLEAR            0x0C    // 
  317. #define VK_RETURN           0x0D    // [Enter]
  318. #define VK_ESCAPE           0x1B    // [Esc]
  319. #define VK_PRIOR            0x21    // [PageUp]
  320. #define VK_NEXT             0x22    // [PageDown]
  321. #define VK_END              0x23    // [End]
  322. #define VK_HOME             0x24    // [Home]
  323. #define VK_LEFT             0x25    //
  324. #define VK_UP               0x26    //
  325. #define VK_RIGHT            0x27    //
  326. #define VK_DOWN             0x28    //
  327. #define VK_INSERT           0x2D    // [Ins]
  328. #define VK_DELETE           0x2E    // [Del]
  329. #define VK_HELP             0x2F    // [Help]
  330.  
  331. #define LF_FACESIZE            32
  332. #define IDOK                1
  333. #define IDCANCEL            2
  334. #define IDABORT                3
  335. #define IDRETRY                4
  336. #define IDIGNORE            5
  337. #define IDYES                6
  338. #define IDNO                7
  339.  
  340. // Windowsからコールバックされる関数
  341. #define TXCALLBACK    __stdcall
  342.  
  343. //WCE1.01 980313 
  344. typedef WORD                    WCHAR;
  345. typedef short                    SHORT;
  346. #define LPSECURITY_ATTRIBUTES    LPVOID
  347. typedef WORD*                    LPWSTR;
  348. typedef const WORD*                LPCWSTR;
  349. typedef struct _FILETIME {
  350.     DWORD dwLowDateTime;
  351.     DWORD dwHighDateTime;
  352. } FILETIME;
  353.  
  354. // for TXE Menu実現
  355. #define IDM_MAINMENU_TXE        30025    // _idm.hでも定義。
  356.  
  357. #endif    // __TXC__
  358.  
  359. typedef unsigned char    mchar;            // ShiftJIS char
  360. typedef WCHAR            wchar;            // UNICODE char
  361. typedef mchar*            pmchar;            //WCE1.01 980314 
  362. typedef BYTE            BBOOL;
  363. typedef long            TIME;
  364. typedef struct tagtx    tx;
  365. typedef struct tagtx    TX;
  366. typedef signed char        SIGNED_BYTE;
  367. typedef signed short    SIGNED_WORD;
  368. typedef signed long        SIGNED_DWORD;
  369. typedef WORD            TXCHAR;            // 漢字・CR+LFも含めた文字列
  370. typedef BYTE            FBOOL;            // 0か1のみのフラグ(WORD flag:1)と交換可
  371. typedef BYTE            CBOOL;            // ++,--するフラグ(WORD flag:2以上)と交換可
  372. typedef UINT IDM;                        // IDM_xxx    //WZ3.90I 981102 new 
  373. //WCE1.01 980224 TCHARは、Windowsで定義されている。WCHAR or char
  374. #ifdef UNICODE
  375.     typedef WCHAR                tchar;
  376.     #define vsprintf_W            wvsprintf
  377.     #define sprintf_W            wsprintf
  378.     #define tstrlen                wstrlen
  379.     #define tstrcpy                wstrcpy
  380.     #define tstricmp            wstricmp
  381.     #define tcchof                wcchof
  382.     #define tsprintf            wsprintf
  383.     #define tatol                watol
  384.     #define tstrchr                wstrchr
  385.     #define CreateFile_W        CreateFile
  386.     #define DeleteFile_W        DeleteFile
  387.     #define CreateFileMapping_W    CreateFileMapping
  388.     #define CreateMutex_W        CreateMutex
  389.     #define RemoveDirectory_W    RemoveDirectory
  390.     #define CreateDirectory_W    CreateDirectory
  391.     #define CopyFile_W            CopyFile
  392.     #define MoveFile_W            MoveFile
  393.     #define SetFileAttributes_W    SetFileAttributes
  394.     #define SetWindowText_W        SetWindowText
  395.     #define GetWindowText_W        GetWindowText
  396.     #define SetDlgItemText_W    SetDlgItemText
  397.     #define GetDlgItemText_W    GetDlgItemText
  398.     #define ListBox_AddString_W    ListBox_AddString
  399.     #define ListBox_FindStringExact_W    ListBox_FindStringExact
  400.     #define ComboBox_AddString_W ComboBox_AddString
  401.     #define FindFirstFile_W        FindFirstFile
  402.     #define FindNextFile_W        FindNextFile
  403.     #define CreateWindow_W        CreateWindow
  404.     #define CreateWindowEx_W    CreateWindowEx
  405.     #define RegisterClass_W        RegisterClass
  406.     #define GetClassName_W        GetClassName
  407.     #define DrawText_W            DrawText
  408.     #define ShellExecuteEx_W    ShellExecuteEx
  409.     #define LoadLibrary_W        LoadLibrary
  410. #else
  411.     typedef unsigned char        tchar;
  412.     #define vsprintf_A            wvsprintf
  413.     #define sprintf_A            wsprintf
  414.     #define tstrlen                strlen
  415.     #define tstrcpy                strcpy
  416.     #define tstricmp            stricmp
  417.     #define tcchof                cchof
  418.     #define tsprintf            wsprintf
  419.     #define tatol                atol
  420.     #define tstrchr                strchr
  421.     #define SetWindowText_A        SetWindowText
  422.     #define GetWindowText_A        GetWindowText
  423.     #define SetDlgItemText_A    SetDlgItemText
  424.     #define GetDlgItemText_A    GetDlgItemText
  425.     #define ListBox_AddString_A            ListBox_AddString
  426.     #define ListBox_FindStringExact_A    ListBox_FindStringExact
  427.     #define ComboBox_AddString_A        ComboBox_AddString
  428.     #define TextOut_A                    TextOut
  429.     #define CreateFile_A                CreateFile
  430.     #define LoadLibrary_A        LoadLibrary
  431.     #define myGetProcAddress_A    GetProcAddress
  432. #endif
  433.  
  434. #define rectCx(r)    ((r)->right - (r)->left)
  435. #define rectCy(r)    ((r)->bottom - (r)->top)
  436. #define ScreenToClientRect(hwnd,rect)    MapWindowPoints(NULL,hwnd,(POINT*)(rect),2)
  437. #define ClientToScreenRect(hwnd,rect)    MapWindowPoints(hwnd,NULL,(POINT*)(rect),2)
  438. #define rectDec(r)    {(r)->left++;(r)->top++;(r)->right--;(r)->bottom--;}
  439. #define rectInc(r)    {(r)->left--;(r)->top--;(r)->right++;(r)->bottom++;}
  440.  
  441. #if WINDOWSCE
  442.     #define _hbrushBtnFace        GetStockObject(WHITE_BRUSH)
  443.     //WCE1.01 980315 CE2.0でもないみたい
  444.     #define LPtoDP(hdc,p,n)
  445.     #define DPtoLP(hdc,p,n)
  446.     //WZ4.00Ab 990112 
  447.     #if WINDOWSCE1    //WZ4.00Ac 990204 CE1.0でIDM_COPYができなかった。CE1.0ではLMEM_MOVEABLEが使えないみたい。
  448.         #define GMEM_MOVEABLE    LMEM_FIXED
  449.     #else
  450.         #define GMEM_MOVEABLE    LMEM_MOVEABLE
  451.     #endif
  452.     #define GMEM_FIXED        LMEM_FIXED    //WZ4.00Ac 990204 
  453.     #define GMEM_SHARE        0
  454.     #define GlobalLock        LocalLock
  455.     #define GlobalSize        LocalSize
  456.     #define GlobalUnlock    LocalUnlock
  457.     #define GlobalReAlloc    LocalReAlloc
  458.     #define GlobalAlloc        LocalAlloc
  459.     #define GlobalFree        LocalFree
  460. #else
  461.     extern HPEN _hpenBtnShadow;        // Windowsシステム色のペン
  462.     extern HPEN _hpenBtnShine;
  463.     extern HPEN _hpenWindowFrame;
  464.     extern HPEN _hpenBtnFace;
  465.     extern HBRUSH _hbrushBtnFace;    // Windowsシステム色のブラシ
  466. #endif
  467.  
  468. #define CHAR_TAB    0x09    //
  469. #define CHAR_CR        0x0D    //
  470. #define CHAR_LF        0x0A    //
  471. #define CHAR_FF        0x0C    // 改ページは行を改めるが改段ではない
  472.                             // CHAR_LFとは異なる
  473. #define CHAR_EOF    0x1A    //
  474. #define CHAR_ESC    0x1B    //
  475. #define CHAR_CRLF    0x0D0AU    //
  476. #define CHAR_JSPACE    0x8140    //WCE1.01 980504 全角空白
  477.  
  478. //WZ3.90N 981130 半角カナの定義
  479. // VC++で"/J"オプションを付けないと、'ー'は-80になってしまい、どうにもならない。
  480. //WZ3.90N 981130 この影響で、ーが半角に変換できなかった。
  481. #define CHAR_KANA_ONBIKI    0xB0    // 'ー'
  482. #define CHAR_KANA_NAKAGURO    0xA5    // '・'
  483. #define CHAR_KANA_DAKUTEN    0xDE    // '゙'
  484. #define CHAR_KANA_HANDAKUTEN 0xDF    // '゚'
  485.  
  486. #define _huge
  487. #define TXAPI
  488. #define TXAPIBASE
  489. #define TXCMD
  490. #define TXCMDBASE
  491. #define TXHIGH
  492. #define TXHIGH_COND            // 条件付きTXHIGH    //WZ3.90I 981029 new
  493. #define TXHIGH_THROUGH
  494. #define TXUI
  495. #define TXGAPED
  496. #define INTERNAL
  497.  
  498. #define __CCJAPAN__                // 日本語Cコンパイラ依存部分
  499. #define __BYTEORDERLOW__        // バイト順(low-high)に依存部分
  500. #define __SINGLETASK__            // シングルスレッド依存部分
  501. #define __ANSICODE__            // ANSI文字コード依存部分
  502. #define __END__                    // 依存部分終了
  503.  
  504. #define beep()        MessageBeep(-1)
  505. #define wait(ms)    Sleep(ms)
  506. #define beep2()        {wait(500);beep();wait(100);beep();wait(500);}
  507.  
  508. #define CCHPATHNAME        260
  509. #define CCHFILENAME        260
  510.  
  511. #define cchof(str)    (sizeof(str) / sizeof(mchar))
  512.                             // mchar配列として定義した変数の要素数
  513.                             // (変数に格納できる文字数)を返す
  514. #define lchof(str)    ((sizeof(str) / sizeof(mchar))-1)
  515.                             // mchar配列として定義した変数の
  516.                             // 文字列の長さ(最後のNULLは除く)を返す
  517. #define wcchof(str)    (sizeof(str) / sizeof(wchar))
  518.                             // wchar配列として定義した変数の要素数
  519.                             // (変数に格納できる文字数)を返す
  520. #define wlchof(str)    ((sizeof(str) / sizeof(wchar))-1)
  521.                             // wchar配列として定義した変数の
  522.                             // 文字列の長さ(最後のNULLは除く)を返す
  523. #define cchtxstr(str)        CCHTXSTR
  524.                             // txstrに格納できる文字数+1を返す
  525.  
  526. #define divmod(n,v)    (((n) / (v)) + (((n) % (v)) != 0))
  527.                             // nをdで割った結果を返す
  528.                             // nがdで割り切れないときは+1して返す
  529.                             //WCE1.01 980226 new
  530. #define mysmall(a,b)        ((a) < (b) ? (a) : (b))
  531. #define myabs(i)            ((i) < 0 ? -(i) : (i))            //WZ3.90J 981108 
  532. #define myminimum(n,min)    (((n) >= (min)) ? (n) : (min))    //WZ3.90N 981130 nがmin未満ならminを返す
  533.  
  534. // 基本型定義
  535. typedef DWORD    NLINE;    // 表示行番号
  536. typedef DWORD    NPARA;    // 論理行番号
  537. typedef WORD    NPAGE;    // ページ番号
  538. typedef UINT    IMEM;    // CPUネイティブのメモリアクセスインデックス型
  539. typedef DWORD    IFILE;    // テキストファイルインデックス
  540.                         // gap部を除いたテキストアドレス
  541.                         // TEXTCHAR単位
  542. typedef UINT    IBUFF;    // テキストバッファインデックス
  543.                         // gap部を含むテキストアドレス
  544.                         // TEXTCHAR単位
  545.  
  546. #define IBUFF_ERROR        ((IBUFF)0xFFFFFFFFU)
  547. #define IFILE_ERROR        0xFFFFFFFF    //WCE0.92 970918 
  548. #define DWORD_MAX        0xFFFFFFFF    //WZ3.90I 981029 DWORDの最大値
  549. #define INT_MAX            0x7FFFFFFF    //WZ3.90I 981029 intの最大値
  550.  
  551. // 文字数定義
  552. #define CCHLINE            512U    // 表示行一行の最大文字数
  553.                                 // (\0、禁則追い出し域も含む)
  554. #define CCHWORD            80        // 検索文字列サイズ(最大CCHLINE程度)
  555.                                 // 一般的な文字列の長さ
  556. #define CCHSWORD        40        // CCHWORDの半分
  557. #define CCHNAME            30        // 各種識別子
  558. #define CCHNUMBER        40        // ltoa最大バッファ使用数
  559. #define MINWIDTH        10U        // 最小折り返し幅
  560. #define MAXWIDTH (CCHLINE-11U)    // 最大折り返し幅(禁則域は除く)
  561. #define MAXTABSIZE      64        // 最大タブサイズ
  562. #define MAXMARK            5        // 最大マーク数
  563. #define CCHMARK            40        // マーク文字列
  564. #define CCHLPSTYLE        40        // 印刷スタイル名
  565. #define CCHSTYLENAME    40        // スタイル名    //WZ3.90I 981028 
  566. #define MAXREFERPOS        10        // 最大最近参照した位置
  567. #define CCHTXSTR        260        // txstrの文字数(CCHPATHNAMEと同じ)
  568.  
  569. typedef struct tagtxstr {
  570.     mchar szString[CCHTXSTR];
  571. } txstr;
  572. #ifdef __TXC__
  573.     typedef txstr TXSTR;
  574. #else
  575.     typedef LPVOID TXSTR;
  576.     #define TXAPI_(n)    // TXAPI export number
  577.     #define _varyarg
  578. #endif
  579.  
  580. // テキストバッファ関連
  581. #define TEXTBUFFSIZE    16384U            //1.00F (IBUFF) -> U , 65536U-16U -> 65520U
  582.     // テキストバッファの初期サイズ
  583.     // 16の倍数であること。
  584.     // これはあくまで確保するサイズ。
  585.     // バッファに入っているテキストデータのバイト数は、
  586.     // text->sizebuffに入っている。
  587.     // WINDOWSCEはメモリが少ないので少な目に確保
  588. #define MAXPARASIZE        8192U            //1.00F (IBUFF) -> U
  589.     // 論理行の最大サイズの目安
  590.     // これを越える論理行も何ら問題なく編集できる
  591. #define STDGAPSIZE        2048U            //1.00F (IBUFF) -> U
  592.     // 最低2048、最大8192程度
  593. #define TEXTBUFFSIZE_MARGIN        8U        // WINDOWSCE
  594.     // EOF追加,ターミネータのため、8bytes余計に取る
  595.     // 最低3バイト余計に取らないといけない
  596.     // 追加EOF1バイト分と、ターミネータ2+1バイト分(+1:WCE)
  597.  
  598. //## TXF - text formatted
  599. // 詳しくは"txf.txt"を参照。
  600. // TXF_PARA_xxx : 段落先頭のみに存在。段落属性を表す。
  601. // 971106 start
  602.  
  603. #define CHAR_TXF            0x1F    // TXF_xxxが続く
  604.                                     // この後にタグ名、アトリビュートが続く。
  605.                                     // タグにはバイナリデータは使わない。0x00や0x0Dなどが入ると混乱するため。
  606. #define CHAR_TXFEND            0x1E    // タグの終わり
  607. #define CHAR_ATRDELI        0x1D    // 一つのアトリビュートの終わり
  608. //// CHAR_TXF,CHAR_TXFEND,CHAR_ATRDELIのコードはまだ確定していない
  609. //// ESCシーケンスなどとの整合性を調べる
  610. //// 問題が少なそうなコードとして0x08(BS),0x0B(VT),0x18(CAN)も候補
  611. // CHAR_TXFの直後に置く
  612. #define CHAR_TXFTAG_END        '/'        // 閉タグ
  613. #define CHAR_TXFTAG_CHAR    '*'        // 文字タグ
  614. #define CHAR_TXFTAG_PARA    '#'        // 段落タグ
  615.                                     // CHAR_TXFTAG_SINGLEが続くと、改行操作で次行に引き継がない
  616. #define CHAR_TXFTAG_SINGLE    '!'        // 単独タグ
  617. // 文字数
  618. #define CCHTAG                30        // タグ名の最大文字数+1
  619. #define CCHTXFTAG            500        // アトリビュートも含めて最大文字数+1
  620.  
  621. // タグが閉じているか調べる時のコンテキスト
  622. typedef struct tagTAGNEST {
  623.     BYTE lchTag;
  624.     TEXTCHAR szTag[CCHTAG];    // タグ名 アトリビュートは除く
  625.     TEXTCHAR* pTag;            //WCE1.01 980308 タグアドレス
  626.     TEXTCHAR* szAtr;        // malloced
  627.                             // for tagnestNext
  628.     SIGNED_BYTE nNest;        // 現在のネストレベル
  629.     FBOOL fParaTag;            // 段落タグ?
  630.     DWORD lParam;            // ユーザデータ
  631.     FBOOL fPreTagIsTop;        // (ユーザデータ)直前のタグが開タグだった?
  632.     FBOOL fClearTag;        // タグのクリア?
  633.                             //WCE1.01 980308 for for tagnestNext
  634.     int nTag;                // 現在までのタグ数
  635.     struct tagTAGNEST* prev;
  636.     struct tagTAGNEST* next;
  637. } TAGNEST;
  638.  
  639. // タグ解析コンテキスト
  640. typedef struct {
  641.     BYTE lchTag;
  642.     TEXTCHAR szTag[CCHTAG];
  643.     BOOL fSingle;        // 単独タグか?
  644.     BOOL fPara;            // 段落タグか?
  645.     BOOL fParaSingle;    // 段落単独タグか?
  646.     BOOL fEnd;            // 閉タグか?
  647.     BOOL fChar;            // 文字タグか?
  648.     BOOL fUser;            // ユーザ定義タグか?
  649. } TAGANA;
  650.  
  651. // for "TD" atr analyze
  652. typedef struct {
  653.     int width;
  654.     BOOL fWidthAuto;
  655.     int lineTop;    // default:CELLLINE_LINE
  656.     int lineLeft;    // default:CELLLINE_LINE
  657.     int lineBottom;    // default:CELLLINE_NULL
  658.     int align;        // default:CELLALIGN_LEFT
  659.     int xbase;        // default:0
  660. } CELLATR;
  661. // atr align
  662. #define CELLALIGN_LEFT        0    // 左揃え
  663. #define CELLALIGN_CENTER    1    // 中央揃え
  664. #define CELLALIGN_RIGHT        2    // 右揃え
  665. // atr line
  666. #define CELLLINE_NULL        0    // 線なし
  667. #define CELLLINE_LINE        1    // 実線
  668. #define CELLLINE_BOLD        2    // 太線
  669. #define CELLLINE_CONNECT    3    // 連結
  670.  
  671. // for "IMG" atr analyze
  672. typedef struct {
  673.     wchar wszfilename[CCHPATHNAME];
  674.     int modeDisp    ;        // 表示モード
  675.         #define IMGDISP_WYSIWYG        0    // (default)画面上のサイズと同じサイズで印刷
  676.         #define IMGDISP_TEXTRATE    1    // テキストの横幅に対するパーセンテージで印刷
  677.         #define IMGDISP_RATE        2    // 図のサイズをパーセンテージで拡大/縮小して印刷
  678.     int rate;                // (default=100)パーセンテージ
  679.     BBOOL fAbsolutePath;    //WZ3.90I 981106 絶対パス?
  680. #ifdef WINVER
  681.     BITMAPFILEHEADER* dib;    // (default=NULL)埋め込みの場合はそのDIBデータ(malloced)
  682. #else
  683.     LPVOID dib;
  684. #endif
  685. } IMGATR;
  686.  
  687. // for "BEAM" atr analyze
  688. typedef struct {
  689.     int lx;                // lx
  690.     BOOL fSpace;        // 余白数を指定する
  691.     int nSpace;            // fSpaceの場合、このBEAMで空ける余白数
  692. } BEAMATR;
  693.  
  694. //##テキストモードのparaatr
  695. //WCE1.01 980205 new
  696.  
  697. typedef struct {
  698.     BYTE fEdited:1;                // 編集が加えられた?
  699.     BYTE fReserved:7;
  700. } PARAATR_TEXT;
  701.  
  702. typedef struct {
  703.     BYTE fEdited:1;
  704.     BYTE fReserved:7;
  705.         #define MAX_BEAMTAB    15    // 段落内の最大BEAMタブ数
  706.     WORD tlxTab[MAX_BEAMTAB];
  707. } PARAATR_TEXT_BEAMTAB;    //WZ3.90K 981114 
  708.  
  709. typedef struct {
  710.     PARAATR_TEXT* buff;            // PARAATR_TEXT buff
  711.                                 // PARAATR_TEXT_BEAMTABの場合もある。
  712.     NPARA cur0;                    // gap start
  713.     NPARA cur;                    // gap end + 1
  714.     NPARA size;                    // buff size
  715.     BYTE fBeamtab:1;            // buffはPARAATR_TEXT_BEAMTAB?
  716. } PARAATR_TEXT_CONTEXT;
  717.  
  718. //##TX用ウィンドウメッセージ
  719. // ユーザが間違えてWM_TXUSER以下を使った場合でも影響が出にくい様に800-900番台を使用
  720.  
  721. // 700-719:イベント・フック
  722. #define WM_TXEVENT                (WM_USER+700)    //    id            arg        WZ3.90I 981024 
  723.     // textから自分自身(text->hwndtext)へのイベント通知
  724.     #define TXEVENT_INPUT        1    // IMEを介さないキーボードからの入力。arg:挿入される文字列
  725.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  726.     #define TXEVENT_INPUTIME    2    // IMEからの入力。arg:挿入される文字列
  727.                                     // txSetHookWndproctextResultを使って1を返すと入力を行わない
  728.     #define TXEVENT_OPEN        3    // (fFrameのみ)オープンされた
  729.     #define TXEVENT_OPENED        4    // (fFrameのみ)オープン後
  730.     #define TXEVENT_SAVE        5    // (fFrameのみ)保存前。arg:ファイル名
  731.     #define TXEVENT_SAVED        6    // (fFrameのみ)保存後。arg:ファイル名
  732.     #define TXEVENT_CLOSE        7    // (fFrameのみ)閉じる前
  733.     #define TXEVENT_IDMEXEC        10    // IDMの実行前。arg:idm
  734.                                     // txSetHookWndproctextResultを使って1を返すとIDMの処理を行わない
  735.     #define TXEVENT_2STROKE        11    // 2ストロークの実行前
  736.                                     // txSetHookWndproctextResultを使って1を返すと2ストロークの処理を行わない
  737.     #define TXEVENT_JUMPLINK    12    // リンク先へジャンプ
  738.                                     // arg:リンク先
  739.     #define TXEVENT_JUMPURL        13    // URL/E-Mailへジャンプ
  740.                                     // arg:ジャンプ先
  741.     #define TXEVENT_CURSORMOVE    14    //WZ4.00Aa 990109 new
  742.                                     // ユーザ操作でカーソル位置が変化した可能性がある
  743.     #define TXEVENT_IDMEXECED    15    // IDMの実行後。arg:idm。    //WZ4.00Ab 990112 new
  744. // 720-739: TXE用。アプリケーションで、アプリケーションに送られたキーのキャプチャーetc用
  745. #define WM_TX_KEYDOWN            (WM_USER+720)    //    vk            hwnd
  746.                                                 // キーをキャプチャーするかどうか返す
  747. #define WM_TX_SYSKEYDOWN        (WM_USER+721)    //    vk            hwnd
  748.                                                 // キーをキャプチャーするかどうか返す
  749. #define WM_TX_LBUTTONDBLCLK        (WM_USER+722)    //    vk            hwnd
  750.                                                 // キーをキャプチャーするかどうか返す
  751. #define WM_TX_CHAR                (WM_USER+723)    //    vk            hwnd
  752.                                                 // キーをキャプチャーするかどうか返す
  753.                                                 //PWZ2BETA0.3A 980526 new
  754. // 740-759: ダイアログウィンドウプロシジャ専用。wndprocText/Baseには無関係
  755. #define WM_TXDIALOG_WRITEITEM    (WM_USER+740)    //    id            0
  756. #define WM_TXDIALOG_PAGECHANGED    (WM_USER+741)    //    iPage        0
  757. #define WM_TXDIALOG_WIZNEXT        (WM_USER+742)    //    iPage        0
  758.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  759. #define WM_TXDIALOG_WIZBACK        (WM_USER+743)    //    iPage        0
  760.                                                 //WZ3.90G 980830 返り値(移動できないなら-1)を返すこと
  761. #define WM_TXDIALOG_NOTIFY        (WM_USER+744)    //    id            arg
  762.     #define TXDLGN_REFERED        100    // dialogControlIDによる参照が行われた。arg = idd。
  763.     #define TXDLGN_PSN_APPLY    101    // プロパティシートでOKされた。arg = iPage    返り値(OKできないなら-1)を返すこと    //WZ4.00Ab 990119 new
  764. // 800-829: WZ内部用
  765. #define WM_TXIDLEEXEC            (WM_USER+800)    //    id            lParam
  766.                                                 // アイドル時に実行する内部動作 for wndprocBase
  767.                                                 // IDLE_XXX
  768.     #define IDLE_FIRST            100    // wndprocBase
  769.     #define IDLE_REG            101    // wndprocBase
  770.     #define IDLE_EXECFIND        102    // wndprocText
  771.     #define IDLE_FLUSHWINDOW    103    // wndprocBase
  772.     #define IDLE_CHECKFILETIME    104    // wndprocBase    //WZ4.00A 981227 
  773. #define WM_TXDRAGDROP            (WM_USER+801)    //    TXDD_xxx    arg
  774.                                                 //WZ3.90I 981103 for D&D
  775.     #define TXDD_START        1    // 開始
  776.     #define TXDD_DROP        2    // ドロップ            arg = TXDD_DROP_ARG*
  777.         typedef struct {
  778.             HGLOBAL hGlobal;
  779.             TX* text;            // !=NULLならtextのデータを挿入
  780.         } TXDD_DROP_ARG;
  781.     #define TXDD_DRAGOVER    3    // ドロップ先指定中    arg = MAKELONG(x,y)
  782.     #define TXDD_SETDISP    4    // txSetDispする
  783.     #define TXDD_ACTIVATE    5    // SetForegroundWindowする
  784. #define WM_TXEMACS_TXCMD        (WM_USER+802)    //WZ4.00A 981230 new
  785. #define WM_TXHTML_TXCMDPOST        (WM_USER+803)    //WZ4.00A 981230 new emacsライクキー定義でHTML編集ができるようにした。両者でWM_TXUSERを使っていてバッティングしていた。
  786. // 830-849: WZ MAIL EDITOR専用
  787. #define WM_MAILEDITN_CLOSE        (WM_USER+830)    //    id            fEnglish
  788.                                                 //WZ3.90G 980902 fEnglish:英文
  789. #define WM_MAILEDITN_SAVE        (WM_USER+831)    //    id            ヘッダ部分のサイズ
  790. // 850-899: wndprocBase専用。他インスタンスのWZ窓の操作用/PostMessage用
  791. #define WM_TXGETEDIT            (WM_USER+850)    //    0            0
  792. #define WM_TXUISAVE                (WM_USER+851)    //    0            0
  793. #define WM_TXQUIT                (WM_USER+852)    //    0            0
  794. #define WM_TXSETACTIVE            (WM_USER+853)
  795. #define WM_TXSETWINDOWLIST        (WM_USER+854)    //    hctrl        TXSWL_LPARAM
  796.     enum {TXSWL_HISTMENU,TXSWL_WINDOWLIST,TXSWL_PRJ};
  797.     typedef struct {
  798.         UINT id:8;            // 0オリジン、番号指定
  799.         UINT mode:2;        // モード
  800.         UINT iMenuPos:8;    // InsertMenuに渡す挿入場所
  801.         UINT fCur:1;        // この項目はカレント?
  802.     } TXSWL_LPARAM;
  803. #define WM_TXKEYMACROCONTINUE    (WM_USER+855)    //    0            0
  804. #define WM_TXNEXTPARA            (WM_USER+856)    //    0            0
  805. #define WM_TXSETUNDISP            (WM_USER+857)    //    fSetUndisp
  806. #define WM_TXJUMPADDRESS        (WM_USER+858)    //    0            address
  807. #define WM_TXJUMPFILEEND        (WM_USER+859)    //    void        void
  808.                                                 //WZ3.90I 981023 new
  809. #define WM_TXSPLITPARA            (WM_USER+860)    //    void        void
  810.                                                 //WZ3.90I 981023 new
  811.                                                 // カーソル位置の前文字が改行でなければ改良を挿入。
  812. #define WM_TXCLOSEEVERY            (WM_USER+861)    //    fForce        0        WCE0.99
  813. #define WM_TXQUERYCLOSE            (WM_USER+862)    //    0            0    // フックを可能にすることも兼ねている
  814. #define WM_TXWNDSETPOSSIZE        (WM_USER+863)    //    x,y            cx,cy    //WZ4.00A 981227 
  815. // 900-949: WM_TERM_xxx,WM_MAIL_xxx
  816. // 950-990: WM_OUTLINE_xxx
  817. #define SBLISTN_FLUSHLIST        (WM_USER+996)
  818. #define SBLISTN_FLUSHCONTENT    (WM_USER+997)
  819. #define SBLISTN_SET                (WM_USER+998)
  820. #define SBLISTN_ADD                (WM_USER+999)
  821. // 1000: for user macro
  822. #define WM_TXUSER                (WM_USER+1000)    // これ以下、user用
  823.  
  824. //##WM_NOTIFY用定義
  825. // text->hwndtextから親ウィンドウへの通知
  826. //WZ3.90I 981026 WM_TXNOTIFYを廃止し、WM_NOTIFYによる通知に変更。
  827.  
  828. #ifdef WINVER    // NMHDRが定義されている場合のみ
  829. typedef struct {
  830.     NMHDR hdr;    // hdrが先頭
  831. } TXNOTIFY;
  832. #endif
  833. #define TXN_CHANGENPARA        1    // ユーザ操作でy座標が変化した
  834. #define TXN_CHANGEX            2    // ユーザ操作でx座標が変化した(未完成)
  835. #define TXN_IDMEXECPRE        3    //WCE1.01 980421 idmExec前か、文字挿入前
  836. #define TXN_IDMEXECPOST        4    //WCE1.01 980421 idmExec後か、文字挿入後
  837. // filelist
  838. #define TXN_FILELIST_CHANGEFOLDER    101    // フォルダが変化した
  839. #define TXN_FILELIST_CHANGESELECT    102    // 選択内容が変化した
  840.  
  841. //##WM_TIMER id
  842. #define WM_TIMER_TXSCROLLMOUSE    900
  843. #define WM_TIMER_TXAUTOSAVE        901
  844. #define WM_TIMER_TXFLUSHTABLE    902                //WCE1.01 971222 
  845. #define WM_TIMER_TXFLUSHDISPBOX    903                //WCE1.01 980209 
  846. #define WM_TIMER_TXBRINKCURSOR    904                //WCE1.01 980409 
  847. #define WM_TIMER_TXDRAGCHECK    905                //WZ3.90G 980827 new
  848. #define WM_TIMER_TXCLICKACTIVE    906                //WZ3.90I 981104 
  849. #define WM_TIMER_TXFLUSHDETAIL    907                //WZ3.90I 981106 
  850. #define WM_TIMER_TXAUTOSCROLL    908                //WZ3.90J 981110 
  851. #define WM_TIMER_TXFLUSHBEAMTAB    909                //WZ3.90L 981115 
  852. #define WM_TIMER_TXUSER            1000            // これ以下、user用
  853.  
  854. //##WM_COPYDATA id
  855. // ユーザが間違えてWM_COPYDATA_TXUSER以下を使った場合でも影響が出にくい様に900番台を使用
  856. #define WM_COPYDATA_CMPFILENAME        901        // CD_BOOL
  857. #define WM_COPYDATA_CMDLINE            902        // 
  858. #define WM_COPYDATA_CMPBUFF            903        //WCE1.01 980202 
  859.                                             // マッチしたバイト数+1を返す
  860. #define WM_COPYDATA_ACCOUNT            904        // ACCOUNT受け渡し
  861. #define WM_COPYDATA_INSERT            905        // 挿入する    //WZ3.90I 981023 
  862. #define WM_COPYDATA_TXUSER            1000    // これ以下、user用
  863. // WM_COPYDATAは返り値0は返しちゃいけないみたいなので...
  864. #define CD_TRUE        2
  865. #define CD_FALSE    1
  866.  
  867. //##IDM(id menu)
  868. #define IDM_TXUSER                1000        // これ以下、30000までuser用
  869.  
  870. //##検索
  871.  
  872. typedef DWORD SEARCHMODE;        //1.92 検索モード
  873.  
  874. #define SEARCH_FORWARD            0x00000000L    // テキスト末尾方向へ検索(デフォルト)
  875. #define SEARCH_PREV                0x00000001L    // テキスト先頭方向へ検索
  876. #define SEARCH_AREA                0x00000002L    // 範囲内のみ検索する
  877. #define SEARCH_NOESC            0x00000004L    // 検索文字列中の'\'の特別な意味を消して検索
  878. #define SEARCH_CUR                0x00000008L    // カーソル位置の文字から検索
  879.                                             // 以前は、置換時、前方検索時は
  880.                                             // 無効でしたが、1.99Aから
  881.                                             // 有効になりました。
  882. #define SEARCH_SELECT            0x00000010L    // 見つけた文字列を選択する(置換時は無効)
  883. #define SEARCH_ALL                0x00000020L    // テキスト全体で検索(置換時のみ)
  884. #define SEARCH_PARATOP            0x00000040L    //1.00H2 論理行頭のみ検索
  885. #define SEARCH_NOSENSECASE        0x00000080L    // 大文字・小文字を区別しない
  886. #define SEARCH_NOSENSEZENHAN    0x00000100L    // 全角/半角文字を区別しない
  887. #define SEARCH_WORD                0x00000200L    // ワードサーチ
  888. #define SEARCH_RE                0x00000400L    // 正規表現による検索(text->modeReで動作が変わる)
  889.                                             // 正規表現による検索では、SEARCH_NOESC,
  890.                                             // SEARCH_NOSYMBOL,SEARCH_WORD,SEARCH_NOSENSEZENHANの指定は無効
  891.                                             // SEARCH_NOSENSECASEはOK
  892. #define REPLACE_CONFIRM            0x00000800L    // 置換確認を行う(置換時のみ)
  893. #define REPLACE_ONCE            0x00001000L    //1.96 最初の1つだけ置換
  894. #define SEARCH_NOSYMBOL            0x00002000L    //2.98 970309 テキストの改行や空白や記号を無視して検索
  895. #define SEARCH_NOSELECT            0x00004000L    // 検索で見つけた文字列の選択を行わない
  896. #define SEARCH_ALLTEXT            0x00008000L    //1.01A オープン中の全てのテキストを対象として検索
  897.                                             // (検索するtextが裏テキストの場合は無効)
  898. #define SEARCH_PARA1            0x00010000L    //PWZ2BETA0.5 980617 現在の段落内のみ検索する
  899.                                             // TXHIGH時には対応しない
  900. #define SEARCH_REWZ                0x00020400L    //WZ3.90H 980908 正規表現による検索。必ずWZ標準で検索
  901. #define SEARCH_REVWXW            0x00040400L    //WZ3.90H 980908 正規表現による検索。必ずVWXW互換で検索
  902. #define SEARCH_REVWXWEX            0x00080400L    //WZ3.90H 980908 正規表現による検索。必ず拡張VWXW互換で検索
  903. /*    //WZ3.90H 980908 廃止。SEARCHMODEは32bitしかないので、関係ないものは割り当てない
  904. #define GREP_BACKUP                0x01000000L    //2.92 バックアップファイル内も検索(WZ Grepのみ)
  905. #define REPLACE_CONFIRMMODAL    0x02000000L    //2.92 REPLACE_CONFIRMをモーダルで実行
  906. #define SEARCH_NEXTTEXT            0x04000000L    //2.00B WZ.EXE内部用
  907. #define SEARCH_OLDDIALOG        0x08000000L    // search.c
  908. #define SEARCH_REPLACE            0x10000000L    // search.c
  909. #define SEARCH_DIALOGCOMPACT    0x20000000L    //2.97 970225 search.c
  910. #define GREP_DIRECTORY            0x20000000L    // サブディレクトリ内も検索(WZ Grepのみ)
  911. #define SEARCH_DIALOGSLIST        0x40000000L    //2.97 970225 search.c
  912. #define GREP_BINARY                0x40000000L    // バイナリファイル内も検索(WZ Grepのみ)
  913. */
  914.  
  915. // 正規表現用追加検索モード
  916. typedef DWORD SEARCHRE;
  917. #define SEARCHRE_NOTOPPARA        0x00000001L    // メモリブロックの先頭は段落先頭でない
  918. #define SEARCHRE_NOTOPWORD        0x00000002L    // メモリブロックの先頭は単語先頭でない
  919. #define SEARCHRE_NOENDPARA        0x00000004L    // メモリブロックの末尾は段落末尾でない
  920. #define SEARCHRE_NOENDWORD        0x00000008L    // メモリブロックの末尾は単語末尾でない
  921. #define SEARCHRE_VWXW            0x00000010L    // VWXWとできるだけ互換性を持つモード
  922. #define SEARCHRE_VWXWEX            0x00000020L    // VWXWの拡張表現を使用。SEARCHRE_VWXWのときだけ指定すること。
  923. #define SEARCHRE_BINARY            0x00000040L    // バイナリ検索
  924. #define SEARCHRE_TXF            0x00000080L    // CHAR_TXFを特別扱い?
  925.  
  926. typedef struct {
  927.     BOOL fWord;
  928.     BOOL fSenseCase;
  929.     BOOL fSearchNoSymbol;
  930.     BOOL fFuzzy;
  931.     BOOL fPrev;
  932.     BOOL fAll;
  933.     BOOL fArea;
  934.     BOOL fReplaceConfirm;
  935.     BOOL fRe;    //WZ3.90G 980905 
  936. // 以下、SEARCHMODEに関係ない
  937.     BOOL fSearchSet;
  938.     BOOL fOpenTempWindow;    //WZ3.90H 980914 
  939.     BOOL fReplace;            //WZ3.90H 980914 
  940.     int mode;                //WZ3.90J 981112 基本/曖昧/単語/正規
  941.         #define SEARCHOPT_DIALOG_NEW    1
  942.     TX* text;
  943. } SEARCHOPT;
  944.  
  945. typedef struct {
  946.     mchar szfind[CCHWORD];
  947.     mchar szreplace[CCHWORD];
  948.     SEARCHMODE searchmode;
  949. } SEARCH_PACKET;        //WZ3.90H 980910 new
  950.  
  951. typedef struct {
  952.     TX* text;
  953.     TX* textExpandTag;            //WZ3.90L 981123 NULL以外ならfExpandTag時にこちらに展開する。
  954.     int cbFind;
  955.     int nReplace;
  956.     SEARCHMODE searchmode;        //WZ3.90H 980907 
  957.     mchar* szreplace0;            //WZ3.90H 980907 オリジナルのszreplace
  958.     mchar szreplace[CCHTXSTR];    //WZ3.90H 980907 置換文字列の'\'対応
  959.                                 //WZ3.90L 981123 CCHWORD->CCHTXSTRに拡大
  960.     int lchReplace;
  961.     BOOL fExistTag;                //WZ3.90H 980907 正規表現置換でタグ指定がある?
  962.         #define RETAG_EXIST        0x01
  963.         #define RETAG_FIND        0x02    // $+
  964.         #define RETAG_FINDPREV    0x04    // $`
  965.         #define RETAG_FINDNEXT    0x08    // $'
  966.     IFILE cliptop;                //WZ3.90H 980908 for 範囲内の確認置換
  967.                                 //WZ3.90H 980908 範囲内の置換で確認がONだと1回しか置換されなかった
  968. } TXSEARCH_CONTEXT;    //WZ3.90L 981123 検索置換実行時コンテキスト
  969. BOOL rcReplaceInit(TXSEARCH_CONTEXT* rc,BOOL fExpandTag);
  970.  
  971. //##クリップボードハンドル
  972.  
  973. typedef UINT HCLIP;                    //1.00H2 HWND->UINT //1.00F WORD->HWND
  974. #define HCLIP_ERROR        ((HCLIP)999)//2.00E HCLIP_NULLは廃止
  975. #define HCLIP_PRIVATE    ((HCLIP)0)    // プライベートテキストスタック(テキスト固有)
  976.                                     // WZ32はマルチタスクなので、HCLIP_TSは他のWZのタスク
  977.                                     // と干渉します。
  978.                                     // スタックにPushしてPopする前に
  979.                                     // 他のWZがスタックを操作してしまうかもしれません。
  980.                                     // HCLIP_PRIVATEは他のWZとのデータ交換には使えない
  981.                                     // 代わりに他のWZのタスクと干渉しません
  982.                                     // WZ3まではプロセス固有でしたが、WZ4からはテキスト固有になりました。
  983. #define HCLIP_TS        ((HCLIP)1)    // テキストスタック
  984. #define HCLIP_WIN        ((HCLIP)2)    // Windowsクリップボード
  985.                                     // ここでは0x00を含むバイナリデータは扱えない
  986.                                     // HCLIP_WORKxxxでは扱える
  987.  
  988. typedef struct tagCLIPITEM {
  989.     HGLOBAL hGlobal;        // データ
  990.     IFILE size;                // データサイズ(末尾の\0は除く)
  991.     int fClip;                // fClip
  992.     FBOOL fClipTxfEnable;    // データにTXFタグが入っている可能性がある?
  993.     struct tagCLIPITEM* prev;
  994.     struct tagCLIPITEM* next;
  995. } CLIPITEM;
  996.  
  997. //##非表示モード、他
  998.  
  999. typedef struct {
  1000.     int ly;            //
  1001.     NPARA npara;    //
  1002.     IFILE address;    //
  1003.     IFILE ich;        //
  1004. } UNDISPCONTEXT;
  1005. #define UNDISPCONTEXT_N    5
  1006. // 裏テキストなど、fUndispがマイナス値の場合もある。
  1007. #define txGetUndispContextPre(text)    \
  1008.     ((1 <= text->fUndisp && text->fUndisp <= UNDISPCONTEXT_N) ? &text->tUndispContext[text->fUndisp - 1] : NULL)
  1009.  
  1010. typedef struct {
  1011.     SIGNED_BYTE fPacking;    // for クライアント動作チェック
  1012.     IFILE adrPackTop;        // pack開始時text->pundo
  1013.     WORD nPacked;            // packされたコマンド数
  1014. } UNDOPACK_CONTEXT;
  1015.  
  1016. #define TXWS_SZCLASS    L"txText"
  1017. #define TXWS_SZCLASSA    "txText"
  1018. #define TXWS_TEXT            0x0001L        // TEXT構造体をアロケートする
  1019.                                         // すなわちWZコントロールであることを示す
  1020. #define TXWS_OPENTEXT        0x0002L        // いきなりtxOpenTextする
  1021. #define TXWS_ENABLEUNDO        0x0008L        // undo可
  1022. #define TXWS_TEXTINHERIT    0x0080L        // textを丸ごと(text contextそのものを)引き継ぐ
  1023.  
  1024. #define WzBox_GetTx(hwnd)    ((LPVOID)GetWindowLong(hwnd,0))
  1025. extern WCHAR wszclassBase[];
  1026. extern WCHAR wszclassText[];
  1027. extern wchar wszclassWzicon[];
  1028. #if !WINDOWSCE
  1029. extern BOOL _fwin40;
  1030. #endif
  1031.  
  1032. //##partition
  1033. //WZ3.90F 980815 
  1034.  
  1035. #if !WINDOWSCE
  1036. wchar wszclassPartition[];
  1037. #define CX_PARTITION        6            // 幅    //WZ3.90O 981202 5->6
  1038. // ウィンドウスタイル
  1039. #define WSPB_SEPARATOR        0x0001L        // dialog box用セパレータ?
  1040. #define WSPB_SMALLFONT        0x0002L        //2.99D 970330 小さいフォントを使う?
  1041. // メッセージ
  1042. //        message                                        wParam        lParam    備考
  1043. #define WMPB_SETRANGE            (WM_USER +  1)    //    min            max
  1044. #define WMPB_GETRATE            (WM_USER +  2)    //    void        void
  1045. #define WMPB_SETRATE            (WM_USER +  3)    //    rate        void
  1046. #define WMPB_GETRANGE            (WM_USER +  4)    //    void        void    return:MAKELONG(min,max)    //WZ3.90J 981112 
  1047. // 通知
  1048. #ifndef __TXC__
  1049. typedef struct {
  1050.     NMHDR hdr;    //PWZ2BETA0.3 980523 hdrが先頭にないといけなかった
  1051.         #define PARTITIONN_SETRANGE    10
  1052.     int rate;    // 現在のレート
  1053. } PARTITION_NOTIFY;
  1054. #endif
  1055. #endif
  1056.  
  1057. //##key
  1058.  
  1059. #define CCHKEY                20    // キーボードのキー表記を文字列で表した時の最大長
  1060. #define TXVK_MAX_2STROKE    10    // 2ストロークキーMAX
  1061.  
  1062. typedef int WZKEY;
  1063. typedef WORD WZCMD;
  1064.  
  1065. //##TX key code
  1066. #define TXVK_NULL        0x00    // NULL
  1067. #define TXVK_ASCIITOP    0x01    // ASCII(0x40)
  1068. #define TXVK_ASCIIBASEEND 0x20    // ASCII(0x5F)
  1069. #define TXVK_ASCIIEND    0x26    // ASCII(0x5F) + 6
  1070.                                 //WZ3.90I 981103 +6 : '-'など、他のキーも使えるようにした。
  1071. #define TXVK_NUMTOP        0x27    // 数字先頭'0'
  1072. #define TXVK_NUMEND        0x30    // 数字末尾'9'
  1073. #define TXVK_CONTROLTOP    0x31    // コントロールコード先頭
  1074. #define TXVK_NEXT        0x31
  1075. #define TXVK_PRIOR        0x32
  1076. #define TXVK_INSERT        0x33
  1077. #define TXVK_DELETE        0x34
  1078. #define TXVK_UP            0x35
  1079. #define TXVK_LEFT        0x36
  1080. #define TXVK_RIGHT        0x37
  1081. #define TXVK_DOWN        0x38
  1082. #define TXVK_HOME        0x39
  1083. #define TXVK_END        0x3A
  1084. #define TXVK_ESCAPE        0x3B
  1085. #define TXVK_TAB        0x3C
  1086. #define TXVK_BACK        0x3D
  1087. #define TXVK_RETURN        0x3E
  1088. #define TXVK_SPACE        0x3F
  1089. #define TXVK_MOUSEL        0x40
  1090. #define TXVK_MOUSEL2    0x41
  1091. #define TXVK_MOUSEL3    0x42
  1092. #define TXVK_MOUSEL4    0x43
  1093. #define TXVK_MOUSER        0x44
  1094. #define TXVK_F1            0x45
  1095. #define TXVK_F15        (TXVK_F1 + 15 - 1)
  1096. #define TXVK_CONTROLEND    TXVK_F15// コントロールコードこれまで
  1097. #define TXVK_SIZE        (TXVK_CONTROLEND + 1)
  1098. #define TXVK_ADD_SHIFT                (TXVK_SIZE * 1)
  1099. #define TXVK_ADD_CONTROL            (TXVK_SIZE * 2)
  1100. #define TXVK_ADD_SHIFTCONTROL        (TXVK_SIZE * 3)
  1101. #define TXVK_ADD_MENU                (TXVK_SIZE * 4)
  1102. #define TXVK_ADD_SHIFTMENU            (TXVK_SIZE * 5)
  1103. #define TXVK_ADD_CONTROLMENU        (TXVK_SIZE * 6)
  1104. #define TXVK_ADD_SHIFTCONTROLMENU    (TXVK_SIZE * 7)
  1105. #define TXVK_ADD_2STROKE(i)            (TXVK_SIZE * 8 + (TXVK_NUMEND + 1) * (i))
  1106.  
  1107. typedef struct {
  1108.     FBOOL fInUse;            // 使用中
  1109.     mchar szPre[CCHKEY];
  1110.     int lchPre;
  1111. } PREKEY;
  1112.  
  1113. enum {
  1114.     FKEY_NORMAL=0,FKEY_SHIFT,FKEY_CTRL,FKEY_SHIFTCTRL,FKEY_N,
  1115. };
  1116.  
  1117. typedef struct {
  1118. // 2ストロークキー
  1119.     int nPre;    // 使用中の数
  1120.     PREKEY tPre[TXVK_MAX_2STROKE];
  1121. // キーに割り当てられたコマンド
  1122.     WZCMD tWzcmd[TXVK_ADD_2STROKE(TXVK_MAX_2STROKE)];
  1123. #if !WINDOWSCE
  1124. // ファンクションキー表示内容    //WZ3.90I 981107 
  1125.     mchar tcszFkey[FKEY_N][CCHWORD];    // タブ区切りcsz
  1126. #endif
  1127. } KEY;
  1128.  
  1129. typedef struct {
  1130.     BYTE lch;
  1131.     mchar *sz;
  1132.     WORD idm;
  1133. } SZCMDTOWZCMD;
  1134. extern SZCMDTOWZCMD _tSzcmdToWzcmd[];
  1135.  
  1136. // ソート引数
  1137. // WZ4.0/PWZ2.0C EOF行を含むソートもできるようになりました。
  1138. typedef struct {
  1139.     UINT sizeStruct;    // sizeof(SORTARG) for version check
  1140.     NPARA lineTop;        // ソート開始論理行(origin:1)
  1141.     NPARA lineEnd;        // ソート終了論理行(origin:1)
  1142.                         //WZ3.90I 981029 lineTop,lineEndがテキストの範囲を超えている場合は、
  1143.                         // テキストに収まる範囲をソートします。
  1144.                         // lineEndが0ならlineTopからテキストの終わりまでをソートします。
  1145.     IBUFF lchItem;        // 比較項目の最大長
  1146.                         // fCsvまたはchItemが0以外なら指定は無視されます。
  1147.                         // 0なら行末までを比較します。
  1148.                         // 行末までに \0 文字があれば、そこまでを比較します。
  1149.     IBUFF iItem;        // 比較項目位置:行先頭からのオフセット
  1150.                         // fCsvがONの場合は、行先頭項目を0とした、比較項目NOを指定します。
  1151.     BYTE chItem;        // 0を指定すると何もしません。
  1152.                         // 0以外を指定すると、iItem以降の最後のchItemの文字から
  1153.                         // 行末までを比較します。
  1154.                         // 行末までに \0 文字があれば、そこまでを比較します。
  1155.     FBOOL fCsv;            // 1にすると、タブで区切られたiItem番目の内容で比較します。
  1156.                         //WZ3.90I 981029 機能実装。
  1157.     FBOOL fBack;        // 逆順にソート?
  1158.     FBOOL fNoSenseCase;    // 半角英大小文字を区別しない
  1159. // result
  1160.     NPARA nparaCur;        //WZ3.90I 981029 0以外に指定すると、その段落がソート後にどこの段落に移動したかを返します。
  1161. // 以下は使われなくなりました。指定は無視されます。//WZ3.90I 981029 
  1162.     IBUFF lchLine;
  1163.     LPVOID pfuncCmpKey;
  1164.     LPARAM lCust;
  1165. // 以上は使われなくなりました。
  1166. // 拡張用予備
  1167.     BYTE reserved[16];
  1168. } SORTARG;
  1169. BOOL TXAPI_(846) TXHIGH txSort(TX* text,SORTARG* arg);
  1170.  
  1171. // コマンドライン解析結果
  1172. typedef struct tagWZMAILEDITORFLAGS {
  1173.     DWORD modeMailAddress:2;    //WCE1.01 980409 アドレス帳モード
  1174.         #define MODEMAILADDRESS_EMAIL    0
  1175.         #define MODEMAILADDRESS_NIFTY    1
  1176.     DWORD category:3;            //PWZ2BETA0.3 980522 種類
  1177.         #define MAILEDIT_MAIL        0    // メール
  1178.         #define MAILEDIT_MESSAGE    1    // メッセージ
  1179.         #define MAILEDIT_NOTE        2    // WZ NOTE
  1180.     DWORD categoryMailbox:3;    //PWZ2BETA0.3 980522 
  1181.                                 // MAILBOX_INTERNET etc
  1182.     DWORD charset:3;            //WZ3.90M 981129 旧fEnglish
  1183.     DWORD reserved:23;
  1184. } WZMAILEDITORFLAGS;    //PWZ2BETA0.3 980510 
  1185. typedef struct {
  1186.     BOOL fNeedCreateInstance;    // このコマンドラインの実行には、
  1187.                                 // 新しいインスタンスを生成する必要がある
  1188.     wchar wszfilename[CCHPATHNAME];    // 編集ファイル名
  1189.                                 // 複数指定の場合は、先頭に指定されたファイル名
  1190.                                 // 後続のファイル名は無視される
  1191.     wchar wszMacro[CCHWORD];    // オープン後、このマクロを実行
  1192.     wchar wszExt[CCHNAME];        // この拡張子をデフォルトで付ける
  1193.     wchar wszMacroFork[CCHPATHNAME];
  1194.                                 // WZ Editorではなく、Filerなど
  1195.                                 // PWZ apを起動
  1196.     mchar szFind[CCHWORD];        // 検索文字列
  1197.     mchar szcfg[CCHSTYLENAME];    //WZ3.90J 981112 使用する設定名
  1198.     int nCmdShow;                // nCmdShow
  1199.     WORD fViewer:1;                // viewモードで起動
  1200.     WORD fMulti:1;                // 複数のファイル名が指定されている
  1201.     WORD fSingleFileName:1;        // コマンドラインに空白を含むファイル名をそのまま指定
  1202.                                 // このオプション指定は、ファイル名の指定の前に行なうこと
  1203.     WORD fNoCheckDuplicate:1;    // 多重化でもなく、二重化でもなく、
  1204.                                 // ファイルを複数窓でオープンする
  1205.     WORD fNoAddHist:1;            // 起動時にファイル名をヒストリに追加しない
  1206.     WORD fNoTextPathSearch:1;    // テキストファイルのパス検索をしない
  1207.     WORD fNoProfile:1;            // txOpenTextでプロファイルを参照しない
  1208.     WORD fClipPaste:1;            //PWZ2BETA0.3 980512 起動後にペーストする
  1209.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  1210.     WORD fReload:1;                //PWZ2BETA0.4 980607 既に起動されているときは、再読み込みする
  1211.     WORD fTags:1;                //PWZ2BETA0.4 980612 タグファイルとして開く
  1212.     WORD fOpenMulti:1;            //WZ3.90H 980915 もし既にオープンされていたら多重化する。
  1213.     WORD fKcOpen:1;                //WZ3.90H 980927 kcOpenの漢字コードで開く
  1214.     WORD kcOpen:3;                //WZ3.90H 980927 
  1215.     WORD fPrjOpen:1;            //WZ3.90I 981030 プロジェクトを開く?
  1216.     WORD fSetWindowPos:1;        //WZ3.90I 981030 ウィンドウ位置を指定?
  1217.     WORD fDuptext:1;            //WZ3.90I 981103 2重化?
  1218.     WORD fOpenQuit:1;            //WZ3.90I 981103 ファイルオープンダイアログを出して終了
  1219.     WORD fJumpAddress:1;        //WZ3.90L 981123 adrJumpにジャンプ?
  1220.     WORD fIDM_UINEW:1;            //WZ3.90N 981202 IDM_UINEWする?
  1221.     WORD fNeedCreateWindow:1;    //WZ4.00Ab 990204 このコマンドラインの実行には新しいウィンドウを作成する必要がある
  1222.                                 // 空テキスト上からの実行の場合でも、空テキストはそのままで、新しいウィンドウを作成する必要がある
  1223.     HWND ehHwnd;                // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  1224.     HWND ehHwndBase;            // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  1225.     BYTE ehTarget;                //WZ3.90I 981031 ehTarget
  1226.     NPARA nparaJump;            // ジャンプ先(0:指定なし)
  1227.     int offset1Jump;            // ジャンプ先のバイトオフセット+1(0:指定なし)
  1228.     int fJumpLy;                // 't':lyを0に
  1229.                                 // 'c':lyを中央に
  1230.                                 // n:lyをn-1に
  1231.     IFILE adrJump;                //WZ3.90L 981123 ジャンプ先アドレス
  1232.     FBOOL fUiReg;                // レジストリメンテ?
  1233.     WORD igene1;                //WCE1.01 980201 (gene1 - 1)の世代を開く
  1234.     HWND hwndMailer;            //WCE1.01 980327 メーラのhwnd
  1235.     WORD idMail;                //WCE1.01 980327 このメールのID
  1236.     BYTE modeMail;                //WCE1.01 980327 モード
  1237.     WZMAILEDITORFLAGS mailflags;//PWZ2BETA0.3 980522 
  1238.     RECT rect;                    //WZ3.90I 981030 ウィンドウ位置(fSetWindowPos時に有効)
  1239. } CMDLINECONTEXT;
  1240.  
  1241. typedef struct {
  1242.     HWND hwnd;                //  fAlrearyOpen : 既にオープンされていたテキストのhwndbase
  1243.                             // !fAlrearyOpen : オープンしたテキストのhwndbase
  1244.     TX* text;                // オープンしたtext(同一プロセスWZの場合)
  1245.                             // fAlrearyOpenで、同一プロセスWZなら、
  1246.                             // 既にオープンされているtext
  1247.     FBOOL fAlrearyOpen;        // 既にオープンされていた
  1248.     FBOOL fWzexec;            // WZを起動した
  1249.     BYTE reserved[32];
  1250. } TXFORKRESULT;
  1251.  
  1252. //##汎用設定ファイル操作
  1253.  
  1254. typedef struct {
  1255.     TX* text;
  1256.     BOOL fTextAllocate;
  1257.     int dataid;
  1258.     int datalen;
  1259.     BOOL fName;
  1260. } CONFIG;
  1261.  
  1262. //##拡大可能メモリブロック(汎用)
  1263. //PWZ2BETA0.6 980621 new
  1264. typedef struct {
  1265.     LPBYTE pTop;
  1266.     LPBYTE pCur;
  1267.     DWORD sizeAlloc;
  1268.     DWORD sizeExpand;
  1269. } MEMBLOCK;
  1270.  
  1271. void memblockInit(MEMBLOCK* mb,int sizeAlloc,int sizeExpand);
  1272. void memblockTerm(MEMBLOCK* mb);
  1273. DWORD memblockGetSize(MEMBLOCK* mb);
  1274. LPVOID memblockAdd(MEMBLOCK* mb,int sizeAdd);
  1275. BOOL memblockAddEx(MEMBLOCK* mb,int sizeAdd);
  1276. BOOL memblockCheckSize(MEMBLOCK* mb,UINT size);
  1277. BOOL memblockAddMem(MEMBLOCK* mb,LPVOID pAdd,int sizeAdd);
  1278. BOOL memblockAddString(MEMBLOCK* mb,mchar* szString);
  1279. void memblockDelAll(MEMBLOCK* mb);
  1280.  
  1281. //##VirtualAlloc support(汎用)
  1282. //WZ3.90J 981109 new
  1283. //// 拡大可能メモリブロックはこれに置き換えるべき。
  1284.  
  1285. // VirtualAllocコンテキスト
  1286. typedef struct {
  1287.     LPBYTE pagetop;        // アドレス空間の先頭
  1288.     LPBYTE pageend;        // アドレス空間の末尾
  1289.     UINT pagesize;        // ページサイズ
  1290.     LPBYTE p;            // 現在参照中の位置
  1291.     LPBYTE pEnd;        // 領域の末尾
  1292. } VALLOC;
  1293.  
  1294. BOOL vaInit(VALLOC* va,UINT kbMax);
  1295. BOOL vaCheckAdd(VALLOC* va,UINT add);
  1296. void vaFree(VALLOC* va);
  1297.  
  1298. //##図
  1299.  
  1300. #ifndef __TXC__
  1301. typedef struct tagIMGSET {
  1302.     wchar wszfilename[CCHPATHNAME];
  1303.     FBOOL fHeadAlloced;
  1304.     BITMAPFILEHEADER* head;
  1305.     BITMAPINFOHEADER* info;
  1306.     BITMAPINFO* bitmapinfo;
  1307.     LPBYTE bitmap;
  1308.     struct tagIMGSET* prev;    // for Cache link
  1309.     struct tagIMGSET* next;    // for Cache link
  1310. } IMGSET;
  1311. #endif
  1312.  
  1313. //##見出し
  1314.  
  1315. #define HEADLINE_N        6        // 見出し数
  1316. #define CCHHEADLINE    CCHSWORD    // 見出しの最大長さ
  1317.  
  1318. typedef struct {
  1319.     mchar tszHeadline[HEADLINE_N][CCHHEADLINE];
  1320.     BYTE tlchHeadline[HEADLINE_N];    // 見出し文字列の長さ(無効な場合もあるので注意)
  1321.     BBOOL tfDelete[HEADLINE_N];
  1322. } HEADLINE_SET;
  1323.  
  1324. //##印刷
  1325.  
  1326. // 標準の文字の高さ
  1327. #if WINDOWSCE
  1328.     #if WINDOWSCE2
  1329.         #define lfHeightDefault            10
  1330.         #define lfHeightDialogDefault    10
  1331.     #else
  1332.         #define lfHeightDefault            8
  1333.         #define lfHeightDialogDefault    8
  1334.     #endif
  1335. #else
  1336.         #define lfHeightDefault            12
  1337.         #define lfHeightDialogDefault    9
  1338. #endif
  1339.  
  1340. #define CXY_LPREVIEW_FRAMEBASE        4
  1341.  
  1342. typedef struct tagFONTSET {
  1343. BYTE configTop;
  1344. // ユーザ指定 - LOGFONTに影響する部分、CACHEのタグとして使用
  1345.     mchar lfFaceName[LF_FACESIZE];
  1346.     int lfHeight;
  1347.     FBOOL lfItalic;        // イタリック?
  1348.     FBOOL lfUnderline;    // アンダーライン?
  1349.     FBOOL lfStrikeOut;    // 打ち消し線?
  1350.     WORD lfWeight;        //WCE1.01 980302 太字も使える様に
  1351.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  1352. // ユーザ指定 - LOGFONTに影響しない部分、CACHEのタグとしては使用しない
  1353.     FBOOL lfEuro;        // SJIS中の欧文処理をする?
  1354.     WORD lfSup;            // 上付き表示する?
  1355.                         // しない場合は0
  1356.                         // する場合は基準フォントのcyAscent
  1357. BYTE configEnd;
  1358. // 内部情報
  1359.     HFONT hfont;
  1360.     int cxChar;            // 文字幅
  1361.     int cyChar;            // 文字の高さ
  1362.     int cyAscent;        // 文字のベースラインより下の部分の高さ
  1363.     int cyDescent;        // 文字のベースラインより下の部分の高さ
  1364.     int cxCharKanji;    // 漢字の文字幅(fKanji時のみ)
  1365.     FBOOL fProp;        // プロポーショナルフォント?
  1366.                         // 漢字は固定ピッチとして扱う
  1367.                         // ひらがな、カタカナをプロポーショナルとする
  1368.     FBOOL fKanji;        // TRUE:漢字を含むフォント(ShiftJIS)、FALSE:漢字を含まないフォント(文字コード0-255まで)
  1369.     CBOOL fLock;        //WZ3.90O 981203 キャッシュアウトされないようにロックされている?
  1370.     WORD* tcxChar;        // fPropの場合、文字幅の配列
  1371.     struct tagFONTSET* prev;    // for Cache link
  1372.     struct tagFONTSET* next;    // for Cache link
  1373. } FONTSET;
  1374.  
  1375. enum {FRAME_NONE,FRAME_LINE,FRAME_DOUBLELINE};
  1376. typedef struct {
  1377.     mchar lfFaceName[LF_FACESIZE];
  1378.     int lfHeight;        // フォントの高さ(perHeight != 0ならperHeightに従う)
  1379.     WORD perHeight;        // !=0なら、フォント高さを本文フォント基準の%で指定
  1380.     FBOOL lfItalic;        // イタリック?
  1381.     FBOOL lfUnderline;    // アンダーライン?
  1382.     WORD lfWeight;        // 太字
  1383.                         // 0:標準 1-1000: 太さを指定。1000が一番太い
  1384.     BYTE modeAlign;        // 配置
  1385.                         // (ALIGN_NONE,ALIGN_LEFT,ALIGN_CENTER,ALIGN_RIGHT)
  1386.     WORD perNline;        // 行どり(%)
  1387.     COLORREF rgbColor;    // 文字の色
  1388.     BYTE modeFrameLeft;    // 枠線のなし/あり
  1389.     BYTE modeFrameTop;
  1390.     BYTE modeFrameRight;
  1391.     BYTE modeFrameBottom;
  1392.         #define pointToDpt(pt)    (pt * 10)
  1393.     WORD dptFrameLeft;    // 枠線の太さ(0.1ポイント単位)
  1394.     WORD dptFrameTop;
  1395.     WORD dptFrameRight;
  1396.     WORD dptFrameBottom;
  1397.     BYTE perFrameAmi;    // 枠線の網掛け(%)
  1398. } HEADLINESTYLE;    // 見出しスタイル
  1399.  
  1400. typedef struct {
  1401. BYTE configTop;
  1402. // 以下、ユーザ設定
  1403. // configEndまでバイナリ出力
  1404. // dm:プリンタオプション
  1405. // twips:1/1440inch = 0.01764mm  (最大32767twipsまでであることに注意)
  1406. // mcm:0.1mm
  1407. //     設定値はmcmで持つ。twipsで持って、ダイアログ設定時にmcmに変換すると
  1408. //     割り算の誤差によってダイアログで何も変更しないでOKしても設定値が変わった。
  1409. // lpx:プリンタピクセル座標
  1410.     // プリンタ
  1411.     SIGNED_WORD dmPaperSize;        // 用紙サイズ
  1412.     SIGNED_WORD dmOrientation;        // 用紙の向き
  1413.     SIGNED_WORD dmScale;            // スケーリング(100=等倍)(未完成)
  1414.     SIGNED_WORD dmScaleFont;        // フォント(本文と見出し)と図のスケーリング(100=等倍)
  1415.     SIGNED_WORD dmDefaultSource;    // 用紙供給元
  1416.     SIGNED_WORD dmTTOption;            // TrueTypeフォントの印刷方法
  1417.     SIGNED_WORD dmPrintQuality;        // 印字品質(マイナス値の場合もある)
  1418.     BBOOL fPrinterName;                // プリンタ名を指定するか
  1419.     mchar szPrinterName[CCHWORD];    // プリンタ名
  1420.     // 余白
  1421.     SIGNED_WORD mcmMarginTop;        // 上余白
  1422.     SIGNED_WORD mcmMarginLeft;        // 左余白
  1423.     SIGNED_WORD mcmMarginBottom;    // 下余白
  1424.     SIGNED_WORD mcmMarginRight;        // 右余白
  1425.     SIGNED_WORD mcmPaperWidth;        // 用紙サイズ
  1426.     SIGNED_WORD mcmPaperHeight;        // 用紙サイズ
  1427.     SIGNED_WORD mcmCharInt;            // 字間(未完成)
  1428.     SIGNED_WORD mcmLineInt;            // 行間
  1429.     SIGNED_WORD mcmClmInt;            // 段組間の空白
  1430.     BBOOL fMarginSymmetry;            // 左右ページでマージンを対称に
  1431.     BBOOL fLineInt;                    // 行間を指定?
  1432.     // 文字数・行数
  1433.     BYTE modeLcxLcy;                // 文字数・行数の指定方法
  1434.         #define MODELCXLCY_TEXT        0    // 文書の設定を使用
  1435.         #define MODELCXLCY_SPECIFY    1    // 指定
  1436.         #define MODELCXLCY_PAPER    2    // 用紙サイズから自動計算
  1437.     SIGNED_WORD lcx;                // 文字数
  1438.     SIGNED_WORD lcy;                // 行数
  1439.     SIGNED_WORD nClm;                // 段組数
  1440.     BYTE modeVertical;                // 縦書き/横書き    //WZ3.90O 981204 
  1441.     // ヘッダ・フッタ
  1442.     SIGNED_WORD mcmMarginHeader;    // ヘッダ上余白
  1443.     SIGNED_WORD mcmMarginFooter;    // フッタ下余白
  1444.     BBOOL fHeader;                    // ヘッダを印刷
  1445.     BBOOL fFooter;                    // フッタを印刷
  1446.     BBOOL fSpecifyHeader2;            // 偶数ページのヘッダ/フッタを指定する?
  1447.     BBOOL fHeaderSymmetry;            // 左右ページでヘッダフッタを対称に
  1448.     mchar szHeader[CCHWORD];        // ヘッダ文字列
  1449.     mchar szFooter[CCHWORD];        // フッタ文字列
  1450.     mchar szHeader2[CCHWORD];        // 偶数ページのヘッダ文字列
  1451.     mchar szFooter2[CCHWORD];        // 偶数ページのフッタ文字列
  1452.     mchar lfHeaderFaceName[LF_FACESIZE];// ヘッダのフォント名
  1453.     SIGNED_BYTE lfHeaderHeight;            // ヘッダのフォントサイズ
  1454.     // フォント
  1455.     BBOOL fUsePrintFontstyle;        // TRUE        本文、見出しをLPRINTのフォントで印刷
  1456.                                     // FALSE    文書の設定のフォントで印刷
  1457.     mchar lfFaceName[LF_FACESIZE];    // フォント名
  1458.     SIGNED_BYTE lfHeight;            // フォントサイズ
  1459.     // その他
  1460.     BBOOL fDispLineNo;                // 行番号を印刷?
  1461.     BBOOL f2pages;                    // 袋とじ?
  1462.     mchar szTemplateHeader[CCHWORD];// レターヘッダ用テンプレート
  1463.     mchar szTemplateFooter[CCHWORD];// レターフッタ用テンプレート
  1464.     BBOOL fColor;                    //WZ3.90H 980926 カラー印刷を行う?
  1465.     // スタイル
  1466.     BBOOL fUseHeadlineStyle;        //WZ3.90I 981103 見出しのスタイルを使うか?
  1467.     HEADLINESTYLE tHeadlineStyle[HEADLINE_N];    //WZ3.90I 981030 見出しのスタイル
  1468. BYTE configEnd;
  1469. // 以下、内部情報。設定ファイルには出力しない
  1470.     mchar szstyle[CCHWORD];    // スタイル名
  1471.     TX* text;
  1472.     HANDLE hDevNames;        // デバイス名
  1473.     HANDLE hDevMode;        // デバイスモード
  1474.     int cbDevMode;            // sizeof DEVMODE
  1475.     CBOOL fHoldDev;            //WZ3.90O 981203 txLpFlushPreviewでhDevNames,hDevModeを保持?
  1476.     mchar szPrinterNameDefault[CCHWORD];//WZ3.90P 981206 現在の通常のプリンタ名
  1477.                                     // 空ならWindowsから通常のプリンタ名を取得
  1478.                                     // 空でなければ印刷ダイアログで選ばれたプリンタ名。
  1479.                                     // これをszPrinterNameよりも優先して使用し、印刷ダイアログでのプリンタの切り替えをサポート。
  1480.     // 各種サイズ
  1481.     SIGNED_DWORD logPixelsX;        // 1インチあたりのデバイスピクセル数 X
  1482.     SIGNED_DWORD logPixelsY;        // 1インチあたりのデバイスピクセル数 Y
  1483.     SIGNED_WORD lpxMarginTop;        // 上余白
  1484.     SIGNED_WORD lpxMarginLeft;        // 左余白
  1485.     SIGNED_WORD lpxMarginBottom;    // 下余白
  1486.     SIGNED_WORD lpxMarginRight;        // 右余白
  1487.     SIGNED_WORD lpxMarginLeftAdd;    // 縦書き & 袋とじ印刷用
  1488.     SIGNED_WORD lpxMarginHeader;    // ヘッダ上余白
  1489.     SIGNED_WORD lpxMarginFooter;    // ヘッダ下余白
  1490.     SIGNED_WORD lpxPaperWidth;        // 用紙幅(用紙の向きdmOrientationの影響は受けない)
  1491.     SIGNED_WORD lpxPaperHeight;        // 用紙サイズ(用紙の向きdmOrientationの影響は受けない)
  1492.     SIGNED_WORD lpxLineInt;            // 行間
  1493.     SIGNED_WORD lpxCharInt;            // 字間(未完成)
  1494.     SIGNED_WORD lpxClmInt;            // 段組間の空白
  1495.     SIGNED_WORD lpcxClm;            // 1段の幅
  1496.     SIGNED_WORD lpcxClient;            // 紙のサイズ(左右マージンの分も含む)
  1497.                                     // 用紙の向きが縦なら、lpxPaperWidthと同じ
  1498.                                     // 用紙の向きが横なら、lpxPaperHeightと同じ
  1499.     SIGNED_WORD lpcyClient;            // 紙のサイズ(上下マージンの分も含む)
  1500.                                     // 用紙の向きが縦なら、lpxPaperHeightと同じ
  1501.                                     // 用紙の向きが横なら、lpxPaperWidthと同じ
  1502.     // 印刷可能域
  1503.     SIGNED_WORD mcmMarginMinTop;    // 印刷マージンの最小値
  1504.     SIGNED_WORD mcmMarginMinLeft;
  1505.     SIGNED_WORD mcmMarginMinBottom;
  1506.     SIGNED_WORD mcmMarginMinRight;
  1507.     SIGNED_WORD lpxOffsetX;            //WZ3.90H 980926 
  1508.     SIGNED_WORD lpxOffsetY;            //WZ3.90H 980926 
  1509.     SIGNED_WORD lpxMarginMinRight;    //WZ3.90I 981014 for 縦書き
  1510.     // HDC
  1511.     HDC hdc;                // プリンタデバイスコンテキスト
  1512.     HDC hic;                // プリンタ情報コンテキスト
  1513.     int fGetHdc;            // GetHdcカウンタ
  1514.     int fGetHic;            // GetHicカウンタ
  1515.     BBOOL fNoPrinter;        //WZ3.90N 981130 プリンタがない。この場合hdc,hicは画面のDCになる
  1516.     // 印刷中ワーク
  1517.     int fPrint;                // 印刷モードフラグカウンタ
  1518.     NPARA npara;            // 印刷モードに入ったときのnpara
  1519.     IFILE ich;                // ich
  1520.     int ly;                    // ly
  1521.     SIGNED_WORD xbase;        // xbase
  1522.     WORD nSpaceTop;            // 
  1523.     WORD cySpace;            // 
  1524.     IFILE adr0;
  1525.     NPAGE npageStart;        // 印刷開始ページ
  1526.     NPAGE npageEnd;            // 印刷終了ページ
  1527.     NPAGE npageAll;            // 全ページ
  1528.     FILETIME time;            // 印刷開始時間
  1529.     BBOOL flpPreview;
  1530.     IFILE lpAdr0;            // 印刷プレビュー中に印刷した場合の位置保持
  1531.     FBOOL fVertical;        //WZ3.90O 981204 
  1532.     // プレビュー
  1533.     BYTE fNoViewportOrg;    // ViewportOrgを変更しない?
  1534.     int xViewportOrg;        // 原点X
  1535.     int yViewportOrg;        // 原点Y
  1536.     SIGNED_WORD cxWindow;    // hwndtextの幅
  1537.     SIGNED_WORD cyWindow;    // hwndtextの高さ
  1538.     // 設定保存しない、印刷時の設定
  1539.     BBOOL fNpagenum;        // 開始ページのページ番号を指定?
  1540.     NPAGE npagenum;            // 開始ページのページ番号
  1541.     BYTE modePrintPage;        // 0:全てのページを印刷,1:奇数ページを印刷,2:偶数ページを印刷
  1542.     BBOOL fLpSelect;        // 選択範囲を印刷?
  1543.     int nCopy;                // 部数
  1544.                             // プリンタが複数部数をサポートしている場合は1
  1545.     BBOOL fCollate;            // 部単位で印刷
  1546.                             // プリンタがサポートしている場合はFALSE
  1547.     // 範囲内の印刷
  1548.     BBOOL fLpClip;            // 範囲内の印刷モード中?
  1549.     IFILE adrClipEnd;        // 範囲の末尾アドレス
  1550.     int fClip0;
  1551.     IFILE cliptop0;
  1552.     IFILE texttopClip0;
  1553.     IFILE adrClip0;
  1554.     int lyClip0;
  1555.     NLINE nlineClip;        // 範囲先頭のnline
  1556.     NPARA nparaClip;        // 範囲先頭のnpara
  1557.     // 内部ワーク
  1558.     FBOOL fInsideSetupLcxLcyLineint;
  1559.     struct tagDIALOG* hd;
  1560.     BYTE errorLpstyle;        //WZ3.90H 980926 lpSetupLcxLcyLineintでのエラー
  1561.         #define ERROR_LPSTYLE_LCX            1
  1562.         #define ERROR_LPSTYLE_LCY            2
  1563.         #define ERROR_LPSTYLE_MARGIN_LEFT    3
  1564.         #define ERROR_LPSTYLE_MARGIN_TOP    4
  1565.         #define ERROR_LPSTYLE_MARGIN_RIGHT    5
  1566.         #define ERROR_LPSTYLE_MARGIN_BOTTOM    6
  1567.         #define ERROR_LPSTYLE_MARGIN_HEADER    7
  1568.         #define ERROR_LPSTYLE_MARGIN_FOOTER    8
  1569.         #define ERROR_LPSTYLE_LINEINT        9
  1570.         #define ERROR_LPSTYLE_NOPRINTER        10
  1571.     BYTE errorLpstyle0;        //WZ3.90H 980926 前回の表示
  1572.     CBOOL fHeadlinestylePreview;    //WZ3.90I 981030 見出しスタイルのプレビュー用?
  1573. } LPRINT;
  1574.  
  1575. //##リンク
  1576. //WZ3.90L 981117 new
  1577.  
  1578. typedef struct {    // リンクヒストリ
  1579.     #define MAX_LINKHIST    100
  1580.     IFILE tAdr[MAX_LINKHIST];
  1581.     int n;
  1582.     int index;
  1583. } LINKHIST;
  1584.  
  1585. //##ページ
  1586. //WCE1.01 980216 new
  1587.  
  1588. #define NPAGE_MAX    9999
  1589. typedef struct {
  1590.     IFILE ifilePagetop;        // ページ先頭のIFILE
  1591.     WORD lcy;                // ページ内の表示行数
  1592.     WORD yAdd;                //WCE1.01 980301 カラム2段目以降に付加したy
  1593.                             // 0 <= y <= yAddは1段組である
  1594.     BYTE nClm;                // このページの最大段組数
  1595. } PAGEATR;
  1596.  
  1597. // for 印刷プレビュー
  1598. // 現在ページ内の各行の情報
  1599. // 印刷プレビュー時もlyをメインに使うことにする
  1600. // 試しにyをメインで使ったら大変だった
  1601. #define LINE_N        500
  1602. typedef struct {
  1603.     WORD y;            // 行のy座標(nSpaceTopは含まない)
  1604.                     // 段組の場合は通しy座標。cyLineを取得するためにも使用
  1605.     BYTE iClm;        // この行の段番号(0:左端)
  1606.                     // gls_nClmとは異なる
  1607.     WORD off;        // curscreenからのオフセット
  1608.     WORD fLF:1;        // 改行の行?
  1609.     BYTE gls_iHeadline;    //WZ3.90H 980924 
  1610.     WORD gls_cyChar;    //WZ3.90H 980924 
  1611.     WORD gls_cyAscent;    //WZ3.90H 980924 
  1612.     WORD gls_cyDescent;    //WZ3.90H 980924 
  1613.     WORD gls_yFootnote;    //WZ3.90H 980924 
  1614. } LINEATR;
  1615.  
  1616. typedef struct {
  1617.     NPARA npara;
  1618.     IFILE offset;    // 段落先頭からのオフセット
  1619.     WORD size;        // 行の長さ
  1620.     LINEATR lineatr;// lineatr
  1621.     WORD cy;        // cyLine
  1622. } LINESIZE_ENTRY;    //WZ3.90H 980919 
  1623.  
  1624. typedef struct {
  1625.     NPARA nparaTop;        // lsc内の最小npara
  1626.     NPARA nparaEnd;        // lsc内の最大npara
  1627.     int n;                // エントリ数
  1628.     LINESIZE_ENTRY* lsc;
  1629. } LINESIZE_ENTRY_ROOT;    //WZ3.90H 980919 
  1630.  
  1631. //##textbuff
  1632.  
  1633. typedef struct {
  1634.     //WCE 970819 
  1635.     BYTE lcxIndent;                // インデント数(0-255)
  1636.         #define LCXINDENT_MAX    255
  1637.     //WCE 970817 custmize
  1638.     int lchSymbol;                // 行頭文字のバイト数
  1639.     mchar szSymbol[CCHSWORD];    // 行頭文字
  1640.     //
  1641. BYTE articleTop;
  1642.     mchar szArticle[CCHSWORD];    // 見出し文字列
  1643.     SIGNED_WORD lchArticle;        // 0なら無効
  1644.     SIGNED_WORD cxArticle;
  1645.     WORD fArticleNum:1;            // szArticleは番号付きか?
  1646.     WORD fArticleSub:1;            // szArticleは小見出しか?
  1647.     WORD fArticleJnumber:1;        // szArticleは全角番号付きか?
  1648.     WORD fReserved:14;
  1649.     SIGNED_WORD nArticle;        // 先頭番号(0なら番号指定なし)
  1650.     SIGNED_WORD ichNum;            // szArticleの番号のオフセット
  1651.                                 // -1なら番号なし
  1652.     SIGNED_WORD lchNum;            // szArticleの番号の長さ
  1653. BYTE articleEnd;
  1654.     //WCE 970817 custmize
  1655.     SIGNED_WORD lcxSpace;        // szArticleと本文の間の余白
  1656.     // PARAATR custmize
  1657.     BYTE width;                    // 折り返し幅
  1658.     WORD modeAlign:3;            // 文字揃え
  1659.         // align(3bit)
  1660.         #define ALIGN_NONE        0    // なし
  1661.         #define ALIGN_LEFT        1    // 左揃え
  1662.         #define ALIGN_CENTER    2    // 中央寄せ
  1663.         #define ALIGN_RIGHT        3    // 右揃え
  1664.     WORD fApfScenarioSerifu:2;    //PWZ2BETA0.5 980617 せりふ段落かどうか?
  1665.                                 // 改行付きに変換中の場合は2になる
  1666. } PARAFORM_ARTICLE;
  1667.  
  1668. // size = 4bytes fixed
  1669. // 記号のうち、"、'、“”、‘’は変換しない
  1670. typedef struct {
  1671.     WORD fJkataToKana:1;    // 全角カタカナ->半角カナ
  1672.     WORD fJkanaToKana:1;    // 全角ひらがな・カタカナ->半角カナ
  1673.     WORD fJankToAnk:1;        // 全角ANK->半角ANK
  1674.     WORD fJalphabetToAnk:1;    // 全角アルファベット->半角ANK
  1675.     WORD fJnumberToAnk:1;    // 全角数字->半角ANK
  1676.     WORD fJkigouToAnk:1;    // 全角記号->半角ANK
  1677.     WORD fJspaceToAnk:1;    // 全角空白->半角ANK
  1678.     WORD fKanaToJhira:1;    // 半角カナ->全角ひらがな
  1679.     WORD fKanaToJkata:1;    // 半角カナ->全角カタカナ
  1680.     WORD fAnkToJank:1;        // 半角ANK->全角ANK
  1681.     WORD fAlphabetToJank:1;    // 半角アルファベット->全角ANK
  1682.     WORD fNumberToJank:1;    // 半角数字->全角ANK
  1683.     WORD fKigouToJank:1;    // 半角記号->全角ANK
  1684.     WORD fSpaceToJank:1;    // 半角空白->全角ANK
  1685.     WORD fJhiraToKana:1;    // 全角ひらがな->半角カナ
  1686.     WORD reserved:1;
  1687.     WORD fAc:1;                // オートコレクト
  1688.     WORD fJbraceToBrace:1;    // 「」を[]へ変換
  1689.     WORD fZenHanKanaAll:1;    // (独立フラグ)全角ひらがな・カタカナ<->半角カナですべて変換    //WZ3.90N 981130 
  1690.                             // これと一緒にfJkataToKanaなども指定してください。
  1691.     WORD reserved2:13;
  1692. } CHARCONVERT;
  1693.  
  1694. // for CHARCONVERT ui
  1695. typedef struct {
  1696.     BOOL fAutoCollect;
  1697.     BOOL fJbraceToBrace;
  1698.     int modeKata;
  1699.     int modeHira;
  1700.     int modeAlphabet;
  1701.     int modeNumber;
  1702.     int modeSpace;
  1703.     int modeKigou;
  1704. } CCCONTEXT;
  1705.  
  1706. #define MAX_STATUSBAR_PANE    10
  1707. typedef struct {
  1708.     mchar sz[30];    // 表示内容
  1709.     int cx;            // 幅(-1なら右端まで)
  1710. } STATUSBAR_PANE;
  1711. #define STATUSBAR_PANE_ALL            -1
  1712. #define STATUSBAR_PANE_LOCATE        0
  1713. #define STATUSBAR_PANE_2STROKE        1
  1714. #define STATUSBAR_PANE_INSERT        2
  1715. #define STATUSBAR_PANE_EDITED        3
  1716. #define STATUSBAR_PANE_SELECTED        4
  1717. #define STATUSBAR_PANE_FORMING        5    //WCE0.95 970923 整形中かどうかステータスバーに表示
  1718. #define STATUSBAR_PANE_PAGINGMODE    6
  1719. #define STATUSBAR_PANE_FILENAME        7    //WCE0.93 970919 ステータスバーにファイル名を表示
  1720. int statusbarGetCy(TX* text);
  1721. void statusbarSetPaneString(TX* text,int ipane,mchar* sz);
  1722. void statusbarFlushDispInsert(TX* text);
  1723. int statusbarPointToPane(TX* text,int x);
  1724. void statusbarFlushDispSelect(TX* text);
  1725. void statusbarPrint(TX* text,int ipane);
  1726.  
  1727. //
  1728.  
  1729. // 段落体裁解析用
  1730. typedef struct {
  1731.     BYTE align;
  1732.     BYTE headline;
  1733.     SIGNED_BYTE indent;
  1734.     BYTE nClm;        //WZ3.90I 981106 0:標準
  1735.     DWORD anchor;    //WZ3.90L 981117 アンカー(0:なし)
  1736.     mchar szTag[CCHTXFTAG];
  1737. } CONTEXT_PARAPROPERTY;
  1738.  
  1739. // 文字装飾解析用
  1740. typedef struct {
  1741.     BBOOL fBold;
  1742.     BBOOL fUnderline;
  1743.     BBOOL fItalic;
  1744.     BBOOL fIndex;
  1745.     BBOOL fSup;
  1746.     BBOOL fSub;
  1747.     BBOOL fDots;    //WZ3.90I 981030 
  1748.     int cxRate;
  1749.     DWORD anchor;                //WZ3.90L 981117 ジャンプ先のアンカー番号(0:なし)
  1750.     mchar szAnchor[CCHWORD];    //WZ3.90L 981117 ジャンプ先のアンカー
  1751.     FONTSET fontset;
  1752.     mchar szTag[CCHTXFTAG];
  1753. } CONTEXT_CHARPROPERTY;
  1754.  
  1755. //##ツールバー
  1756.  
  1757. #if !WINDOWSCE
  1758. enum {ICONSET_STD=0,ICONSET_VIEW,ICONSET_WZ,ICONSET_FILE};
  1759.  
  1760. typedef struct tagTOOLBARITEM {    // ボタンコンテキスト
  1761.     mchar szCaption[CCHWORD];        // TIPヘルプ
  1762.     mchar szCmd[60];                //WZ3.90J 981108 コマンド名、マクロ名 for custmize
  1763.     int idm;                        // コマンド番号
  1764.     mchar szfilenameIcon[160];        // アイコンのファイル名
  1765.                                     //WZ3.90J 981108 CCHWORDでは短すぎなので拡大
  1766.     int iIcon;                        // szfilenameIconでの位置(0origin)
  1767.     BYTE iconset;                    //WZ3.90J 981108 使用するアイコンビットマップセット
  1768.     WORD fLoadedEx:1;                // ICONSET_FILEの場合、ロードしたかどうか?
  1769.     struct tagTOOLBARITEM* next;
  1770. } TOOLBARITEM;
  1771.  
  1772. typedef struct {    // ツールバーコンテキスト
  1773.     TOOLBARITEM* root;
  1774.     HWND hwnd;
  1775.     HWND hwndParent;
  1776.     HWND hwndCBCB;                    // 検索ボックスウィンドウ
  1777.     HWND hwndInfo;                    // 情報ボックスウィンドウ
  1778.     HWND hwndLpSel;                    // 印刷スタイル選択ドロップダウンリストボックス
  1779.     HWND hwndLpSet;                    // 印刷スタイル設定ボタン
  1780.     LPVOID text;    // NULLでも可
  1781.     WORD fIconView:1;                // VIEWアイコンがある
  1782.     WORD fIconWz:1;                    // WZ標準のアイコンがある
  1783.     WORD fIconEx:1;                    // STD,VIEW,WZ以外のアイコンがある
  1784.     WORD fSearchBox:1;                // 検索ボックスがある
  1785.     WORD fInfoBox:1;                // 情報ボックスがある
  1786.     WORD fPrintstyleBox:1;            //WZ3.90L 981117 印刷スタイル選択ボックスがある
  1787. } TOOLBARCONTEXT;
  1788.  
  1789. #endif
  1790.  
  1791. //##多重化/一時ウィンドウ
  1792.  
  1793. #if !WINDOWSCE
  1794.  
  1795. typedef struct tagMT {
  1796.     HWND hwndbase;
  1797.     HWND hwndtext;
  1798.     HWND hwndOutline;
  1799.     FBOOL fOutlineHide;
  1800.     FBOOL fOutlineSplited;
  1801.     HWND hwndCBCB;            // コマンドバーコンボボックス
  1802.     HWND hwndStatusbar;        // ステータスバー
  1803.     HWND hwndFunctionbar;    // ファンクションキー
  1804.     HWND hwndRuler;            // ルーラー
  1805.     TOOLBARCONTEXT* toolbar;
  1806.     STATUSBAR_PANE* tStatusbarPane;
  1807.     IFILE adr;
  1808.     int ly;
  1809.     WORD idMt;                // ID
  1810.     struct tagMT* prev;
  1811.     struct tagMT* next;
  1812. } MT;
  1813.  
  1814. #if 0
  1815. typedef struct {
  1816. // backup text
  1817.     TX* text;
  1818.     HWND hwndtext;
  1819.     RECT rHwndtext;
  1820.     IFILE adr;
  1821.     int ly;
  1822.     BOOL fClip;
  1823.     IFILE cliptop;
  1824.     DWORD nEdit;
  1825.     HWND hwndOutline;
  1826.     FBOOL fOutlineHide;
  1827.     FBOOL fOutlineSplited;
  1828.     BOOL fOutlineSplitWindow;
  1829. // dialog item
  1830.     HWND hwndDialog;
  1831.     BBOOL fOutline;
  1832. // work
  1833.     CBOOL fRedraw;
  1834.     FBOOL fFirst;
  1835.     SEARCHOPT* opt;
  1836. } TXMULTI_CONTEXT;
  1837. #endif
  1838.  
  1839. typedef struct {    // 前回の一時ウィンドウのコンテキスト
  1840.     IFILE adr;
  1841.     int ly;
  1842.     BBOOL fOutline;
  1843.     RECT rectTempWindow;
  1844. } TXMULTI_CONTEXT_TEMP;
  1845.  
  1846. #endif
  1847.  
  1848. //##HTML
  1849. typedef struct {    //WZ3.90I 981029 
  1850.     HBITMAP hbitmapBr;        // <BR>のビットマップ
  1851.     HBITMAP hbitmapP;        // <P>のビットマップ
  1852.     HBITMAP hbitmap_P;        // </P>のビットマップ
  1853.     HBITMAP hbitmapTr;        // <TR>のビットマップ
  1854.     HBITMAP hbitmap_Tr;        // </TR>のビットマップ
  1855.     HBITMAP hbitmapTd;        // <TD>のビットマップ
  1856.     HBITMAP hbitmap_Td;        // </TD>のビットマップ
  1857.     HBITMAP hbitmapInline;    // <インラインコンテナ>のビットマップ
  1858.     HBITMAP hbitmap_Inline;    // </インラインコンテナ>のビットマップ
  1859.     HBITMAP hbitmapControlblock;    // <コントロールコンテナ>のビットマップ
  1860.     HBITMAP hbitmap_Controlblock;    // </コントロールコンテナ>のビットマップ
  1861.     HBITMAP hbitmapSingle;    // <IMG,シングルエレメント>のビットマップ
  1862.     HBITMAP hbitmapItem;    // <アイテムエレメント>のビットマップ
  1863.     HBITMAP hbitmap_Item;    // </アイテムエレメント>のビットマップ
  1864.     HBITMAP hbitmapBlock;    // <ブロックコンテナ>のビットマップ
  1865.     HBITMAP hbitmap_Block;    // </ブロックコンテナ>のビットマップ
  1866.     TX* textcfgTag;            // "htmltag.cfg"の内容
  1867.     IFILE adr0;                //WZ3.90O 981203 
  1868. } HTMLATR;
  1869.  
  1870. typedef enum {
  1871.     VALIGN_NONE,VALIGN_TOP,VALIGN_CENTER,VALIGN_BOTTOM
  1872. } VALIGN;
  1873.  
  1874. //##TXウィンドウプロシジャーのフック
  1875. //WZ3.90I 981026 多重フックができるようにした。これができないとマクロがつくれない。
  1876.  
  1877. typedef DWORD HOOKRESULT;
  1878. #define HOOK_CONTINUE    0
  1879. #define HOOK_CAPTURE    1
  1880. #define HOOK_ERROR        2
  1881. typedef HOOKRESULT (CALLBACK *WNDTEXTHOOKPROC)(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  1882.  
  1883. #define txSetHookWndproctextResult(text,result)    (text->resultWndtextHook = result)
  1884. #define txSetHookWndprocbaseResult(text,result)    (text->resultWndbaseHook = result)
  1885.  
  1886. typedef struct tagTXWNDHOOK {
  1887.     UINT fTxpcode:1;        // TX-PCODEからのフック
  1888.     WNDTEXTHOOKPROC lpHook;    // フックプロシジャ
  1889.     struct tagTXWNDHOOK* prev;
  1890.     struct tagTXWNDHOOK* next;
  1891. } TXWNDHOOK;
  1892.  
  1893. //##テキストコンテキスト
  1894.  
  1895. typedef struct {
  1896.     LPBYTE pBuff;    // バッファ
  1897.                     // BYTE:cchName , mchar*:szName , WORD cchContent , LPVOID content
  1898.                     // 末尾はcchName = 0
  1899.     int sizeBuff;    // pBuffの現在のサイズ
  1900.     int sizeExpand;    // pBuffを拡大するとき、少なくともこの分のサイズで拡大
  1901. } VAR;
  1902. void varDelete(VAR* var);
  1903. VAR* varNew(int sizeInit,int sizeExpand);
  1904. BOOL varSetString(VAR* var,mchar* szName,mchar* szContent);
  1905. mchar* varReadString(VAR* var,mchar* szName,mchar* szDefault);
  1906.  
  1907. typedef struct tagTXCTEXTVAR {
  1908.     mchar szModule[CCHWORD];
  1909.     FILETIME filetime;        // for バージョンチェック
  1910.     LPBYTE pTextvar;
  1911.     struct tagTXCTEXTVAR* prev;
  1912.     struct tagTXCTEXTVAR* next;
  1913. } TXCTEXTVAR;
  1914.  
  1915. struct tagtx {
  1916. // 以下、[変更可]まで、変更してはいけません。
  1917. // テキストが破壊されるおそれがあります。
  1918.     WORD sizeStruct;
  1919.     // textbuff
  1920.     TEXTCHAR* buff;            // テキストバッファ
  1921.     wchar wszfilename[CCHPATHNAME];
  1922.                             // ファイル名(UNICODE)
  1923.                             // 新規のときは、wszfilename[0] == 0
  1924.     mchar szfilename[CCHPATHNAME];
  1925.                             //PWZ2BETA0.4 980604 new
  1926.                             // ファイル名(SJIS)
  1927.                             // 新規のときは、szfilename[0] == 0
  1928.                             // szfilenameはマクロ用。
  1929.                             // wszfilenameがマスターである。
  1930.     IBUFF sizebuff;            // テキストバッファの現在のサイズ
  1931.     // new textbuff pointer
  1932.     IFILE curgap;            // gapの先頭
  1933.     IBUFF curpara;            // カレント段落の先頭 & gapの末尾+1
  1934.     // textbuff pointer
  1935.     IBUFF cur;                // カーソル位置のテキストバッファオフセット
  1936.                             // text2の先頭
  1937.     IBUFF cur0;                // curの直前.cur0とcurの間にgapがある.
  1938.                             // gapの先頭
  1939.     IBUFF cury;                // カーソル表示行の先頭
  1940.                             // text1にある
  1941.     IBUFF curysize;            // 表示行のサイズ
  1942.     IBUFF curscreen;        // 画面先頭のテキストバッファオフセット
  1943.                             // text1にある
  1944.                             //1.00F IBUFF_ERRORのときは内容無効
  1945.     IBUFF ibuff;            //WZ3.90J 981110 任意使用可
  1946.     // 前方参照 GPL cache
  1947.     IBUFF cacheGpl;            // キャッシュデータ
  1948.                             // IBUFF_ERRORのときは内容無効
  1949.     IBUFF curparaGpl;        // キャッシュ時の段落先頭IBUFF
  1950.     IBUFF curgapGpl;        // キャッシュ時のtext->curgap
  1951.     DWORD nEditGpl;            // キャッシュ時のnEdit
  1952.     // view mode
  1953.     FBOOL fEditViewMode;    // 現在、view mode ?
  1954.                             // fSemiViewModeも見てください。
  1955.                             // あるいはtxGetViewmodeで調べるのが良いです。
  1956.     FBOOL fSemiViewMode;    // セミViewMode
  1957.     // textfile
  1958.     HANDLE hf;                // ファイルハンドル
  1959.     IFILE sizefileReal;        // ファイルサイズ(txatrを含む実際のサイズ)
  1960.     IFILE sizefile;            // ファイルサイズ(テキストデータの分のみ)
  1961.     IFILE sizeload;            // ファイルから読み込んだバイト数
  1962.     BBOOL fOpen;            // Openされている?
  1963.     BBOOL fQuit;            //PWZ2BETA0.3 980510 txQuit中?
  1964.     BBOOL fReadAll;            // ファイルを読み終えた
  1965.     BBOOL fAddEof;            // textbuffにEOFを追加した?
  1966.                             // ファイル末尾がEOFの場合はFALSE。
  1967.                             // ファイル末尾がEOFでなければTRUE。
  1968.     FILETIME timeFile;        // ファイルの日付
  1969.     FILETIME timeFile0;        //1.97 前回チェックしたときのファイルのタイムスタンプ
  1970.     BYTE crOpen;            // オープン時の改行コードの形式
  1971.         #define RETURNCODE_CRLF    0    //1.95 'D'から変更
  1972.         #define RETURNCODE_CR    1    //1.95 'M'から変更
  1973.         #define RETURNCODE_LF    2    //1.95 'U'から変更
  1974.     BYTE crSave;            // 保存するときの改行コード
  1975.     BYTE kcOpen;            //1.95 オープン時のファイルの文字コード
  1976.         #define KC_SJIS            0
  1977.         #define KC_JIS            1
  1978.         #define KC_EUC            2
  1979.         #define KC_UNICODE        3
  1980.         #define KC_UNICODEBETA    4    // ヘッダなしのUNICODEファイル
  1981.         // 内部コード
  1982.         #define KC_INTERNAL_TOP    100
  1983.         #define KC_EUC_SJIS        100    // EUC or SJIS
  1984.         #define KC_ASCII        101    // no kanji
  1985.         #define kcIsUnicode(kc)    (kc == KC_UNICODEBETA || kc == KC_UNICODE)
  1986.     BYTE kcSave;            //1.95 保存するときの文字コード
  1987.     // textbox capture
  1988.     HWND ehHwnd;            // キャプチャ中の他プロセスの"EDIT"クラスウィンドウハンドル
  1989.     HWND ehHwndBase;        // ehHwndのベースウィンドウ(タイトルバー付きウィンドウ等)
  1990.     WORD fEhHwndUndisp:2;    // ehHwndをUndisp中?
  1991.     BYTE ehTarget;            // キャプチャ対象のアプリケーション
  1992.         #define EHTARGET_VC4        10    // VC++ 4.2/VC++ 5.0(テキストの取得の対応。書出しはできない)
  1993.         #define EHTARGET_MSMAIL4    11    // Outlook Express 4.71(IE4.0付属)
  1994.     // WZ MAIL EDITOR
  1995.     struct tagMAILEDIT* mailedit;    //WCE1.01 980327 WZ MAIL EDITOR ?
  1996.                             // 真なら、RFC822のヘッダも付いていることになる。
  1997.     // 行編集の取消
  1998.     TEXTCHAR* buffUndopara;    // 行バッファ
  1999.     IBUFF sizebuffUndopara;    // バッファサイズ
  2000.     IBUFF lchUndopara;        // バッファ内の文字数
  2001.     BBOOL fUndoparaEffect;    //WCE1.01 980124 バッファに有効なデータがある?
  2002.     CBOOL fUndoparaing;        // Undopara中。再入防止フラグ
  2003.     CBOOL fNoUndoparaPrepare;//2.98 970307 txUndoparaPrepareしない?
  2004.     // instance information
  2005.     HANDLE hInstance;        // インスタンスハンドル
  2006.     HANDLE hInstanceParent;    //2.90 親モジュールのインスタンスハンドル
  2007.     wchar* wszCmdLine;        // コマンドライン(malloced)
  2008.     // window
  2009.     HWND hwndbase;            // ベースウィンドウ(with menubar)のハンドル
  2010.                             // text->fFrameのtextのみセットされる。
  2011.                             // WZ Controlや裏テキストではNULL
  2012.     HWND hwndtext;            // テキストウィンドウのハンドル
  2013.                             // 裏テキストではNULL
  2014.     HWND hwndCB;            // コマンドバー
  2015.     HWND hwndCBCB;            // コマンドバーコンボボックス
  2016.     HWND hwndStatusbar;        // ステータスバー
  2017.                             // MYSTATUSBARでコモンコントロール/独自になる。
  2018.     HWND hwndRuler;            // ルーラー
  2019. #if !WINDOWSCE
  2020.     TOOLBARCONTEXT* toolbar;//WZ3.90E 980806 ツールバー(コモンコントロール)
  2021.     RECT rectWindowClosed;    // DestroyWindow(text->hwndbase)したときの位置
  2022.     HWND hwndFunctionbar;    //WZ3.90I 981107 ファンクションキー
  2023. #endif
  2024.     STATUSBAR_PANE* tStatusbarPane;
  2025.     int cxClient;            // hwndTextのサイズ(ピクセル単位)
  2026.                             // 印刷時は右マージンの分を除く紙のサイズ(lpx)
  2027.     int cyClient;            // hwndTextのサイズ(ピクセル単位)
  2028.                             // 印刷時は下マージンの分を除く紙のサイズ(lpx)
  2029.     int cxBase;                // テキスト表示開始位置
  2030.     int cxCaretNow;            // 現在画面に表示しているキャレットの幅
  2031.     int cyCaretNow;            // 現在画面に表示しているキャレットの高さ
  2032.     int nOpenDC;
  2033.     int xCaret;                //WCE1.01 980409 
  2034.     // display/printer
  2035.     int cxWidth;            //1.00F テキストの横幅(ディスプレイドット座標)
  2036.     int cxWidthWhole;        //2.96 970206 テキストの横幅(ディスプレイ座標)
  2037.                             // 1段組の場合はcxWidthと同じ。
  2038.                             // n段組の場合は、1段目の左端からn段目の右端までの幅
  2039.     int lx;                    // カーソルX座標 (文字座標)
  2040.                             // lfProp時は、近似値(text->x / text->cxChar)
  2041.     int lx0;                // 縦移動時に使用
  2042.     int x;                    // カーソルX座標 (ドット座標)
  2043.     int x0;                    // 縦移動時に使用
  2044.     int xAlign;                //WCE1.01 971116 センタリング、右寄せ
  2045.     int cxCursor;            //WCE1.01 980223 カーソルの幅
  2046.     FBOOL fNoAddAlign;        //WCE1.01 971117 offsetFromCx,cxFromOffsetでxAlignを加えない?
  2047.     int xbase;                // basex
  2048.     int cxCharMax;            // 1文字の最大幅
  2049.     int ly;                    // カーソルy座標
  2050.     int lyUnder;            // アンダーラインy座標(非表示中は-1)
  2051.     int lyAtMinimized;        // 最小化したときのly    //WZ3.90M 981128 
  2052.     int hideUnder;            // fListboxのフォーカス表示がHideされているか?
  2053.     int lcySmupper;            // 現在のスクロールマージンTopY
  2054.     int lcySmlower;            // 現在のスクロールマージンTailY
  2055.     FBOOL fAddSmlower;        //WCE0.92 970918 最下行に半端行を表示している?
  2056.     int lcywindow;            // 表示行数(syTop,syTailの分も含む)
  2057.                             // 印刷プレビュー、印刷時は動的に変化します
  2058.                             // 0になることはない。必ず1以上になる
  2059.                             // 行の内容が全て表示できる分の値に設定されます。
  2060.                             // 但し、1に設定されている時は必ずしもこの通りではありません
  2061.                             // 必ずLINE_Nより5程度少なくなる
  2062.     int lcywindowClm;        //WCE0.95 970923 1段の表示行数
  2063.     int xCell;                //WCE1.01 971221 for fTxf 表
  2064.     int xCellSepa;            //WCE1.01 971221 for fTxf 表
  2065.     int lxCell;                //WCE1.01 971221 for fTxf 表
  2066.     int lcxCell;            //WCE1.01 971221 for fTxf 表
  2067.     BYTE CelllineTop;        //WCE1.01 971221 for fTxf 表 直前のセルのlineTop
  2068.     BYTE CelllineBottom;    //WCE1.01 971221 for fTxf 表 直前のセルのlineBottom
  2069.     FBOOL fCellExist;        // 「表がある段落は折り返しなし」に使用
  2070.     BBOOL fCellFlushing;    //WCE1.01 971226 表の幅計算中?
  2071.                             // 2:Undisp中?
  2072.     FBOOL fWestern;            //WCE1.01 980224 欧文表示
  2073.                             // 1バイト文字(ASCII+拡張ASCII)
  2074.                             // !TEXTCHAR_UNICODE時のみ有効
  2075.     //
  2076.     HDC hdc;
  2077.         #define HDC_PAINT    999    // WM_PAINTで確保したHDC
  2078.     HDC hdcMem;
  2079.     HDC hdcPrinter;            // これがNULLでなければ、このhdcに出力する
  2080.     // キー定義
  2081. //    KEY* key;                // キー定義
  2082.     mchar *tszfkey;            // ファンクションキーの文字列
  2083.                             // size = FKEY_NKIND * FKEY_NKEY * FKEY_SIZE
  2084.         #define FKEY_SIZE        13    // 登録できる文字数+1
  2085.         #define FKEY_NKEY        12    // 最大キー数
  2086.         // シフトキーとの組み合わせ
  2087.         #define FKEY_NORMAL        0
  2088.         #define FKEY_SHIFT        1
  2089.         #define FKEY_CTRL        2
  2090.         #define FKEY_SHIFTCTRL    3
  2091.         #define FKEY_NKIND        4
  2092. // ツールバー
  2093. //    TXTOOLBAR *ttxtoolbar;    // ツールバーデータ
  2094.     int ntoolbar;            // ttxtoolbarの数
  2095.     HBITMAP hbitmapToolbar;    // ツールバービットマップ
  2096.     int cxToolbar;
  2097.     int cyToolbar;
  2098.     // for display
  2099.     HFONT hfont;            // フォントハンドル
  2100.                             // fontsetBase->hfontのコピー
  2101.     HFONT hfontSearch;        //WZ3.90K 981112 欧文編集時の検索ダイアログ、検索ボックス用のフォントハンドル
  2102.     //WCE1.01 980222 マルチフォント、プロポーショナルフォントサポート
  2103.     FONTSET* fontset;        // カレントfontset
  2104.     FONTSET* fontsetBase;    // 本文のfontset
  2105.                             // 常に開きっぱなし
  2106.     FONTSET* fontsetCache;    // fontsetのキャッシュ
  2107.     //WCE1.01 980225 図の表示・印刷サポート
  2108. #ifdef __TXC__
  2109.     LPVOID txbitmapCache;    // IMGキャッシュ
  2110. #else
  2111.     IMGSET* txbitmapCache;    // IMGキャッシュ
  2112. #endif
  2113.     //
  2114.     HBRUSH hbrushBack;        // WZのブラシ
  2115.     HBRUSH hbrushText;        // WZのブラシ
  2116.     HBRUSH hbrushBlock;        // 範囲選択時、反転表示用
  2117. #if !WINDOWSCE
  2118.     HBRUSH hbrushImeBack;    //WZ3.90O 981202 
  2119.     HBRUSH hbrushImeHiBack;    //WZ3.90O 981202 
  2120. #endif
  2121.     HPEN hpenUnderline;        // アンダーライン
  2122.     HPEN hpenNline;            // WZのペン
  2123.     HPEN hpenText;
  2124.     HPEN hpenBack;            // WZのペン
  2125.     HBITMAP hbitmapLf;        // LF記号のビットマップ
  2126.     HBITMAP hbitmapTab;        // TAB記号のビットマップ
  2127.     HBITMAP hbitmapEof;        // EOF記号のビットマップ
  2128.     HBITMAP hbitmapSpace;    // 全角空白のビットマップ
  2129.     HBITMAP hbitmapBeta;    // ベタのビットマップ
  2130.     HBITMAP hbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップ
  2131.     LPVOID pbitmapLf;        // LF記号のビットマップデータ
  2132.     LPVOID pbitmapTab;        // TAB記号のビットマップデータ
  2133.     LPVOID pbitmapEof;        // EOF記号のビットマップデータ
  2134.     LPVOID pbitmapSpace;    // 全角空白のビットマップデータ
  2135.     LPVOID pbitmapBeta;        // ベタのビットマップデータ
  2136.     LPVOID pbitmapFf;        //WCE1.01 980225 フォームフィードのビットマップデータ
  2137. #if WINDOWSCE
  2138.     HBRUSH hbrushPendot;    // WINDOWSCEにはPS_DOTがないのでBRUSHで作る
  2139.     LPVOID pbrushPendot;    // PS_DOTのメモリデータ
  2140. #else
  2141.     HPEN hpenPendot;
  2142. #endif
  2143.     SIGNED_BYTE color;        // 現在設定中の色コード
  2144.     COLORREF rgb;            // 現在表示中の色RGB
  2145.     WORD fColorReverse:1;    // 反転表示中?
  2146.     WORD fColorIme:1;        //WZ3.90O 981202 IME変換文字描画中?
  2147.     // GetLineSize/DispLineコンテキスト
  2148.     //WCE1.01 980216 GetLineSizeの処理結果
  2149.     BYTE gls_iHeadline;        // 見出しコード
  2150.     WORD gls_cyChar;        // 行の高さ(行間を除く)
  2151.     WORD gls_cyAscent;        // 行のベースラインより上の部分の高さ
  2152.     WORD gls_cyDescent;        // 行のベースラインより下の部分の高さ
  2153.     WORD gls_cyLine;        // 行の高さ(行間を含む)
  2154.     BYTE gls_nClm;            //WCE1.01 980301 この段落の段組数
  2155.                             // 通常はtext->nClmだが、<CLM>タグで段組数が指定されている場合に対応
  2156.     WORD gls_yFootnote;        //WCE1.01 980302 ページ内脚注表示位置(cyClientベース)
  2157.     WORD gls_cxCursor;        // LSOP_OFFSET_TO_X,LSOP_X_TO_OFFSET時のx位置の文字幅
  2158. //## 現在の内部情報
  2159.     mchar* szexedir;        //WZ3.90I 981027 WZEDITOR.EXEの存在するパスが入っています。
  2160.                             // "a:\wz\"や"b:\"のように入っています。
  2161.                             // マクロからは、次の様にして、WZ.EXEと同じディレクトリにあるファイルの
  2162.                             // フルパスを得ることができます
  2163.                             //         text->szexedir + "myfile"
  2164.     FBOOL fTXWS_TEXT;        // TXWS_TEXTのtext?
  2165.     FBOOL fFrame;            // 表テキスト?
  2166.                             // 裏テキスト、WZコントロールのtextの場合はFALSE
  2167.     FBOOL fReadOnly;        // 修正はできるがセーブできない。
  2168.     FBOOL fCurWestern;        // 現在のカーソル行が欧文フォントかどうか示す。
  2169.                             // txDispCursorでフラッシュされるので、いつも必ずしも
  2170.                             // 正しいとは限らない。
  2171.     WORD fReopenInternaling:1;// txReopenInternal中?
  2172.     WORD fShared:1;            // WZプロセス間で共有されているtext?
  2173.                             // WINDOWSCE
  2174.     WORD fNoFlushBaseDisp:2;// txFlushBaseでtxDispAllしない
  2175.     WORD fFlushBaseDisped:1;// fNoFlushBaseDisp中にtxDispAllがあった
  2176.     WORD fEnableUndo:1;
  2177.     WORD fNewFile:2;        // 新規ファイル?(1か2なら真なので注意)
  2178.     WORD fOpenLockedFile:1;    // 排他制御がかかっているファイルを開いた
  2179.     WORD fDispEofed:1;        // 最後に表示を行ったときにEOFを表示した?
  2180.     WORD fHaveFocusLine:1;  // フォーカスラインを持っている?
  2181.     WORD fNoCaret:1;        // キャレットを表示しない
  2182.     WORD fOriginalCaret:1;    //WCE1.01 980409 独自のキャレットを表示
  2183.                             // 普通のキャレットは主スレッドしか対応しないが、
  2184.                             // これはマルチスレッド対応。
  2185.     WORD fMouseJumpx:2;        // txJumpXで文字の中心を基準とする
  2186.     WORD nlineByPage:1;        // dummy
  2187.     WORD lpy:1;                // dummy
  2188.     WORD fNoFlushSelectNow:1;//txFlushSelectNowしない
  2189.     WORD fDestorying:1;        // textを破棄中?
  2190.     WORD fStatprintfing:1;    // statprintfが表示されている状態?
  2191.     WORD fUndispLinenum:2;    // 行番号を表示しない
  2192.     DWORD FlushCuryResult;    // 内部ワーク
  2193.     BBOOL fNomoveBase;        // 画面の横スクロールをしない(text->basexを動かさない)
  2194.     WORD ftxuiSaveNamed:1;    // txuiSaveで名前を付けたときにONになり、txuiSaveを抜けるとOFFになる
  2195.     WORD fSaveCanceled:1;    // (text->lasterror == TXERROR_SAVECANCELED)
  2196.     WORD fInsideIsClose:1;    // ehHwndでIsClose()中
  2197.     WORD fClipMouseStart:1;    // マウスによる範囲選択開始時?
  2198.     WORD fCursorSeted:1;    // WINDOWSCE カーソルが変更されている
  2199.     WORD fNoFileShareControl:1;    //PWZ2BETA0.4 980604 排他制御をかけない?
  2200.     WORD fReplaceCanceled:1;// 直前のReplaceがキャンセルされた?
  2201.     WORD fGetDownAble:2;    //WZ3.90H 980923 現在txGetDownAble中?
  2202.     WORD fPageChanged:1;    //WZ3.90H 980923 txBuffNextLineN/txBuffPrevLineNでページを越えた
  2203.     WORD fDuringSetupDispLine:2;    //WZ3.90H 980924 
  2204.     WORD fError:1;            //WZ3.90H 980925 エラー状態
  2205.     WORD fNoInitScrollBar:2;//WZ3.90I 981030 _InitScrollBarしない。
  2206.     WORD fPageScrollBarV:2;    //WZ3.90I 981030 印刷プレビュー時に縦スクロールバーをページ内のプロポーショナルスクロールバーにする?
  2207.     WORD fGetXAlign:2;        //WZ3.90I 981106 
  2208.     WORD fAutoScrolling:1;    //WZ3.90J 981110 自動スクロール中?
  2209.     WORD fAutoScrollPause:1;//WZ3.90J 981110 自動スクロール一時停止中?
  2210.     WORD fAutoScrollPrev:1;    //WZ3.90L 981125 自動スクロール前方向中?
  2211.     WORD fApfuBeamtabFlush:1;//WZ3.90L 981115 タブ桁揃えフラッシュ中?
  2212.     WORD fLpFlushPreviewing:1;//WZ3.90L 981117 
  2213.     WORD fIdmExecing:3;        //WZ4.00Aa 990107 //WZ4.00Ac 990207 ネストする場合があるので1bitでは足りなかった
  2214.     WORD fNoPushDeleteString:2;    //WZ4.00Aa 990107 
  2215.     WORD fSaving:2;            //WZ4.00Ab 990202 保存中?
  2216.     WORD fSaveAsDoing:1;    //WZ4.00Ab 990202 txuiSaveAs中?
  2217.     WORD fEndSessioning:1;    //WZ4.00Ac 990205 WM_QUERYENDSESSION中?
  2218.     WORD fHistAddAtSave:1;    //WZ4.00Ac 990206 txSave時にhistAddし、このフラグをクリア?
  2219.     WORD fWindowClosedMax;    //WZ4.00Ad 990211 DestroyWindow(text->hwndbase)したとき最大化されていたかどうか?
  2220.     CBOOL fBusy;            //WCE1.01 980203 
  2221.     //WCE1.01 980205 変更行の表示
  2222.     FBOOL fDispLineEdit;    // 変更行の表示を行う?
  2223.     PARAATR_TEXT_CONTEXT paraatrtextcontext;
  2224.     // binary
  2225.     FBOOL fBinedit;            // バイナリ編集(16進表示バイナリエディタ)モード?
  2226.                             // ファイルをバイナリとして読み込む
  2227.                             // ファイル末尾のEOFをEOFコードとしてはみなさなず、text->buffロード時に必ずEOFを加える
  2228.                             // fBinaryもTRUEにセットすること。
  2229.                             // fBinedit時は、curparaはcuryと同じになり段落先頭を示さなくなる。
  2230.                             // また、nparaはnlineと同等になる。
  2231.     CBOOL fBinary;            // 全角文字を半角2文字として扱う
  2232.                             // !fBineditなら、ファイルはテキストファイルとして読み込む
  2233.                             // fBineditの場合は、fBinaryもTRUE。
  2234.     CBOOL fNoJumpChartop;    //WZ3.90P 981206 txJumpAddress,txJumpAddressNearで、アドレスが文字の先頭でない場合、文字の先頭ではなく、指定されたアドレスにジャンプ。
  2235. #if WZFUNC_MEMOEDIT    //WZ3.90L 981124 メモモード
  2236.     WORD fMemoedit:1;                // メモ編集モード?
  2237.     struct tagMEMOEDIT* memoedit;    // メモ編集コンテキスト
  2238. #endif
  2239.     // undo
  2240.     TX* ttextUndo;            // undoバッファ textUndo[0],textUndo[1]が有効
  2241.     UNDOPACK_CONTEXT undopack[2];
  2242.     mchar* szGeneComment;    //WCE1.01 980201 世代管理:次の世代のコメント
  2243.     FBOOL fTextUndoInited;    // textUndo inited?
  2244.     FBOOL fUndoing;            // アンドゥとリドゥの区別
  2245.     FBOOL fUndoView;        // undoバッファのビューモード
  2246.     FBOOL fUndoExec;        // undo()中かどうか
  2247.     FBOOL fUndoResetTexttop;//PWZ2BETA0.3 980511 undo中にtexttopを0にしたか?
  2248.     HWND hwndUndo;            // 
  2249.     BBOOL fGene;            // dummy
  2250.     BYTE fNoUndoAdd;        // 0以外ならundoAddされない
  2251.     BYTE adrTextUndoTop;    // undoバッファのヘッダ長
  2252.     BYTE uc;                // UC
  2253.     FBOOL fUndoFindCellFlush;//WCE1.01 971226 
  2254.     SIGNED_WORD igene;        //WCE1.01 980201 現在の世代
  2255.     FBOOL fNoGeneDelete;    //WCE1.01 980206 
  2256.     // autosave
  2257.     int nAutoSaveCmdNow;    // 前回のオートセーブから現在までに実行された編集コマンド数
  2258.     BBOOL fAutoSaving;        // autosave中?
  2259.     BBOOL fAutoSaveValidTimer;    // 自動保存実行タイマセット中?
  2260.     //
  2261.     CMDLINECONTEXT* pcc;    // fFrameのみコマンドラインコンテキスト
  2262.                             // このオブジェクトはdeleteしてはいけないが、
  2263.                             // pcc=NULLにしてもいい
  2264.     DWORD nEdit;            // 編集が行われた回数をカウントしています
  2265.     BYTE fNoCountNedit;        // nEditをカウントアップしない?
  2266.     BYTE fNoReduceGap;        // テキストバッファの縮小を一時的にしない
  2267.     // キー入力
  2268.     mchar key2;                // 2ストロークキー入力用.1ストローク目のキーコード
  2269.     IDM f2Stroke;            // ストロークキー入力用.1ストローク目のidm
  2270.     FBOOL fTranslated;        //WCE1.00.1 970926 WM_KEYDOWN/SYSKEYDOWNの後にWM_CHAR/SYSCHARが来る?
  2271. //    FBOOL fKeyD;            // 次のWM_CHAR/WM_SYSCHARを無視?
  2272.     UINT idmLast;            //WZ3.90I 981102 最後にキーから実行したIDMコマンド
  2273.     struct tag_EMACSWZ_CONTEXT* emacswz;    //WZ3.90I 981102 EMACSライクキー割り当て用コンテキスト
  2274.     BYTE lastfocus;            //WZ4.00A 981229 最後にSETFOCUSされた部位
  2275.         #define FOCUS_OUTLINE    1
  2276.     // 本文フォントの情報
  2277.     int cxChar;                // 文字幅
  2278.     int cxLetter;            // 字間をふくむ文字幅
  2279.     int cyChar;                // 文字高さ
  2280.     int cyLine;                // 行高さ
  2281.     FBOOL lfEditProp;        // プロポーショナルか?
  2282.     //
  2283.     BBOOL fUndispSelect;    // 範囲選択を表示しない
  2284.     SEARCHMODE searchmode;    // 現在の検索オプション
  2285.     int nCmdShow;            // 現在のtext->hwndbaseのShowWindowモード
  2286.     int fHigh;                // Highspeed flag
  2287.                             // カーソル位置(cury,curysize)の計算をしない。
  2288.                             // nparaは計算します。for 編集した行の強調表示
  2289.                             // nlineは計算しないのでズレます。
  2290.                             // <使用要注意>
  2291.                             // txSetHighで開始してください。
  2292.                             // 直接このフラグを操作しないでください。
  2293.                             // TXHIGHのAPIのみ使えます。
  2294.                             // それ以外のAPIは使えません。
  2295.                             // 使った場合の動作は保証しません。
  2296.                             // できるだけチェックをして回避していますが、
  2297.                             // テキストを破壊する恐れもあります。
  2298.                             // <使用後>
  2299.                             // txResetHighかtxResetHighFlagを使ってください。
  2300.     int lyHigh;                // txSetHigh()時、ly保存
  2301.     UNDISPCONTEXT tUndispContext[UNDISPCONTEXT_N];
  2302.     int fUndisp;            // 非表示フラグ
  2303.     int fUndraw;            //2.00B 非描画フラグ
  2304.                             // fUndispだと描画しないだけでなく各種
  2305.                             // 計算なども行わないが、このフラグは単に
  2306.                             // 描画を行わない
  2307.     HCURSOR hcursor;        // マウス砂時計表示時、元の形状
  2308.     BBOOL fUndispCursor;    // txDispCursor/txDispLocateの処理をしない
  2309.                             // txDeletePara etc のちらつきをなくすため、
  2310.     BBOOL fNoCursor;        // マウス形状を変更しない
  2311.     FBOOL fCursorBold;        // カーソル位置強調?
  2312.     NPARA fUndispNpara;        // 0以外にすると、その段落のみ描画を行わない
  2313.     NPARA fUndispExceptNpara;// (内部用)0以外にすると、その段落以外の描画を行わない
  2314.     // scroll by scrollbar
  2315.     BBOOL fScrollSB;        // スクロールバーでスクロール中
  2316.     int lySB;                // カーソル位置(-1なら無効)
  2317.     // scrollbarによるスクロール開始時の情報
  2318.     NLINE nlineSB;            // npara/nline
  2319.     NLINE nparaSB;            // npara    //WZ3.90L 981123 
  2320.     IFILE adrSB;            // カーソル位置
  2321.     int lxSB;                // lx
  2322.     int cxCaretSB;            // カーソルの幅
  2323.     int fClipSB;            // fClip
  2324.                             // 途中でtxSelectXXXが実行されたときはリセットする
  2325.                             // そうしないと、以前はtxFlushSelectNowで、
  2326.                             // fScrollSBならスクロール開始時の情報を範囲選択エリアとして
  2327.                             // 返していたが、選択モードを変更したときに、
  2328.                             // そのモードの情報が返されず、テキスト<->高速モード変換で
  2329.                             // テキストが破壊されることがあった。
  2330.                             // txSelectAllしてコピーし、テキストを全削除してペースト
  2331.                             // すると元に戻らなかった
  2332.     SIGNED_WORD xSB;        // SB開始時x
  2333.     IFILE mark[MAXMARK];    // マーク
  2334.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.91 970910 最近参照した位置
  2335.     BYTE iAdrRefer;            // tAdrRefer参照ポインタ
  2336.     BBOOL fEdit;            // 編集された?
  2337.     BBOOL fEdit0;            // for txDoCaption
  2338.     BBOOL fEditable;        // 修正できる?
  2339.                             // txOpenTextでデフォルト値設定
  2340.                             // fEditViewModeならFALSE、そうでなければTRUE
  2341.     BBOOL fOverWrite;        // 上書きモード?
  2342.     DWORD sizefileMax;        // 0のときはファイルをすべて読み込む
  2343.                             // 1以上のときは、そのサイズまでしかファイルを読み込まない
  2344.                             // for preview
  2345.     NLINE npara;            // text->curの論理行番号
  2346.                             // nparaは高速/詳細モードでは大変重要な役割
  2347.                             // (段落書式indexとなる)を果たすので、
  2348.                             // 必ず正確な値にしておかないといけない。
  2349.     NLINE nline;            // 表示-行番号(fLineDが真の時しか数えない)
  2350.                             // fLineDが偽の時は、不定
  2351.                             //2.93 fCountNlineが真なら、常に数える
  2352.     BYTE fCountNline;        //2.93 !fLineDでもnlineのカウントをする
  2353.     BYTE fCountNpara;        //2.96A 970213 fHighでeditmode=0でもnparaのカウントをする
  2354.                             // カウントがされないときもあります。
  2355.     BYTE lyScreenEndResult;    //2.98 970307 Disp(DISP_GETCURSCREENEND)のly結果
  2356.     NLINE nlineAll;            //WZ3.90I 981004 これが0以外でfLineDならばプロポーショナルスクロールバーを表示する
  2357.     WORD cxVH;                //WZ3.90I 981015 !=0なら縦中横の表示中
  2358.     //WCE1.01 980216 ページ数 印刷時・プレビュー時のみ使用
  2359.     NPAGE npage;            // カーソル行のページ番号(1origin)
  2360.     PAGEATR* tPageatr;        // ページ情報
  2361.                             // tPageatr[text->npage]までが有効。
  2362.                             // ifilePagetopだけはtPageatr[text->npage+1]まで有効。
  2363.     LINEATR* tLineatr;        // 表示行情報
  2364.     LINESIZE_ENTRY_ROOT* ttLsc[2];//WZ3.90H 980919 
  2365.     NPARA nparaLsc;                //WZ3.90H 980921 対象のnpara
  2366.     // clip
  2367.     int fClip;                        // 範囲選択モード
  2368.         #define CLIP_NONE        0    // 範囲選択されてない
  2369.         // 基本範囲選択
  2370.         #define CLIP_CHAR        10    // 文字単位
  2371.         #define CLIP_LINE        11    // 表示行単位
  2372.         #define CLIP_PARA        12    // 論理行単位
  2373.         #define CLIP_BOX        13    // 箱形
  2374.         #define CLIP_WORD        14    // 単語
  2375.         #define CLIP_SENTENCE    15    // 文
  2376.         // すべてを選択
  2377.         #define CLIP_ALL        20
  2378.         // txSelectGetMode,txSelectEx用
  2379.         #define CLIP_LINECUR    31
  2380.         #define CLIP_PARACUR    32
  2381.         // txSelectEx用
  2382.         #define CLIP_VZ            40
  2383.         #define CLIP_WZ            41
  2384.         #define CLIP_SEARCH        42
  2385.         #define CLIP_MOUSE        43
  2386.         // 内部用
  2387.         #define CLIP_PARA1        90    // 1論理行
  2388.         #define CLIP_DELSTRPREV    91    // BSによる文字列削除
  2389.         #define CLIP_DELSTRNEXT    92    // DELによる文字列削除
  2390.         // txClipCopyEx用
  2391.         #define CLIP_COPYPARA1    100    // カーソル論理行をコピー
  2392.     //2.95 970125 ビットフィールド化
  2393.     FBOOL fClipMouse;        // マウスによる範囲選択?(fClipが0のときはFALSEであること)
  2394.     WORD fClipVz:1;            // VZ clip?
  2395.     WORD fClipWz:1;            // WZ clip?
  2396.                             // 最初に横に動かせば文字単位
  2397.                             // 下に動かせば論理行単位
  2398.     WORD fClipCur:1;        // (WZ内部用)
  2399.                             // CLIP_PARA/CLIP_LINE時にカーソル位置も範囲に含めるか?
  2400.     WORD fClipSearch:1;        // 検索による範囲選択?
  2401.     WORD fClipPasteJump:1;    // 最後のtxPasteで、ペーストした分カーソルを移動した?
  2402.     WORD fDispUnderClip:1;    // 選択開始時fDispUnder
  2403.     WORD fKeyVkShift:2;        // for キーボードマクロ時ms shiftキー範囲選択
  2404.                             // 0:実際のVK_SHIFTの押し下げ状態に従う
  2405.                             // 1:SHIFTは押されていないとみなす
  2406.                             // 2:SHIFTは押されているとみなす
  2407.     WORD fClipReserved:8;
  2408.     int lxClip;                // 範囲選択開始時lx
  2409.     int lyClip;                // 範囲選択開始時ly
  2410.     NPARA nparaClip;        // 範囲選択開始時npara
  2411.     NLINE nlineClip;        // 範囲選択開始時nline
  2412.     IFILE cliptop;            // 範囲選択開始位置
  2413.                             // 行単位の場合は行頭からになるので、
  2414.                             // clipcur0とは必ずしも一致しない
  2415.                             // Insert/Deleteでもズレないよう補正する
  2416.     IFILE clipcur0;            // 範囲選択開始時のカーソル位置のアドレス
  2417.                             // Insert/Deleteでズレるが問題ない
  2418.     IFILE cliptoppara;        // 範囲選択開始時の論理行頭のアドレス
  2419.                             // 必ずしも正確な値ではない
  2420.                             // Insert/Deleteでズレるが問題ない
  2421.     IFILE cliptopparatail;    // 範囲選択開始時の次の論理行頭のアドレス
  2422.                             // 必ずしも正確な値ではない
  2423.                             // Insert/Deleteでズレるが問題ない
  2424.     IBUFF clipend;            // ClipParaワーク
  2425.     BYTE modeFreeCursorClip;// 選択開始時modeFreeCursor
  2426.     IFILE cliptoptail;        // 範囲選択開始時の次の単語/文/行の先頭アドレス
  2427.     IFILE cliptopnow;        // 正確な選択開始アドレス(cliptopがベース)
  2428.     IFILE clipendnow;        // 正確な選択Tailアドレス(txGetAddressがベース)
  2429.     int xClip;                // 範囲選択開始時x
  2430.     WORD fNoScrollLinenum:2;// 行番号をスクロールしない
  2431.     IFILE clippastetop;        // 最後にペーストした時のペースト開始アドレス
  2432.     IFILE clippasteend;        // ペースト終了アドレス
  2433.     int xClipMouse;            //WZ3.90I 981105 マウスでの箱型選択、D&D用。選択終了時のx座標。
  2434.     //WZ3.90I 981104 D&D
  2435.     WORD fClipDrag:1;        // drag&drop-cut&paste
  2436.                             // 途中でtxSelectXXXが実行されたときはリセットする
  2437.     WORD fClipDragCaret:1;    //WZ3.90I 981107 ドロップターゲットカーソルモード中?
  2438.     WORD fOriginalCaret0:2;    // 保存用
  2439.     WORD fDispUnder0:2;        // 保存用
  2440.     WORD reservedCD:11;
  2441.     IFILE ifileDrop;        //WZ3.90I 981104 ドロップされた位置
  2442.     int lyDrop;                //WZ3.90I 981104 
  2443.     // ime
  2444.     //WZ3.90H 980928 IME描画を全面変更
  2445.     WORD sizeImeCompstr;    // 挿入した変換中文字列のバイト数
  2446.     int xCompstrEnd;        // 変換中文字列の表示の最終行の右端の座標
  2447.                             // (cxBase,xbase含む)
  2448.     int xImecurCompstr;        // IMEのカーソル位置 x(cxBase,xbaseは除く)
  2449.     int yImecurCursor;        // IMEのカーソル位置 y(yBaseは除く)
  2450.     HRGN hrgnCompstrDraw;    // 変換中文字列を描画したhrgn
  2451.     WORD fCompstrDrawing:2;    //WZ3.90H 980928 描画中?
  2452.     WORD fImeCursorIme:1;    // カーソル位置(IMEの描画)で変換中?    //WZ4.00Aa 990110 new
  2453.     FBOOL fImeCompstr;        // カーソル位置(WZの描画)で変換中?(インライン変換は除く)
  2454.     FBOOL fImeWasOn;        // 2ストロークキー入力開始時にIMEがONだった?
  2455. #if !WINDOWSCE
  2456.     //WZ3.90H 980913 一時ウィンドウ
  2457.     #if 0    //WZ3.90H 980915 多重化がうまく実装できたので、少々難のあった一時ウィンドウは廃止
  2458.     TXMULTI_CONTEXT* multi;            // 一時ウィンドウあり?
  2459.     #endif
  2460.     TXMULTI_CONTEXT_TEMP* multi0;    // 前回の多重化/一時ウィンドウのコンテキスト
  2461.     //WZ3.90H 980915 多重化
  2462.     MT* mt;                    // 多重化
  2463.     WORD idMt;                // 表ウィンドウのID
  2464.     WORD idMtMax;            // 今までの最大値のID
  2465.     WORD fMtRedraw:2;        // 
  2466.     WORD fMtOpening:1;        // 起動中
  2467. #endif
  2468.     // 最近入力した文字列
  2469.     mchar szInserted[30];    // 現在入力中の文字列
  2470.     BYTE lchInserted;        // szInserted内の文字数
  2471.     // 自動整形
  2472.     FBOOL fApfing;            // 自動整形中?
  2473.     FBOOL fApf;                // 自動整形を行う?
  2474.     WORD fApfUndisp:2;        // Undisp nest
  2475.     BYTE modeApfIndentSpace;// lcxIndentのmodeSpace
  2476.     WORD fApfSpaceJspace:1; // lchSpaceは全角空白か?
  2477.     WORD fApfNakaguroAsArticleForce:1;// 一時的に"・"を"■"と同様に扱う
  2478.     WORD fApfValidAutoFormat:1;    // 一時的に行頭の"・","1."を調べる
  2479.     NPARA nparaApf;            // 自動整形中のnpara
  2480.     PARAFORM_ARTICLE apf;
  2481.     IFILE adrApfCurscreen;
  2482.     int lx0Apf;
  2483.     int x0Apf;
  2484.     NLINE nline0Apf;        //WCE0.95 970923 
  2485.     // 見出し文字列
  2486.     TEXTCHAR* tpHeadline[HEADLINE_N];    // 見出し文字列(text->cszHeadline)へのポインタ
  2487.                                         // sz(0 Terminated)ではないことに注意
  2488.     BYTE tlchHeadline[HEADLINE_N];    // 見出し文字列の長さ
  2489.                                     // 必ずCCHHEADLINEより少ない
  2490. //    TEXTCHAR* tszHeadline;        // on demand alloc
  2491.     HEADLINE_SET* head;            // on demand alloc    //WZ3.90K 981113 
  2492.     int lchHeadlineContent;        // 0以外なら特別見出内容の長さ
  2493.                                 // offsetHeadlineContentに値が入る
  2494.     int offsetHeadlineContent;    // 段落先頭から特別見出内容までのオフセット
  2495.     // アウトライン
  2496.     HWND hwndOutline;
  2497.     FBOOL fOutlineHide;
  2498.     FBOOL fOutlineSplited;    //WCE1.01 980204 
  2499.     CBOOL fOutlineNoJump;    //WCE1.01 980204 
  2500.     // caret
  2501.     FBOOL fHaveCaret;        // キャレットを持っている?
  2502.     CBOOL fUndispCaret;        //WCE 970902 HideCaretしてもカーソルが消えないことがあるので、
  2503.                             // 位置を動かして強制的にカーソルを画面から除くために使用
  2504.     POINT pointCaret;        //WCE 970902 
  2505.     // keyword
  2506.     struct tagKeywordContext* keyword;    //WZ4.00Aa 990108 new。txKeyword,fKeywordNoSenseCaseは廃止。
  2507.     // 変数
  2508.     WORD fTxfVarConfig:1;    //PWZ2BETA0.3 980519 設定中なので、内容が空なら代わりに指示文字列を表示
  2509.     VAR* var;                //PWZ2BETA0.3 980519 
  2510.     // TX-C
  2511.     TXCTEXTVAR* textvarRoot;//PWZ2BETA0.4 980602 for TEXTVAR
  2512.     // link
  2513.     LINKHIST* linkhist;        //WZ3.90L 981117 リンク移動ヒストリ
  2514.     // テキストの変換
  2515.     struct tagContextConverttext* converttext;    //WZ4.00Ac 990206 テキストの変換の設定を覚えるようにした
  2516.     WORD ctDst:4;
  2517. //## 現在の内部設定
  2518.     FBOOL fSilent;            //WCE0.94 970922 1行が長すぎるなどの警告を出さない
  2519.     FBOOL fKcAuto;            //WCE0.93 970919 漢字コード自動変換する?
  2520.                             // text->fFrameは設定によりセットされます。
  2521.                             // それ以外のtextはFALSEになってます。
  2522.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  2523.     FBOOL fCrAuto;            //WZ3.90J 981109 改行コード自動判別する?
  2524.                             // text->fFrameは設定によりセットされます。
  2525.                             // それ以外のtextはFALSEになってます。
  2526.                             // TRUEにするには、txOpenTextの前に明示的にセットします。
  2527.     BBOOL fDispControlSpace;// 制御コードを半角空白で表示(折り返しも対応)
  2528.                             // 改行なども半角空白で表示
  2529.     int width;                // 折り返し幅
  2530.     BYTE nClm;                //WCE1.01 980216 段数
  2531.     WORD cySpace;            //WCE1.01 980307 行間
  2532.     BYTE fNoMarkCur;        // txMarkCurしない? (++,--)を使う
  2533.                             // txMarkNow/txJumpMarkNow 専用
  2534.     IFILE mark0;            //WCE1.01 971222 txMarkNow時にオリジナルのmark[0]の値を保存
  2535.     FBOOL fDebug;
  2536.     FBOOL fReadMode;        // 閲覧モード
  2537.     WORD fNoConfig:1;        // txSetFileNameで設定データをロードしない
  2538.                             //参考:txInitTextで、"標準"の設定がロードされます
  2539.     WORD fNoProfile:1;        // txOpenTextでプロファイルを参照しない
  2540.     WORD fPreview:1;        // プレビュー用
  2541.                             // 表示中にキー入力を監視し、キー入力があれば
  2542.                             // 表示処理を中断して応答性を上げる
  2543.     WORD fTxAllocText:1;    // txAllocTextでアロケートされたtext
  2544.     WORD fUndispWmpaint:1;    // WM_PAINTで描画しない?
  2545.     WORD fFilelist:1;        //WZ4.00Ac 990207 FILELISTウィンドウ?
  2546.     WORD fFilepreview:1;    //WZ4.00Ac 990207 ファイルプレビューウィンドウ?
  2547.     WORD fMemo:1;            // メモテキストウィンドウ?
  2548.     WORD fGrep:1;            // Grep結果一覧ウィンドウ?
  2549.     WORD fHelp:1;            // ヘルプテキストウィンドウ?
  2550.     WORD fMailPreview:1;    //PWZ2BETA0.3 980509 メールプレビューアー
  2551.     WORD fMailTemplate:1;    //PWZ2BETA0.3 980520 メールテンプレート
  2552.     WORD fTML:1;            //PWZ2BETA0.3 980511 TMLヘッダあり、すなわちTMLファイル?
  2553.                             // これがONならRFC822形式のヘッダがあるということになる。
  2554. #if 1//WZ3.90G 980903 デフォルトではAlt+M etc を処理しないように変更 for WZテキストボックスを使いやすく。
  2555.     WORD fUseDefaultAltKey:1;//WZ3.90G 980903 Alt+M etc を処理する
  2556. #else
  2557.     WORD fNoSyskeydown:1;    //PWZ2BETA0.3 980519 Alt+M etc を処理しない
  2558. #endif
  2559.     WORD fTags:1;            //PWZ2BETA0.4 980612 タグファイル?
  2560.     WORD fNoFlushWindow:1;    //WZ3.90J 981109 txFlushWindowをしない?
  2561.     WORD fClickActive:1;    //WZ3.90I 981103 
  2562.     WORD fOnCheckJumpX:2;    //WZ3.90I 981104 
  2563.     BBOOL modeFileShare:2;    //WZ3.90H 980925 
  2564.                             // 0のときはsh->modeFileShareに従う。
  2565.                             // FILESHARE_DENY_WRITE,FILESHARE_EXCLUSIVEのときは、
  2566.                             // sh->modeFileShareに関わらず、排他制御を行う。裏テキストも行う。
  2567.                             // 直接変更せず、txSetFileShareを使うこと。
  2568.     WORD fNoBuffReduceAuto:2;//WZ3.90O 981204 自動のtxBuffReduceをしない
  2569.     BBOOL fConfigtext;        //WCE1.01 980301 テキスト埋め込みの設定あり?
  2570.     WORD dlgcode;            // TXWS_TEXTのWM_GETDLGCODE処理コード
  2571.                             // default:DLGC_WANTALLKEYS
  2572.     BBOOL fNoImeControl;    // IMEの制御をしない
  2573.                             // BBOOLに拡大
  2574.     KEY* key;                // 現在のキー配列
  2575.                             // text->fFrame/fTXWS_TEXTのみセットされる
  2576.                             // 裏テキストではNULL
  2577. #if 0//WZ3.90H 980927 SHAREに移動した
  2578.     BYTE pagingmode;        // ページングモード('S','C','P',' ')
  2579. #endif
  2580.     WORD nSpaceTop;            // 上端を空けるドット数
  2581.                             //WCE1.01 980305 BYTE->WORD 印刷時は上マージン
  2582.     BBOOL fListbox;            // リストボックスモード?
  2583.         #define TXLB_SIZEATR        2    // 行アトリビュートバイト数(1.00C)
  2584.         // リストボックスモード時の行アトリビュート1バイト目
  2585.             #define TXLB_NORMAL        ' '    // ノーマル
  2586.             #define TXLB_SELECT        '*'    // 選択されたファイル
  2587.         // リストボックスモード時の行アトリビュート2バイト目(1.00C)
  2588.             //    色コードを指定する
  2589.             //    '1'-'5'を指定するとrgbComment-rgbPreprocessor色で表示
  2590.             //    それ以外はテキスト色で表示
  2591.     int nListboxSelect;            //WCE0.94 970921 選択中の数
  2592.     WORD fListboxSelCur:1;        // カーソル行を選択表示する?
  2593.     WORD fDispEofFull:1;        // EOF行はlcxmaskを無視して表示?
  2594.     WORD fScrolled:1;            // 最後のtxDispFlushでスクロールした?
  2595.     WORD fCustdataAutoFree:1;    // txCloseでcustdataをfreeしNULLにセットする?
  2596.     LPVOID custdata;            // マクロユーザデータ
  2597.     int lcxmask;                // 左からlcxmask文字は表示しない
  2598.                                 // lcxmaskに満たない行は、マスクしない
  2599.     BYTE iLastJumpMark;            // uiMarkで最後にジャンプしたマーク番号
  2600.     DWORD abAdjustGauIncrease;    //WCE0.91 970915 AdjustGapでテキストバッファサイズを拡大するときに
  2601.                                 // このサイズずつ拡大する。0を指定するとデフォルトで拡大する
  2602.     // txMsghdr
  2603.     UINT fTextcfg:1;        //WZ3.90I 981027 テキスト設定ファイル?
  2604.     UINT fTextcfgOnConfigRead:1;//WZ3.90I 981106 fTextcfgでconfigRead時?
  2605.     UINT fMsghdrLiteral:2;    //WZ3.90I 981027 txMsghdrXXXでszHeaderの末尾の':'を省略する。
  2606.     UINT fMsghdrSetAdd:2;    //WZ3.90N 981202 txMsghdrSetで常に追加する。
  2607.     IBUFF ibuffMsghdrCache;    //WZ3.90I 981027 txMsghdrGet高速化用キャッシュ
  2608.     // wndprocのフック
  2609.     TXWNDHOOK* rootWndtextHook;    //WZ3.90I 981026 
  2610.     TXWNDHOOK* rootWndbaseHook;    //WZ3.90I 981026 
  2611.     LRESULT resultWndtextHook;    //WZ3.90I 981024 標準値は0
  2612.     LRESULT resultWndbaseHook;    //WZ3.90I 981024 標準値は0
  2613. #if 0    //WZ3.90I 981026 廃止。
  2614. /*
  2615.     WORD fWndtextHookTxpcode:1;    //PWZ2BETA0.4 980607 
  2616.     WORD fWndbaseHookTxpcode:1;    //PWZ2BETA0.4 980607 
  2617.     WNDTEXTHOOKPROC lpWndtextHook;
  2618.                             // このtextのwndprocTextをフック
  2619.                             // fWndtextHookTxpcodeならマクロでフック
  2620.     WNDTEXTHOOKPROC lpWndbaseHook;
  2621.                             // このtextのwndprocBaseをフック
  2622.                             // fWndbaseHookTxpcodeならマクロでフック
  2623. */
  2624. #endif
  2625.     // walk
  2626.     IFILE curwalkstart;
  2627.     int lywalkstart;
  2628.     FBOOL fwalkselectjump;
  2629.     FBOOL fAutoSaveForce;        // !fFrameでもオートセーブを行う?
  2630.     FBOOL fWalking;                //WZ4.00A 981229 
  2631.     HWND hwndAutoSaveProxy;        // 裏テキストの自動保存のためのもの
  2632.                                 // 代理WM_TIMER_TXAUTOSAVE受け取りhwnd
  2633.                                 // NULLならhwndtextを使用
  2634.     // apfu
  2635.     CBOOL fApfuShiftEnter;        // 自動段落体裁 Shift+Enter中?
  2636.     CBOOL fParaIchCountTabOne;    //WCE1.01 980115 txGetParaIch/txJumpParaIchで連続するTABを一文字として数える?
  2637.     CBOOL fParaIchCountTxfNone;    //WCE1.01 980308 txGetParaIch/txJumpParaIchで文字でないCHAR_TXFを数えない
  2638.     // txf
  2639.     TAGNEST* tagnest;            // root
  2640.     TAGNEST* tagnestNext;        // 文字挿入時に付加するタグ
  2641.     FBOOL fTagnestNextClear;    //WCE1.01 980308 次の文字挿入時に
  2642.                                 // 文字装飾をクリアして文字を挿入する。
  2643.     IFILE adrInsertPre;            //WCE1.01 980308 
  2644.     CBOOL fTxfDirect;            // txRight etcでCHAR_TXFを直接一文字として扱うか?
  2645.                                 // 普段は0にしておくこと
  2646.     FBOOL fGetCharBytes;        // txGetCharBytesモード?
  2647.     IFILE texttop;                //WCE1.01 980228 テキストの先頭IFILE
  2648.     IFILE ifileTmlBody;            //WZ3.90H 980923 TMLの本文先頭IFILE
  2649.                                 // 通常はtexttopと等しい
  2650.                                 // 範囲内印刷時はtexttopを範囲の先頭にセットするので、
  2651.                                 // この場合に、ifileTmlBody <= texttopにセットされる。
  2652.     // 罫線
  2653.     FBOOL fTableKeisen;            // 内部用 罫線表mode?
  2654.     FBOOL fTableProperty;        // 表のプロパティダイアログ表示中
  2655.     // disp
  2656.     FBOOL fDispParse;            // 構文解析による字句の色分け表示を行う?
  2657.     FBOOL fDispColoring;        // 構文解析以外の色分け表示を行う?    //WZ4.00Ab 990202 new
  2658.     // 箱型選択
  2659.     DWORD wtmBoxDisped;
  2660.     FBOOL fBoxDispNeed;
  2661.     // 印刷
  2662.     LPRINT* lp;                    // 印刷情報コンテキスト
  2663.     mchar szlpstyle[CCHLPSTYLE];// 印刷スタイル名
  2664.     int pvRate;                    // 印刷プレビューの表示レート(1-2000)
  2665.                                 //WZ3.90H 980928 %だと1きざみが大きすぎるので‰に変更
  2666.     int pvRate0;                //WZ3.90H 980921 for 元に戻す
  2667.     IFILE adrFlushDispDetail;    //WZ3.90I 981106 
  2668.     WORD flpPreview:1;            // 印刷プレビュー中?
  2669.     WORD fDispDetail:1;            //WZ3.90I 981106 詳細表示?これがTRUEなら、flpPreviewもTRUEであること。
  2670.     WORD fFlushDispDetail:1;    //WZ3.90I 981106
  2671.     // html
  2672.     BBOOL fHtmlDispReduceTag;    //WZ3.90I 981027 HTMLのタグの縮小表示
  2673.     BBOOL fHtmlDispReduceAmp;    //WZ3.90I 981027 HTMLの文字参照の縮小表示
  2674.     BBOOL fHtmlTableTml;        //WZ3.90I 981027 表を解釈中?
  2675.     CBOOL fHtmlTmlConverting;    //WZ3.90O 981203 TML<->HTML変換中?
  2676.     HTMLATR* htmlatr;                //WZ3.90I 981029 
  2677. //##TMLファイルの埋め込み設定専用
  2678. //通常ファイルでは使用頻度が低いし、それにしては設定サイズが大きいため。
  2679.     //PWZ2BETA0.3 980514 「名前を付けて保存」の初期値
  2680.     mchar szFilenameSaveAs[CCHWORD];    // 拡張子まで指定した場合はその名前で保存
  2681.                                         // "*.拡張子"の場合はファイル名はそのままで
  2682.     BYTE modeSaveAs;
  2683.         #define MODE_SAVEAS_THROUGH        0        // そのまま
  2684.         #define MODE_SAVEAS_PLAINTEXT    1        // プレーンテキストに変換して保存
  2685.         #define MODE_SAVEAS_LFTEXT        2        // 改行付きテキストに変換して保存
  2686.         #define MODE_SAVEAS_WORD        3        //PWZ2BETA0.5 980614 ワープロ用テキストに変換して保存
  2687.         #define MODE_SAVEAS_LFTEXT_TEMPLATE    99    // for WZ MAIL TEMPLATE
  2688. //## 現在のユーザ設定(ファイルに保存されない)
  2689.     mchar szcfg[CCHSTYLENAME];    //WZ3.90I 981028 現在使用している設定の名前
  2690.                                 //WZ3.90I 981028 同じ拡張子で異なる設定を利用可能にした。
  2691.                                 // 空なら、拡張子の設定を使用
  2692.     BBOOL fAppendEof;            // EOFコードを付加するかどうか?
  2693.                                 //WZ3.90J 981110 WZ3.0とは意味が異なる。
  2694.                                 // 0:そのまま
  2695.                                 // 1:付加する
  2696.                                 // 2:EOFを取り除く
  2697.     BYTE nlineHeader;            // ページ数計算に入れないヘッダ行数
  2698.     BBOOL fDispFull;            //WZ3.90J 981109 全画面表示?
  2699. //##TEXTの拡張子毎の設定(設定ファイルに保存される)
  2700.     int configExtGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  2701.                                 // アライメントが変わることがあるのを防止
  2702. BYTE configExtTop;                // 0:未初期化,1:初期化済み
  2703.     WORD configWidth;            // (TML埋込)折り返し幅
  2704.     int height;                    // (TML埋込)1ページの行数
  2705.     SIGNED_WORD tabsize;        // (TML埋込)タブカラム数
  2706.     BBOOL fSetWidthByWindow;    // (TML埋込)ウィンドウの幅に合わせて、表示カラム数を自動設定する
  2707.     int cyConfigSpace;            // (TML埋込)行間
  2708.                                 //WCE1.01 980307 cySpace -> cyConfigSpace
  2709.     BBOOL fDispUnder;            // アンダーライン表示
  2710.     BBOOL fDispTab;                // TABの表示
  2711.     BBOOL fDispJspace;            // 全角スペースの表示
  2712.     BBOOL fDispLf;                // CR の表示
  2713.     BBOOL fDispEof;                // EOFの表示
  2714.     BBOOL fDispLine;            // 行番号表示
  2715.     BBOOL fLineD;                // 表示行モード(1)/論理行モード(0)
  2716.     SIGNED_WORD modeImeAtOpen;    // オープン時のIME制御
  2717.         #define ISF_NONE    0
  2718.         #define ISF_OFF        1
  2719.         #define ISF_ON        2
  2720.         #define ISF_ONKANA    3
  2721.     BBOOL modeFreeCursor;        // フリーカーソル OFF(0),ON(1),VZ(2)
  2722.     BBOOL fTabToSpace;            // [TAB]でスペースコードを入力
  2723.     BBOOL modeAutoIndent;        // オートインデント
  2724.         #define AUTOINDENT_NONE        0    // しない
  2725.         #define AUTOINDENT_EXEC        1    // する
  2726.         #define AUTOINDENT_JSPACE    2    // 全角スペースもする
  2727.     BBOOL fJkinsoku;            // (TML埋込)禁則
  2728.         //2.93 禁則を改良
  2729.         #define KINSOKU_OUT_HANG    1    // 追い出し、句読点ぶら下げ
  2730.         #define KINSOKU_OUT            2    // 追い出し、句読点追い出し
  2731.         #define KINSOKU_IN_HANG        3    // 追い込み、句読点も追い込み
  2732.     SIGNED_BYTE lfHeight;        // (TML埋込)フォントサイズ
  2733.     BBOOL fScrollBarV;            // 縦スクロールバー
  2734.     BYTE widthApf;                // 自動整形標準折り返し幅
  2735.     BYTE fConfigApf;            // 自動整形ON?
  2736.     BYTE indentApf;                // 自動整形インデント単位
  2737.     CHARCONVERT charconvert;    // オートコレクト
  2738.     BBOOL fAfn;                    // ファイル名の自動決定
  2739.     mchar szAfn[CCHSWORD];        // 自動決定の方法
  2740.     BYTE nConfigClm;            // (TML埋込)段数
  2741.                                 //WCE1.01 980216 nClm->nConfigClm
  2742.     mchar cszHeadline[CCHWORD];    // (TML埋込)見出し文字列
  2743.                                 // TAB区切りカラム文字列
  2744.     BBOOL modeApfu;                // 体裁認識 (PWZ1.0の段落体裁の自動認識と同じ)
  2745.         #define APFU_ON            1
  2746.         #define APFU_ARTICLESUB    2
  2747.     BBOOL fWordlap;                //WCE0.91 970911 (TML埋込)英字禁則
  2748.     BBOOL fDispStatusbar;        //WCE0.91 970911 ステータスバー
  2749.     BYTE fDispHeadlineBold;        //WCE0.91 970912 見出しを太字で表示
  2750.         //WCE1.01 980119
  2751.         // Bold  mask:0x01(COLORING_BOLD)
  2752.         // Under mask:0x02(COLORING_UNDER)
  2753.         // Color mask:0x04(COLORING_COLOR)
  2754.         #define COLORING_NONE                0
  2755.         #define COLORING_BOLD                1
  2756.         #define COLORING_UNDER                2
  2757.         #define COLORING_BOLDUNDER            3
  2758.         #define COLORING_COLOR                4
  2759.         #define COLORING_COLOR_BOLD            5
  2760.         #define COLORING_COLOR_UNDER        6
  2761.         #define COLORING_COLOR_BOLDUNDER    7
  2762.     mchar lfFaceName[LF_FACESIZE];//WCE0.91 970912 (TML埋込)フォント名の指定
  2763.     BBOOL fMyFont;                //WCE0.91 970912 自分専用のフォントを使用?
  2764.     BBOOL lfBold;                //WCE0.91 970912 太字で表示
  2765.     BBOOL fDispRuler;            //WCE0.91 970912 ルーラー表示
  2766.     BYTE nGageRuler;            //WCE0.91 970912 ルーラーゲージ単位(10 か 8)
  2767.     BBOOL fDispControl;            //WCE0.91 970913 制御コードを表示?(折り返しも対応)
  2768.     BBOOL fSubtitleApf;            //WCE0.91 970914 自動整形小見出有効
  2769.     BBOOL modeAcfu;                //WCE0.92 970918 自動文字体裁 認識
  2770.     BBOOL fOpenReadmode;        //WCE0.94 970921 閲覧モードで開く
  2771.     BBOOL fOutlineSplitWindow;    //WCE1.01 980312 アウトライン浮動しない?
  2772.     BYTE lcxOutlineWindow;        //WCE1.01 980312 アウトラインウィンドウの幅
  2773.     FBOOL fTxf;                    //WCE1.01 971106 TRUE:タグを非表示、FALSE:タグを表示
  2774.     FBOOL fTxfEnable;            //WCE1.01 980113 CHAR_TXFを特別に扱う?
  2775.     BYTE modeKeisen;            //WCE1.01 980116 罫線モード
  2776.     //WCE1.01 980119 headline
  2777.     COLORREF rgbHeadline;                // 見出しの色
  2778.     //WCE1.01 980119 keyword
  2779.     BYTE fDispKeyword;                    // COLORING_xxx
  2780.     wchar wszfilenameKeyword[CCHNAME];    // キーワードファイル名
  2781.     mchar szKeyword[30];                // 即席キーワード指定
  2782.     COLORREF rgbKeyword;                // キーワードの色
  2783.     //WCE1.01 980119 検索文字列の色分け
  2784.     BYTE fDispFind;                // 検索後に検索文字列を色分け?
  2785.     COLORREF rgbFind;            // その色
  2786.     //WCE1.01 980126 
  2787.     BBOOL fWidthInfinity;        // 折り返しなし?
  2788.                                 ////WCE1.01 980126  nlineのカウントなど、もっと最適化できる。
  2789.     BBOOL fApfu2;                // 「タブ体裁」?
  2790.     //WCE1.01 980201 世代管理
  2791.     BBOOL fUnlimitUndoBuff;        // アンドゥバッファサイズを制限しない?
  2792.     WORD kbGeneBuffMax;            // 世代管理保持の最大サイズ(KB)
  2793.     BBOOL fGeneEnable;            // 世代管理を行う?
  2794.     //WCE1.01 980202 色分け
  2795.     BBOOL fDispComment;            // コメントを色分け?
  2796.     COLORREF rgbComment;        // コメントの色
  2797.     BBOOL fDispString;            // 文字列を色分け?
  2798.     COLORREF rgbString;            // 文字列の色
  2799.     BBOOL fDispConst;            // 定数を色分け?
  2800.     COLORREF rgbConst;            // 定数
  2801.     BBOOL fDispPreprocessor;    // プリプロセッサを色分け?
  2802.     COLORREF rgbPreprocessor;    // プリプロセッサ
  2803.     BBOOL fDispTag;                // タグを色分け?
  2804.     COLORREF rgbTag;            // タグ
  2805.     COLORREF rgbHottext;        // リンク
  2806.     BYTE filekind;                // ファイルの種類
  2807.         #define TEXT_PLAIN        0    // プレーンテキスト
  2808.         #define TEXT_APFU        1    // 体裁認識テキスト
  2809.         #define TEXT_DOCUMENT    2    // タブ体裁テキスト
  2810.         #define TEXT_WZ            3    // TML文書
  2811.         #define TEXT_HTML        4    // HTML文書
  2812.         #define TEXT_XML        5    // XML文書
  2813.         #define TEXT_TEXT        6    // 任意のテキスト
  2814.         #define TEXT_PROGRAM    7    // プログラムファイル(ワーク)
  2815.         //
  2816.         #define TEXT_C            100    // Cプログラム
  2817.         #define TEXT_PASCAL        101    // pascalプログラム
  2818.         #define TEXT_FORTRAN    102    // fortranプログラム
  2819.         #define TEXT_SCRIPT        103    // スクリプトプログラム
  2820.         #define TEXT_ASM        104    // アセンブラプログラム
  2821.         #define TEXT_BASIC        105    // BASICプログラム
  2822.     BBOOL fDispURL;                // URLの色分け?
  2823.     BBOOL fApfArticleSpace;        //WCE1.01 980206 自動整形で、箇条書きの後に余白を空ける?
  2824.                                 // TXF、体裁認識の箇条書きの体裁と合わせるために付けた
  2825.     mchar szEditor[CCHNAME];    //WCE1.01 980209 エディタ名
  2826.     BBOOL fNoDispHeadlineString;//WCE1.01 980212 見出しを表示しない?
  2827.     BBOOL fApfuTab;                //WCE1.01 980217 段落先頭のタブを字下げとみなす?
  2828.     BBOOL fHeadlineStringStd;    //PWZ2BETA0.3 980509 標準の見出し文字列を使用?
  2829.     BBOOL fDispQuote;            //PWZ2BETA0.3A 980526 引用を色分け?
  2830.     COLORREF rgbQuote;            //PWZ2BETA0.3A 980526 引用の色
  2831.     BBOOL fApfJspaceIndentTop;    //PWZ2BETA0.3A 980526 自動整形で、全角空白は行頭の字下げとみなす?
  2832.     BBOOL fApfScenario;            //PWZ2BETA0.5 980617 シナリオ整形を行う?
  2833.     BYTE lcxScenarioSerifuIndent;//PWZ2BETA0.5 980618 せりふの2行目のインデント数
  2834.                                 // 0を指定すると標準値(2)になります。
  2835.     //WZ3.90E 980804 
  2836.     BYTE modeWs;                // ウィンドウサイズモード
  2837.         #define WS_PAGE            0    // ページサイズで指定
  2838.         #define WS_MAX            1    // 最大化
  2839.         #define WS_DESTEXT        2    // 中身を指定
  2840.     WORD lcxWindowDefault;        // ウィンドウの幅
  2841.     WORD lcyWindowDefault;        // 高さ
  2842.     FBOOL fVertical;            //WZ3.90I 981013 (TML埋込)縦書き?
  2843.     BBOOL fVH;                    //WZ3.90I 981015 縦中横?
  2844.     BBOOL fPageTurn;            //WZ3.90I 981015 ページめくりモード?
  2845.     BBOOL fDispToolbar;            // ツールバー表示        実効値はtxGetDispToolbar()
  2846.     BBOOL fDispFunctionKey;        //WZ3.90I 981107 ファンクションキーの表示
  2847.     BBOOL fDispTitlebar;        //WZ3.90J 981109 タイトルバーを表示?
  2848.     BBOOL fDispMenubar;            //WZ3.90J 981109 メニューバーを表示?
  2849. #if !POCKETWZ
  2850.     // 外部ヘルプ
  2851.     #define HELP_N    2
  2852.     mchar tszhelp[HELP_N][CCHWORD];
  2853. #endif
  2854.     BYTE modeConvertSpaceAtSave;    //WZ3.90J 981109 保存時にタブをスペースに変換
  2855.                         // 0:変換しない
  2856.                         // 1:tab->spc
  2857.                         // 2:spc->tab
  2858.     BYTE modeConvertKanaAtSave;        //WZ3.90J 981109 保存時のカタカナの変換
  2859.                         // 0:変換しない
  2860.                         // 1:半角->全角
  2861.                         // 2:全角->半角
  2862.     BBOOL fDeleteTailSpaceAtSave;    //WZ3.90J 981109 保存時に行末の空白を除去
  2863.     BBOOL fConfigBinedit;        //WZ3.90J 981109 バイナリ編集を開始
  2864.     BBOOL fAutoFormat;            //WZ3.90J 981109 オートフォーマット
  2865.     BYTE cxSpace;                //WZ3.90J 981109 字間
  2866.     BBOOL fDispRightMargin;        //WZ3.90J 981109 右マージンの表示
  2867.     BBOOL fApfuBeamtab;            //WZ3.90K 981114 段落先頭以外のタブを桁揃えする?
  2868.     BBOOL fScrollBarH;            // 横スクロールバー
  2869.                                 //WZ4.00A 981227 横スクロールバーの設定が保存されてなかった。txcマクロの再コンパイル必要。
  2870.         #define SCROLLBAR_OFF    0
  2871.         #define SCROLLBAR_ON    1
  2872.         #define SCROLLBAR_AUTO    2    //2.99D 970329 2:自動を追加
  2873. BYTE configExtEnd;
  2874. //##TEXTの共通の設定(設定ファイルに保存される)
  2875.     int configShareGap;            // これ以前のtextメンバの変更でWORD,DWORDメンバの
  2876.                                 // アライメントが変わることがあるのを防止
  2877. BYTE configShareTop;            // 0:未初期化,1:初期化済み
  2878.     BBOOL fUndoContinue;        // 連続アンドゥ
  2879.                                 // カーソルを移動しないで行った
  2880.                                 // 挿入・削除・BSを一回の操作で一括アンドゥ
  2881.     BBOOL fJumpCursorCenter;    // ジャンプ後カーソルを画面の中央へ
  2882.     BYTE modeDispSearch;        // WINDOWSCE
  2883.         #define DISPSEARCH_STANDARD    0    // 標準(modeEditorによって異なる)
  2884.         #define DISPSEARCH_NORMAL    1    // 通常表示
  2885.         #define DISPSEARCH_REVERSE    2    // 反転表示
  2886.         #define DISPSEARCH_SELECT    3    // 選択
  2887.     BBOOL fSpaceLeft;            // 左端を空ける
  2888.     BYTE modeEditor;            // キー配列
  2889.         #define ME_WIN        0
  2890.         #define ME_VZ        1
  2891.         #define ME_MI        2
  2892.         #define ME_EMACS    3    //PWZ2BETA0.5 980617 new
  2893.     SIGNED_WORD nCursorFaceInsert;    // カーソル形状 (挿入)
  2894.     SIGNED_WORD nCursorFaceWrite;    // カーソル形状 (上書)
  2895.         #define CURSORFACE_STANDARD    0    // 標準(modeEditorによって異なる)
  2896.                                         // WINDOWSCE
  2897.         #define CURSORFACE_WINDOWS    1    // Windows標準
  2898.         #define CURSORFACE_FULL        2    // フル
  2899.         #define CURSORFACE_HALF        3    // 縦半分
  2900.         #define CURSORFACE_HALFHALF    4    // 縦1/4
  2901.         #define CURSORFACE_UNDERBAR    5    // アンダーバー
  2902.     BBOOL fJumpTxPasteEnd;        // VZ - ブロックペースト後カーソル位置更新
  2903.     BBOOL fSearchTitle;            // VZ - タイトルサーチモード有効
  2904.     WORD kbUndoBuffMax;            // アンドゥバッファの最大サイズ(KB)
  2905.     BYTE modeImeComposition;    // 変換中文字列の表示方法
  2906.         #define IMECOMP_WINDOW        0    // 変換ウィンドウで表示
  2907.         #define IMECOMP_CURSOR        1    // カーソル位置に表示
  2908.         #define IMECOMP_CURSORIME    2    // IMEの描画でカーソル位置に表示    //WZ4.00Aa 990110 new
  2909.         #define IMECOMP_INLINE        3    // インラインに表示(未完成)    //WZ4.00Aa 990110 2->3
  2910.     COLORREF rgbText;            // 通常のテキスト
  2911.     COLORREF rgbBack;            // 背景
  2912.     COLORREF rgbBlockText;        // ブロック内の文字色
  2913.     COLORREF rgbBlock;            // ブロック
  2914.     COLORREF rgbNline;            // 行番号
  2915.     COLORREF rgbUnderline;        // アンダーライン
  2916.     COLORREF rgbControl;        // 制御文字の色
  2917.     COLORREF rgbURL;            // URLの色
  2918.     BBOOL fUseMenuKey;            // @<英字キー>,@[特殊キー] 入力可
  2919.     BYTE modeTagJump;            // タグジャンプオプション
  2920.         #define TAGJUMP_STD    0    // 標準
  2921.         #define TAGJUMP_VZ    1    // VZのタグジャンプも認識
  2922.     // 自動保存
  2923.     BBOOL fAutoSave;            // オートセーブを行う?
  2924.     BYTE autosaveMode;            //WCE 970902 WZ3.0とは実際値が違う
  2925.         #define AUTOSAVE_BACKUP            0
  2926.         #define AUTOSAVE_OVERWRITE        1
  2927.     BYTE autosaveAtQuit;
  2928.         #define AUTOSAVE_QUIT_NONE        0
  2929.         #define AUTOSAVE_QUIT_DELETE    1
  2930.         #define AUTOSAVE_QUIT_BACKUP    2
  2931.     BYTE autosaveAtOpen;        //WCE 970902 WZ3.0とは実際値が違う
  2932.         #define AUTOSAVE_OPEN_NONE            0
  2933.         #define AUTOSAVE_OPEN_MESSAGE        1
  2934.         #define AUTOSAVE_OPEN_UIATTENTION    2
  2935.         #define AUTOSAVE_OPEN_UIBACKUP        3
  2936.         #define AUTOSAVE_OPEN_UIREPLACE        4
  2937.         #define AUTOSAVE_OPEN_REPLACE        5
  2938.         #define AUTOSAVE_OPEN_UIBACKUPFORCE    6    //WZ3.90J 981108 new
  2939.     WORD nAutoSaveCmd;            // 編集コマンド数
  2940.     WORD secAutoSaveWait;        // 待ち時間
  2941.     //
  2942.     BBOOL fCursorMoveBySB;        //WCE0.92 970918 スクロールバーでカーソル移動?
  2943.     BYTE modeKeyClip;            // SHIFT+矢印での選択モード
  2944.         #define MC_CUA    0        // Windows準拠
  2945.         #define MC_WZ    1        // 開始方向感応
  2946.         #define MC_VZ    2        // 方向感応(VZライク)
  2947.     BYTE modeMouseClip;            // マウスでの選択モード
  2948.     BBOOL modeUseTextstack;        //WCE0.93 970920 テキストスタックを使うか?
  2949.         #define TEXTSTACK_OFF        0
  2950.         #define TEXTSTACK_ON        1
  2951.         #define TEXTSTACK_ON_AT_VZ    2
  2952.     SIGNED_BYTE nDispFileHist;    //WCE1.01 980203 メニューヒストリ表示数(0..70)
  2953.     BBOOL fNoClmMove;            //WCE1.01 980312 ←→で段の移動をしない
  2954.     BYTE modeRe;                //WZ3.90H 980908 正規表現の動作モード
  2955.         #define MODERE_WZ        0
  2956.         #define MODERE_VWXW        1
  2957.         #define MODERE_VWXWEX    2
  2958.     BBOOL fDispPathFull;        //WZ3.90I 981103 ファイル名をフルパスで表示?
  2959.     BBOOL fClipboardNoSelect;    //WZ3.90I 981103 選択されてないときもコピー、カットする?
  2960.     BBOOL fHalfPage;            //WZ3.90I 981103 PAGEUP/PAGEDOWN半画面?
  2961.     BBOOL fSetLocateByMouseFocus; //WZ3.90I 981103 アクティブ時に、クリック位置に移動する
  2962.     BBOOL fOutlineSplitLeft;    //WZ3.90I 981103 アウトラインを左側に表示?
  2963.     BBOOL fDispCharcode;        //WZ3.90J 981107 文字コードの表示?
  2964. #if !WINDOWSCE
  2965.     //WZ3.90J 981108 バックアップ
  2966.     BBOOL fBackup;                // バックアップファイルの作成
  2967.     mchar szBackup[CCHWORD];    // バックアップ作成フォルダ
  2968. #endif
  2969.     BBOOL fCursorNoLf;            //WZ3.90J 981109 カーソル横移動で行をまたがらない
  2970.     BBOOL fTxkeyVertical;        //WZ3.90J 981109 縦書き時にtxkeyUp,Down,Left,Rightの縦横を入れ替え
  2971.     BBOOL modeMouseHide;        //WZ3.90J 981109 マウスカーソルを消すかどうか?
  2972.         #define MOUSEHIDE_CHAR    0    // 文字入力で消す
  2973.         #define MOUSEHIDE_NONE    1    // 消さない
  2974.         #define MOUSEHIDE_KEY    2    // キー入力で消す
  2975.     BBOOL modeMouseFace;        //WZ3.90J 981109 マウスカーソルの形状 1:arrow,0:Ibeam
  2976.     BYTE nSpaceTopH;            //WZ3.90J 981109 横書き時、上端を空けるドット数
  2977.     BYTE nSpaceTopV;            //WZ3.90J 981109 縦書き時、右端と左端を空けるドット数
  2978.     BBOOL fConfirmNewFile;        //WZ3.90J 981109 新規ファイルの確認
  2979.     //WZ3.90J 981110 スクロールの加速
  2980.     BYTE nKeyScrollAccStart;    // 加速開始行数
  2981.     BYTE nKeyScrollAcc;            // 加速中の一度にスクロールする行数
  2982.     BYTE nCursorScrollH;        // 左右のスクロールを何文字毎に行うか
  2983.                                 //WZ3.90J 981110 設定ファイルに保存するようにした
  2984.     //WZ3.90J 981110 自動スクロール
  2985.     BYTE iScrollSpeed;            // スムーススクロール速度 (0..9)
  2986.     BBOOL fVzEs;                // txJumpScreenTop,txJumpScreenEnd 2回でスムーススクロール
  2987.     WORD mbCheckFilesize;        //WZ3.90K 981112 これ以上のファイルを開くときは確認ダイアログを出す
  2988. #if !WINDOWSCE
  2989.     //WZ3.90O 981202 IME変換文字の色を指定できるようにした。テキストと背景色が同じなら規定の色を使う。
  2990.     COLORREF rgbImeText;        // IME変換文字のテキスト
  2991.     COLORREF rgbImeBack;        // IME変換文字の背景。
  2992.     COLORREF rgbImeHiText;        // 注目中のIME変換文字のテキスト
  2993.     COLORREF rgbImeHiBack;        // 注目中のIME変換文字の背景
  2994. #endif
  2995.     BBOOL fClipboardNoDD;        //WZ3.90O 981204 D&Dでカットアンドペーストしない?
  2996. #if !WINDOWSCE
  2997.     BBOOL fNoSaveWindowPos;        // ウィンドウ位置をセーブしない    //WZ4.00Ab 990203 new
  2998.     BBOOL fNoSaveEditContext;    // カーソル位置をセーブしない    //WZ4.00Ab 990203 new
  2999. #endif
  3000. BYTE configShareEnd;
  3001. };
  3002.  
  3003. #define SIZE_TXCONFIGEXT        (&text1->configExtEnd - &text1->configExtTop)
  3004. #define SIZE_TXCONFIGSHARE        (&text1->configShareEnd - &text1->configShareTop)
  3005. #define SIZE_CONFIGSHARE        (&sh->configEnd - &sh->configTop)
  3006. #define SIZE_PERMANENT            (&sh->permanentEnd - &sh->permanentTop)
  3007.  
  3008. //##macro functions
  3009. #define LoadCurAtr(text)        
  3010. #define txGetApfu(text)                (text->modeApfu || text->fApfu2 || text->fApfuBeamtab || text->fApfuTab)    //WZ3.90L 981115 fApfuBeamtabとfApfuTabを追加
  3011. #define txGetUseTextstack(text)        ((text->modeUseTextstack == TEXTSTACK_ON) || (text->modeUseTextstack == TEXTSTACK_ON_AT_VZ && text->modeEditor == ME_VZ))
  3012. #define txGetLcySmlower(text)        (text->lcySmlower + text->fAddSmlower)
  3013. //#define txGetDispSearch(text)            (text->modeDispSearch != DISPSEARCH_NORMAL)
  3014. #define txGetDispSearch(text)            (!(text->modeDispSearch == DISPSEARCH_NORMAL || (text->modeDispSearch == 0 && text->modeEditor == ME_VZ)))    //WZ3.90P 981204 VZの見つけた文字の表示は「通常表示」に変更した。
  3015. #define txGetNoReplaceSelSearch(text)    (text->modeDispSearch == DISPSEARCH_REVERSE || (text->modeDispSearch == 0 && text->modeEditor != ME_WIN))
  3016. #define hwndtextIsTxwsText(hwnd)    (GetWindowLong(hwnd,GWL_STYLE) & TXWS_TEXT)
  3017. #define txGetMultiClmTextmode(text)    (text->nClm >= 2)    // テキストモード専用
  3018. #define txGetViewmode(text)            (text->fSemiViewMode || text->fEditViewMode)
  3019. #define txGetEditable(text)            (text->fEditable && !text->fReadMode)    //WCE1.01 980426 
  3020. #define txGetLineD(text)            (text->fLineD || text->fBinedit)
  3021. #define txGetDispLineNo(text)        (IsAtPrint(text) ? text->lp->fDispLineNo : text->fDispLine)
  3022. #define txGetPageTurnLp(text)        (text->hdcPrinter)    // 印刷/印刷プレビュー時で、ページめくりモード?
  3023. #define txGetPageTurn(text)            (text->fPageTurn && text->height && !text->hdcPrinter)    // 通常時で、ページめくりモード?
  3024. #define xToClient(text,x)            (text->cxBase + text->xbase + x)
  3025. #define xToClientEx(text,x,cxBase)    (cxBase + text->xbase + x)
  3026. #define txGetCySpace(text)            (text->cySpace)
  3027. #if WZFUNC_PRINT
  3028.     #define IsAtPrint(text)            (text->hdcPrinter)    // 印刷プレビューまたは印刷時
  3029.     #define txGetPrinting(text)        (text->hdcPrinter && !text->flpPreview)    // 印刷中?
  3030. #else
  3031.     #define IsAtPrint(text)            (FALSE)
  3032.     #define txGetPrinting(text)        (FALSE)
  3033. #endif
  3034. #define txGetProp(text)                (text->lfEditProp || text->hdcPrinter)    // プロポーショナルフォントの可能性。
  3035. #define txGetTexttopEnable(text)    (text->fTxf || text->mailedit)    //WCE1.01 980329 
  3036. #define txGetConfigtextValid(text)    (text->fConfigtext && text->szcfg[0] == 0)    //WZ3.90I 981028 埋め込み設定が有効かどうか返す
  3037. #define txGetOriginalCaret(text)    (text->fOriginalCaret)
  3038. #define txGetCurNpara(text)            (text->fScrollSB ? text->nparaSB : text->npara)    //WZ3.90L 981123 WZ FILERでスクロールバースクロールすると矩形枠と選択表示が分離した
  3039. #define CheckOverWrite(text,old)    TRUE
  3040. #define structClear(bodystruct)        (memset(&(bodystruct),0,sizeof(bodystruct)))
  3041. #define __WZ2__    0
  3042. #define __ERR__
  3043. #define __FLAT__
  3044.  
  3045. #define TEXT_BUFF1    0    // buffaddress = offset
  3046. #define TEXT_BUFF2    1    // buffaddress = offset - (text->cur - text->cur0)
  3047. #define TEXT_BUFF0    2    // (offset < text->cury) ? TEXT_BUFF1 : TEXT_BUFF2
  3048.  
  3049. #define CXCONTROLCHAR    8
  3050. // WINDOWSCE cxCharがCXCONTROLCHARより小さいことがある
  3051. #define txGetCxControlChar(text)    (CXCONTROLCHAR <= text->cxChar ? CXCONTROLCHAR : text->cxChar)
  3052.  
  3053. // 標準ヒストリハンドル
  3054. typedef int HHIST;
  3055. #define HIST_NULL        0            // 内部ワーク用
  3056.                                     // WINDOWSCE:使用不可
  3057. #define HIST_FILE        ((HHIST)1)    // ファイル名
  3058. #define HIST_SEARCH        ((HHIST)2)    // 検索文字列
  3059. #define HIST_PATH        ((HHIST)3)    // パス文字列
  3060. #define HIST_STR        ((HHIST)4)    // 最近入力した文字列
  3061. #define HIST_COPY        ((HHIST)5)    // コピーした文字列
  3062. #define HIST_IME        ((HHIST)6)    // IMEに入力した文字列
  3063. #define HIST_DELSTR        ((HHIST)7)    // 削除した文字列
  3064. #define HIST_JUMP        ((HHIST)8)    // カーソル位置    //WZ3.90H 980928 new
  3065. #define MAXHIST                    9    // ハンドルの個数
  3066. #define DEFAULT_SIZEHIST    512        // デフォルト ヒストリサイズ
  3067. #if WINDOWSCE
  3068.     #define SIZEHIST_JUMP    1024
  3069. #else
  3070.     #define SIZEHIST_JUMP    4096
  3071. #endif
  3072.  
  3073. //strblk
  3074. // share構造体に置くためだけに、データ構造を公開する。
  3075. // ユーザーは、メンバを参照してはいけない。
  3076. typedef struct tagSTRBLK {
  3077.     LPBYTE buff;
  3078.     LPBYTE ptail;
  3079.     WORD sizebuff;        // buffのサイズ
  3080.     WORD nstr;            // 文字列数
  3081.     WORD unit;            // 拡大単位
  3082.     FBOOL fShared;
  3083.     FBOOL fCustData;
  3084.     // WORD bit field
  3085.     WORD fSenseCase:1;
  3086.     WORD fstatic:1;        // for internal
  3087.     WORD fAlloc:1;        //2.90 buff is allced by strblk
  3088.     WORD fAllocEx:1;
  3089.     WORD fReverse:1;    // hist用にiを反転させる
  3090.     WORD reserved:11;
  3091.     // WORD bit field end
  3092.     LPBYTE pfound;
  3093. } STRBLK,*HSTRBLK;
  3094. //
  3095. HSTRBLK TXAPI_(409) sbNewStatic(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  3096. HSTRBLK TXAPI_(410) sbNewStaticShare(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  3097. HSTRBLK TXAPI_(411) sbNew(LPBYTE buff,WORD sizebuff);
  3098. HSTRBLK TXAPI_(412) sbNewAlloc(WORD sizebuff);
  3099. HSTRBLK TXAPI_(413) sbNewAllocEx(WORD sizebuff);
  3100. void TXAPI_(414) sbSetBuff(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
  3101. LPVOID TXAPI_(415) sbGetBuff(HSTRBLK sb);
  3102. BOOL TXAPI_(416) sbReverse(HSTRBLK sb);
  3103. void TXAPI_(417) sbSetSenseCase(HSTRBLK sb,BOOL fSet);
  3104. BOOL TXAPI_(418) sbGetSenseCase(HSTRBLK sb);
  3105. void TXAPI_(419) sbSetCustData(HSTRBLK sb,BOOL fSet);
  3106. BOOL TXAPI_(420) sbGetCustData(HSTRBLK sb);
  3107. void TXAPI_(421) sbSetReverse(HSTRBLK sb,BOOL fSet);
  3108. void TXAPI_(422) sbDelAll(HSTRBLK sb);
  3109. BOOL TXAPI_(423) sbObjectLoadMem(HSTRBLK sb,LPVOID p,int len);
  3110. int TXAPI_(424) sbObjectGetSize(HSTRBLK sb);
  3111. BOOL TXAPI_(425) sbObjectSave(HSTRBLK sb,HANDLE hf);
  3112. BOOL TXAPI_(426) sbObjectSaveMem(HSTRBLK sb,LPVOID p);
  3113. mchar* TXAPI_(427) sbAdd(HSTRBLK sb,mchar *szstr);
  3114. mchar* TXAPI_(248) sbAddW(HSTRBLK sb,wchar* szstr);
  3115. int TXAPI_(428) sbiPreSearch(HSTRBLK sb,mchar *szstr);
  3116. int TXAPI_(429) sbiSearch(HSTRBLK sb,mchar *szstr);
  3117. BOOL TXAPI_(430) sbSearch(HSTRBLK sb,mchar *szstr);
  3118. int TXAPI sbiSearchLen(HSTRBLK sb,mchar* szstr,int lch);
  3119. BOOL TXAPI_(431) sbDel(HSTRBLK sb,mchar *szstr);
  3120. mchar* TXAPI_(432) sbAddHist(HSTRBLK sb,mchar *szstr);
  3121. mchar* TXAPI_(433) sbInsert(HSTRBLK sb,int i,mchar* szstr);
  3122. mchar* TXAPI_(434) sbAddHistW(HSTRBLK sb,wchar* szstr);
  3123. mchar* TXAPI_(435) histAdd(HHIST hist,mchar* szstr);
  3124. mchar* TXAPI_(436) histAddW(HHIST hist,wchar* szstr);
  3125. int TXAPI_(437) sbGetCount(HSTRBLK sb);
  3126. int TXAPI_(438) sbReverseI(HSTRBLK sb,int i);
  3127. mchar* TXAPI_(439) sbRead(HSTRBLK sb,int istr);
  3128. #define sbReadHist(sb,i)    sbRead(sb,sbGetCount(sb) - (i) - 1)
  3129. mchar* TXAPI sbReadLast(HSTRBLK sb);
  3130. DWORD TXAPI_(440) sbReadCustdata(HSTRBLK sb,int istr);
  3131. BOOL TXAPI_(441) sbWriteCustdata(HSTRBLK sb,int istr,DWORD CustData);
  3132. BOOL TXAPI_(442) sbDelI(HSTRBLK sb,int i);
  3133. mchar* TXAPI_(443) sbRead2(HSTRBLK sb,int istr,WORD* lchstr);
  3134. int TXAPI_(444) sbiSearchPrev(HSTRBLK sb,mchar *szstr,int istr);
  3135. int TXAPI_(445) sbiSearchNext(HSTRBLK sb,mchar *szstr,int istr);
  3136. BOOL TXAPI_(446) sbDelete(HSTRBLK sb);
  3137. HHIST TXAPI_(447) sbToHist(HSTRBLK sb);
  3138. HSTRBLK TXAPI_(448) sbFromHist(HHIST hist);
  3139. HSTRBLK TXAPI_(449) sbSetup(HSTRBLK sb,mchar** tszItem,DWORD* tIdItem);
  3140. HSTRBLK TXAPI_(450) sbSetupInteger(HSTRBLK sb,int* tItem,int nItem);
  3141.  
  3142. // share
  3143. // このメンバにはポインタは配置できない。
  3144. // ポインタの指すメモリがプロセス毎に異なるため。
  3145. #define MAXOPEN            100        // 最大プロセス数
  3146. typedef struct {
  3147.     HWND hwnd;                // hwndbase
  3148.     WORD fCloseEvery:1;        // CloseEvery実行済み?    //PWZ2BETA0.3 980508 FBOOL->bitfield
  3149.     WORD fMailEditor:1;        //PWZ2BETA0.3 980508 WZ MAIL EDITOR?
  3150. } WZPROCESS;
  3151.  
  3152. #if WINDOWSCE
  3153.     #define MAXPROFILE    20
  3154. #else
  3155.     // Win95では、速度より便利さを求める。沢山覚えてくれていたほうが便利。
  3156.     #define MAXPROFILE    100
  3157. #endif
  3158. typedef struct {
  3159.     WORD lchFilename;                // パス名の長さ
  3160.                                     // 0なら無効レコード
  3161.     wchar wszfilename[CCHPATHNAME];    // パス名
  3162.     // window pos
  3163.     SIGNED_WORD window_left;
  3164.     SIGNED_WORD window_top;
  3165.     SIGNED_WORD window_right;
  3166.     SIGNED_WORD window_bottom;
  3167.     // current position
  3168.     NPARA npara;                    // 行番号
  3169.     WORD ich;                        // 段落先頭からのバイト数
  3170.     BYTE ly;                        // カーソルy座標
  3171.     IFILE address;                    // カーソル位置
  3172.     //
  3173.     WORD editmode:2;                // editmode
  3174.     WORD dispstylemode:2;            // 表示スタイル
  3175.     WORD fOutline:1;                // アウトラインウィンドウ
  3176.     WORD fMaximized:1;                //WZ4.00Ad 990211 最大化で閉じられた
  3177.     WORD freserved:10;
  3178.     IFILE mark[MAXMARK];            // マーク位置
  3179.     IFILE tAdrRefer[MAXREFERPOS];    //WCE0.92 970918 最近参照した位置
  3180.     BYTE iAdrRefer;                    // tAdrRefer参照ポインタ
  3181.     mchar szlpstyle[CCHLPSTYLE];    //WCE1.01 980211 印刷スタイル名
  3182.     RECT rectTempWindow;            //WZ3.90H 980915 一時ウィンドウの位置
  3183.     WORD pvRate;                    //WZ3.90H 980921 印刷プレビューの倍率
  3184.     mchar szcfg[CCHSTYLENAME];        //WZ3.90I 981028 設定名
  3185. } PROFILE;
  3186.  
  3187. #define MAX_KEYMACRO        5
  3188. #define SIZE_KEYMACROBUFF    1024
  3189. typedef struct {
  3190.     mchar szname[CCHNAME];            // 名前
  3191.     WORD len;                        // buff内のデータの長さ
  3192.     BYTE buff[SIZE_KEYMACROBUFF];    // buff
  3193. } KEYMACRO;
  3194.  
  3195. #define DIRECTORYATR_N    3
  3196. typedef struct {
  3197.     mchar cvszDirectory[CCHPATHNAME];    // パス列
  3198.     BYTE kc;                            // 漢字コード
  3199.     BYTE cr;                            // 改行コード
  3200. } DIRECTORYATR;
  3201.  
  3202. #if WINDOWSCE
  3203.     #define wszShareId        L"PWZ20_Mem"    // __VERSION__
  3204. #else
  3205.     #define wszShareId        L"WZ40_Mem"        // __VERSION__
  3206. #endif
  3207.  
  3208. typedef struct tagSHARE {
  3209. //##SHARE:基本コンテキスト
  3210.     int nOpen;                        // 起動中の表PWZ Editorウィンドウ数
  3211.                                     // PWZアプリケーション(Filer,Grep,etc)は除く
  3212.     WZPROCESS tWzprocess[MAXOPEN];    //1.99C 起動中の表PWZ Editorウィンドウのモード
  3213.                                     // 起動された順序で入っている
  3214.                                     // 有効な要素は、[0]から[nOpen-1]まで
  3215.                                     // PWZアプリケーション(Filer,Grep,etc)は除く
  3216.     int nOpenAp;                    // 起動中のPWZアプリケーション(Filer,Grep,etc)
  3217.                                     // の数
  3218.     TX textConfig;                    // 設定データを保持するtext
  3219.                                     // shared text
  3220.     BYTE reservedSC[4];                // 4バイトは確保しておくこと!
  3221.     WORD sizehist[MAXHIST];            // ヒストリバッファのサイズを指定(デフォルト:512)
  3222.     STRBLK hist[MAXHIST];            // ヒストリ
  3223.                                     // 複数のインスタンスで共有するので、
  3224.                                     // ヒストリ用のHSTRBLKの実体は、shareで定義する。
  3225.                                     // shareで定義しないと、ヒストリ用のHSTRBLKは
  3226.                                     // インスタンス毎に持たれてしまい、異常動作する
  3227.     BYTE buffhist[9728+SIZEHIST_JUMP];// データバッファ
  3228.     PROFILE tProfile[MAXPROFILE];    // プロファイル
  3229.                                     // 最近アクセスされたデータ順
  3230.     int nProfile;                    // 現在のプロファイル数
  3231.     KEYMACRO tKeymacro[MAX_KEYMACRO];// キーボードマクロ
  3232. //##SHARE:現在の状態
  3233.     FBOOL fMemoAdding;                // メモに追加中?
  3234.     HWND hwndMemo;                    // メモのhwndbase
  3235.     mchar szMemoAddCaption[CCHWORD];// 次にメモに追加するキャプション
  3236.                                     // NULLならデフォルト("クリップボード")
  3237.     HWND hwndFiler;                    // forkPwzFilerSingle用
  3238.     HWND hwndGrep;                    // forkPwzGrepSingle用
  3239.     HWND hwndMailer;                // forkPwzMailSingle用
  3240.     HWND hwndTerm;                    // forkPwzTermSingle用
  3241.     HWND hwndIcon;                    // WZ Iconオープン中?
  3242.     HWND hwndHelp;                    // WZ Helpオープン中?
  3243.     FBOOL fMacroRec;                // KEYMACRO記録中
  3244.     FBOOL fMacroPlay;                // 再生中
  3245.     LPBYTE pMacroCur;                // 記録/再生ポインタ
  3246.     LPBYTE pMacroEnd;                // 記録/再生終了位置
  3247.     LPBYTE pMacroStr;                // 前回のコマンドがIDM_OVERWRITESTR,IDM_INSERTSTR
  3248.                                     // なら、その位置
  3249.     int fClip;                        // WZがクリップボードにペーストしたテキストデータ
  3250.                                     // の範囲選択モードを保持
  3251.     FBOOL fClipTxfEnable;            //WZ3.90I 981105 クリップボードにコピーしたデータにTXFタグが入っている可能性がある?
  3252.     FBOOL fStatprintfToMailer;        //PWZ2BETA0.3 980525 statprintfをhwndMailerに出力?
  3253.     #if !WINDOWSCE
  3254.     BYTE modeSplit;                    //WZ3.90H 980913 現在のウィンドウ分割
  3255.                                     // 画面分割モード('U'/'C'/'V'/'H'),初期値0
  3256.     #endif
  3257.     BYTE pagingmode;                // ページングモード('S','C','P',' ')
  3258.                                     //WZ3.90H 980927 ページングモードは以前textにあったが、全テキストで共有するため(VZではこうなっている)にSHAREに移した
  3259.     UINT idmRegisterShare;            //WZ3.90I 981102 for idmRegisterShareで登録したIDMは全WZで共通。
  3260.     FBOOL fDragDroping;                //WZ3.90I 981104 D&D中?
  3261.     int nDirAtr;                    //WZ3.90J 981110 DIRECTORYATRの数
  3262.     DIRECTORYATR tDirAtr[DIRECTORYATR_N];    //WZ3.90J 981110 フォルダ毎の漢字コード、改行コード指定。"folder.cfg"からロードするが、書き込みはしない。
  3263.     WORD fSpeak:1;                //WZ3.90L 981117 音声化?
  3264.     WORD fEndSessioned:1;        //WZ4.00Ac 990205 new
  3265.     SEARCH_PACKET search;        //WZ4.00Aa 990108 現在の検索・置換文字列。高速オープン以外でも検索文字列を共有できるようにした。
  3266. // 現在のネットワークの状態
  3267.     BYTE env_network;            // ネットワーク?
  3268.     UINT fSpecUserName:1;        // ユーザ名が指定された?
  3269.     UINT fReservedNet:15;        //
  3270.     mchar szUserName[30];        // 現在のユーザ名
  3271.                                 // szUserName[0] != 0なら、ユーザ毎に設定保存されます。
  3272.                                 // 次のファイルがユーザ毎に、wzディレクトリの
  3273.                                 // ユーザ名サブディレクトリの下に作られます
  3274.                                 //  wz.key,wz.mnu,wz.bar
  3275.                                 //  wzcfg.cfg,wzprint.cfg
  3276.                                 // 以上のファイルがユーザ名サブディレクトリに存在しない時は
  3277.                                 // ルートのファイルがコピーされて使用されます。
  3278. //    ユーザ設定
  3279.     BYTE configTextShare[256];        // text->configShareの内容
  3280.                                     // ([0] == TRUEなら初期化済み)
  3281.     #if WZFUNC_TEXTCFGBIN
  3282.     BBOOL fConfigChanged;            //WZ3.90N 981201 設定が変更され、まだテキスト設定ファイルには保存されていない。WZFUNC_TEXTCFGBIN用
  3283. //    mchar szConfigChanged[CCHWORD];    //WZ3.90N 981202 fConfigChangedかつszConfigChangedがセットされている場合はszConfigChangedだけをテキスト設定ファイルに更新
  3284.     #endif
  3285. //##SHARE:共通設定(設定ファイルに保存される)
  3286. //    save to cfg file
  3287.     int configGap;                    // これ以前のメンバの変更でWORD,DWORDメンバの
  3288.                                     // アライメントが変わることがあるのを防止
  3289. BYTE configTop;        // 0:未初期化,1:初期化済み
  3290.     mchar szKinsokuTop[300];        // 行頭禁則文字(行の先頭にきてはいけない文字)
  3291.     mchar szKinsokuEnd[200];        // 行末禁則文字(行の末尾にきてはいけない文字)
  3292.     mchar szKinsokuKuten[200];        // 句読点
  3293.     BBOOL fSearchGetText;            // カーソル位置の文字列を取り込んで、検索ダイアログを開く
  3294.     BYTE modeFileOpen;                // ファイルオープンモード
  3295.         #define FILEOPEN_OPEN        0    // プロセス起動オープン
  3296.         #define FILEOPEN_OPENHIGH    1    // 高速オープン
  3297.         #define FILEOPEN_CLOSEOPEN    2    // 閉じてオープン
  3298.         #define FILEOPEN_CLOSEOPENFORCE    99    // 閉じてオープンで保存しますか?を表示しない。//WZ3.90L 981125 
  3299.     BBOOL fEnglishMenubar;            // 英語メニューバー
  3300.     SIGNED_WORD wtmEhWait;            // キャプチャ開始時のウェイト数
  3301.     mchar szQuote[CCHNAME];            // 引用符
  3302.     BBOOL fFilelistCurSelect;        // ファイルリストのカーソル位置を選択表示
  3303.     mchar cszExtBinary[128];        // バイナリファイルの拡張子。';'で区切って複数指定可。
  3304.     BBOOL modeUseMyKey;                // キー定義を"My Key"にする
  3305.         #define MYKEY_ADD    1    // "My Key"を追加
  3306.         #define MYKEY_SET    2    // "My Key"に置き換え
  3307.     BBOOL fWzStay;                    // WZを常駐?
  3308.     BBOOL modeFileShare;            // 排他制御
  3309.         #define FILESHARE_DENY_WRITE    1    // 書き込み禁止
  3310.         #define FILESHARE_EXCLUSIVE        2    // 読み書き禁止
  3311.                                     // 裏テキストは排他制御しない。
  3312.     mchar cszPathText[300];            // 文書パス
  3313.                                     // ';'で区切って複数指定できる
  3314.     SIGNED_BYTE lfHeight;            // (共通)フォントサイズ
  3315.     mchar lfFaceName[LF_FACESIZE];    // (共通)フォント名の指定
  3316.     BBOOL lfBold;                    // (共通)太字で表示
  3317.     BBOOL fComboboxEx;                //WCE0.91 970912 コンボボックスを拡張する
  3318.                                     // ↑、↓の絞り込み機能を追加する
  3319.     mchar szFolderDefault[100];        // 標準フォルダ
  3320.     BBOOL fKcAuto;                    //WCE0.93 970919 漢字コードの自動判別?
  3321.     BYTE iMouseScrollSpeed;            //WCE1.01 980209 マウスドラッグスクロール速度 (0..9)
  3322.     BBOOL fNoCursorBlink;            //WZ3.90H 980913 カーソルを点滅しない? !WINDOWSCEのみ
  3323.     BBOOL fWsWideAtSplit;            //WZ3.90I 981103 上下分割時に、ツールバーを消す? !WINDOWSCEのみ
  3324.     BBOOL fNoUpDownAtClipMouse;        //WZ3.90I 981103 方向キーでWindows範囲選択を抜けるときに範囲の先頭/末尾に移動しない。
  3325.     mchar cszExtText[200];            //WZ3.90I 981103 標準の拡張子。';'で区切って複数指定可。
  3326.     BBOOL fCheckFiletimeOnSave;        //WZ3.90J 981109 保存時にファイルの日付を調べる
  3327.     BBOOL fCheckFiletimeOnActive;    //WZ3.90J 981109 アクティブ時にファイルの日付を調べる
  3328.     BBOOL fCrAuto;                    //WZ3.90J 981109 改行コードの自動判別?
  3329.     BYTE modeOfn;                    //WZ3.90J 981111 オープンダイアログの形状
  3330.         #define OFN_STD            0
  3331.         #define OFN_WIN3        1
  3332.         #define OFN_WZ            2
  3333.         #define OFN_STDSIMPLE    3    // Win標準    //WZ4.00Ab 990203 new
  3334.         #define OFN_VZ            4
  3335.     mchar cszOfnFilter[CCHPATHNAME];//WZ3.90J 981112 GetOpenFileName szFilter
  3336.                                     // 例:"*.c;*.h,*.txt テキストファイル:*.txt"
  3337.     BBOOL fNoIntelliMouse;            //WZ3.90P 981205 WZのインテリマウス機能を使わない
  3338. BYTE configEnd;
  3339. //    permanent 変数
  3340. //    save to hist/profile file
  3341.     int permanentGap;                // これ以前のメンバの変更でWORD,DWORDメンバの
  3342.                                     // アライメントが変わることがあるのを防止
  3343. BYTE permanentTop;
  3344.     BBOOL fFilePreview;                // ファイルプレビュー?
  3345.     CHARCONVERT charconvert;        // 最後に実行した文字の変換内容を記憶
  3346.     NPARA nparaTemplateTarget;        // 慣用句の挿入:前回挿入した位置を記憶
  3347.     BBOOL reserved_1;    //PWZ2BETA0.4 980610 廃止 memo_modeDispDate
  3348.     NPARA reserved_2;    //PWZ2BETA0.4 980610 廃止 memo_nparaTarget
  3349.     // grep
  3350.     BBOOL grep_fSearchSubFolder;
  3351.     BBOOL grep_fNoSearchWindows;
  3352.     BBOOL grep_fNoSearchBinaryFiletype;
  3353.     SEARCHMODE grep_searchmode;
  3354.     BYTE grep_modeDispFind;
  3355.     BBOOL grep_fPreview;
  3356.     // filer
  3357.     BBOOL filer_fDoubleWindow;
  3358.     BBOOL filer_fPreview;
  3359.     mchar filer_szPath1[CCHPATHNAME];
  3360.     mchar filer_szPath2[CCHPATHNAME];
  3361.     // edit
  3362.     BYTE edit_iInsertBrace;            // 前回挿入した括弧番号
  3363.     //
  3364.     BBOOL filer_fDispDatesize;
  3365.     BYTE reserved_3;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolist
  3366.     BYTE reserved_4;    //PWZ2BETA0.4 980610 廃止 memo_lcxMemolistNarrow
  3367.     BYTE filelist_modeSort;            // 
  3368.     BBOOL filer_fEscClose;            // {Esc}で直ぐ閉じる
  3369.     BBOOL filer_fOpenWin;            // {Enter}で関連アプリで起動
  3370.     BYTE edit_iInsertDate;            //WCE0.91 970911 前回挿入した日付記号
  3371.     SIGNED_BYTE filer_lfHeight;            // フォントサイズ
  3372.     mchar filer_lfFaceName[LF_FACESIZE];// フォント名の指定
  3373.     BBOOL filer_lfBold;                    // 太字で表示
  3374.     //WZ3.90G 980905 ウィンドウ位置の保存
  3375.     RECT filer_rect;
  3376.     RECT grep_rect;
  3377.     RECT memo_rect;
  3378.     RECT help_rect;
  3379.     BBOOL help_fContent;
  3380.     BYTE filelist_lfHeight;                //WZ3.90J 981111 
  3381.     BBOOL filelist_fSetWidthByWindow;    //WZ3.90J 981111 
  3382.     BYTE reserved_5;
  3383.     BYTE help_lfHeight;                    //WZ3.90J 981112 
  3384.     BYTE filer_ratePreview;                //WZ3.90L 981123 
  3385.     BYTE grep_ratePreview;                //WZ3.90L 981123 
  3386.     WORD filelist_cyPreviewWindow;        //WZ3.90J 981111 BYTE->WORD
  3387.     BBOOL lp_fNoConfirmProperty;        //WZ3.90P 981206 
  3388.     BYTE reservedPermanent[909];
  3389. BYTE permanentEnd;
  3390. } SHARE;
  3391.  
  3392. #ifdef __TXC__
  3393.     //WZ4.00Aa 990108 TX-CからSHARE(sh)にアクセスできるようにした。
  3394.     SHARE* TXAPI_(898) _shGet(void);
  3395.     #define sh    (_shGet())
  3396. #else
  3397.     extern SHARE* sh;
  3398. #endif
  3399.  
  3400. //##アプリケーションレイヤの設定
  3401. //WZ3.90L 981116 new
  3402. // 設定の読み書きはあまり早くはないが、基本レイヤの設定とは別にしたいので。
  3403.  
  3404. typedef struct {
  3405.     mchar dicpath[CCHPATHNAME];        // 用語統一辞書パス
  3406.     mchar if_path[CCHPATHNAME];        // ファイルの挿入初期パス
  3407.     mchar prj_path[CCHPATHNAME];    // プロジェクトのパス
  3408. // クリッカブルURL
  3409.     mchar url_service[CCHNAME];        // サービス
  3410.     mchar url_topic[CCHNAME];        // トピック
  3411. } CONFIGAPP;
  3412.  
  3413. void configappLoad(CONFIGAPP* config);
  3414. void configappSave(CONFIGAPP* config);
  3415.  
  3416. //## global values
  3417. #ifdef __TXC__
  3418. extern HINSTANCE _hinstance;
  3419. #else
  3420. extern HINSTANCE _hinstance;
  3421. extern TX* text1;    // text1はいつも必ず存在します。
  3422.                     // ただしtxOpenTextされている状態とは限りません。
  3423.                     // hwndbase,hwndtextが存在するとも限りません。
  3424.                     // text1への参照はやむを得ない場合を除いてしないでください。
  3425.                     // textfは廃止されました。
  3426. extern wchar _wszfilenameExe[CCHPATHNAME];    // WZEDITOR.EXEのフルパス名
  3427. extern mchar _szexedir[CCHPATHNAME];        //WZ3.90I 981027 text->szexedirの実体
  3428. extern mchar _szuiwz[];                        //WZ3.90J 981110 UI定義ファイルの名前
  3429. //## internal global values
  3430. extern MSG _msg;        // WINDOWSCE
  3431. extern BYTE _nOpenAp;    // このプロセスで起動中のPWZアプリケーション
  3432. extern struct tagDIALOG * _topModeless;    // モードレスダイアログリスト
  3433. extern BBOOL _fTimeLimit;
  3434. extern mchar _szSearchHeadline[];
  3435. extern BYTE _cyCommandBar;
  3436. extern mchar _cszHeadlineStd[];
  3437. extern IBUFF _ibuffColoringCache;
  3438. extern mchar szMsGossic[];
  3439. extern mchar szMsPGossic[];
  3440. extern mchar szMsMintyo[];
  3441. extern mchar _szPasswordHead[];
  3442. #endif
  3443.  
  3444. //##disp
  3445. IBUFF Disp(TX* text,int yTop,int yEnd,int mode);
  3446. #define DISP_FLUSHLINENO        1
  3447. #define DISP_TYFLUSH            2
  3448. #define DISP_GETCURSCREENEND    3
  3449. #define DISP_SPACEEND            4
  3450. #define DISP_FLUSHALIGN            5    // yTopからyEndのtcxAlignをフラッシュ
  3451. #define DISP_LPRINT                6    //WCE1.01 980216 1ページ分を表示し、lcywindow,tLineatrをセットする
  3452. void caretFlush(TX* text);
  3453. void TXHIGH_THROUGH txSetLyUndisp(TX* text,int ly);
  3454. void txDispFlushClip(tx* text,IFILE cliptopnow,IFILE clipendnow);
  3455. void underlineDraw(tx *text,int ly);
  3456.  
  3457. //## _wcestd.h
  3458. //##file
  3459. #if WINDOWSCE
  3460.     UINT TXAPI_(451) _lread(HANDLE hfile,LPVOID lpBuffer,UINT cbRead);
  3461.     UINT TXAPI_(452) _lwrite(HANDLE hfile,LPVOID lpBuffer,UINT cbWrite);
  3462.     LONG TXAPI_(453) _llseek(HANDLE hfile,LONG lOffset,int nOrigin);
  3463. #endif
  3464. #define _llseekTop(hf)            _llseek(hf,0,SEEK_SET)
  3465. #define _llseekSet(hf,ifile)    _llseek(hf,ifile,SEEK_SET)
  3466. #define _llseekEnd(hf)            _llseek(hf,0,SEEK_END)
  3467. #define _llseekCur(hf)            _llseek(hf,0,SEEK_CUR)
  3468. BOOL _lreadPara(HANDLE hf,mchar* buff,int cch);
  3469. BOOL _lreadParaContent(HANDLE hf,mchar* buff,int cch);
  3470. BOOL _llseekLf(HANDLE hf);
  3471. void _lcloseex(HANDLE hfile);
  3472. #define _lclose(h)    _lcloseex(h)
  3473. BOOL _lwriteString(HANDLE hf,mchar* szstr);
  3474. BOOL _lwriteStringWtoA(HANDLE hf,wchar* wszstr);
  3475. BOOL _lwriteStringInt(HANDLE hf,int num);
  3476. BOOL _lwriteStringReturn(HANDLE hf,mchar* szstr);
  3477. BOOL _lwriteStringSpace(HANDLE hf,mchar* szstr);
  3478. BOOL _lwritef(HANDLE hf,mchar* szformat,...);
  3479. BOOL _lwriteReturn(HANDLE hf);
  3480. BOOL _lwriteFromFile(HANDLE hf,HANDLE hfSrc,IFILE size);
  3481. BOOL hfLastIsReturn(HANDLE hf);
  3482. BOOL hfLastSetReturn(HANDLE hf);
  3483. BOOL TXAPI_(454) _lreduce(HANDLE hf,IFILE cbReduce);
  3484. BOOL TXAPI_(455) fileIsReadonlyW(wchar* szfilename);
  3485. BOOL TXAPI_(456) TXAPIBASE fileIsExistW(wchar *_szfilename);
  3486. BOOL TXAPI_(457) TXAPIBASE fileIsExist(mchar *szfilename);
  3487. BOOL TXAPI_(458) filetimeFromFileNameW(FILETIME* filetime,wchar* szfilename);
  3488. #define FILE_SHARE_READWRITE    (FILE_SHARE_READ|FILE_SHARE_WRITE)
  3489. HANDLE _lopenex(wchar* wszfilename,DWORD fdwAccess,DWORD fdwShareMode);
  3490. HANDLE _lopenex_A(mchar* szfilename,DWORD fdwAccess,DWORD fdwShareMode);
  3491. HANDLE _lopenAlways(wchar* wszfilename,DWORD fdwShareMode);
  3492. HANDLE _lcreatex(wchar* wszfilename,DWORD fdwShareMode);
  3493. HANDLE _lcreatex_A(mchar* szfilename,DWORD fdwShareMode);
  3494. HANDLE _lcreatexNew(wchar* wszfilename,DWORD fdwShareMode);
  3495. #ifdef UNICODE
  3496. HANDLE CreateFile_A(LPCSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  3497. HANDLE LoadLibrary_A(mchar* szfilename);
  3498. FARPROC myGetProcAddress_A(HINSTANCE hinstance,mchar* szFunction);
  3499. #else
  3500. HANDLE CreateFile_W(LPCWSTR lpszName,DWORD fdwAccess,DWORD fdwShareMode,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwCreate,DWORD fdwAttrsAndFlags,HANDLE hTemplateFile);
  3501. BOOL CopyFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst,BOOL fFailIfExists);
  3502. BOOL MoveFile_W(LPCWSTR lpszSrc,LPCWSTR lpszDst);
  3503. BOOL DeleteFile_W(LPCWSTR lpszFileName);
  3504. BOOL SetFileAttributes_W(LPCWSTR lpszFileName,DWORD dwFileAttributes);
  3505. BOOL RemoveDirectory_W(LPCWSTR wszDir);
  3506. BOOL CreateDirectory_W(LPCWSTR lpszPath,LPSECURITY_ATTRIBUTES lpsa);
  3507. HANDLE CreateFileMapping_W(HANDLE hFile,LPSECURITY_ATTRIBUTES lpsa,DWORD fdwProtect,DWORD dwMaximumSizeHigh,DWORD dwMaximumSizeLow,LPCWSTR lpszMapName);
  3508. HANDLE CreateMutex_W(LPSECURITY_ATTRIBUTES lpsa,BOOL fInitialOwner,LPCWSTR lpszMutexName);
  3509. #ifndef __TXC__
  3510. BOOL ShellExecuteEx_W(SHELLEXECUTEINFOW* info);
  3511. #endif
  3512. HANDLE LoadLibrary_W(wchar* wszfilename);
  3513. #endif
  3514. #define FILEHANDLE_ERROR    ((HANDLE)0xFFFFFFFF)    // replace HFILE_ERROR
  3515.                                                     // 0じゃない!
  3516. #define SEEK_SET        0
  3517. #define SEEK_CUR        1
  3518. #define SEEK_END        2
  3519. LRESULT TXAPI_(459) SendMessageOther(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
  3520. //##memory
  3521. LPVOID TXAPI_(880) memAlloc(DWORD size);
  3522. LPVOID TXAPI_(881) memAllocZeroinit(DWORD size);
  3523. void TXAPI_(882) memFree(LPVOID p);
  3524. LPVOID memResize(LPVOID p,DWORD size);
  3525. #if WINDOWSCE    // SH3,MIPSではBYTE境界はWORDアクセスできない
  3526.     WORD lpReadWord(LPVOID p);
  3527.     SIGNED_WORD lpReadSignedWord(LPVOID p);
  3528.     void lpWriteWord(LPVOID p,WORD value);
  3529.     DWORD lpReadDword(LPVOID p);
  3530.     SIGNED_DWORD lpReadSignedDword(LPVOID p);
  3531.     void lpWriteDword(LPVOID p,DWORD value);
  3532. #else
  3533.     #define lpReadWord(p)            (*((WORD*)(p)))
  3534.     #define lpReadSignedWord(p)        (*((SIGNED_WORD*)(p)))
  3535.     #define lpWriteWord(p,value)    (*((WORD*)(p)) = value)
  3536.     #define lpReadDword(p)            (*((DWORD*)(p)))
  3537.     #define lpReadSignedDword(p)    (*((SIGNED_DWORD*)(p)))
  3538.     #define lpWriteDword(p,value)    (*((DWORD*)(p)) = value)
  3539. #endif
  3540. #define lpReadByte(p)            (*((BYTE*)(p)))
  3541. #define lpWriteByte(p,value)    (*((BYTE*)(p)) = value)
  3542. //##str
  3543. mchar* TXAPI strnext(mchar* szstr);
  3544. BOOL issepastr(mchar* str);
  3545. mchar* sepastrGetIndexStr(mchar* str,int i,int* pLch);
  3546. mchar* csszGetInclude(mchar* cssz,mchar* szName);
  3547. mchar* csszGetWordTop(mchar* csz);
  3548. int csszGetWordLen(mchar* cssz);
  3549. mchar* csstrGetInclude(mchar* csstr,int size,mchar* szName);
  3550. int cvszGetWordLen(mchar* csz);
  3551. mchar* cvszGetWordTop(mchar* csz);
  3552. mchar* strGetTailSpacePrev(mchar* sz,mchar* szEnd);
  3553. void strDeleteTailSpace(mchar* sz);
  3554. void strDeleteTailSpaceTab(mchar* sz);
  3555. #if WINDOWSCE
  3556. mchar* strnset(mchar* s,int ch,size_t n);
  3557. mchar* strupr(mchar* s);
  3558. mchar* strlwr(mchar* s);
  3559. #endif
  3560. int _cdecl TXAPI_(99) sprintf(mchar* szdst,mchar* szformat,...);
  3561. void sprintSize(mchar* dst,IFILE size);
  3562. void sprintDate(mchar* szdst);
  3563. void sprintfDate(mchar szdst[CCHWORD],mchar* szDateFormat,TX* text);
  3564. void sprintFiletime(mchar* szbuff,FILETIME* filetime);
  3565. void sprintFiletimeDate(mchar* szbuff,FILETIME* filetime);
  3566. void sprintFiletimeTime(mchar* szbuff,FILETIME* filetime);
  3567. void sprintSizeKB(mchar* szbuff,IFILE size);
  3568. int TXAPI_(460) formstr(mchar *str);
  3569. #ifndef __OLECPP__
  3570. mchar* itoa(int value,mchar* string,int radix);
  3571. #endif
  3572. mchar* itoaZ(int value,mchar* string,int radix);
  3573. int TXAPI_(100) wstrtostr(wchar* src,int lchSrc,mchar* dst,int cchDst);
  3574. int TXAPI_(101) strtowstr(mchar* src,int lchSrc,wchar* dst,int sizeDst);
  3575. int TXAPI_(888) strtowstrsz(mchar* src,int lchSrc,wchar* dst,int cchDst);
  3576. int TXAPI_(889) wstrtostrsz(wchar* src,int lchSrc,mchar* dst,int cchDst);
  3577. int TXAPI_(886) pathtowpath(mchar* szpath,wchar* wszpath);
  3578. int TXAPI_(887) wpathtopath(wchar* wszpath,mchar* szpath);
  3579. wchar* TXAPI_(102) TXAPIBASE wstrcpylen(wchar *dst,wchar *src,int len);
  3580. wchar* TXAPI_(103) wstrcpylenmax(wchar *dst,wchar *src,int len,int lcxmax);
  3581. wchar * TXAPI_(104) wstrcpymax(wchar *szdst,wchar *szsrc,int lchmax);
  3582. int TXAPI_(461) formstrex(mchar *str,BOOL fCurWestern);
  3583. int strread(mchar* sz,TXCHAR* ch,IBUFF len);
  3584. wchar* wstristr(wchar* str1,wchar* str2);
  3585. #ifndef __TXC__
  3586.     #if WINDOWSCE
  3587.         //WZ4.00Ac 990206 A-60でpermanentを含むマクロがコンパイル&実行できない。permanentinitのwcscpyでハングするので、wstrcpyを自分で実装した。
  3588.         wchar* wstrcpy(wchar* dst,wchar* src);
  3589. //        #define wstrcpy        wcscpy
  3590.     #else
  3591.         #define wstrcpy        wcscpy
  3592.     #endif
  3593.     #define wstrlen        wcslen
  3594.     #define wstrcat        wcscat
  3595.     #define wstrstr        wcsstr    //3.90H 980910 
  3596.     #ifdef _WIN32_WCE_EMULATION
  3597.         int wstrcmp(wchar* sz1,wchar* sz2);
  3598.     #else
  3599.         #define wstrcmp        wcscmp
  3600.     #endif
  3601. #endif    // __TXC__
  3602. // for ANSI(!UNICODE) version
  3603. mchar* TXAPI_(904) strdupW(wchar* wsz);
  3604. wchar* TXAPI_(905) wstrdupA(mchar* sz);
  3605. wchar* wstrdupLenA(mchar* sz,int lch);
  3606. wchar* wstrset(wchar* dst,int ch,int lch);
  3607. #ifdef UNICODE
  3608. void ListBox_AddString_A(HWND hctrl,mchar* sz);
  3609. int ListBox_FindStringExact_A(HWND hctrl,int i,mchar* sz);
  3610. void ComboBox_AddString_A(HWND hctrl,mchar* sz);
  3611. int sprintf_A(LPSTR szDst,LPCSTR szFormat,...);
  3612. int vsprintf_A(LPSTR szDst,LPCSTR szFormat,void** arg);
  3613. BOOL TextOut_A(HDC hdc,int x,int y,LPCSTR lpString,int lchString);
  3614. BOOL WINAPI SetWindowText_A(HWND hwnd,LPCSTR lpsz);
  3615. int WINAPI GetWindowText_A(HWND hwnd,LPSTR lpsz,int cchMax);
  3616. BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  3617. BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  3618. #else
  3619. void ListBox_AddString_W(HWND hctrl,wchar* wsz);
  3620. int ListBox_FindStringExact_W(HWND hctrl,int i,wchar* wsz);
  3621. void ComboBox_AddString_W(HWND hctrl,wchar* wsz);
  3622. int sprintf_W(LPWSTR szDst,LPCWSTR szFormat,...);
  3623. int vsprintf_W(LPWSTR szDst,LPCWSTR szFormat,void** arg);
  3624. #ifndef __TXC__
  3625. HANDLE FindFirstFile_W(LPCWSTR wszpath,WIN32_FIND_DATAW* ffd);
  3626. HANDLE FindNextFile_W(HANDLE hFindFile,WIN32_FIND_DATAW* ffd);
  3627. #endif
  3628. BOOL SetWindowText_W(HWND hwnd,LPCWSTR lpsz);
  3629. int GetWindowText_W(HWND hwnd,LPWSTR lpsz,int cchMax);
  3630. BOOL SetDlgItemText_W(HWND hwndDlg,int idControl,LPCWSTR lpsz);
  3631. int GetDlgItemText_W(HWND hwndDlg,int idControl,LPWSTR lpsz,int cchMax);
  3632. #ifndef UNICODE
  3633. 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);
  3634. #endif
  3635. 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);
  3636. #ifdef __TXC__
  3637. WORD TXAPI_(816) RegisterClass_W(LPVOID lpwc);
  3638. #else
  3639. ATOM RegisterClass_W(WNDCLASSW* lpwc);
  3640. #endif
  3641. int GetClassName_W(HWND hwnd,LPWSTR lpClassName,int cchClassName);
  3642. int DrawText_W(HDC hdc,LPCWSTR wszStr,int cchStr,LPRECT lprc,UINT wFormat);
  3643. #endif
  3644. // safety strcpy op.
  3645. // szdstがmcharの配列の場合のみ使用可能。mcharへのポインタの場合は不可能
  3646. #define sstrcpy(szdst,szsrc)            strcpymax(szdst,szsrc,cchof(szdst))
  3647. #define wsstrcpy(szdst,szsrc)            wstrcpymax(szdst,szsrc,wcchof(szdst))
  3648. #define sstrcpylen(szdst,szsrc,lch)        strcpylenmax(szdst,szsrc,lch,cchof(szdst))
  3649. #define wsstrcpylen(szdst,szsrc,lch)    wstrcpylenmax(szdst,szsrc,lch,wcchof(szdst))
  3650. #define sstrcat(szdst,szsrc)            strcpymax(szdst + strlen(szdst),szsrc,cchof(szdst) - strlen(szdst))
  3651. #define wsstrcat(szdst,szsrc)            wstrcpymax(szdst + wstrlen(szdst),szsrc,wcchof(szdst) - wstrlen(szdst))
  3652. #define strcatmax(szdst,szsrc,cch)        strcpymax(szdst + strlen(szdst),szsrc,cch - strlen(szdst))
  3653. #define strcatlenmax(szdst,szsrc,lch,cch) strcpylenmax(szdst + strlen(szdst),szsrc,lch,cch - strlen(szdst))    //WZ3.90M 981129 
  3654. #define wstrcatmax(szdst,szsrc,cch)        wstrcpymax(szdst + wstrlen(szdst),szsrc,cch - wstrlen(szdst))
  3655. #define sstrcatlen(szdst,szsrc,lch)        strcpylenmax(szdst + strlen(szdst),szsrc,lch,cchof(szdst) - strlen(szdst))
  3656. #define wstrsize(szstr)                    ((wstrlen(szstr) + 1) * sizeof(wchar))
  3657. #define wstrlensize(szstr)                (wstrlen(szstr) * sizeof(wchar))
  3658. mchar * TXAPI_(462) strcpymax(mchar *szdst,mchar *szsrc,int lchmax);
  3659. BOOL TXAPI_(463) TXAPIBASE txchIsKanji(TXCHAR c);
  3660. BOOL TXAPI_(464) TXAPIBASE txchIsReturn(TXCHAR c);    // 0x0D0A,0x0A,0x1A
  3661. BOOL txchIsSubtitleIllegal(TXCHAR ch);
  3662. #ifndef __WZRAS__
  3663.     #define txchIsAlpha(c)    (c < 256 && isalpha(c))    //WCE1.01 971229 new
  3664.     #define txchIsAlnum(c)    (c < 256 && isalnum(c))    //WCE1.01 971229 new
  3665.     #define txchIsDigit(c)    (c < 256 && isdigit(c))    //WCE1.01 971229 new
  3666. #endif
  3667. wchar* wstrdup(wchar* wszstr);
  3668. #ifndef __OLECPP__
  3669. mchar* strdup(mchar* szstr);
  3670. #endif
  3671. mchar* TXAPI_(910) strdupLen(mchar* str,int lch);
  3672. mchar* stristrword(mchar *szstr,mchar *szfind);
  3673. mchar* strchrs(mchar *str1,mchar *chrs);
  3674. mchar* strchrlast(mchar *str,WORD c);
  3675. mchar* strchrex(mchar* p,int ch);
  3676. wchar* wstrchrex(wchar* p,int ch);
  3677. BOOL strisidi(mchar* szstr,mchar* szId);
  3678. // 標準のstrstr/strchr/strichrはTXCHARに対応してないので、
  3679. // __strstr/__strchr/__strichrとは動作が異なるので、overrideする
  3680. mchar* __strstr(mchar *str1,mchar *str2);
  3681. #define strstr    __strstr
  3682. mchar* __strchr(mchar *str1,WORD c);
  3683. #define strchr __strchr
  3684. mchar* __strichr(mchar *str1,WORD c);
  3685. #define strichr __strichr
  3686. mchar* __stristr(mchar *str1,mchar *str2);    //WCE1.01B 980615 
  3687. #define stristr __stristr    //WCE1.01B 980615 
  3688. mchar* strchrex(mchar* p,int ch);
  3689. wchar* wstrchrex(wchar* p,int ch);
  3690. mchar* strchrtail(mchar* p,int ch);
  3691. wchar* wstrchrtail(wchar* p,int ch);
  3692. BOOL strismsgheader(mchar* sz);
  3693. mchar* TXAPIBASE strGetNextWordTop(mchar* szStr);
  3694.  
  3695. #ifdef __TXC__
  3696. //##C std libs
  3697.  
  3698. // string
  3699. int _cdecl TXAPI_(105) strlen(mchar *str);
  3700. pmchar _cdecl TXAPI_(106) strcpy(mchar *str1,mchar *str2);
  3701. pmchar _cdecl TXAPI_(107) strncpy(mchar *str1,mchar *str2,size_t len);
  3702. pmchar _cdecl TXAPI_(108) strcat(mchar *str1,mchar *str2);
  3703. pmchar _cdecl TXAPI_(109) strnset(mchar *str,int ch,size_t len);
  3704. int _cdecl TXAPI_(110) strcmp(mchar *str1,mchar *str2);
  3705. int _cdecl TXAPI_(112) strncmp(mchar *str1,mchar *str2,size_t len);
  3706. pmchar _cdecl TXAPI_(114) strstr(mchar *str1,mchar *str2);
  3707. pmchar _cdecl TXAPI_(115) stristr(mchar *str1,mchar *str2);
  3708. pmchar _cdecl TXAPI_(116) stristrword(mchar *str1,mchar *str2);
  3709. pmchar _cdecl TXAPI_(117) strchr(mchar *str1,WORD c);
  3710. pmchar _cdecl TXAPI_(118) strichr(mchar *str1,WORD c);
  3711. pmchar _cdecl TXAPI_(119) strchrs(mchar *str1,mchar *found);
  3712. pmchar _cdecl TXAPI_(120) strupr(mchar *str);
  3713. pmchar _cdecl TXAPI_(121) strlwr(mchar *str);
  3714. long _cdecl TXAPI_(122) atoi(const mchar *str);
  3715. void TXAPI_(123) vsprintf(mchar *szdst,mchar *_format,void *pparam);
  3716.  
  3717. // unicode string
  3718. int _cdecl TXAPI_(775) wstrlen(wchar *str);
  3719. wchar* _cdecl TXAPI_(776) wstrcpy(wchar *str1,wchar *str2);
  3720. wchar* _cdecl TXAPI_(777) wstrcat(wchar *str1,wchar *str2);
  3721. int _cdecl TXAPI_(778) wstrcmp(wchar *str1,wchar *str2);
  3722.  
  3723. // memory
  3724. LPVOID _cdecl TXAPI_(124) memcpy(void *mem1,void *mem2,size_t size);
  3725.     // mem2のsizeブロックを、mem1にコピー
  3726.     // mem1とmem2が重複する場合の動作は未定義
  3727. LPVOID _cdecl TXAPI_(125) memmove(void *mem1,void *mem2,size_t size);
  3728.     // mem2のsizeブロックを、mem1にコピー
  3729.     // mem1とmem2が重複していても正確に動作
  3730. LPVOID _cdecl TXAPI_(126) memset(void *mem1,int c,size_t size);
  3731.     // mem1のsizeバイトを、バイトデータcで埋める。
  3732. int _cdecl TXAPI_(127) memcmp(void *mem1,void *mem2,size_t size);
  3733.     // 2つのメモリブロックの内容を比較
  3734.     // {返り値}mem1がmem2より小さい場合、負の値、
  3735.     // mem1がmem2と等しい場合、0、
  3736.     // mem1がmem2より大きい場合、正の値、を返す
  3737. LPVOID TXAPI_(128) memchr(LPVOID mem,int ch,size_t size);
  3738.     // メモリブロック:mem,サイズ:sizeからchを探す。見つかればポインタを返す
  3739.     // 見つからなければNULLを返す
  3740.     //2.00Bで追加
  3741. LPVOID _cdecl TXAPI_(129) malloc(DWORD size);
  3742.     // sizeバイトのメモリブロックを確保してポインタを返す
  3743. void _cdecl TXAPI_(130) free(LPVOID pmem);
  3744.     // mallocで確保したメモリブロックを解放する
  3745. LPVOID _cdecl TXAPI_(131) realloc(LPVOID pmem,DWORD size);
  3746.     // mallocで確保したメモリブロックのサイズを変更する
  3747.  
  3748. // char
  3749. BOOL TXAPI_(791) isalnum(int c);
  3750. int  TXAPI_(792) toupper(int c);
  3751. int  TXAPI_(484) tolower(int c);
  3752. BOOL TXAPI_(793) isdigit(int c);
  3753. BOOL TXAPI_(794) isupper(int c);
  3754. BOOL TXAPI_(795) islower(int c);
  3755. BOOL TXAPI_(796) isalpha(int c);
  3756. BOOL TXAPI_(797) isspace(int c);
  3757. BOOL TXAPI_(798) iskanji(int c);
  3758. BOOL TXAPI_(799) iskanji2(int c);
  3759. BOOL TXAPI_(800) iskana(int c);
  3760. BOOL TXAPI_(801) isXdigit(int c);
  3761. BOOL TXAPI_(802) IschReturn(int c);
  3762.  
  3763. #else
  3764.  
  3765. extern BYTE _matchword[256];        // __ANSYCODE__
  3766. extern BYTE _matchword2[256];        // __ANSYCODE__
  3767. #define MATCH_WORD        0x01
  3768. #define MATCH_KEYWORD    0x02    //WCE1.01 980202 new
  3769. #define MATCH_KANJI        0x04
  3770. #define MATCH_KANJI2    0x08
  3771. #define MATCH_KANA        0x10
  3772. #define MATCH_DIGIT        0x20
  3773. #define MATCH_UPPER        0x40
  3774. #define MATCH_LOWER        0x80
  3775. //
  3776. #define MATCH2_TXFTAG    0x01
  3777. #define MATCH2_TAGNAME    0x02    // タグ名,アトリビュート名
  3778. #define MATCH2_PARAEND    0x04
  3779. #define MATCH2_RETURN    0x08    //WCE1.01 980202 MATCH->MATCH2
  3780. #define MATCH2_SPACE    0x10    //WCE1.01 980224 
  3781. #define MATCH2_XDIGIT    0x20    //WCE1.01 980224 0-9,A-F
  3782. #define MATCH2_XDIGITI    0x40    //WZ3.90I 981004 0-9,A-F,a-f
  3783. //WCE1.01 980224 isXXX TEXTCHAR/UNICODE(2bytes)対応
  3784. #define IschMatchWord(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_WORD))    // a-zA-Z0-9_$
  3785. #define IschMatchKeyword(c)    ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_WORD|MATCH_KEYWORD)))    // MATCH_WORD + \    //WCE1.01 980202 
  3786. #define IschTxftag(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TXFTAG))    // /#!*
  3787. #define IschTagname(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME))    // a-zA-Z0-9_
  3788. #define h_IschTagname(c)    (_matchword2[((BYTE)(c))] & MATCH2_TAGNAME)    // a-zA-Z0-9_
  3789. #define IschParaend(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_PARAEND))    // CHAR_LF,CHAR_EOF
  3790. //WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  3791. #ifndef __WZRAS__
  3792.     #undef isalnum
  3793.     #undef isdigit
  3794.     #undef isupper
  3795.     #undef islower
  3796.     #undef isalpha
  3797.     #undef isspace
  3798.     #if 1//PWZ2BETA0.4 980610 for マクロでもisalpha etcを使うので
  3799.         BOOL my_isalnum(int c);
  3800.         int  my_toupper(int c);
  3801.         int  my_tolower(int c);
  3802.         BOOL my_isdigit(int c);
  3803.         BOOL my_isupper(int c);
  3804.         BOOL my_islower(int c);
  3805.         BOOL my_isalpha(int c);
  3806.         BOOL my_isspace(int c);
  3807.         BOOL my_isspace_txc(int c);
  3808.         BOOL my_iskanji(int c);
  3809.         BOOL my_iskanji2(int c);
  3810.         BOOL my_iskana(int c);
  3811.         BOOL my_isXdigit(int c);
  3812.         BOOL my_IschReturn(int c);
  3813.         #define isalnum(c)    my_isalnum(c)
  3814.         #define toupper(c)    my_toupper(c)
  3815.         #define tolower(c)    my_tolower(c)    //PWZ2BETA0.4 980610 new
  3816.         #define isdigit(c)    my_isdigit(c)
  3817.         #define isupper(c)    my_isupper(c)
  3818.         #define islower(c)    my_islower(c)
  3819.         #define isalpha(c)    my_isalpha(c)
  3820.         #define isspace(c)    my_isspace(c)
  3821.         #define iskanji(c)    my_iskanji(c)
  3822.         #define iskanji2(c)    my_iskanji2(c)
  3823.         #define iskana(c)    my_iskana(c)
  3824.         #define isXdigit(c)    my_isXdigit(c)
  3825.         #define isXdigiti(c)    my_isXdigiti(c)    //WZ3.90I 981004 
  3826.         #define IschReturn(c)    my_IschReturn(c)
  3827.         #if !__TXC__
  3828.             //WZ4.00Ab 990203 new 高速版 (c>=0x100)の時には対応していない
  3829.             #define h_iskanji(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI)
  3830.             #define h_iskanji2(c)        (_matchword[((BYTE)(c))] & MATCH_KANJI2)
  3831.             #define h_isspace(c)        (_matchword2[((BYTE)(c))] & MATCH2_SPACE)
  3832.         #endif
  3833.     #else
  3834.         #if WINDOWSCE
  3835.             BOOL isalnum(int c);
  3836.             int toupper(int c);
  3837.             BOOL isdigit(int c);
  3838.             BOOL isupper(int c);
  3839.             BOOL islower(int c);
  3840.             BOOL isalpha(int c);
  3841.             BOOL isspace(int c);
  3842.             BOOL iskanji(int c);
  3843.             BOOL iskanji2(int c);
  3844.             BOOL iskana(int c);
  3845.             BOOL isXdigit(int c);
  3846.             BOOL IschReturn(int c);
  3847.         #else
  3848.             #define isalnum(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_DIGIT|MATCH_UPPER|MATCH_LOWER)))
  3849.             #define toupper(c)        (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  3850.             #define isdigit(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  3851.             #define isupper(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_UPPER))
  3852.             #define islower(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER))
  3853.             #define isalpha(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & (MATCH_UPPER|MATCH_LOWER)))
  3854.             #define isspace(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_SPACE))
  3855.             #define iskanji(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI))
  3856.             #define iskanji2(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANJI2))
  3857.             #define iskana(c)        ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_KANA))
  3858.             #define isXdigit(c)        ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_XDIGIT))    //WCE1.01 980226 0-9,A-F
  3859.             #define IschReturn(c)    ((!((c) & 0xFF00)) * (_matchword2[((BYTE)(c))] & MATCH2_RETURN))    // CHAR_CR,CHAR_LF,CHAR_FF,CHAR_EOF
  3860.         #endif
  3861.     #endif
  3862.     //
  3863.     #define txchIsKeisen(ch)    (0x849F <= (ch) && (ch) <= 0x84BE)    // JIS罫線素子か?
  3864.     #define toallower(c)        ((c) | 0x20)
  3865.     #define toalupper(c)        ((c) & 0xDF)
  3866.     #define xdigitToInt(ch)        (((ch) >= 'A') ? ((ch) - 'A' + 10) : ((ch) - '0'))
  3867.     #define xdigitToIntI(ch)    ((toupper(ch) >= 'A') ? (toupper(ch) - 'A' + 10) : ((ch) - '0'))
  3868.     #define intToXdigit(i)        (((i) >= 10) ? ((i) + 'A' - 10) : ((i) + '0'))    //WZ3.90I 981101 
  3869.     #if 1//WCE1.01 980224 TEXTCHAR/UNICODE(2bytes)対応
  3870.         #define wtoupper(c)            (((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_LOWER)) ? (c) & 0xDF : c)
  3871.         #define wisdigit(c)            ((!((c) & 0xFF00)) * (_matchword[((BYTE)(c))] & MATCH_DIGIT))
  3872.     #else
  3873.         #define wtoupper(c)            ((L'a' <= (c) && (c) <= L'z') ? (c - L'a' + L'A') : (c))
  3874.         #define wisdigit(c)            ((c) < 256 && _matchword[((BYTE)(c))] & MATCH_DIGIT)
  3875.     #endif
  3876. #endif
  3877.  
  3878. #endif    // __TXC__
  3879.  
  3880. int TXAPI_(465) wispathsepa(wchar c);
  3881. wchar* TXAPI_(466) wstrGetLast(wchar* szstr);
  3882. int TXAPI_(467) wstricmp(wchar* sz1,wchar* sz2);
  3883. int TXAPI_(468) wstrnicmp(wchar* sz1,wchar* sz2,int lch);
  3884. wchar* TXAPI_(469) wstrchr(wchar* sz,int c);
  3885. wchar* TXAPI_(470) TXAPIBASE wstrGetWordTop(wchar *szStr);
  3886. int TXAPI_(471) TXAPIBASE wstrGetWordLen(wchar* szStr);
  3887. mchar* TXAPIBASE szwordtop(mchar* sz);
  3888. int TXAPIBASE szwordlen(mchar* sz);
  3889. #define watoi(sz)    watol(sz)
  3890. long TXAPI_(472) watol(wchar* sz);
  3891. UINT TXAPI_(473) formcharex(mchar* str,UINT offset);
  3892. int TXAPI_(474) hextoint(mchar *szhex);
  3893. int TXAPI_(475) _hextoint(int c);
  3894. int TXAPI_(476) ispathsepa(mchar c);
  3895. mchar * TXAPI_(477) TXAPIBASE strGetWordTop(mchar* szStr);
  3896. int TXAPI_(478) TXAPIBASE strGetWordLen(mchar* szStr);
  3897. mchar* TXAPI_(845) strGetWord(mchar* szbuff,mchar* szstr);
  3898. int TXAPI strGetLineLen(mchar* szStr);
  3899. int strGetQuoteLen(mchar* szStr);
  3900. mchar * TXAPI_(479) TXAPIBASE strcpylen(mchar *dst,mchar *src,int len);
  3901. mchar * TXAPI_(480) strcpylenmax(mchar *dst,mchar *src,int len,int lcxmax);
  3902. #ifndef __OLECPP__
  3903. int TXAPI_(481) stricmp(mchar* sz1,mchar* sz2);
  3904. int TXAPI_(482) strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  3905. #endif
  3906. mchar* sjis_strupr(mchar* s);
  3907. int sjis_strnicmp(mchar* sz1,mchar* sz2,int maxlen);
  3908. LPVOID TXAPI_(483) zmalloc(int size);
  3909. #ifndef __TXC__
  3910.     #define free(p)    _myfree(p)
  3911. #endif
  3912. void _myfree(LPVOID p);    //WZ3.90H 980906 myfree -> _myfree
  3913. mchar * TXAPI_(485) strGetLast(mchar *szstr);
  3914. mchar* TXAPI strGetLastAscii(mchar* szstr);
  3915. int strisidi(mchar* szstr,mchar* szId);
  3916.  
  3917. //##mem
  3918. mchar* memmem(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  3919. mchar* memistr(mchar* src,int lchSrc,mchar* szfind);
  3920. mchar* memistrword(mchar* src,int lchSrc,mchar* szfind);
  3921. mchar* memstrwordLen(mchar* src,int lchSrc,mchar* szfind,int lchFind);
  3922. mchar* memstrword(mchar* src,int lchSrc,mchar* szfind);
  3923.  
  3924. //##path - wchar
  3925. BOOL TXAPI_(486) wpathSearchPathtext(wchar* wszpath);
  3926. BOOL TXAPI_(487) wpathIsFull(wchar* wszpath);
  3927. BOOL TXAPI_(488) pathIsFull(mchar* szpath);
  3928. void TXAPI_(489) pathSetDir(mchar *path);
  3929. wchar* TXAPI_(490) TXAPIBASE wpathSetLong(wchar *path);
  3930. mchar* TXAPI_(852) pathSetLong(mchar* path);
  3931. BOOL wfilenameIsLocation(wchar* wszfilename);
  3932. BOOL TXAPI_(491) wpathFormDir(wchar* path);
  3933. BOOL TXAPI_(599) pathFormDir(mchar* path);
  3934. BOOL TXAPI_(492) wpathFormDirDos(wchar* path);
  3935. BOOL TXAPI pathFormDirDos(mchar* path);
  3936. void pathForm(mchar* szpath);
  3937. BOOL wpathParent(wchar wszfilename[CCHPATHNAME]);
  3938. BOOL wpathIsRoot(wchar wszfilename[CCHPATHNAME]);
  3939. BOOL TXAPI_(493) TXAPIBASE wpathFormLong(wchar* path);
  3940. wchar* TXAPI_(494) TXAPIBASE wpathGetFileName(wchar* path);
  3941. wchar* TXAPI_(495) wpathFullConfig(wchar* wszfilenameDst,wchar* wszfilename);
  3942. wchar* wpathFullConfigNoCreate(wchar* wszfilenameDst,wchar* wszfilename);
  3943. BOOL wpathFullConfigNetwork(wchar wszdst[CCHPATHNAME],wchar* wszfilename);
  3944. mchar* TXAPI_(806) pathFullConfig(mchar* szfilenameDst,mchar* szfilename);
  3945. mchar* TXAPI_(890) pathFullExedir(mchar* szfilenameDst,mchar* szfilename);
  3946. wchar* TXAPI_(891) wpathFullExedir(wchar* wszfilenameDst,wchar* wszfilename);
  3947. void TXAPI_(496) wpathFlush(wchar* szstr);
  3948. wchar* TXAPI_(497) TXAPIBASE wpathSetFileName(wchar *path,wchar *filename);
  3949. wchar* TXAPI_(498) TXAPIBASE wpathGetExt(wchar* path);
  3950. wchar* TXAPI_(499) TXAPIBASE wpathSetExt(wchar *path,wchar *ext);
  3951. wchar* TXAPIBASE wpathAddExt(wchar* path,wchar* ext);
  3952. mchar* TXAPIBASE pathAddExt(mchar* path,mchar* ext);
  3953. BOOL TXAPI_(500) wpathIsExt(wchar* szfilename,wchar* szext);
  3954. BOOL TXAPI_(501) wpathIsWild(wchar *path);
  3955. BOOL TXAPI_(502) wpathIsDirectory(wchar *path);
  3956. BOOL TXAPI_(894) pathIsDirectory(mchar* szpath);    //WZ4.00A 981229 
  3957. void TXAPI_(503) wpathSetDir(wchar *path);
  3958. wchar* TXAPI_(504) wpathSetFull(wchar* wszpath);
  3959. mchar* TXAPI_(851) pathSetFull(mchar* szpath);
  3960. BOOL wpathSetFilenameUnique(wchar* wszfilename);
  3961. void TXAPI wpathSetRoot(wchar* wszfilename);
  3962. void TXAPI pathSetRoot(mchar* szfilename);
  3963. int TXAPI wpathSetMode(wchar* wszfilename,wchar* wszbase,wchar* wszaddress,int mode);
  3964.     #define PATH_ABSOLUTEDRIVE    1    // ドライブ名付きの絶対パス
  3965.     #define PATH_ABSOLUTE        2    // ドライブ名なしの絶対パス
  3966.     #define PATH_URL            3
  3967.     #define PATH_RELATIVE        4
  3968. int TXAPI_(853) pathSetMode(mchar* szfilename,mchar* szbase,mchar* szaddress,int mode);
  3969. int TXAPI pathGetMode(mchar* szfilename);
  3970. int TXAPI wpathGetMode(wchar* wszfilename);
  3971. BOOL RemoveDirectoryEx_W(wchar* wszfilename);
  3972. DWORD TXAPI_(913) wpathGetDiskFreeSpace(wchar* wszpath);
  3973. void wpathGetWzFilename(wchar* wszfilename);
  3974. BOOL wpathGetFileTime(wchar* wszfilename,FILETIME* filetime);
  3975. BOOL WinExecEx_W(wchar* wszfilenameExe,wchar* wszCmdline);
  3976. //##path - mchar
  3977. BOOL TXAPI_(505) pathIsWild(mchar* path);
  3978. BOOL TXAPI_(506) TXAPIBASE pathFormLong(mchar *path);
  3979. mchar* TXAPI_(507) TXAPIBASE pathGetExt(mchar *path);
  3980. mchar* TXAPI_(508) TXAPIBASE pathSetExt(mchar *path,mchar *ext);
  3981. mchar* TXAPI_(509) TXAPIBASE pathSetFileName(mchar *path,mchar *filename);
  3982. mchar* TXAPI_(510) TXAPIBASE pathGetFileName(mchar *path);
  3983. BOOL wpathIsBinaryFiletype(wchar* wszfilename);
  3984. void TXAPI_(511) pathFlush(mchar* szstr);
  3985. BOOL TXAPI_(512) TXAPIBASE pathIsExt(mchar *path,mchar *ext);
  3986. mchar* TXAPI pathSepa(mchar* szstr);
  3987. void TXAPI_(892) pathFlushSepa(mchar* szstr,int ch);
  3988. int TXAPI pathCmp(mchar* szpath1,mchar* szpath2,int *plch);
  3989. int TXAPI pathCmpN(mchar* szpath1,mchar* szpath2,int lch,int *plch);
  3990. //##file op for TX-C
  3991. #ifdef __TXC__
  3992. BOOL TXAPI_(855) fileCopy(mchar* szfilenameSrc,mchar* szfilenameDst);
  3993. BOOL TXAPI_(856) fileDelete(mchar* szfilename);
  3994. BOOL TXAPI_(857) fileRename(mchar* szfilenameSrc,mchar* szfilenameDst);
  3995. int TXAPI_(858) mkdir(mchar* szpath);
  3996. int TXAPI_(859) rmdir(mchar* szpath);
  3997. BOOL TXAPI_(860) CommandExec(mchar* szline);
  3998. #endif
  3999. //##WZ/PWZ application
  4000. HWND TXAPI_(513) hwndbaseSet(HWND hwndbase);
  4001. void hwndbaseDelete(HWND hwnd);
  4002. HWND TXAPI_(514) hwndbaseGet(void);
  4003. HWND TXAPI_(515) hwndbaseGetTopPopupWindow(void);
  4004. TX* TXAPI_(516) hwndbaseIsWzeditor(void);
  4005. #define pwzapFocused(hwnd) hwndbaseSet(hwnd)
  4006. BOOL TXAPI_(517) pwzapAdd(HWND hwndbase);
  4007. BOOL TXAPI_(518) pwzapDelete(HWND hwndbase);
  4008. #define wzapAdd(hwndbase)        pwzapAdd(hwndbase)        //WZ3.90L 981123 
  4009. #define wzapDelete(hwndbase)    pwzapDelete(hwndbase)    //WZ3.90L 981123 
  4010. #define wzapFocused(hwndbase)    pwzapFocused(hwndbase)    //WZ3.90L 981123 
  4011. //##win ext
  4012. int TXAPI_(519) ComboBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4013. int TXAPI_(520) ComboBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4014. int TXAPI_(521) ComboBox_SetHist(HWND hctrl,HHIST hist);
  4015. int TXAPI_(522) ComboBox_SetHistSearch(HWND hctrl);
  4016. int TXAPI_(523) ListBox_SetStrblk(HWND hctrl,HSTRBLK sb);
  4017. int TXAPI_(524) ListBox_SetStrblkFirstclm(HWND hctrl,HSTRBLK sb);
  4018. int TXAPI_(525) ListBox_SetStrblkHist(HWND hctrl,HSTRBLK sb);
  4019. int TXAPI_(526) ListBox_SetStrblkHistFirstclm(HWND hctrl,HSTRBLK sb);
  4020. HWND TXAPI_(527) wndtxGetActive(HWND hwndbase);
  4021. WORD wndtxGetFlag(HWND hwnd);
  4022. HWND TXAPI wndGetTopPopupWindow(HWND hwndbase);
  4023. void TXAPI wndtxGetOriginalRect(HWND hwnd,RECT* r);
  4024. void TXAPI wndtxSetOriginalRect(HWND hwnd,RECT* r);
  4025. void wndtxSetPosSizeWork(HWND hwnd,int x,int y,int cx,int cy);
  4026. BOOL TXAPI_(848) wndtxIsEditor(HWND hwndbase);
  4027. BOOL TXAPI_(849) shellExecute(mchar* pszFile,mchar* pszOp);
  4028. DWORD TXAPI_(850) myChooseColor(HWND hwndParent,COLORREF* rgbResult,mchar* sztitle);
  4029. int TXAPI_(528) ListBox_GetItemText_A(HWND hctrl,int index,mchar* szbuff,int cch);
  4030. int TXAPI_(529) ListBox_GetItemText_W(HWND hctrl,int index,wchar* szbuff,int cch);
  4031. BOOL TXAPI_(531) wndSetPosSize(HWND hwnd,int x,int y,int cx,int cy);
  4032. BOOL TXAPI_(532) wndSetPos(HWND hwnd,int x,int y);
  4033. BOOL TXAPI wndSetZorder(HWND hwnd,HWND hwndInsertAfter);
  4034. #define wndSetSize(hwnd,cx,cy)    SetWindowPos(hwnd,NULL,0,0,cx,cy,SWP_NOZORDER|SWP_NOMOVE)    //WZ3.90E 980804 
  4035. void TXAPI_(533) wndSetTimer(HWND hwnd,UINT timerid,DWORD ms);
  4036. void TXAPI_(534) wndMoveFocus(HWND hwnd,BOOL fPrev);
  4037. BOOL TXAPI wndGetRect(HWND hwnd,RECT* r);
  4038. void hwndSetCenter(HWND hwndBase);
  4039. BOOL wndRePos(HWND hwnd);
  4040. //##win
  4041. #if WINDOWSCE
  4042.     UINT IsDlgButtonChecked(HWND hwnd,int idd);
  4043.     BOOL CheckDlgButton(HWND hwnd,int idd,UINT uCheck);
  4044.     void MoveTo(HDC hdc,int x,int y);
  4045.     void LineTo(HDC hdc,int x,int y);
  4046.     BOOL SetDlgItemText_A(HWND hwndDlg,int idControl,LPCSTR lpsz);
  4047.     BOOL GetDlgItemText_A(HWND hwndDlg,int idControl,LPSTR lpsz,int cchMax);
  4048.     #if WINDOWSCE1    //PWZ2BETA0.4 980530 
  4049.     HPEN CreatePen(int style,int nWidth,COLORREF rgb);
  4050.     #endif
  4051.     #define GetCurrentTime()    GetTickCount()
  4052. #else
  4053.     extern int _cxSysChar;
  4054.     extern int _cySysChar;
  4055.     int GetSystemFontNo(void);
  4056.     void InitSystemFontSize(HWND hwnd);
  4057.     #define MoveTo(hdc,x,y)    MoveToEx(hdc,x,y,NULL)
  4058. #endif
  4059. BOOL TXAPI_(535) EnableDlgItem(HWND hwnd,int id,BOOL fEnable);
  4060. BOOL TXAPI EnableDlgItemEx(HWND hwnd,int id,BOOL fEnable,int idDefault);
  4061. BOOL TXAPI_(536) IsDlgItemTextEmpty(HWND hwndDlg,int idControl);
  4062. BOOL TXAPI_(537) wzexecW(wchar* lpszCmdline);
  4063. BOOL TXAPI_(809) wzexec(mchar* lpszCmdline);
  4064. BOOL TXAPI_(538) shellOpenW(wchar* szfilename);
  4065.  
  4066. #if !WINDOWSCE
  4067. enum {WINDOWS95=1,WINDOWSNT};
  4068. extern BYTE _platform;
  4069. extern DWORD _dwWindowsVertion;    //WZ3.90P 981205 
  4070. #endif
  4071.  
  4072. //## _wce.c
  4073. void _cdecl TXAPI_(539) winformation(wchar* szformat,...);
  4074. void _cdecl TXAPI_(540) wattention(wchar* szformat,...);
  4075. int _cdecl TXAPI_(541) wquestion(wchar* szformat,...);
  4076. int _cdecl TXAPI_(542) wquestionYesNo(wchar* szformat,...);
  4077. int _cdecl TXAPI_(543) wquestionNoYes(wchar* szformat,...);
  4078. void _cdecl TXAPI_(544) wstatprintf(wchar* szformat,...);
  4079. void debugf(mchar* szformat,...);
  4080. wchar* TXAPI_(545) rcStringW(int ids);
  4081. mchar* TXAPI_(546) rcString(int ids);
  4082. #ifndef TXC_DLL
  4083. void _cdecl statprintf_V(mchar** szformat);
  4084. void _cdecl TXAPI_(7) statprintf(mchar* szformat,...);
  4085. #endif
  4086. void _cdecl TXAPI_(4) information(mchar* szformat,...);
  4087. int TXAPIBASE textinformation(TX* text,mchar* szcaption);
  4088. void _cdecl TXAPI_(5) attention(mchar* szformat,...);
  4089. int _cdecl TXAPI_(6) question(mchar* szformat,...);
  4090. void TXAPI_(900) txStatusbarPrintf(TX* text,mchar* szformat,...);
  4091. void statprintfClearFlush(TX* text);
  4092.  
  4093. //## _pwzfiler
  4094. typedef struct {
  4095.     int iFileName;    // ファイル名先頭文字オフセット        (旧FILER_IFILENAME)
  4096.     int lchLine;    // 行長:改行コード(0x0Aのみ)も含む    (旧FILER_LCHLINE)
  4097.     UINT fld;        // ロードモード
  4098.     mchar* szexts;    // 拡張子色分け用
  4099.     BOOL fLong;        // ロングファイル名モード
  4100. } FILERATR;
  4101. //
  4102. #define FLD_NORMAL    0x0000        // "*.*"なら、ディレクトリとファイル
  4103.                                 // そうでなければ、ファイルのみ
  4104. #define FLD_DIR        0x0001        // ディレクトリのみ
  4105. #define FLD_FILE    0x0002        // ファイルのみ
  4106. #define FLD_NOUNDO    0x1000        // *.~*は無視
  4107. #define FLD_HIDDEN    0x2000        // 隠しファイルも表示
  4108. #define FLD_LASTACCESS    0x4000    // 最後にアクセスした日付を表示
  4109. // 行アトリビュート
  4110. #define FATR_DIR    'D'            // ディレクトリ
  4111. #define FATR_FILE    'F'            // ファイル名
  4112. //
  4113. #define FILELIST_IDIRECTORY    2    //(TXLB_SIZEATR+0)    ファイル/ディレクトリ文字オフセット
  4114. #define FILELIST_LCXMASK    3    //(TXLB_SIZEATR+1)    左端表示マスク
  4115. //
  4116. int TXAPI_(547) _filerLoadDiskW(TX* text,wchar* _path,FILERATR* fileratr);
  4117.  
  4118. //##filelist
  4119.  
  4120. typedef struct {
  4121.     WORD fSaveAs:1;                // 「名前を付けて保存」ダイアログを表示。
  4122.     WORD fSaveAsVz:1;            // VZライクの「名前を付けて保存」ダイアログ
  4123.                                 // fSaveAsもTRUEにしてください。
  4124.     WORD fSaveTo:1;                // 始めに指定したファイル名をできるだけ変化させない for 添付ファイルの保存先の指定
  4125.                                 // fSaveAsもTRUEにしてください。
  4126.     WORD fOpenVz:1;                // VZライクの「ファイルを開く」ダイアログ
  4127.     WORD fModeSaveAs:1;            // modeSaveAsの選択を行う?
  4128.     WORD fNoOverwriteConfirm:1;    // 上書き確認をしない
  4129.     WORD fReadonly:1;            //WZ3.90I 981103 リードオンリーで開く?
  4130.                                 //WZ3.90J 981111 ダイアログでの選択結果が返されます。
  4131.     WORD fEnableIllegalChar:1;    //WZ4.00Aa 990109 ファイル名に*などの無効文字列を許す?
  4132.     WORD fReserved:8;
  4133.     BYTE modeSaveAs;            // 「プレーンテキストへ変換」など。
  4134.     BYTE reserved[10];
  4135. } TXOFN_ARG;
  4136.  
  4137. typedef struct tagFILELIST {
  4138.     TX* text;                    // ファイル一覧のデータを保持する
  4139.     HWND hwnd;                    // ファイルリスト
  4140.     //
  4141.     FBOOL fPreview;
  4142.     FBOOL fIniting;
  4143.     FBOOL fSaveAs;                // 名前を付けて保存?
  4144.     FBOOL fSaveAsVz;            // VZライクの名前を付けて保存?
  4145.                                 // fSaveAsもTRUEにすること
  4146.     FBOOL fDotDot;                // 親フォルダに移れる場合は".."をリスト先頭に表示する
  4147.     TXOFN_ARG arg;                // txuiGetOpenFileNameW arg
  4148.     FBOOL fFolderOnly;            // フォルダのみ表示?
  4149.     wchar* wszCaption;
  4150.     TX* textTarget;                // 対象のtext
  4151.     // sort
  4152.     int modeSort;                // ソートモード
  4153.     int modeSort2;                // ソートモード2
  4154.     int nDir;                    // ディレクトリ数
  4155.     int nFile;                    // ファイル数
  4156.     int nDirFile;                // ディレクトリ数+ファイル数
  4157.     // status
  4158.     int nSel;                    // 選択されたファイル数
  4159.     int nSelDir;                // 選択されたディレクトリ数
  4160.     DWORD cbSel;                // 選択されたファイルのファイルサイズの合計
  4161.     DWORD cbDiskFree;            // ドライブの空き容量
  4162.     // walk
  4163.     FBOOL fWalking;
  4164.     NPARA nparaWalk;            // 次にWalkする行
  4165.     NPARA npara0;
  4166.     int ly0;
  4167.     // now
  4168.     wchar wszpath[CCHPATHNAME];    // カレント パス、マスク
  4169.     // result
  4170.     wchar wszfilename[CCHPATHNAME];
  4171.     // TXOFN_SAVETO
  4172.     wchar wszfilenameSaveto[CCHWORD];    //WCE1.01 980503 保存先のファイル名
  4173.     // link
  4174.     struct tagFILELIST* filelistPrev;
  4175.     struct tagFILELIST* filelistNext;
  4176. } FILELIST;
  4177.  
  4178. // sort
  4179. #define FILELIST_SORT_FILENAME    1
  4180. #define FILELIST_SORT_FILETYPE    2
  4181. #define FILELIST_SORT_NEW        3
  4182. #define FILELIST_SORT_OLD        4
  4183. #define FILELIST_SORT_BIG        5
  4184. #define FILELIST_SORT_SMALL        6
  4185.  
  4186. // position
  4187. #define FILELIST_IFILEDATE        4    // 日付文字オフセット
  4188. #define FILELIST_IFILESIZE        19    // ファイルサイズオフセット
  4189. #define FILELIST_IFILENAME        32    // ファイル/ディレクトリ文字オフセット
  4190.  
  4191. #define FILELIST_LCHFILEDATE    14    // 日付文字長さ
  4192. #define FILELIST_LCHFILESIZE    12    // ファイルサイズ長さ
  4193. #define FILELIST_CCHFILENAME    CCHPATHNAME    // ファイル/ディレクトリ長さ
  4194.                                             // \Windowsフォルダのアクセスが遅いのでファイル名の長さを制限
  4195.                                             //WCE0.91 970915 64文字の制限に気づいた人がいたので長さ制限を廃止
  4196.  
  4197. FILELIST* TXAPI_(548) filelistNew(void);
  4198. BOOL TXAPI_(549) filelistDelete(FILELIST* filelist);
  4199. FILELIST* TXAPI_(550) filelistSearch(TX* text);
  4200. BOOL TXAPI_(551) filelistIsCurDir(FILELIST* fl);
  4201. BOOL TXAPI_(552) filelistIsCurDirFile(FILELIST* fl);
  4202. BOOL TXAPI_(553) filelistIsCurFile(FILELIST* fl);
  4203. BOOL TXAPI_(554) filelistGetCurFilenameW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  4204. BOOL TXAPI_(555) filelistGetCurFilenameFullW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  4205. DWORD TXAPI_(556) filelistGetCurFileSize(FILELIST* fl);
  4206. wchar* TXAPI_(557) filelistFullFilenameW(FILELIST* fl,wchar* wszfilename);
  4207. int TXAPI_(558) filelistGetSelect(FILELIST* fl);
  4208. void TXAPI_(559) filelistFlush(FILELIST* fl);
  4209. BOOL TXAPI_(560) filelistInfoFolder(FILELIST* fl);
  4210. BOOL TXAPI_(561) filelistExitFolder(FILELIST* fl);
  4211. BOOL TXAPI_(562) filelistSelect(FILELIST* fl,BOOL fSelect);
  4212. BOOL TXAPI_(563) filelistIsCurSelect(FILELIST* fl);
  4213. void TXAPI_(564) filelistSelectReverse(FILELIST* fl);
  4214. int TXAPI_(565) filelistWalkGetCount(FILELIST* fl);
  4215. void TXAPI_(566) filelistWalkStart(FILELIST* fl);
  4216. BOOL TXAPI_(567) filelistWalkW(FILELIST* fl,wchar wszfilename[CCHPATHNAME]);
  4217. BOOL TXAPI_(568) filelistWalkDeleteCur(FILELIST* fl);
  4218. void TXAPI_(569) filelistWalkEnd(FILELIST* fl);
  4219. void TXAPI_(570) filelistSelectReverseAll(FILELIST* fl);
  4220. void TXAPI_(571) filelistSelectClearAll(FILELIST* fl);
  4221. void TXAPI_(572) filelistSelectAll(FILELIST* fl);
  4222. BOOL TXAPI_(573) filelistSearchFileW(FILELIST* filer,wchar* wsz);
  4223. void TXAPI_(574) filelistSetText(FILELIST* filelist,TX* text);
  4224.  
  4225. //##textstack
  4226. typedef struct {
  4227.     HANDLE hf;
  4228.     IFILE sizefile;
  4229. } TSHANDLE;
  4230. BOOL tsOpen(TSHANDLE* ts);
  4231. void tsClose(TSHANDLE* ts);
  4232. void tsClearTop(TSHANDLE* ts);
  4233. void tsClearAll(void);
  4234. BOOL tsGetExist(void);
  4235.  
  4236. //##lock/unlock
  4237. #define LOCK_NULL            0    // 欠番
  4238.                                 // 以下、空きの番号はもったいないので作らない事
  4239. #define LOCK_WZPROCESS        1
  4240. #define LOCK_HIST            2
  4241. #define LOCK_WZAP            3
  4242. #define LOCK_PROFILE        4
  4243. #define LOCK_KEYMACRO        5
  4244. #define LOCK_WZICON            6
  4245. #define LOCK_WZMEMO            7
  4246. #define LOCK_WZTERMREAD        8
  4247. #define LOCK_WZTERMCHECK    9
  4248. #define LOCK_N                9    // 最終番号と同じにする
  4249. void TXAPI_(575) wzlock(int no);
  4250. void TXAPI_(576) wzunlock(int no);
  4251.  
  4252. //##dialog 
  4253. typedef struct tagDTRECT {    // ダイアログ座標
  4254.     SHORT x;    // cxChar/4 単位
  4255.     SHORT y;    // cyChar/8 単位
  4256.     SHORT cx;
  4257.     SHORT cy;
  4258. } DTRECT;
  4259. #if WINDOWSCE
  4260.     #define NFONT_MAX    100
  4261. #else
  4262.     #define NFONT_MAX    1000    //WZ3.90P 981206 100だと足りない(300個ある場合もある)ので1000に拡大
  4263. #endif
  4264. typedef struct {
  4265.     WORD nFont;    // 数
  4266.     wchar tFontName[NFONT_MAX][LF_FACESIZE];
  4267.     BYTE lfPitch;            // PitchAndFamily
  4268.     BYTE lfCharSet;            // lfCharSet
  4269.     WORD fPrinterFont:1;    // プリンタフォントの取得中
  4270.     WORD fPrinterFontOnly:1;
  4271.     WORD freserved:14;
  4272.     HDC hdcPrinter;
  4273. } FONTNAMES;
  4274. typedef struct {
  4275.     BYTE lfPitch;
  4276.     BYTE lfCharSet;
  4277.     BYTE sizeLfHeight;                // lfHeightのサイズ(0,1:BYTE,2;WORD,4:DWORD)
  4278.     BYTE lcxFaceName;                // 0:default
  4279.     BYTE lcxFaceSize;                // 0:default
  4280.     HDC hdcPrinter;                    // プリンタフォントも列挙するばあいは、プリンタのhdc
  4281.     WORD fPrinterFontOnly:1;        //1.99F プリンタフォントのみ
  4282.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  4283.                                     // 選択値は""になる
  4284.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  4285.                                     // 選択値は0になる
  4286.     WORD freserved:13;
  4287.     FONTNAMES* fontnames;            //1.99H 同じフォント名セットを複数使う場合に対応
  4288.     BYTE reserved[17];
  4289. } SELFONTARG;
  4290. #define CCHFONTSIZE    20
  4291. typedef struct {
  4292.     WORD id;                    // 対応付けられているフォント名コンボボックスのid
  4293.     FONTNAMES* fontnames;        // フォント名
  4294.     // フォントサイズ
  4295.     WORD nFontSize;                // 数
  4296.     BYTE tFontSize[NFONT_MAX];    // 内容
  4297.     WORD nFontType;                // EnumFaceSizeで返される
  4298.     // 初期値の受け取り/結果の受け渡し用
  4299.     mchar* lfFaceName;
  4300.     BYTE* lfHeight;
  4301.     BYTE sizeof_lfHeight;            // lfHeight=BYTE/WORD/DWORD?
  4302.                                     //WZ3.90G 980826 class -> sizeof_lfHeight
  4303.     WORD fEnableDefaultFaceName:1;    //2.95 970128 "標準"フォント名を選択可能にする
  4304.                                     // 選択値は""になる
  4305.     WORD fEnableDefaultHeight:1;    //2.95 970128 "標準"サイズを選択可能にする
  4306.                                     // 選択値は0になる
  4307.     WORD freserved:14;
  4308. } CONTEXTSELFONT;
  4309. typedef struct tagDIALOG {
  4310. #ifdef __TXC__
  4311.     LPVOID dialog;
  4312. #else
  4313.     DLGTEMPLATE* dialog;    // 
  4314. #endif
  4315.     DWORD sizeDialog;        // dialogのサイズ
  4316.     LPBYTE pBuff;            // dialogに現在書き込み中のポインタ
  4317.     LPBYTE itemTop;            // dialogのアイテムの先頭位置
  4318.     LPBYTE itemNow;            // 現在アクセス中のアイテム
  4319. //
  4320.     int xMax;
  4321.     int xMaxLf;
  4322.     int yMax;
  4323.     int yMaxLf;
  4324.     int xBase;                // 改行時、復改位置
  4325.     int yBase;                // 改行時、復改位置
  4326.     DTRECT r;                // 現在位置
  4327.     int cxInt;                // 項目間
  4328.     int cyInt;                // 行間
  4329.     CBOOL fNoSetHist;        // dialogReadでヒストリをいじらない
  4330.     FBOOL fNoAddDefaultButton;//WCE1.01 980201 標準の"OK","Cancel"を付けない?
  4331. //
  4332.     struct tagITEMINFO* info;// ITEMINFO配列
  4333.     int sizeinfo;            // ITEMINFO配列の確保した要素数
  4334.     int ninfo;                // 現在の要素数
  4335. //
  4336.     int id;                    // 現在の自動設定ID
  4337.     int idUpdown;            // 次に追加するアップダウンコントロールのID
  4338. // user指定
  4339.     int setid;                // 0:自動ID else IDを指定値にセット
  4340.     CBOOL fH;                // 横に並べる?
  4341.     FBOOL fCmd;                // OK,Cancelボタン不要
  4342. #ifdef __TXC__
  4343.     LPVOID dlgproc;            // ダイアログプロシジャー
  4344. #else
  4345.     DLGPROC dlgproc;        // ダイアログプロシジャー
  4346. #endif
  4347.     FBOOL fDlgprocTxpcode;    // dlgprocはTX-PCODE中にある?
  4348.     WORD stateHook;            // dlgprocフックステート
  4349.     LPVOID custdata;        // user data
  4350.     LPVOID custdata2;        //PWZ2BETA0.3 980519 user data2
  4351.     LPVOID custdata3;        //PWZ2BETA0.3 980519 user data3
  4352.     HWND hwndParent;        // 親ウィンドウ
  4353.     FBOOL fHwndParentSeted;    // hwndParentが設定された(NULLも設定できるよう)
  4354.     FBOOL fModelessAutoClose;// WM_CLOSEで閉じる?
  4355.     WORD fWizard:1;            //WZ3.90G 980830 ウィザード?
  4356.     int cx;                    // サイズ
  4357.     int cy;                    // サイズ
  4358.     int notifyIdd;            // dialogSetNotifyAsOK
  4359.     int notify;                // dialogSetNotifyAsOK
  4360.     int idFocus;            // 
  4361.     int idDialoghelp;        // ダイアログヘルプのアンカー番号    //WZ4.00Ab 990124 new
  4362. // user直接指定
  4363.     WORD fAutoAccessKey:1;    //WZ3.90H 980910 アクセスキーを自動で付ける?
  4364.                             // chAutoAccessKeyを初期化すること。
  4365.     BYTE chAutoAccessKey;    //WZ3.90H 980910 現在の自動決定アクセスキー
  4366.     TX* text;                //WZ3.90I 981026 dialogControlReferで"-html"を指定する場合に必要
  4367. // フォント選択
  4368.     #define SELFONT_N            20
  4369.     CONTEXTSELFONT* tFontselContext;    // コンテキスト
  4370.     int nFontselContext;                // 現在のコンテキスト数
  4371.     #define FONTNAMES_N            2        // FONTNAMESコンテキスト最大数
  4372.     FONTNAMES *tFontnames;                // FONTNAMESコンテキスト
  4373.     int nFontnames;                        // 現在のFONTNAMESコンテキスト数
  4374. // for property sheet
  4375.     struct tagDIALOG* child;
  4376.     struct tagDIALOG* parent;
  4377.     struct tagDIALOG* next;
  4378.     int iStartPage;
  4379.     FBOOL fApplyed;            //WCE0.95 970923 IDD_APPLYが押された
  4380.     #if !WINDOWSCE
  4381.     FBOOL fCentered;        //WZ3.90I 981005 既に中央に位置をセット済み
  4382.     #endif
  4383. // dialog open時 status
  4384.     HWND hwndDlg;            // ダイアログウィンドウハンドル
  4385.     HWND hwndbase;            //WZ3.90L 981122 ダイアログを開いたときのhwndbaseGet()の内容
  4386.     FBOOL fActived;            // ページがアクティブになった?
  4387.     FBOOL fModeless;        // モードレスダイアログ?
  4388.     FBOOL fCaptionOkBtn;    // タイトルバーに[OK]を付ける?
  4389.     struct tagDIALOG* now;    // 現在選択されているページ
  4390.     struct tagDIALOG* nextModeless;    // 次のモードレスダイアログ
  4391. // 以下、次にaddするコントロールの属性
  4392. BYTE controlTop;
  4393.     FBOOL fHist;            // ヒストリ付き?
  4394.     FBOOL fHistRead;        // readonly history
  4395.     FBOOL fSbAlloced;        // sb is alloced
  4396.     FBOOL fDisenable;        // 無効化
  4397.     FBOOL fControlReverseBool;
  4398.     FBOOL fRadioV;
  4399.     DWORD fUpdown;            // アップダウンコントロールを付ける?
  4400.                             // 0なら、付けない。
  4401.                             // MAKELONG(max,min)なら付ける。
  4402.     BYTE idMap;                //WCE1.01 980210 idMap
  4403.     HSTRBLK sb;
  4404.     int cyLastControl;        // 最後に追加したコントロールのウィンドウの高さ
  4405.     int idContextHelp;        // コンテキストヘルプIDが指定された
  4406.     SIGNED_BYTE dtyAdd;        // y座標に付加する値
  4407.     mchar szguide[CCHWORD];    // ガイド文字列
  4408.     int wguide;                // ガイドの幅
  4409.     mchar* szRefer;            // 参照ボタン
  4410.     int idrefer;            // 参照ボタンのID
  4411.     LPVOID procConv;        //WZ3.90L 981115 コンバータ
  4412. BYTE controlEnd;
  4413. // 以下、クリアしない次にaddするコントロールの属性
  4414.     DWORD controlStyle;
  4415. } DIALOG,*HDIALOG;
  4416. #define DIALOGHOOKSTATE_HOOKONCE    0x01    // 一度だけ標準ダイアログをスキップする
  4417. #define DIALOGHOOKSTATE_HOOKALL        0x02    // 全フックする
  4418. #define DTCX                4        // 1文字の幅
  4419. #define DTCY                8        // 1文字の高さ
  4420. #define DTCXINT                4        // 標準の間隔
  4421. #if WINDOWSCE2
  4422.     #define DTCYINT            1    // 標準の間隔
  4423.                                 //WCE1.01 980312 2->1
  4424.                                 // ダイアログのフォントが大きくなって
  4425.                                 // ダイアログボックスが画面からはみ出るため。
  4426. #else
  4427.     #define DTCYINT            2    // 標準の間隔
  4428. #endif
  4429. #define DTCYKEY                10        // (&K)などのアンダーバーも含む高さ
  4430. #define DTCYBOX                12        // TEXTBOXの高さ
  4431. #define DTCYCMDBUTTON        14        // コマンドボタンの高さ
  4432. #define DTCYBUTTON            12        // ボタンの高さ
  4433. #define DTCYBOX_KEY            2        // DTCYBOX - DTCYKEY
  4434. // dialogSetDlgprocのWM_INITDIALOGでの返り値の定義
  4435. // FALSEを返すのは、INITDIALOG_TRUEを返すのと同じ
  4436. #define INITDIALOG_TRUE            0    // WM_INITDIALOGの返り値にTRUEを返す
  4437.                                     // (WindowsがデフォルトのSETFOCUSをする)
  4438. #define INITDIALOG_FALSE        1    // FALSEを返す
  4439.                                     // (WindowsがデフォルトのSETFOCUSをしない)
  4440. #define INITDIALOG_SKIP_TRUE    2    // dialog.c内のWM_INITDIALOG処理をスキップ
  4441. #define INITDIALOG_SKIP_FALSE    3    // 同上
  4442. //
  4443. #define IDD_APPLY            29699    //WCE0.95 970923 new
  4444. //
  4445. BOOL TXAPI_(42) __dialogAddItem(HDIALOG hd,mchar *szClass,mchar *szText,int id,DTRECT *dtRect,long style);
  4446. BOOL TXAPI_(43) _dialogAddItem(HDIALOG hd,int nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  4447. int TXAPI _dialogAddControlInfo(HDIALOG hd,int id);
  4448. BOOL TXAPI_(44) dialogAddItem(HDIALOG hd,BYTE nDcs,mchar *szText,int id,DTRECT *dtRect,long style);
  4449. int TXAPI_(45) dialogAddListbox(HDIALOG hd,mchar *szcaption,int width,int height);
  4450. void TXAPI_(46) dialogWriteItem(HDIALOG hd,int id);
  4451. HSTRBLK TXAPI_(47) dialogGetItemStrblk(HDIALOG hd,int id);
  4452. HWND TXAPI_(48) dialogGetItemUpdown(HDIALOG hd,int id);
  4453. void TXAPI_(49) dialogWrite(HDIALOG hd);
  4454. void TXAPI dialogWriteEx(HDIALOG hd,DWORD mode);
  4455. void TXAPI_(50) dialogReadItem(HDIALOG hd,int id);
  4456. void TXAPI dialogReadItemEx(HDIALOG hd,int id,DWORD mode);
  4457. void TXAPI_(51) dialogRead(HDIALOG hd);
  4458. void TXAPI_(52) dialogReadEx(HDIALOG hd,DWORD mode);
  4459.     #define DIALOGREAD_NOSETHIST    0x0001    // ヒストリをいじらない
  4460. #ifndef __TXC__
  4461. void TXAPI dialogSetDlgproc(HDIALOG hd,DLGPROC proc);
  4462. #endif
  4463. void TXAPI_(53) dialogSetDlgprocTxpcode(HDIALOG hd,FARPROC proc);
  4464. LPVOID TXAPI_(54) dialogSetCustdata(HDIALOG hd,LPVOID custdata);
  4465. LPVOID TXAPI dialogSetCustdata2(HDIALOG hd,LPVOID custdata);
  4466. LPVOID TXAPI dialogSetCustdata3(HDIALOG hd,LPVOID custdata);
  4467. void TXAPI_(55) dialogSetNotifyAsOK(HDIALOG hd,int idd,int notify);
  4468. void TXAPI_(56) dialogSetStyle(HDIALOG hd,long style);
  4469. void TXAPI dialogSetDialoghelp(HDIALOG hd,int idAnchor);
  4470. void TXAPI_(58) dialogSetContexthelp(HDIALOG hd,DWORD fSet);
  4471. void TXAPI_(59) dialogSetFocus(HDIALOG hd,int id);
  4472. void TXAPI_(60) dialogSetNoButton(HDIALOG hd);
  4473. LPVOID TXAPI_(61) dialogGetCustdata(HDIALOG hd);
  4474. LPVOID TXAPI dialogGetCustdata2(HDIALOG hd);
  4475. LPVOID TXAPI dialogGetCustdata3(HDIALOG hd);
  4476. DWORD TXAPI_(62) dialogGetStyle(HDIALOG hd);
  4477. #ifdef __TXC__
  4478. LPVOID TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  4479. #else
  4480. DLGTEMPLATE* TXAPI_(63) dialogGetDlgtemplate(HDIALOG hd);
  4481. #endif
  4482. HWND TXAPI_(64) dialogGetWindow(HDIALOG hd);
  4483. void TXAPI_(65) dialogSetIntXY(HDIALOG hd,int dtcx,int dtcy);
  4484. void TXAPI_(66) dialogResetInt(HDIALOG hd);
  4485. void TXAPI_(67) dialogSetH(HDIALOG hd);
  4486. void TXAPI_(68) dialogSetV(HDIALOG hd);
  4487. BOOL TXAPI_(69) dialogControlGuide(HDIALOG hd,mchar *szguide,int wguide);
  4488. void TXAPI_(70) dialogControlStyle(HDIALOG hd,DWORD style);
  4489. void TXAPI_(71) dialogControlHist(HDIALOG hd,HHIST hhist);
  4490. void TXAPI_(72) dialogControlHistRead(HDIALOG hd,HHIST hhist);
  4491. void TXAPI_(73) dialogControlStrblk(HDIALOG hd,HSTRBLK sb);
  4492. void TXAPI_(74) dialogControlStrblkHist(HDIALOG hd,HSTRBLK sb);
  4493. void TXAPI_(75) dialogControlEnable(HDIALOG hd,BOOL fEnable);
  4494. void TXAPI_(76) dialogControlReverseBool(HDIALOG hd);
  4495. #if WINDOWSCE
  4496.     #define dialogControlHelp(hd,id)    //WZ4.00Ab 990117 PWZではdialogControlHelpは何もしない#defineに変更。プログラムサイズ削減のため。
  4497. #else
  4498. void TXAPI_(77) dialogControlHelp(HDIALOG hd,int id);
  4499. #endif
  4500. void TXAPI_(78) dialogControlID(HDIALOG hd,int id);
  4501. void TXAPI_(79) dialogControlUpdown(HDIALOG hd,int minSpin,int maxSpin);
  4502. void TXAPI dialogControlConvertproc(HDIALOG hd,LPVOID procConv);
  4503. void TXAPI_(80) dialogControlMap(HDIALOG hd,int idMap);
  4504.     #define DIALOGCONTROLMAP_TWIPS_MCM    1    // TWIPS(1/1440 inch)データを1/10mm単位で表示
  4505.     #define DIALOGCONTROLMAP_10            2    // データを/10して表示
  4506. int TXAPI_(81) dialogCaption(HDIALOG hd,mchar *szCaption);
  4507. int TXAPI_(82) dialogCaptionDynamic(HDIALOG hd,mchar *szCaption,int width);
  4508. int TXAPI_(83) dialogCaptionDynamicEx(HDIALOG hd,mchar *szCaption,int width,int height);
  4509. int TXAPI dialogCaptionGuide(HDIALOG hd,mchar *szCaption);
  4510. int TXAPI_(84) dialogColor(HDIALOG hd,mchar* szCaption,mchar* szTitle,COLORREF* rgb,int wCaption,LPVOID pPreview);
  4511. int TXAPI_(85) dialogPushbutton(HDIALOG hd,mchar *szCaption,int wCaption);
  4512. int TXAPI_(86) dialogPushbuttonBig(HDIALOG hd,mchar *szCaption,int wCaption);
  4513. int TXAPI_(87) dialogCmd(HDIALOG hd,mchar *szCaption,int wCaption);
  4514. int TXAPI_(88) dialogCmdDefault(HDIALOG hd,mchar *szCaption,int wCaption);
  4515. int TXAPI_(89) dialogCmdID(HDIALOG hd,mchar *szCaption,int wCaption,int id);
  4516. int TXAPI_(90) dialogCheck(HDIALOG hd,mchar *szCaption,BOOL *bool);
  4517. int TXAPI_(91) dialogCheckB(HDIALOG hd,mchar *szCaption,BBOOL *bool);
  4518. int TXAPI_(92) dialogOK(HDIALOG hd,int wCaption);
  4519. int TXAPI_(93) dialogCancel(HDIALOG hd,int wCaption);
  4520. void TXAPI_(94) dialogApply(HDIALOG hd,int dtx,int dty);
  4521. int TXAPI_(95) dialogClose(HDIALOG hd,int wCaption);
  4522. int TXAPI_(12) dialogString(HDIALOG hd,mchar *szCaption,int wCaption,mchar *szText,int cchText,int wBox);
  4523. int TXAPI_(113) dialogTxstr(HDIALOG hd,mchar *szCaption,int wCaption,TXSTR szText,int wBox);
  4524. int TXAPI_(13) dialogStringW(HDIALOG hd,mchar *szCaption,int wCaption,wchar *wszText,int cchText,int wBox);
  4525. int TXAPI_(14) dialogInteger(HDIALOG hd,mchar *szCaption,int wCaption,int *integer,int wBox);
  4526. int TXAPI_(15) dialogIntegerW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* integer,int wBox);
  4527. int TXAPI_(16) dialogIntegerB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* integer,int wBox);
  4528. int TXAPI_(17) _cdecl dialogChoice(HDIALOG hd,mchar *szCaption,int wCaption,int *data,int wBox,mchar* szItem,...);
  4529. int TXAPI_(18) _cdecl dialogChoiceW(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_WORD* data,int wBox,mchar* szItem,...);
  4530. int TXAPI_(19) _cdecl dialogChoiceB(HDIALOG hd,mchar *szCaption,int wCaption,SIGNED_BYTE* data,int wBox,mchar* szItem,...);
  4531. int TXAPI_(20) _cdecl dialogChoiceString(HDIALOG hd,mchar *szCaption,int wCaption,mchar* szText,int cchText,int wBox,mchar* szItem,...);
  4532. int TXAPI _cdecl dialogChoiceStringWA(HDIALOG hd,mchar *szCaption,int wCaption,wchar* szText,int cchText,int wBox,mchar* szItem,...);
  4533. int TXAPI_(21) _cdecl dialogChoiceRadio(HDIALOG hd,int *data,mchar* szItem,...);
  4534. int TXAPI_(22) _cdecl dialogChoiceRadioW(HDIALOG hd,SIGNED_WORD* data,mchar* szItem,...);
  4535. int TXAPI_(23) _cdecl dialogChoiceRadioB(HDIALOG hd,SIGNED_BYTE* data,mchar* szItem,...);
  4536. int TXAPI_(25) dialogList(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  4537. int TXAPI dialogChoiceList(HDIALOG hd,mchar* szCaption,int* data,int width,int height);
  4538. void TXAPI_(26) dialogIndent(HDIALOG hd,int dx);
  4539. void TXAPI_(27) dialogLFV(HDIALOG hd);
  4540. void TXAPI_(28) dialogCmdLFV(HDIALOG hd);
  4541. void TXAPI_(29) dialogLF(HDIALOG hd);
  4542. void TXAPI_(30) dialogSpace(HDIALOG hd);
  4543. void TXAPI_(31) dialogSpaceH(HDIALOG hd);
  4544. void TXAPI_(32) dialogSpaceV(HDIALOG hd);
  4545. void TXAPI_(33) dialogGetPos(HDIALOG hd,DTRECT *r);
  4546. int TXAPI_(34) dialogGetPosX(HDIALOG hd);
  4547. int TXAPI_(35) dialogGetPosY(HDIALOG hd);
  4548. void TXAPI_(36) dialogSetPos(HDIALOG hd,DTRECT *r);
  4549. void TXAPI_(37) dialogSetPosLX(HDIALOG hd,int lx);
  4550. void TXAPI_(38) dialogSetPosX(HDIALOG hd,int x);
  4551. void TXAPI_(39) dialogSetPosY(HDIALOG hd,int y);
  4552. void TXAPI dialogSetPosXY(HDIALOG hd,int x,int y);
  4553. #define dialogAddPosY(hd,y)    (dialogSetPosY(hd,(dialogGetPosY(hd) + y)))
  4554. int TXAPI_(897) dialogHeadline(HDIALOG hd,mchar* szCaption,int wHeadline);    //WZ4.00A 981229 
  4555. HDIALOG TXAPI_(40) dialogFromHwnd(HWND hwnd);
  4556. void TXAPI_(41) dialogTerm(HDIALOG hd);
  4557. HDIALOG TXAPI_(10) dialog(mchar* szCaption);
  4558. void TXAPI_(672) dialogSetHookState(HDIALOG hd,int state);
  4559. int TXAPI_(11) dialogOpen(HDIALOG hd);
  4560. #define dialogLFSetV(hd)    {dialogSetV(hd);dialogLF(hd);}
  4561. void TXAPI_(577) dialogSetPosLF(HDIALOG hd);
  4562. void TXAPI_(578) dialogSetParent(HDIALOG hd,HWND hwndParent);
  4563. BOOL TXAPI_(579) dialogAddPage(HDIALOG hd,HDIALOG hdPage);
  4564. void TXAPI_(580) dialogSetStartPage(HDIALOG hd,int iStartPage);
  4565. void TXAPI dialogSetSize(HDIALOG hd,DTRECT *r);
  4566. void TXAPI dialogApplyEx(HDIALOG hd,int dtx,int dty,mchar* szCaption);
  4567. HWND TXAPI_(581) dialogGetBaseWindow(HDIALOG hd);
  4568. void TXAPI_(582) dialogControlRadioV(HDIALOG hd);
  4569. int TXAPI_(583) dialogEditWz(HDIALOG hd,mchar* szCaption,TX* text,int width,int height,DWORD ws);
  4570. HWND TXAPI_(584) dialogCreate(HDIALOG hd);
  4571. BOOL TXAPI_(585) dialogFree(HWND hwnd);
  4572. BOOL TXAPI_(586) dialogControlRefer(HDIALOG hd,mchar *szpath);
  4573. int TXAPI_(587) dialogSelectFont(HDIALOG hd,mchar* szCaption,int wCaption,mchar* lfFaceName,BYTE* lfHeight,SELFONTARG* arg);
  4574. // sub dialog proc
  4575. BOOL subdlgprocSblist(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam,HSTRBLK sb);
  4576. void comboboxex_Exec(HWND hwnd);
  4577. // dialog application
  4578. mchar* TXAPI_(588) dialogaSelHistEx(mchar* szCaption,HHIST hist,DWORD mode,TX* text);
  4579. mchar* TXAPI_(589) dialogaSelectSb(mchar* szCaption,HSTRBLK sb,DWORD mode,TX* text,mchar* szStdAdd);
  4580.     #define SELHIST_FILEOPEN    0x0001
  4581.     #define SELHIST_IMECONVERT    0x0002
  4582.     #define SELHIST_READMODE    0x0004    // 編集不可
  4583.     #define SELHIST_REVERSE        0x0008    // 内部用
  4584.     #define SELHIST_REFERFOLDER    0x0010
  4585.     #define SELHIST_PATH        0x0020
  4586. mchar* TXAPI_(590) dialogaSelHist(mchar* szCaption,HHIST hist);
  4587. mchar* TXAPI_(591) dialogaSelFolderlist(mchar szResult[CCHPATHNAME],mchar* szStdAdd);
  4588. int TXAPI_(592) TXAPIBASE dialogaText(TX* text,mchar* szcaption);
  4589. void TXAPI_(593) printf(LPCSTR szFormat,...);
  4590. void wprintf(wchar* szFormat,...);
  4591. TX* printfGetText(void);
  4592. void TXAPI_(594) dialogaDebugEnd(void);
  4593. HWND TXAPI_(595) dialogaDebugStart(void);
  4594. int TXAPI_(893) dialogGetPage(HDIALOG hd);
  4595. HDIALOG TXAPI dialogGetPageDialog(HDIALOG hd,int iPage);
  4596. #ifndef __TXC__
  4597.     #ifndef TXC_DLL
  4598.     DWORD    (WINAPI *txpcodeCallAddress)(LPBYTE pc,UINT nArg,LPVOID pArg);
  4599.     #endif
  4600. #endif
  4601. // ダイアログ作成 for TX-C互換
  4602. int TXAPI_(869) dialogSelect(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,HSTRBLK sb);
  4603. int TXAPI_(870) _varyarg dialogSelectID(HDIALOG hd,mchar* szCaption,int* data,int wCaption,int wBox,mchar* szItem,...);
  4604. int TXAPI_(871) _varyarg dialogSelectStr(HDIALOG hd,mchar* szCaption,TXSTR data,int wCaption,int wBox,mchar* szItem,...);
  4605. int TXAPI_(872) dialogButton(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  4606. int TXAPI_(873) dialogButtonBig(HDIALOG hd,mchar *szCaption,mchar* szMacro,int wCaption);
  4607. // 簡単ダイアログ for TX-C互換
  4608. BOOL TXAPI_(862) inputint(mchar* szcaption,int* data);
  4609. BOOL TXAPI_(863) inputstr(mchar* szcaption,TXSTR dst);
  4610. int  TXAPI_(864) _varyarg intselect(mchar* szcaption,mchar* szstr,...);
  4611. mchar* TXAPI_(877) _varyarg strselect(mchar* szcaption,mchar* szstr,...);
  4612.  
  4613. //## outline control
  4614. extern WCHAR wszclassOutline[];
  4615. extern mchar szclassOutline[];
  4616. typedef struct {
  4617. // 内部情報
  4618.     HWND hwnd;            // 自身の window
  4619.     HWND hwndTree;        // TreeView window
  4620.     TX* textOutline;    // 抽出したアウトライン情報を保持するテキスト
  4621.                         // 自身でalloc,free
  4622.     NPARA nparaTarget;        // カレント見出しのtextTarget上の位置
  4623.     NPARA nparaOutline;        // カレント見出しのtextOutline上の位置
  4624.     int iHeadline;            // カレント見出しの見出し番号(1-6)
  4625.     DWORD nEditTarget;        // アウトライン表示開始時のtextTargetのnEdit
  4626.     DWORD nEditTargetLastop;// 最後のアウトラインによる編集時のnEdit
  4627.     TX* textClip;            // 切り抜き、ペースト用バッファ
  4628.     IFILE adrTargetSearch;    // 最後に検索した位置
  4629.     mchar szHeadline[CCHWORD];    // 見出し名
  4630.     mchar szAtr[CCHWORD];    // 作成日などのアトリビュート
  4631.     FBOOL fMemoFlushingAtSelchanged;
  4632.     FBOOL fMemoFlushing;
  4633.     FBOOL fMemoReopening;
  4634.     FBOOL fContentSkipped;    //WCE0.94 高速化のためtextContentにデータをセットしてない?
  4635.     FBOOL fLabelEditing;    //WCE1.01 980205 ラベル編集中?
  4636.     FBOOL fRemaking;        //PWZ2BETA0.6 980620 再作成中?
  4637. // 移動先
  4638.     int iHeadlineMoveTo;
  4639.     mchar szHeadlineMoveTo[CCHWORD];    // 移動先の見出し名
  4640. #if 0    //WZ3.90L 981124 廃止
  4641.     NPARA nparaTargetMoveTo;
  4642.     NPARA nparaOutlineMoveTo;            //PWZ2BETA0.6 980620 nparaTargetMoveToに対応するtextOutlineのnpara
  4643. #endif
  4644. // param保持
  4645.     MEMBLOCK* mbParam;        //PWZ2BETA0.6 980621 new
  4646. // クライアント設定情報(APIを使って設定)
  4647.     TX* textTarget;        // アウトラインを抽出する対象テキスト
  4648.                         // クライアントがWM_OUTLINE_SETTXを使ってセットする
  4649. // クライアント設定情報(直接設定)
  4650.     BYTE ly;                // 見出しを移動したときに設定するly
  4651.     BBOOL fMemo;            // メモ用?
  4652.     BYTE memo_modeDispDate;    // メモの日付を表示?
  4653.                             // 1:作成日,2:更新日を表示
  4654.     BBOOL fInsertTemplate;    // 慣用句の挿入用?
  4655.     BBOOL fSetImeOff;        // フォーカスを得たときにIMEをOFFする?
  4656.     TX* textContent;        // 見出しの内容を表示/編集するテキスト
  4657.     TX* textDest;            // 見出しの内容などの挿入先のテキスト
  4658.     HWND hwndHeadline;        // 見出しを表示するエディトボックス
  4659.     BOOL fImageList;        //WCE1.01 980421 textTargetの見出しの後の2文字をimagelistのINDEXとみなす
  4660.                             // 1文字目は通常のiImage+'A',2文字目は選択時のiImage+'A'とみなす
  4661.     BOOL fHook;                //WCE1.01 980425 WM_OUTLINE_NOTIFY_HOOKでフックできるようにする
  4662.     DWORD retHook;            //WCE1.01 980425 HOOK_CAPTUREしたとき、呼び出し元に返す値
  4663.     int cbBase;                //WCE1.01 980507 表示文字の先頭cbBase文字分を表示しない
  4664.     BYTE iHeadlineMin;        //PWZ2BETA0.6 980621 最小の見出し番号(0:見出し1,1:見出し2...)
  4665. } OUTLINECONTROL;
  4666. //
  4667. #define WM_OUTLINE_SETTX        (WM_USER+950)    // void                text
  4668. #define WM_OUTLINE_NOTIFY        (WM_USER+951)    // NotifyCode        arg
  4669.                                                 ////WCE1.01 980326 WM_NOTIFYに変更すること
  4670.     #define OUTLINEN_SELCHANGE            10
  4671.     #define OUTLINEN_SELCHANGEPRE        11
  4672.     #define OUTLINEN_GETFOCUS            12
  4673.     #define OUTLINEN_MOVETOCHANGE        13
  4674.     #define OUTLINEN_TVK_KEYDOWN        14
  4675.     #define OUTLINEN_CONTEXTCHANGE        15
  4676.     #define OUTLINEN_RBUTTONUP            16    //WZ3.90G 980827 new
  4677. #define WM_OUTLINE_GETCONTEXT    (WM_USER+952)    // void                void
  4678. #define WM_OUTLINE_COMMAND        (WM_USER+953)    // IDD_OUTLINExxx    void
  4679. #define WM_OUTLINE_SIZE            (WM_USER+954)    // void                void
  4680. #define WM_OUTLINE_NOTIFY_HOOK    (WM_USER+955)    // OUTLINE*            TV_DISPINFO*
  4681.                                                 //WCE1.01 980425 outline->fHook時のみ送る
  4682. //
  4683. BOOL TXAPI_(597) txHeadlineChange(TX* text,int iHeadline);
  4684. int TXAPI_(600) txHeadlineMatch(TX* text);
  4685. BOOL TXAPI_(598) txHeadlineGetContent(TX* text,TXSTR sz);
  4686. //
  4687. #define outlineSetTx(hwnd,text)    SendMessage(hwnd,WM_OUTLINE_SETTX,0,(LPARAM)text)
  4688. #define outlineGetContext(hwnd)    ((OUTLINECONTROL*)SendMessage(hwnd,WM_OUTLINE_GETCONTEXT,0,0))
  4689. void TXAPI_(601) outlineRegisterClass(void);
  4690. void TXAPI_(602) outlineFlushTree(OUTLINECONTROL* outline);
  4691. BOOL TXAPI_(603) outlineFlushMemo(HWND hwndOutline);
  4692. void TXAPI_(604) outlineFlushTargetNpara(HWND hwndOutline);
  4693. BOOL TXAPI_(605) outlineSaveEdited(HWND hwndOutline,BOOL fQuery);
  4694. BOOL tvSetText(HWND hctrl,OUTLINECONTROL* outline);
  4695. #ifndef __TXC__
  4696. LPARAM myTreeView_GetParam(HWND hctrl,HTREEITEM hItem,OUTLINECONTROL* outline);
  4697. #endif
  4698. LPVOID myTreeView_SearchParam(HWND hctrl,LPARAM lParam,OUTLINECONTROL* outline);
  4699. void outlineTermParam(OUTLINECONTROL* outline);
  4700. void outlineInitParam(OUTLINECONTROL* outline);
  4701. typedef struct {
  4702.     HANDLE hItem;
  4703.     LPARAM lParam;
  4704. } OUTLINEPARAM;
  4705. OUTLINECONTROL* TXAPI_(24) dialogTree(HDIALOG hd,mchar* szCaption,TX* text,int width,int height);
  4706.  
  4707. //##config
  4708. LPBYTE TXAPI_(606) fileallocW(wchar* szfilename,DWORD* size);
  4709. //
  4710. TX* shconfigGetText(void);
  4711. void shconfigInit(void);
  4712. BOOL shconfigWriteConfigshare(void);
  4713. BOOL shconfigWriteTextconfigshare(TX* text);
  4714. void shconfigSaveAtEdited(void);
  4715. //
  4716. void configtxMakeList(LPVOID dst,UINT mode);
  4717. BOOL configtxNameIsSystem(mchar* p);
  4718. BOOL configtxUpdown(mchar* szName,BOOL fDown,BOOL fTml);
  4719. void textcfgWriteAllModal(void);
  4720. void textcfgReadAll(void);
  4721. void shconfigReadTextconfigshare(TX* text);
  4722. //
  4723. void TXAPI_(607) txConfigGetGroupName(TX* text,mchar szbuff[CCHWORD]);
  4724. void TXAPI_(608) txConfigGetNamePrim(TX* text,mchar szbuff[CCHWORD]);
  4725. BOOL txConfigGetNamePrimEx(TX* text,mchar szbuff[CCHWORD]);
  4726. LPVOID TXAPI_(609) txConfigGetName(TX* text,mchar szbuff[CCHWORD]);
  4727. BOOL TXAPI_(610) txConfigGet(TX* text);
  4728. BOOL txConfigextGetExist(TX* text,mchar* sz);
  4729. BOOL TXAPI_(611) txConfigAdd(TX* text,mchar* szName);
  4730. BOOL TXAPI_(612) txConfigConnect(TX* text,mchar* szLoad);
  4731. BOOL TXAPI_(613) txConfigSet(TX* text);
  4732. BOOL TXAPI_(614) txConfigSetEx(TX* text);
  4733. void txConfigGetPlug(TX* text);
  4734. BOOL txConfigReadName(TX* text,mchar* szName);
  4735. BOOL txConfigDel(TX* text,mchar* szName);
  4736. //
  4737. void TXAPI_(615) txProfileAdd(TX *text);
  4738. BOOL TXAPI_(616) txProfileLoad(TX* text,PROFILE* pLoad);
  4739. BOOL txProfileLoadPrim(TX* text,PROFILE* pLoad);
  4740. //
  4741. BOOL histLoad(void);
  4742. BOOL histSave(void);
  4743. //
  4744. BOOL configOpen(CONFIG* config,wchar* wszFilename);
  4745. BOOL configSetDataid(CONFIG* config,int dataid,int datalen,BOOL fName);
  4746. int configGetCount(CONFIG* config);
  4747. int configFind(CONFIG* config,mchar* szName);
  4748. BOOL configRead(CONFIG* config,int index,LPVOID pConfig);
  4749. BOOL configWrite(CONFIG* config,int index,LPVOID pConfig);
  4750. BOOL configDelete(CONFIG* config,int index);
  4751. BOOL configRename(CONFIG* config,int index,mchar* szNewName);
  4752. int configAdd(CONFIG* config,mchar* szName,LPVOID pConfig);
  4753. int configMakeList(CONFIG* config,HWND hctrl);
  4754. void configClose(CONFIG* config);
  4755. //
  4756. void txConfigtextRead(TX* text);
  4757. IFILE txConfigtextWrite(TX* text,IFILE adr);
  4758. IFILE txConfigtextDelete(TX* text,IFILE adr);
  4759. void txConfigtextGetOriginal(TX* text);
  4760. void _lwriteConfigtextNone(HANDLE hf);
  4761.  
  4762.  
  4763. //##key
  4764. typedef int SKEY;
  4765. SKEY TXAPI_(617) GetShiftKey(void);
  4766.     #define SKEY_SHIFT        0x01
  4767.     #define SKEY_CONTROL    0x02
  4768.     #define SKEY_ALT        0x04
  4769. BOOL txKeyProcMessage(TX* text,UINT message,WPARAM wParam,LPARAM lParam);    //WZ3.90I 981102 引数(BOOL fKeyD)廃止。TXAPI化中止。
  4770. BOOL TXAPI_(619) txKeyLoad(TX* text);
  4771. BOOL TXAPI_(620) txKeyLoadFrame(TX* text);
  4772. BOOL TXAPI_(621) txKeyInit(TX* text);
  4773. BOOL TXAPI_(622) txIdmToSzkey(TX* text,WZCMD wzcmd,mchar szstr[CCHWORD]);    //WZ3.90I 981103 txKeyWzcmdToSzstrから名称変更
  4774. BOOL TXAPI_(623) keymacroPlayStep(void);
  4775. BOOL TXAPI_(624) keymacroPlay(void);
  4776. BOOL TXAPI_(625) keymacroPlayN(int number);
  4777. BOOL TXAPI_(626) keymacroRecord(void);
  4778. BOOL TXAPI_(627) keymacroAddIdm(int idm);
  4779. BOOL TXAPI_(628) keymacroAddStr(mchar* szStr,BOOL fOverWrite);
  4780. BOOL TXAPI_(629) keymacroAddSearch(mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  4781. BOOL keymacroBusy(void);
  4782. BOOL TXAPI_(630) txuiKeymacro(TX* text);
  4783. void TXAPI_(631) txInsertPreprocess(TX* text);
  4784. void TXAPI_(632) txInsertPostprocess(TX* text);
  4785. int TXAPI_(633) txSearchCmd(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  4786. BOOL TXAPI_(634) wpathIsAutosave(wchar* wszfilename);
  4787. BOOL TXAPI_(635) txAutosaveGetFileNameW(TX* text,wchar wszfilename[CCHPATHNAME]);
  4788. void TXAPI_(636) txAutosaveExec(TX* text);
  4789. BOOL TXAPI_(637) txAutosaveAtQuit(TX* text);
  4790. BOOL TXAPI_(638) txAutosaveAtOpen(TX* text);
  4791. void TXAPI_(639) txAutosaveAtCmd(TX* text);
  4792. BOOL TXAPI_(640) txAutosaveDelete(TX* text);
  4793. BOOL TXAPI_(641) txAutosaveGetDelete(TX* text,wchar* wszfilename);
  4794.  
  4795. //##form
  4796. typedef struct {
  4797.     int lch;                // 段落書式の長さ(lchIndent+lchArticle+lchSubtitle)
  4798.     int lchIndent;            // 字下げ文字列の長さ
  4799.     int lcxIndent;            //WZ3.90L 981115 字下げ文字列のLCX
  4800.     int lchArticle;            // 箇条書きの長さ
  4801.     int lchSubtitle;        // 小見出文字列の長さ
  4802.     int lchSubtitleBody;    // 小見出文字列の末尾の空白を除く長さ
  4803.     int lchSubtitleSymbol;    //WCE1.01 980113 小見出しの先頭部分の記号列(一般文字を除く)の長さ
  4804.     int nBeamtab;            //WZ3.90L 981115 桁揃えによる折り返し2行目以降の開始位置
  4805.     FBOOL fSubtitleChar;    //WCE1.01 980113 小見出し文字列は文字列(記号列でない)?
  4806.     FBOOL fArticleNum;        // 番号付き箇条書き段落?
  4807.     FBOOL fArticleJnumber;    // szArticleは全角番号付きか?
  4808.     SIGNED_WORD nArticle;    // 先頭番号
  4809.     SIGNED_WORD ichNum;        // szArticleの番号のオフセット
  4810.     SIGNED_WORD lchNum;        // szArticleの番号の長さ
  4811.     FBOOL fCurArticleNext;    //WCE1.01 971226 カーソル位置が箇条書きの直後にある?
  4812. } APFU_ANALYZE;
  4813. int TXAPI_(642) txApfuGetLcxLeft(TX* text,IBUFF offset,APFU_ANALYZE* ana,NPARA npara);
  4814. BOOL TXAPI_(643) txApfuIndentInc(TX* text);
  4815. BOOL TXAPI_(644) txApfuIndentDec(TX* text);
  4816.  
  4817. //##罫線
  4818. BOOL TXAPI_(645) txKeisenIsNeedOp(TX* text,int op);
  4819. mchar* TXAPI_(646) txKeisenGetLeft(TX* text);
  4820. BOOL TXAPI_(647) txuiKeisenInsertTable(TX* text);
  4821. BOOL TXAPI_(648) txKeisenProperty(TX* text);
  4822. BOOL TXAPI_(649) txKeisenOp(TX* text,int op,mchar* szstr);
  4823.  
  4824. //##WZ MAIL EDITOR/WZ MAILER
  4825. typedef struct tagMAILEDIT {
  4826.     HWND hwndMailer;        // メーラのhwnd
  4827.                             // 0: WZ MAIL EDITORではない
  4828.     WORD idMail;            // このメールのID
  4829.     BYTE modeMail;            // モード
  4830.         #define MODEMAIL_NEW    1    // 新規
  4831.         #define MODEMAIL_REPLY    2    // 返信
  4832.         #define MODEMAIL_EDIT    3    // 編集
  4833.         #define MODEMAIL_VIEW    4    // ビュー
  4834.     WZMAILEDITORFLAGS flags;
  4835. //
  4836.     HWND hwndMailheader;    // メールヘッダウィンドウ
  4837.     HWND hwndReferTo;        // "To:..."
  4838.     HWND hwndReferCc;        // "Cc:..."
  4839.     HWND hwndMenu;            // メニューボタン
  4840.     HWND hwndSend;            //WZ3.90I 981012 送信ボタン
  4841.     HWND hwndMime;            // 添付ファイル
  4842.     struct tagLIST* listMime;    // 添付ファイル
  4843.     mchar szBoundary[70];    // boundary
  4844.     mchar szReplytoFrom[70];//WCE1.01 980505 コメントや返信の場合のコメント先のメッセージの差出人の名前
  4845.     mchar szSubject[100];    // txDoCaption用に現在のSubject内容を入れておくバッファ
  4846.                             // fTML時は編集時のバッファも兼ねる
  4847.     BOOL fMailReserve;        // 現在の「保留」状態
  4848.     TX* text;                // 本文のテキスト
  4849.     int x;                    // hwndTo etc x
  4850.     int y;                    // for at init
  4851.     HFONT hfontControl;        // コントロールのフォントハンドル
  4852.     int cxCharControl;        // hfontControlのcxChar
  4853.     int cyCharControl;        // hfontControlのcyChar
  4854.     RECT rTo;                // "To"ウィンドウの位置
  4855.     RECT rCc;                // "Cc"ウィンドウの位置
  4856.     RECT rSubject;            // "件名"ウィンドウの位置
  4857.     BYTE charset0;            //WZ3.90M 981129 オリジナルのcharset
  4858.     BYTE charset;            //WZ3.90M 981129 旧fEnglish
  4859.     FBOOL fDispHeader;        //WZ3.90I 981005 ヘッダの表示?
  4860. // Popup window
  4861.     HWND hwndPopup;            // popup "EDIT" window handle
  4862.     int idPopup;            // IDD_SUBJECT;
  4863. // for txDoCaption
  4864.     BOOL fSaved;            // 保存したかどうか?
  4865.     wchar wszCaption[80];    // for txGetTitleFilenameW buffer
  4866. } MAILEDIT;
  4867. void txMailheaderClose(TX* text);
  4868.  
  4869. //##MIME
  4870.  
  4871. typedef struct {
  4872.     int lchTopReturn;        // 0以外ならlchTopReturn文字ごとに改行を入れる(先頭行のみ)
  4873.                             // 0ならlchReturnを使う
  4874.     int lchTopIndent;        // 0以外なら先頭に空白を入れる(先頭行のみ)
  4875.                             // 0なら入れない
  4876.     int lchReturn;            // 0以外ならlchReturn文字ごとに改行を入れる
  4877.     int lchIndent;            // 0以外なら改行を入れた後に空白を入れる
  4878.     BOOL fDataEndReturn;    // データの末尾に改行を2つ入れる
  4879. } BASE64ENCODEARG;
  4880.  
  4881. BOOL txBase64Encode(TX* text,wchar* wszfilename);
  4882. BOOL txBase64Decode(TX* text,wchar* wszfilename);
  4883. mchar* memBase64Decode(mchar* buff,int lch,int* plchResult);
  4884. mchar* memBase64Encode(mchar* buff,int lch,int* plchResult,BASE64ENCODEARG* arg);
  4885.  
  4886. //##IBUFF operation
  4887. IFILE TXAPI_(650) TXHIGH txIfileGetParaTop(TX* text,IFILE ifile);
  4888. IFILE TXAPI_(651) TXHIGH txIbuffToIfile(TX* text,IBUFF ibuff);
  4889. IBUFF TXAPI_(652) TXHIGH txIfileToIbuff(TX* text,IFILE ifile);
  4890. IBUFF TXAPI_(653) TXHIGH txGetGapSize(TX* text);
  4891. IBUFF TXHIGH txIbuffGetGapTop(TX* text);
  4892. IBUFF TXHIGH txIbuffGetGapEnd(TX* text);
  4893. IBUFF TXAPI_(654) TXHIGH txIbuffGetCurParaTop(TX* text);
  4894. IBUFF TXAPI_(655) TXHIGH txIbuffGetChartop(TX* text,IBUFF ibuff);
  4895. IBUFF TXAPI_(656) TXHIGH txIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  4896. IBUFF TXAPI_(657) TXHIGH txfIbuffGetChartop(TX* text,IBUFF ibuff);
  4897. IBUFF TXAPI_(658) TXHIGH txfIbuffGetPrevcharIbuff(TX* text,IBUFF ibuff);
  4898. IBUFF TXAPI_(659) TXHIGH txfIbuffFlushOffset(TX* text,IBUFF ibuffChartop,IBUFF offset);
  4899. IBUFF TXAPI_(660) TXHIGH txIbuffFlushOffset(TX* text,IBUFF ibuffChartop,int offset);
  4900. BOOL TXAPI_(661) txBuffCheckInsert(TX* text,DWORD size);
  4901. BOOL TXAPI_(662) txIbuffIsParaTop(TX* text,IBUFF ibuff);
  4902. BOOL TXAPI_(663) txIbuffIsCharTop(TX* text,IBUFF ibuff);
  4903. IBUFF TXAPI_(664) txIbuffGetCrTop(TX* text,IBUFF ibuff);
  4904. IBUFF TXAPI_(665) txIbuffGetParaTop(TX* text,IBUFF ibuff);
  4905. BOOL TXAPI_(666) txIbuffIsParaEnd(TX* text,IBUFF ibuff);
  4906. BOOL txIbuffIsEof(TX* text,IBUFF ibuff);
  4907. IBUFF TXAPI_(667) txIbuffGetParaEnd(TX* text,IBUFF ibuff);
  4908. IBUFF txIbuffGetParaContentEnd(TX* text,IBUFF ibuff);
  4909. IBUFF txIbuffGetPrevPara(TX* text,IBUFF ibuff);
  4910. IBUFF TXAPI_(668) txIbuffGetNextPara(TX* text,IBUFF ibuff);
  4911. int TXAPI_(669) txIbuffGetHeadline(TX* text,IBUFF ibuff);
  4912. #define txIfileGetNextPara(text,ifile)    txIbuffToIfile(text,txIbuffGetNextPara(text,txIfileToIbuff(text,ifile)))
  4913. // IFILEの文字サイズを取得(CHAR_TXF対応)
  4914. #define txIfileGetCharsize(text,ifile) txGetCharSize(text,txIfileToIbuff(text,ifile))
  4915. BOOL TXAPI_(670) txIbuffIsTop(TX* text,IBUFF ibuff);
  4916. BYTE TXAPI_(671) txIbuffGetPrevByte(TX* text,IBUFF ibuff);
  4917. IBUFF txIfileGetTop(TX* text);
  4918.  
  4919.  
  4920. //##TXF
  4921. BOOL TXAPI_(673) txfTagIsSingle(TEXTCHAR* pTag);
  4922. BOOL TXAPI_(674) txfTagIsChar(TEXTCHAR* pTag);
  4923. BOOL TXAPI_(675) txfTagIsEnd(TEXTCHAR* pTag);
  4924. BOOL TXAPI_(676) txfTagIsPara(TEXTCHAR* pTag);
  4925. BOOL TXAPI_(677) txfTagIsParaMulti(TEXTCHAR* pTag);
  4926. int TXAPI_(678) txfTagGetLch(TEXTCHAR* pTag);
  4927. TEXTCHAR* TXAPI_(679) txfTagGetName(TEXTCHAR* pTag);
  4928. BOOL TXAPI_(680) txfTagNameIs(TEXTCHAR* pName,TEXTCHAR* pTagname);
  4929. BOOL TXAPI_(681) txfTagIsBeam(TEXTCHAR* pTag);
  4930. BOOL TXAPI_(682) txfTagAnalyze(TAGANA* ana,TEXTCHAR* pTag);
  4931. int TXAPI_(683) txfTagInsert(TX* text,TAGANA* ana);
  4932. int TXAPI_(684) txfTagInsertEx(TX* text,TAGANA* ana,TEXTCHAR* szAtr);
  4933. void TXAPI_(685) txfTagInsertBeam(TX* text,int lx);
  4934. void TXAPI_(686) txfTagnestFree(TX* text);
  4935. void TXAPI_(687) txfTagnestNextFree(TX* text);
  4936. TAGNEST* TXAPI_(688) txfTagnestSearch(TX* text,TAGANA* ana,UINT mode);
  4937. TAGNEST* TXAPI_(689) txfTagnest(TX* text,TEXTCHAR* pTag,int mode);
  4938. mchar* txfTagSkip(mchar* p);
  4939. void TXAPI_(690) txfSplit(TX* text);
  4940. void TXAPI_(691) txfFlushTagAtInsert(TX* text,IFILE address,IFILE cbClip);
  4941. int TXAPI_(692) txfGetDispString(TEXTCHAR* pTag,TEXTCHAR szbuff[CCHWORD]);
  4942. void TXAPI_(693) txfClearCharatr(TX* text);
  4943. void TXAPI_(694) txfClearCharatrArea(TX* text,IFILE* pTop,IFILE* pEnd);
  4944. void TXAPI_(695) txfCharatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr);
  4945.     #define TXFCHARATR_CLEAR    ((TEXTCHAR*)1)
  4946. void TXAPI_(696) txfParaatrEx(TX* text,TEXTCHAR* szTag,TEXTCHAR* szAtr,int chTxftag);
  4947.     #define TXFPARAATR_CLEAR    ((TEXTCHAR*)1)
  4948. BOOL TXAPI_(697) txfRightChartop(TX* text);
  4949. BOOL TXAPI_(698) txfRightChartopTxf(TX* text);
  4950. BOOL TXAPI_(699) txfDeleteChar(TX* text);
  4951. BOOL TXAPI_(700) txfDeleteChartag(TX* text);
  4952. BOOL TXAPI_(701) txfDeleteChartagPrev(TX* text);
  4953. BOOL TXAPI_(702) txfLeftChartail(TX* text);
  4954. BOOL TXAPI_(703) txfLeftChartailEx(TX* text,BOOL fStopParaTag);
  4955. BOOL TXAPI_(704) txfLeftChartailTxf(TX* text);
  4956. BOOL TXAPI_(705) txfLeftChartop(TX* text);
  4957. BOOL TXAPI_(706) txfLeftChartopTxf(TX* text);
  4958. IBUFF TXAPI_(707) txfDeleteNull(TX* text);
  4959. IBUFF TXAPI_(708) txfDeleteNullTxf(TX* text);
  4960. void TXAPI_(709) txfUiInsertTable(TX* text);
  4961. BOOL TXAPI_(710) txfUiInsertImg(TX* text);
  4962. void TXAPI_(711) txfImgAnalyze(TX* text,TEXTCHAR* pTag,IMGATR* atr);
  4963. void TXAPI_(712) txfImgAnalyzeFree(TX* text,IMGATR* atr);
  4964. void TXAPI_(713) txfImgSet(TX* text,IMGATR* atr);
  4965. TEXTCHAR* TXAPI_(714) txfCellGetLeft(TX* text);
  4966. void TXAPI_(715) txfCellAnalyze(TX* text,TEXTCHAR* pTag,CELLATR* atr);
  4967. void TXAPI_(716) txfCellSet(TX* text,CELLATR* atr);
  4968. BOOL TXAPI_(717) txfCellProperty(TX* text);
  4969. BOOL TXAPI_(718) txfCellFlush(TX* text);
  4970. void TXAPI_(719) txfIndentInc(TX* text);
  4971. void TXAPI_(720) txfIndentDec(TX* text);
  4972. BOOL TXAPI_(721) txfIsCurParaTop(TX* text);
  4973. void TXAPI_(722) txfBeam(TX* text);
  4974. int TXAPI_(723) txfGetLcxLeft(TX* text,IBUFF offset);
  4975. BOOL TXAPI_(724) txfProperty(TX* text);
  4976. BOOL TXAPI_(725) txfCharProperty(TX* text);
  4977. BOOL TXAPI_(726) txfParaProperty(TX* text);
  4978. BOOL txfParaPropertyEx(TX* text,BOOL fSimple);
  4979. void TXAPI_(727) txfParaOp(TX* text,int idm);
  4980. void TXAPI_(728) txfCharOp(TX* text,int idm);
  4981. void TXAPI_(729) txfGetCharProperty(TX* text,CONTEXT_CHARPROPERTY* context);
  4982. void TXAPI_(730) txfBeamFlush(TX* text,BOOL fAtInsertBeam);
  4983. TEXTCHAR* TXAPI_(731) atrnext(TEXTCHAR* p);
  4984. int TXAPI_(732) atrlen(TEXTCHAR* pAtr);
  4985. TEXTCHAR* TXAPI_(733) atrAddInt(TEXTCHAR* dst,TEXTCHAR* szAtr,int data);
  4986. TEXTCHAR* TXAPI_(734) atrAddBool(TEXTCHAR* dst,TEXTCHAR* szAtr,BOOL f);
  4987. TEXTCHAR* TXAPI_(735) atrAddString(TEXTCHAR* dst,TEXTCHAR* szAtr,TEXTCHAR* szString);
  4988. TEXTCHAR* TXAPI_(736) atrAddStringW(TEXTCHAR* dst,TEXTCHAR* szAtr,wchar* wszString);
  4989. TEXTCHAR* TXAPI_(737) atrAddAlign(TEXTCHAR* dst,TEXTCHAR* szAtr,int align,int alignDefault);
  4990. TEXTCHAR* TXAPI_(738) atrAddLine(TEXTCHAR* dst,TEXTCHAR* szAtr,int line,int lineDefault);
  4991. BOOL TXAPI txfAtrAddString(TX* text,TEXTCHAR* szAtr,TEXTCHAR* szString);
  4992. int TXAPI_(739) txfAtrGetInt(TEXTCHAR* pName,TEXTCHAR* szAtr,int defaultInt);
  4993. BOOL TXAPI_(740) txfAtrGetBool(TEXTCHAR* pName,TEXTCHAR* szAtr);
  4994. TEXTCHAR* TXAPI_(741) txfAtrGetString(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault);
  4995. mchar* txfAtrGetStringEx(TEXTCHAR* pName,TEXTCHAR* szAtr,TEXTCHAR* szDefault,mchar* szBuff,int cchBuff);
  4996. int TXAPI_(742) txfAtrGetAlign(TEXTCHAR* pName,TEXTCHAR* szAtr,int alignDefault);
  4997. int TXAPI_(743) txfAtrGetLine(TEXTCHAR* pName,TEXTCHAR* szAtr,int lineDefault);
  4998. void TXAPI_(744) txfAtrGetFont(TEXTCHAR* pName,FONTSET* fontset,TX* text);
  4999. void TXAPI_(745) txfAtrSetFont(TEXTCHAR szAtr[256],FONTSET* fontset);
  5000. IBUFF TXAPI_(746) TXHIGH txfTagSearchPrev(TX* text,IFILE adr0,TAGANA* anaFind);
  5001. void TXAPI_(747) txfFlushXAlign(TX* text);
  5002. #define txfTagIsUser(p)                            (p[0] == 'u' && p[1] == '_')
  5003. #define txfTagNameIsEx(pBuff,pTagname,lchTagname)    (!textstrncmp(pBuff,pTagname,lchTagname) && !IschTagname(pBuff[lchTagname]))
  5004. // TAGID
  5005. #define TAG_INDENT    1
  5006. #define TAG_H        2
  5007. #define TAG_ALIGN    3
  5008. #define TAG_B        4
  5009. #define TAG_I        5
  5010. #define TAG_U        6
  5011. #define TAG_CLM        7
  5012. int TXAPI_(748) txfTagidInsert(TX* text,int id,int arg1,int arg2);
  5013. extern TEXTCHAR* _tszTag[];
  5014. #define txfTagidToString(id)    (_tszTag[id])
  5015. void TXAPI_(749) txfBeamAnalyze(TX* text,TEXTCHAR* pTag,BEAMATR* atr);
  5016. int txfTagInsertTag(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind);
  5017. BOOL txfProcDateGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  5018. BOOL txfProcMequoteGetString(TX* text,mchar* pName,mchar szBuff[CCHWORD]);
  5019. int txBeamtabGetIndex(TX* text,IBUFF paratop,TEXTCHAR* pSrc);
  5020. int txBeamtabGetLx(TX* text,NPARA npara,int iTab,int lxNow);
  5021. DWORD txfIbuffIsLink(TX* text,IBUFF ibuff);
  5022. BOOL txfAnchorJump(TX* text,DWORD anchor);
  5023. BOOL txfCellGetExist(TX* text);
  5024. BOOL TXHIGH txfCellJumpClm(TX* text,int clm);
  5025. BOOL txfCellGetExistRear(TX* text);
  5026. void txInsertCell(TX* text);
  5027. void txfRowSetLineBottom(TX* text,int lineBottom);
  5028. void txfToHtml(TX* text);
  5029. void txfFromHtml(TX* text);
  5030. void txBeamtabFlushAll(TX* text);
  5031. void cellatrInit(CELLATR* atr);
  5032. void cellatrToString(CELLATR* atr,TEXTCHAR szAtr[80]);
  5033. void txfCellJumpTableTop(TX* text);
  5034. BOOL txfBeamGetExist(TX* text);
  5035. int txfFootnoteFlushPara(TX* text,int number);
  5036. BOOL txfRowAdd(TX* text);
  5037. int txfCellGetRightX(TX* text);
  5038. int txfCellGetClm(TX* text);
  5039. BOOL txfCellIsCur(TX* text);
  5040. void txFlushMenuCheckAll(TX* text);
  5041. void txfInsertSf(TX* text,mchar* sf);
  5042. void txfCellFlushAll(TX* text);
  5043. void txfCharPropertyPrint(TX* text);
  5044. UINT TXAPI_(909) txfTagRemove(mchar* pMem,UINT size0);
  5045.  
  5046. //##タブ桁揃え
  5047. UINT txBeamtabGetOffset(TX* text,IBUFF paratop,int iTab);
  5048. BOOL txBeamtabSetLx(TX* text,NPARA npara,int iTab,int lx);
  5049. BOOL txBeamtabGetExist(TX* text,IBUFF paratop);
  5050. int txBeamtabGetCount(TX* text,IBUFF paratop);
  5051. BOOL txBeamtabFlushScreen(TX* text);
  5052.  
  5053. //##印刷
  5054. void TXAPI_(750) txLpDispOutsideText(TX* text);
  5055. BOOL TXAPI_(751) txLpInit(TX* text);
  5056. void TXAPI_(752) txLpTerm(TX* text);
  5057. BOOL TXAPI_(753) txuiLpStyle(TX* text);
  5058. BOOL TXAPI_(754) txuiLprint(TX* text);
  5059. BOOL TXAPI_(756) txLpSwitchPreview(TX* text);
  5060. BOOL TXAPI_(757) txLprint(TX* text);
  5061. void txLprintHeader(TX* text);
  5062. #if WZFUNC_PRINT
  5063.     int yToLy(TX* text,int y);
  5064.     int lyToY(TX* text,int ly);
  5065.     int lyGetCy(TX* text,int ly);
  5066. #else
  5067.     #define yToLy(text,y)            (((y) - text->nSpaceTop) / text->cyLine)
  5068.     #define lyToY(text,ly)            (text->nSpaceTop + (ly) * text->cyLine)
  5069.     #define lyGetCy(text,ly)        (text->cyLine)
  5070. #endif
  5071. BOOL TXAPI_(759) txLpFlushBaseY(TX* text);
  5072. void TXAPI_(760) txLpFlushPage(TX* text);
  5073.  
  5074. //##Multi Font / Img
  5075. void txFontsetSetBase(TX* text);
  5076. typedef struct {
  5077.     BOOL fGetLineSize;    //(in)    LSOP_GETLINESIZE?
  5078.     BOOL fLineOver;        //(out)    fGetLineSize時に折り返し幅を超えるのでこの文字の直前までをcurysizeとする?
  5079.     int src;            //(in)    fGetLineSize時にcurysize>0のチェックに使用
  5080.     int x;                //(i/o)    x座標
  5081.     int cxWidth;        //(in)    fGetLineSize時に折り返し幅のチェックに使用
  5082.     int cxRate;            //(i/o) 横幅の拡大縮小パーセント for <CXRATE>
  5083. } TXFPROC_LINESIZEOP_ARG;
  5084. void txfProcTag_LINESIZEOP(TX* text,TEXTCHAR* pTag,TEXTCHAR* pName,TXFPROC_LINESIZEOP_ARG* arg);
  5085.  
  5086. //##HDC operation
  5087. int TXAPI_(761) pointsToMmtext(HDC hdc,int points);
  5088. int TXAPI_(762) pixelsToMcm(HDC hdc,int pixels);
  5089. int TXAPI_(763) mcmToPixels(HDC hdc,int mcm);
  5090. #if WZFUNC_PRINT
  5091.     int xLPtoDP(HDC hdc,int x);
  5092.     int yLPtoDP(HDC hdc,int y);
  5093.     int xLPadd1(HDC hdc,int x);
  5094.     int yLPadd1(HDC hdc,int y);
  5095.     int yLPsub1(HDC hdc,int y);
  5096.     int xLP(HDC hdc,int x);    //WZ3.90H 980917 
  5097.     int yLP(HDC hdc,int y);    //WZ3.90H 980917 
  5098. #else
  5099.     #define xLPtoDP(hdc,x)    (x)
  5100.     #define yLPtoDP(hdc,y)    (y)
  5101.     #define xLPadd1(hdc,x)    (x)
  5102.     #define yLPadd1(hdc,y)    (y)
  5103.     #define yLPsub1(hdc,y)    (y)
  5104.     #define xLP(hdc,x)        (x)
  5105.     #define yLP(hdc,y)        (y)
  5106. #endif
  5107. void MapDC(TX* text,HDC hdc);
  5108. void TXAPI_(764) hdcSelectObjectDefault(HDC hdc);
  5109. void TXAPI_(765) hdcDrawFrame(HDC hdc,RECT *r,UINT mode);
  5110.     // hdcのrに3次元で枠を描きます
  5111.     // modefButtonが真なら、ふくらんだボタン、偽ならへこんだボタンの枠を描きます
  5112.     //   DF_BUTTON            ふくらんだボタン
  5113.     //   DF_PUSHEDBUTTON    へこんだボタン
  5114.     //   DF_INFO            ステータスバー内の枠
  5115.     //   DF_INFOWHITE        ステータスバー内の枠(中身白)
  5116.     //   DF_BORDER            境界線で枠
  5117.     //   DF_ROUNDBORDER        境界線で角が丸い枠
  5118.     //   DF_BUTTONSHADOW    ボタンの影
  5119.     //   DF_BUTTONFACE        ボタンベース色
  5120.     #define DF_PUSHEDBUTTON        0
  5121.     #define DF_BUTTON            1
  5122.     #define DF_BORDER            2
  5123.     #define DF_INFO                3
  5124.     #define DF_ROUNDBORDER        4
  5125.     #define DF_BUTTONSHADOW        5
  5126.     #define DF_BUTTONFACE        6
  5127.     #define DF_INFOWHITE        7
  5128.     enum {
  5129.         DF_FRAMEOUTSIDE=110,
  5130.         DF_FRAMEINSIDE,
  5131.         DF_FRAME,                // DF_FRAMEOUTSIDE+DF_FRAMEINSIDE    //WZ3.90O 981202 
  5132.     };
  5133.  
  5134. //##Window Operation
  5135. #define hwndGetContext(hwnd)            ((LPVOID)GetWindowLong(hwnd,0))
  5136. #define hwndSetContext(hwnd,context)    SetWindowLong(hwnd,0,(LONG)context)
  5137. #define wndprocContext(hwnd,context,message,wParam,lParam)    \
  5138.         if (context == NULL && message != WM_CREATE) return DefWindowProc(hwnd,message,wParam,lParam);
  5139. #define hwndtextGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  5140. #define hwndbaseGetText(hwnd)            ((TX*)hwndGetContext(hwnd))
  5141. #define hwndoutlineGetContext(hwnd)        ((OUTLINECONTROL*)hwndGetContext(hwnd))
  5142.  
  5143. //##DDE
  5144.  
  5145. BOOL TXAPI_(829) ddeConnect(mchar* pszService, mchar* pszTopic);
  5146. BOOL TXAPI_(830) ddeDisconnect(void);
  5147. BOOL TXAPI_(831) ddeExecute(mchar* pszCmd);
  5148. BOOL TXAPI_(832) ddeExecuteEx(mchar* pszCmd,DWORD* dwResult);
  5149. BOOL TXAPI_(833) ddePoke(mchar* szItem,mchar* szData);
  5150. UINT TXAPI_(834) ddeGetLastError(void);
  5151. BOOL TXAPI_(835) ddeRequest(mchar* szItem,mchar** szData);
  5152. HWND TXAPI_(884) apSearchWindow(mchar* szCaption);
  5153.  
  5154. //##thread
  5155. #ifndef __TXC__
  5156. #undef csEnter
  5157. #undef csExit
  5158. #define csEnter(cs)    EnterCriticalSection(cs)
  5159. #define csExit(cs)    LeaveCriticalSection(cs)
  5160. #define csInit(cs)    InitializeCriticalSection(cs)
  5161. #define csTerm(cs)    DeleteCriticalSection(cs)
  5162. extern CRITICAL_SECTION g_csCaret;
  5163. #endif
  5164.  
  5165. //##permanent
  5166.  
  5167. void TXAPI_(240) _permanentGetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  5168. void TXAPI_(241) _permanentSetInt(mchar* szAppName,mchar* szName,LPVOID pVar,UINT size);
  5169. void TXAPI_(242) _permanentGetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  5170. void TXAPI_(243) _permanentSetTxstr(mchar* szAppName,mchar* szName,TXSTR string);
  5171. void TXAPI_(244) _permanentFlush(void);
  5172.  
  5173. //##txstr support
  5174. #ifdef __TXC__
  5175. txstr TXAPI_(768) txstrcpylen(txstr dst,mchar* src,int lch);
  5176. txstr TXAPI_(769) _strmid(txstr dst,mchar* str,int offset,int lchmid);
  5177. txstr TXAPI_(770) _strleft(txstr dst,mchar* str,int lchleft);
  5178. txstr TXAPI_(771) _inttostr(txstr dst,int num);
  5179. txstr TXAPI_(772) _chartostr(txstr dst,int ch);
  5180. mchar* TXAPI_(773) strright(mchar* str,int lchright);
  5181. mchar* TXAPI_(774) strrear(mchar* str,int lchleft);
  5182. #endif
  5183.  
  5184. //##stdlib for TX-C
  5185. #ifdef __TXC__
  5186. extern "stdlib" {
  5187.     BOOL CommandBar_mySetMenu(HWND hwndCB,WORD iButton,HMENU hmenuAdd);
  5188. }
  5189. #if !WINDOWSCE
  5190.     #define CommandBar_Height(hwnd)        (0)
  5191. #endif
  5192. #endif
  5193.  
  5194. //##TX-PCODE support
  5195.  
  5196. FARPROC TXAPI_(814) txpcodeRegisterCallback(FARPROC procTxpcode,UINT nArg);
  5197. void    TXAPI_(815) txpcodeUnregisterCallback(FARPROC procRegistered);
  5198. void    TXAPI_(246) txSetHookWndproctextTxpcode(TX* text,FARPROC procTxpcode);
  5199. void    TXAPI_(247) txSetHookWndprocbaseTxpcode(TX* text,FARPROC procTxpcode);
  5200. void    TXAPI_(883) txReleaseHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,BOOL fHwndbase);
  5201.     #define txReleaseHookWndproctext(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,FALSE)
  5202.     #define txReleaseHookWndprocbase(text,procTxpcode)    txReleaseHookWndproc(text,procTxpcode,TRUE)
  5203.  
  5204. //##hook
  5205.  
  5206. void txAddHookWndproctext(TX* text,WNDTEXTHOOKPROC lpHook);
  5207. void txAddHookWndprocbase(TX* text,WNDTEXTHOOKPROC lpHook);
  5208. void txAddHookWndproc(TX* text,WNDTEXTHOOKPROC lpHook,BOOL fTxpcode,BOOL fHwndbase);
  5209.  
  5210. //##menu
  5211. HMENU TXAPI_(387) menuNew(void);
  5212. void TXAPI_(388) wmenuStr(HMENU hmenu,wchar* szStr,int id);
  5213. void TXAPI_(810) menuStr(HMENU hmenu,mchar* sz,int id);
  5214. void TXAPI_(245) wmenuPopup(HMENU hmenu,wchar *szStr,HMENU hmenuPopup);
  5215. void TXAPI_(811) menuPopup(HMENU hmenu,mchar* sz,HMENU hmenuPopup);
  5216. void TXAPI_(389) menuSepa(HMENU hmenu);
  5217. void TXAPI_(390) menuDelete(HMENU hmenu);
  5218. BOOL TXAPI_(874) menuTx(HMENU hmenu,mchar* szCaption,mchar* szMacro);    //WZ3.90L 981122 TX-C互換
  5219. int TXAPI_(391) menuOpenEx(HMENU hmenu,UINT flag,int x,int y,HWND hwndParent);
  5220.     #define MENU_CMD        0x0001    // ウィンドウプロシジャを経由せず、コマンドを返す。
  5221.     #define MENU_CENTER        0x0002    // 画面中央に表示。x,yにはlcx,lcyを指定。
  5222.     #define MENU_MOUSE        0x0004    // マウス位置に表示。
  5223.     #define MENU_TXCUR        0x0008    // textのカーソル位置に表示。
  5224.     #define MENU_TRAY        0x0010    // タスクトレイの位置に表示。
  5225.     #define MENU_DELETE        0x0020    // オープン後にhmenuを削除する。
  5226. // 以下、TX-Cからも利用可能
  5227. #define txHmenuSelect(text,hmenu)    menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_TXCUR,0,0,text->hwndtext)
  5228. #define txHmenuOpenKey(text,hmenu)    menuOpenEx(hmenu,MENU_TXCUR,0,0,text->hwndbase)    //WZ4.00A 981229 new hwndtextを渡すのは×、hwndbaseが○
  5229. #define menuSelectMouse(hmenu)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE|MENU_MOUSE,0,0,NULL)
  5230. #define menuOpenMouse(hmenu)        menuOpenEx(hmenu,MENU_MOUSE,0,0,NULL)
  5231. #define menuOpenXY(hmenu,x,y)        menuOpenEx(hmenu,0,x,y,NULL)
  5232. // 以下、内部用
  5233. #define menuSelectXY(hmenu,x,y)        menuOpenEx(hmenu,MENU_CMD|MENU_DELETE,x,y,NULL)
  5234. #define menuOpenCenter(hmenu,lx,ly)    menuOpenEx(hmenu,MENU_CENTER,lx,ly,NULL)
  5235. #define menuOpenTray(hmenu,hwnd)    menuOpenEx(hmenu,MENU_TRAY,0,0,hwnd)
  5236. HMENU menuLoadMouseR(mchar* szApp,mchar* szName);
  5237. HMENU menuLoad(mchar* szApp,mchar* szName);
  5238. HMENU menubarLoad(mchar* szApp,mchar* szName);
  5239.  
  5240. //##date
  5241. #ifdef __TXC__
  5242. int TXAPI_(866) timeGetEx(int mode);
  5243. #define timeGetDay()        timeGetEx(0)
  5244. #define timeGetDayofWeek()    timeGetEx(1)
  5245. #define timeGetHour()        timeGetEx(2)
  5246. #define timeGetMinute()        timeGetEx(3)
  5247. #define timeGetMonth()        timeGetEx(4)
  5248. #define timeGetSecond()        timeGetEx(5)
  5249. #define timeGetYear()        timeGetEx(6)
  5250. #define timeGetYoubi()        ((mchar*)timeGetEx(7))
  5251. #endif
  5252.  
  5253. //##TX-C3.0以前との互換
  5254. #ifdef __TXC__
  5255. #define beepAsterisk()                    MessageBeep(0x0040)
  5256. #define beepDefault()                    MessageBeep(0)
  5257. #define beepExclamation()                MessageBeep(0x0030)
  5258. #define beepHand()                        MessageBeep(0x0010)
  5259. #define beepQuestion()                    MessageBeep(0x0020)
  5260. #define    txReplaceContinue(t)            txIdmExec(t,IDM_UIREPLACECONTINUE)
  5261. #define txSearch(text,sz)                txSearchEx(text,sz,SEARCH_NOSENSECASE|SEARCH_NOSENSEZENHAN)
  5262. #define txSearchPara(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP)
  5263. #define txSearchPrev(text,sz)            txSearchEx(text,sz,SEARCH_CUR|SEARCH_PARATOP|SEARCH_PREV)
  5264. #define txGetCharPrev(text)                txGetPrevChar(text)
  5265. #define txGetWordBuff(text,sz,cch)        txGetWordEx(text,sz,cch)
  5266. #define informationex                    statprintf
  5267. #define isreturn(c)                        txchIsReturn(c)
  5268. #define iszenkaku(c)                    txchIsKanji(c)
  5269. #define txClipboardCopy(text)            txSelectCopy(text)
  5270. #define txClipboardCut(text)            txSelectCopyDelete(text)
  5271. #define txClipboardPaste(text)            txPaste(text)
  5272. #define txSelectTsPush(text)            txPrivatePush(text)
  5273. #define txTsClear(text)                    txPrivateClear(text)
  5274. #define txTsPaste(text)                    txPrivatePaste(text)
  5275. #define txTsPop(text)                    txPrivatePop(text)
  5276. #define txTsPopJump(text)                txPrivatePopJump(text)
  5277. #define exec(sz)                        WinExec(sz,SW_SHOWNORMAL)
  5278. #define wzExec(sz)                        wzexec(sz)
  5279. #define txofnGetOpenFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  5280. #define txofnGetOpenFileNameEx(text,sz,szCaption,mode)    txuiGetOpenFileName(text,sz,szCaption,NULL)
  5281. #define txofnReferFileName(text,sz,szCaption)            txuiGetOpenFileName(text,sz,szCaption,NULL)
  5282. #define dialogbig(sz)                    dialog(sz)
  5283. #define dialogGroup(hd,sz)
  5284. #define dialogGroupEnd(hd)
  5285. #define dialogSetGroupRight(hd,x)
  5286. #define dialogEdit(hd,sz,text,lcx,lcy)        dialogEditWz(hd,sz,text,lcx,lcy,WS_VSCROLL)
  5287. #define dialogInt(hd,sz,data,lcx,lcxBox)    dialogInteger(hd,sz,lcx,data,lcxBox)
  5288. #define dialogStr(hd,sz,txstr,lcx,lcxBox)    dialogTxstr(hd,sz,lcx,txstr,lcxBox)
  5289. #define dialogStrC(hd,sz,str,lcx,cch,lcxBox)    dialogString(hd,sz,lcx,str,cch,lcxBox)
  5290. #define dialogButtonCmd(hd,sz,szMacro,lcx)    dialogButtonBig(hd,sz,szMacro,lcx)
  5291. #define dialogRadioID                    dialogChoiceRadio
  5292. #define isopen(sz)                        SearchText(sz)
  5293. #define txSearchText(text,sz)            SearchText(sz)
  5294. #define txSearchTitle(text)                txHeadlineSearchNext(text)
  5295. #define txSearchTitlePrev(text)            txHeadlineSearchPrev(text)
  5296. #define txOpenNew(text)                    textFrameOpen(NULL)
  5297. #define call(sz)                        macroExec(sz,text)
  5298. #define fork(sz)                        forkstd(sz,NULL)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  5299. #define forksw(sz,szSw)                    forkstd(sz,szSw)    // WZ3.0とは若干意味が異なります。forkstdのAPIヘルプを参照してください。
  5300. #endif
  5301.  
  5302. //##TXAPI
  5303. IBUFF TXAPI_(132) TXHIGH txLeftBytes(TX* text,IBUFF lenMove);
  5304. IBUFF TXAPI_(133) TXHIGH txRightBytes(TX* text,IBUFF lenMove);
  5305. BOOL TXAPI_(134) TXHIGH txJumpAddress(TX* text,IFILE address);
  5306. BOOL TXAPI_(135) TXHIGH txJumpAddressBinary(TX* text,IFILE address);
  5307. void TXAPI_(136) txJumpAddressAddLy(TX* text,IFILE address);
  5308. void TXAPI_(137) txInitText(TX* text);
  5309. BOOL TXAPI_(138) txSetFileNameW(TX* text,wchar* wszfilename);
  5310. BOOL TXAPI_(808) txSetFileName(TX* text,mchar* szfilename);
  5311. BOOL txSetFileNamePrimW(TX* text,wchar* wszfilename);
  5312. BOOL TXAPI_(139) txOpenText(TX* text);
  5313. BOOL TXAPI_(140) txClose(TX* text);
  5314. void TXAPI_(141) txDispTextAll(TX* text);
  5315. void TXAPI_(142) txDispTextAllCursor(TX* text);
  5316. int TXAPI_(143) txDown(TX* text);
  5317. int TXAPI_(144) txDownN(TX* text,int n);
  5318. int TXAPI_(145) txNextRoll(TX* text);
  5319. int TXAPI_(146) txNextRollN(TX* text,int n);
  5320. int TXAPI_(147) txUp(TX* text);
  5321. int TXAPI_(148) txUpN(TX* text,int n);
  5322. int TXAPI_(149) txPrevRoll(TX* text);
  5323. int TXAPI_(150) txPrevRollN(TX* text,int n);
  5324. int TXAPI_(151) TXHIGH txRight(TX* text);
  5325. int TXAPI_(152) TXHIGH txLeft(TX* text);
  5326. void TXAPI_(153) txDispText(TX* text,int yTop,int yEnd);
  5327. void TXAPI_(154) txDispNpara(TX* text,NPARA npara);
  5328. // _text2.c
  5329. IFILE TXAPI_(155) TXHIGH txGetParaTail(TX* text);
  5330. IFILE TXAPI_(156) txGetParaTop(tx *text);
  5331. IFILE TXAPI_(157) txGetWordTail(TX* text);
  5332. IFILE TXAPI_(158) txGetWordTop(TX* text);
  5333. IFILE TXAPI_(159) txGetSentenceTop(TX* text);
  5334. IFILE TXAPI_(160) txGetSentenceTail(TX* text);
  5335. IFILE TXAPI_(161) txGetTextSize(TX* text);
  5336. IFILE TXAPI_(162) txGetTextSizeSemi(TX* text);
  5337. // pが示す文字のタイプ(CT_SPACE,CT_XXX,etc)を返す
  5338. int TXAPI_(163) GetCharType(TX* text,mchar *p);
  5339.     #define CT_SPACE    2    // (0x00-0x20),全角スペース(0x8140)
  5340.     #define CT_SYMBOL    3    // '$','_'を除く英記号
  5341.                             // 全角記号(0x8152-0x815Bを除く)
  5342.     #define CT_KATA        4    // 半角カタカナ
  5343.     #define CT_HIRA        5    // 全角ひらがな
  5344.     #define CT_KANJI    6    // 上記以外の全角文字
  5345.     #define CT_CHAR        7    // 上記以外の半角文字
  5346.     #define CT_LF        8
  5347.     #define CT_EOF        9
  5348. IBUFF TXAPI_(166) TXHIGH txCurInsertBuff(TX* text,mchar *str,IBUFF len);
  5349.     #define txCurInsert(text,sz)    txCurInsertBuff(text,sz,strlen(sz))
  5350. BOOL TXAPI_(167) TXHIGH txCurInsertMemorySpace(TX* text,IMEM len);
  5351. int TXAPI_(2) txJumpLineTop(TX* text);
  5352. int TXAPI_(3) txJumpLineEnd(TX* text);
  5353. IBUFF TXAPI_(168) TXHIGH txInsertBuff(TX* text,mchar *str,IBUFF len);
  5354. BOOL txInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  5355. BOOL txCurInsertHfile(TX* text,HANDLE hfSrc,IFILE size);
  5356. int TXAPI_(169) TXHIGH txSearchEx(TX* text,mchar* szfind,DWORD searchmode);
  5357. int TXAPI_(824) txReplaceEx(TX* text,mchar* szFind,mchar* szReplace,SEARCHMODE searchmode);
  5358. LPVOID TXAPI_(820) reSearchMem(LPVOID pMem,DWORD len,mchar* szFind,SEARCHMODE searchmode,SEARCHRE searchre,DWORD* pLenMatch);
  5359. mchar* TXAPI_(821) re(mchar* sztext,mchar* szfind);
  5360. mchar* TXAPI_(822) reSearch(mchar* sztext,mchar* szfind,SEARCHMODE searchmode);
  5361. mchar* TXAPI_(823) reSearchEx(mchar* sztext,mchar* szfind,SEARCHMODE searchmode,UINT pLenMatch);
  5362. mchar* TXAPI_(878) regular(TXSTR sztext,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  5363. mchar* TXAPI_(879) regularStr(mchar* sztext,UINT cch,mchar* szfind,mchar* szreplace,SEARCHMODE searchmode);
  5364.     #define ITAG_TAIL    0x00010001    // 最後のタグ
  5365. mchar* TXAPI retagGetP(int iTag);
  5366. BOOL TXAPI retagGetEx(int iTag,mchar* szbuff,int cch);
  5367. int TXAPI retagGetLch(int iTag);
  5368. BOOL TXAPI_(170) txSelectJump(tx *text);
  5369. BOOL TXAPI_(171) txSelectToChar(tx* text);
  5370. IBUFF TXAPI_(172) TXHIGH txDeleteBytes(TX* text,IBUFF len);
  5371. BOOL TXAPI_(173) TXHIGH txJumpFileTop(TX* text);
  5372. BOOL TXAPI_(174) txJumpFileTopLine(TX* text);
  5373. BOOL TXAPI_(175) txSelect(TX* text);
  5374. BOOL TXAPI_(176) txSelectWord(tx *text);
  5375. BOOL TXAPI_(177) txSelectLine(tx *text);
  5376. int TXAPI_(178) txJumpLineTail(TX* text);
  5377. IBUFF TXAPI_(8) txDeleteChar(TX* text);
  5378. IBUFF TXAPI_(9) txDeletePrev(TX* text);
  5379. int TXAPI_(179) txInsertChar(tx *text,TXCHAR code);
  5380. void txInsertNchar(TX* text,int ch,int n);
  5381. int TXAPI_(180) txCurInsertChar(TX* text,TXCHAR code);
  5382. int TXAPI_(181) txInsertReturn(TX* text);
  5383. BOOL TXAPI_(182) TXAPIBASE txCurInsertReturn(TX* text);
  5384. BOOL TXAPI_(911) TXHIGH txCurInsertTextArea(TX* text,TX* textInsert,IFILE adrTop,IFILE adrEnd);
  5385. BOOL TXAPI_(183) TXHIGH txJumpFileEnd(TX* text);
  5386. BOOL TXAPI_(184) txJumpFileEndLine(TX* text);
  5387. BOOL TXAPI_(185) txPaste(tx *text);
  5388. BOOL TXAPI_(186) TXHIGH txSelectCopy(tx *text);
  5389. int TXAPI_(187) txLeftWord(TX* text);
  5390. int TXAPI_(188) txLeftWordMi(TX* text);
  5391. int TXAPI_(189) txJumpWordTop(TX* text);
  5392. int TXAPI_(190) txJumpWordEnd(TX* text);
  5393. int TXAPI_(191) txJumpWordTopMi(TX* text);
  5394. int TXAPI_(192) txJumpWordEndMi(TX* text);
  5395. int TXAPI_(193) TXHIGH txJumpParaTop(TX* text);
  5396. BOOL TXAPI_(194) TXHIGH txJumpParaEnd(TX* text);
  5397. BOOL TXAPI_(195) TXHIGH txNextPara(TX* text);
  5398. BOOL TXAPI_(196) TXHIGH txPrevPara(TX* text);
  5399. int TXAPI_(197) txRightWordMi(TX* text);
  5400. int TXAPI_(198) txRightWord(TX* text);
  5401. BOOL TXAPI_(199) txFlushSelectNow(TX* text);
  5402. void txFlushScrollBar(TX* text);
  5403. void TXAPI_(200) txSelectCopyQuit(tx *text);
  5404. int TXAPI_(201) txDeleteWord(TX* text);
  5405. int TXAPI_(202) txDeleteWordMi(TX* text);
  5406. int TXAPI_(203) TXHIGH txDeletePara(TX* text);
  5407. int TXAPI TXHIGH txDeleteParaPrim(TX* text);
  5408. int TXAPI_(204) txDeleteParaEnd(TX* text);
  5409. int TXAPI_(205) txDeleteParaTop(TX* text);
  5410. int TXAPI_(817) txDeleteParaline(TX* text);
  5411. int TXAPI_(818) txDeleteParalineEnd(TX* text);
  5412. int TXAPI_(819) txDeleteParalineTop(TX* text);
  5413. BOOL TXAPI_(899) txDeleteLine(TX* text);    //WZ4.00Aa 990109 
  5414. IBUFF TXAPI_(1) TXHIGH txInsert(TX* text,mchar *str);
  5415. int txInsertWithReturn(TX* text,mchar* sz);
  5416. int txInsertWithSpace(TX* text,mchar* sz);
  5417. int TXAPI_(767) TXAPIBASE txInsertf(TX* text,mchar* _format,...);
  5418. int TXAPI_(206) TXHIGH txInsertW(TX* text,wchar* sz);
  5419. void TXAPI_(207) txInsertNspace(TX* text,int nspace,int modeSpace);
  5420.     #define SPACE_SPACE        0    // 半角スペースを使う
  5421.     #define SPACE_JSPACE    1    // できるだけ全角空白で挿入、残りは半角スペースで挿入
  5422.     #define SPACE_TAB        2    // できるだけTabで挿入、残りは半角スペースで挿入
  5423. void TXAPI_(208) TXHIGH_THROUGH txFlushCury(TX* text);
  5424. void TXAPI txFlushCurysize(TX* text);
  5425. BOOL TXAPI_(209) txSetHigh(tx *text);
  5426. BOOL TXAPI_(210) txUndo(TX* text);
  5427. BOOL TXAPI_(211) txRedo(TX* text);
  5428. BOOL TXAPI_(212) TXHIGH txSelectDelete(tx *text);
  5429. void TXAPI_(213) txSelectCopyDelete(tx *text);
  5430. BOOL TXAPI_(214) txSelectEx(tx *text,int fClip);
  5431. int TXAPI_(215) txPrevPage(tx *text);
  5432. int TXAPI txPrevPage1(tx *text);
  5433. int TXAPI_(216) txPrevHalfPage(tx *text);
  5434. int TXAPI_(217) txNextPage(tx *text);
  5435. int TXAPI txNextPage1(tx *text);
  5436. int TXAPI_(218) txNextHalfPage(tx *text);
  5437. int TXAPI_(219) txInsertPara(tx *text);
  5438. BOOL TXAPI_(220) txSelectBox(TX* text);
  5439. BOOL TXAPI_(221) txSelectAll(tx *text);
  5440. BOOL TXAPI_(222) txSelectVz(tx *text);
  5441. int TXAPI_(223) txDeletePrevWord(TX* text);
  5442. int TXAPI_(224) txWriteChar(tx *text,TXCHAR code);
  5443. int TXAPI_(225) txInsertCharModal(tx *text,TXCHAR code);
  5444. int TXAPI txInsertAutoIndent(TX* text,int modeAutoIndent);
  5445. int TXAPI_(226) txOverWrite(TX* text,mchar *szstr);
  5446. int TXAPI_(227) txOverWriteChar(TX* text,WORD code);
  5447. int TXAPI_(228) txOverWriteBuff(TX* text,mchar *szstr,IBUFF lch);
  5448. BOOL TXAPI_(229) txDeleteOverWriteChar(tx *text,TXCHAR code);
  5449. void TXAPI_(230) txSwitchInsert(tx *text);
  5450. BOOL TXAPI_(231) TXHIGH txClipPaste(tx *text,HCLIP hclip,BOOL fJump,int _fClip);
  5451. BOOL TXAPI_(232) TXHIGH txClipCopyEx(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int fClip,NPARA nparaTop,NPARA nparaEnd);
  5452. #define txSetHighSilent(text)    txSetHigh(text)
  5453. #define txResetHighSilent(text)    txResetHigh(text)
  5454. BOOL TXAPI_(233) txResetHigh(tx *text);
  5455. BOOL TXAPI_(234) txResetHighFlag(tx *text);
  5456. int TXAPI_(235) TXAPIBASE txJumpNpara(TX* text,NPARA npara);
  5457. void TXAPI_(236) txDeleteText(tx *text);
  5458. int TXAPI_(237) TXHIGH txGetParaLen(TX* text);
  5459. int TXAPI_(779) TXHIGH txGetParaContentLen(TX* text);
  5460. int TXAPI_(780) txGetLineContentLen(TX* text);
  5461. int TXAPI_(238) TXHIGH txGetParaEx(tx *text,mchar *buff,IBUFF sizebuff);
  5462. int TXAPI_(239) TXHIGH txGetParaRearEx(TX* text,mchar *buff,IBUFF sizebuff);
  5463. mchar* TXHIGH txGetParaAlloc(TX* text);
  5464. BOOL TXAPI_(906) txGetDownAble(TX* text,int n);
  5465. BOOL TXAPI_(907) txGetUpAble(TX* text,int n);
  5466. mchar* TXAPI_(908) txSprintLocate(TX* text,mchar buff[CCHWORD],UINT mode);
  5467. #ifdef __TXC__
  5468. int TXAPI_(782) txGetWord(TX* text,TXSTR dst);
  5469. int TXAPI_(826) txGetWordWhole(TX* text,TXSTR dst);
  5470. int TXAPI_(827) txGetWordAfter(TX* text,TXSTR dst);
  5471. int TXAPI_(783) txGetPara(TX* text,TXSTR dst);
  5472. int TXAPI_(784) txGetParaRear(TX* text,TXSTR dst);
  5473. int TXAPI_(895) txGetLine(TX* text,TXSTR dst);    //WZ4.00A 981229 
  5474. int TXAPI_(896) txGetLineRear(TX* text,TXSTR dst);    //WZ4.00A 981229 
  5475. #endif
  5476. void TXAPI_(843) txFlushUI(TX* text);
  5477. int TXAPI_(249) txSearchNextPrim(TX* text,mchar *sFind,DWORD searchmode,int lchFind);
  5478. BOOL TXAPI_(250) txInsertText(TX* text,TX* textInsert);
  5479. BOOL TXHIGH txInsertTextCur(TX* text,TX* textInsert);
  5480. BOOL TXAPI_(251) txInsertTextSelect(TX* text,TX* textInsert);
  5481. int TXAPI_(252) textSearch(HWND hwnd);
  5482. HWND TXAPI_(253) textRead(int i);
  5483. TX* TXAPI_(254) txAllocText(DWORD mode);
  5484.     #define textalloc()    txAllocText(0)    //PWZ2BETA0.3 980519 
  5485. void TXAPI_(255) txFreeText(TX* text);
  5486. TX* TXAPIBASE TXAPI_(96) textopenW(wchar* szfilename);
  5487. TX* TXAPIBASE TXAPI_(97) textopen(mchar* szfilename);
  5488. TX* TXAPIBASE textopentmlW(wchar* szfilename);
  5489.     #define textnew()    textopen(NULL)    //PWZ2BETA0.4 980610 
  5490. TX* TXAPI_(861) textFrameOpenEx(mchar* szfilename,mchar* szsw);
  5491.     #define textFrameOpen(szfilename) textFrameOpenEx(szfilename,NULL);
  5492. void TXAPIBASE TXAPI_(98) textclose(TX* text);
  5493. BOOL TXAPI_(256) txuiGetOpenFileNameW(TX* text,wchar wszfilename[CCHPATHNAME],wchar* wszCaption,TXOFN_ARG* arg);
  5494. BOOL TXAPI_(807) txuiGetOpenFileName(TX* text,mchar szfilename[CCHPATHNAME],mchar* szCaption,TXOFN_ARG* arg);
  5495. BOOL txuiGetOpenFileNameHtml(TX* text,mchar szfilename[CCHPATHNAME],mchar* szmask);
  5496. BOOL txuiFileOpenPrim(TX* text,int modeFileOpen,TXOFN_ARG* arg);
  5497. BOOL ofnSelectFolderW(wchar* wszfilename,wchar* wszCaption,TXOFN_ARG* arg);
  5498. BOOL TXAPI_(257) TXHIGH txSave(TX* text);
  5499. BOOL TXAPI_(258) TXHIGH txSaveToW(TX* text,wchar* wszfilename);
  5500. BOOL TXAPI_(805) TXHIGH txSaveTo(TX* text,mchar* szfilename);
  5501. BOOL TXAPI_(259) forkexW(wchar* szfilename,wchar* sw,UINT mode,TXFORKRESULT* pResult);
  5502.     // szfilenameのファイルをオープンします。
  5503.     // szfilenameにスイッチ指定を含むことはできません
  5504.     // 空白を含むファイル名もszfilenameにそのまま指定できます
  5505.     // szfilenameは""で括ってあっても構いません
  5506.     // szswに、起動オプションを指定できます。
  5507.     // オープンできたらTRUE
  5508.     // 既にオープンされていたらその窓をアクティブにしてFALSE、
  5509.     // オープンできなかったらFALSEを返します。
  5510.     // modeにはTXFORK_XXXを指定します。_text.hを参照してください。
  5511.     #define TXFORK_NODISP            0x0001    // ウィンドウを表示しない
  5512.     #define TXFORK_CLOSE_NULL        0x0002    // 現在のtextが無題ファイルで内容が空なら閉じる
  5513.     #define TXFORK_CLOSE_TEXT        0x0004    // 現在のtextを強制的に閉じる
  5514.     #define TXFORK_FORKWZ_ENABLE    0x0008    // 高速オープンができなければ、
  5515.                                             // 別WZを起動することも検討する
  5516.     #define TXFORK_FORKWZ            0x0010    // 別WZを起動してオープンする
  5517.                                             // TXFORK_REPLACE_NULLが指定されている場合、
  5518.                                             // TXFORK_REPLACE_NULLができれば別WZは起動しない
  5519.     #define TXFORK_SYNC                0x0020    // 返り値は、szfilenameの窓のhwndbase。
  5520.                                             // オープンできなかったらNULL
  5521.                                             // 別WZを起動してオープンした場合は、
  5522.                                             // オープン処理が終わるまで待つ。
  5523.     #define TXFORK_ENABLE_MULTI        0x0080    // szfilenameが既にオープンされていても
  5524.                                             // 構わずオープンする。
  5525.     #define TXFORK_REPLACE_NULL        0x0100    // 現在のtextが無題ファイルで内容が空なら
  5526.                                             // 閉じて再利用する
  5527.     #define TXFORK_REPLACE_TEXT        0x0200    // 現在のtextを強制的に閉じて
  5528.                                             // 再利用する
  5529. BOOL TXAPI_(260) forkstdW(wchar* szfilename,wchar* sw);
  5530. BOOL TXAPI_(781) forkstd(mchar* szfilename,mchar* szsw);
  5531. BOOL TXAPI_(261) TXCMD uiWindowlist(TX* text);
  5532. void TXAPI_(262) wndtxSetActive(HWND hwndbase);
  5533. HWND TXAPI_(263) SearchTextW(wchar* szfilename);
  5534. HWND TXAPI_(865) SearchText(mchar* szfilename);
  5535. BOOL TXAPI_(264) txuiCloseAllEvery(TX* text);
  5536. void TXAPI_(265) txQuit(TX* text);
  5537. BOOL TXAPI_(266) txuiSave(TX* text);
  5538. BOOL TXAPI_(267) txuiSaveAs(TX* text);
  5539. BOOL TXAPI_(268) txuiSaveAsVz(TX* text);
  5540. BOOL TXAPI_(269) txuiSaveTo(TX* text);
  5541. BOOL TXAPI_(270) txGetEdit(TX* text);
  5542. BOOL TXAPI_(271) txuiClose(TX *textClose);
  5543. BOOL TXAPI_(272) txuiInsertFile(TX* text);
  5544. BOOL TXAPI_(273) txInsertFileW(TX* text,wchar* wszfilename);
  5545. BOOL TXAPI_(804) txInsertFile(TX* text,mchar* szfilename);
  5546. BOOL TXAPI_(274) txuiReopenInternal(TX* text);
  5547. BOOL TXAPI_(275) txReopenInternalExW(TX* text,wchar* szfilenameNew,BOOL fJumpOld,CMDLINECONTEXT* cc);
  5548.     #define RIEX_JUMPOLD            0x01
  5549. BOOL TXAPI_(276) txuiFileOpen(TX* text);
  5550. BOOL TXAPI_(277) txuiFileOpenVz(TX* text);
  5551. HSTRBLK TXAPI_(278) historyOpen(mchar* szName,int cbHistBuff);
  5552. void TXAPI_(279) historyClose(mchar* szName,HSTRBLK sb);
  5553. void historyDelete(HSTRBLK sb);
  5554. IBUFF TXAPI_(280) txGetWordEx(TX* text,mchar* buff,IBUFF sizebuff);
  5555. IBUFF TXAPI txGetWordWholeEx(TX* text,mchar* buff,IBUFF sizebuff);
  5556. IBUFF TXAPI txGetWordAfterEx(TX* text,mchar* buff,IBUFF sizebuff);
  5557. BOOL TXAPI_(281) txGetFreeCursor(TX* text);
  5558. int TXAPI_(282) txRightFree(TX* text);
  5559. int TXAPI_(283) txLeftFree(TX* text);
  5560. BOOL TXAPI_(284) TXHIGH txIsCurReturn(TX* text);
  5561. BOOL TXAPI_(285) TXHIGH txIsCurLineEnd(TX* text);
  5562. BOOL TXAPI TXHIGH txIsCurLineReturn(TX* text);
  5563. BOOL TXAPI_(286) TXAPIBASE txIsCurLineTop(TX* text);
  5564. int TXAPI_(287) txWriteReturn(TX* text);
  5565. int TXAPI_(288) txWriteTab(TX* text);
  5566. int TXAPI_(289) txJumpPara(tx *text,NLINE line);
  5567. int TXAPI_(290) txJumpLine(TX* text,NLINE line);
  5568. int TXAPI_(291) TXHIGH_THROUGH txInsertSpaceFreeCursor(TX* text);
  5569. IBUFF txFlushCurscreen(TX* text);
  5570. void txFlushCurscreenForce(TX* text);
  5571. void txInitConfig(TX* text);
  5572. BOOL TXHIGH_THROUGH txFlushFree(TX* text);
  5573. int TXAPI_(292) txJumpX(TX* text,int x);
  5574. int TXAPI_(293) txCharConvert(TX* text,CHARCONVERT* cc);
  5575. BOOL TXAPI_(294) txJumpLy(TX* text,int y);
  5576. IFILE TXAPI_(295) TXHIGH txGetParaIch(TX* text);
  5577. BOOL TXAPI_(296) TXHIGH txJumpParaIch(tx* text,IFILE lch);
  5578. BOOL TXAPI TXHIGH txJumpParaIchEx(TX* text,IFILE ich);
  5579. int TXAPI_(297) strsize(mchar* szstr);
  5580. int strlensize(mchar *szstr);
  5581. BOOL TXAPI_(298) TXAPIBASE wndImeGetOpen(HWND hwnd);
  5582. void TXAPI_(299) TXAPIBASE wndImeSetOpen(HWND hwnd,BOOL fOpen);
  5583. #define txImeGetOpen(text)            wndImeGetOpen(text->hwndtext)        //WZ3.90L 981121 
  5584. #define txImeSetOpen(text,fOpen)    wndImeSetOpen(text->hwndtext,fOpen)    //WZ3.90L 981121 
  5585. BOOL TXAPI_(300) TXAPIBASE txWalkStart(TX* text);
  5586. BOOL TXAPI_(301) TXAPIBASE txIsWalking(TX* text);
  5587. BOOL TXAPI_(302) TXAPIBASE txWalkEnd(TX* text);
  5588. BOOL TXAPI_(303) TXAPIBASE txWalkStartPrev(TX* text);
  5589. BOOL TXAPI_(304) TXAPIBASE txIsWalkingPrev(TX* text);
  5590. TXCHAR TXAPI_(305) TXHIGH txGetChar(TX* text);
  5591. TXCHAR TXAPI_(306) TXHIGH txGetPrevChar(TX* text);
  5592. TXCHAR TXAPI_(867) txReadChar(TX* text);
  5593. BOOL TXAPI_(828) txGetBuff(TX* text,mchar* buff,IFILE adrtop,IFILE adrend);
  5594. void TXAPI_(307) txFlush(TX* text);
  5595. void txResetTexttop(TX* text);
  5596. void TXHIGH txFlushTexttopPrim(TX* text);
  5597. void txFlushTexttop(TX* text);
  5598. void txfFlushXAlign(TX* text);
  5599. IFILE TXAPI_(308) txGetAddressCurscreen(TX* text);
  5600. BOOL TXAPI_(309) txSetLyCurscreen(TX* text,IFILE adrCurscreen);
  5601. BOOL TXAPI_(310) txIsLineReturn(TX* text);
  5602. BOOL TXAPI_(311) txIsLineEnd(TX* text);
  5603. BOOL TXAPI_(312) TXAPIBASE txIsLineParaTop(TX* text);
  5604. void TXAPI_(313) txJankToAnk(TX* text);
  5605. void TXAPI_(785) txJkanaToKana(TX* text);
  5606. void TXAPI_(786) txJkataToKana(TX* text);
  5607. void TXAPI_(787) txKanaToJhira(TX* text);
  5608. void TXAPI_(788) txKanaToJkata(TX* text);
  5609. void TXAPI_(789) txAnkToJank(TX* text);
  5610. BOOL TXAPI_(314) TXAPIBASE txIsCurParaTop(TX* text);
  5611. BOOL TXAPI_(315) TXHIGH txClipPasteEx(TX* text,HCLIP hclip,int istack,DWORD cbPasteMax,BOOL fJump,int _fClip);
  5612. int TXAPI_(316) clipIsWz(void);
  5613. BOOL TXAPI_(317) clipGetExistText(void);
  5614. BOOL TXAPI_(318) txMarkN(TX* text,int n);
  5615. BOOL txMarkEx(TX* text,int n,IFILE adr);
  5616. BOOL TXAPI_(319) txJumpMarkN(TX* text,int n);
  5617. void TXAPI_(320) txFlushColor(TX* text);
  5618. void txFlushMenuCheck(TX* text,UINT mask);
  5619.     #define FMC_ALL        0x0001
  5620.     #define FMC_UNDO    0x0002
  5621.     #define FMC_CLIP    0x0004
  5622.     #define FMC_CONFIG    0x0008
  5623.     #define FMC_ATOPEN    0x0010
  5624.     #define FMC_FORM    0x0020
  5625. void TXAPI_(321) TXAPIBASE txSetUndispEx(TX* text);
  5626. BOOL TXAPI_(322) TXAPIBASE txSetDispEx(TX* text);
  5627. BOOL TXAPI_(844) txSetDispExJump(TX* text,BOOL fJump);
  5628. #define txSetUndispExSilent(text)    txSetUndispEx(text)
  5629. #define txSetDispExSilent(text)        txSetDispEx(text)
  5630. BOOL TXAPI_(323) TXCMDBASE txuiConvertCharZenhan(TX* text);
  5631. int TXAPI_(324) txJumpBrace(TX* text);
  5632. void TXAPI_(325) txInsertBrace(TX* text);
  5633. BOOL TXAPI_(326) TXCMDBASE txuiMark(TX* text);
  5634. BOOL TXAPI_(327) TXCMDBASE txJumpTagEx(TX* text);
  5635. BOOL TXAPI_(328) txSwitchWindow(TX* text);
  5636. BOOL TXAPI TXHIGH txIsCurTof(TX* text);
  5637. BOOL TXAPI_(329) TXHIGH txIsCurEof(TX* text);
  5638. BOOL TXAPI_(330) txuiImeConvert(TX* text);
  5639. void TXAPI_(331) txSwitchIme(TX* text);
  5640. BOOL TXAPI_(332) TXHIGH_THROUGH txUndoPara(TX* text);
  5641. BOOL TXAPI_(766) txKeySetWzcmd(TX* text,mchar* szKey,WZCMD wzcmd);
  5642. void TXAPI_(901) txKeySet2Stroke(TX* text,IDM idm);
  5643. BOOL TXAPI_(333) txuiGene(TX* text);
  5644. BOOL TXAPI_(334) txCmpFirst(TX* text);
  5645. BOOL TXAPI_(335) txCmp(TX* text);
  5646. void TXAPI_(336) txSetBusy(TX* text);
  5647. void TXAPI_(337) txSetUnbusy(TX* text);
  5648. void TXAPI_(338) txIndentInc(TX* text);
  5649. void TXAPI_(339) txIndentDec(TX* text);
  5650. void TXAPI_(340) txHelpOpenW(TX* text,wchar* _wszfilename);
  5651. void TXAPI_(854) txHelpOpen(TX* text,mchar* szfilename);
  5652. BOOL TXAPI_(341) txJumpPrevEditPara(TX* text);
  5653. BOOL TXAPI_(342) txJumpNextEditPara(TX* text);
  5654. BOOL TXAPI_(343) TXAPIBASE txPrivatePop(TX* text);
  5655. BOOL TXAPI_(344) TXAPIBASE txPrivatePopJump(TX* text);
  5656. BOOL TXAPI_(345) TXAPIBASE txPrivateDeleteTop(TX* text);
  5657. BOOL TXAPI_(346) TXAPIBASE txPrivatePaste(TX* text);
  5658. void TXAPI_(347) TXAPIBASE txPrivateClear(TX* text);
  5659. BOOL TXAPI_(348) TXAPIBASE TXHIGH txPrivatePush(TX* text);
  5660. BOOL TXAPI_(875) TXHIGH memClipCopy(LPVOID pmem,DWORD cbsize,HCLIP hclip,int fClip);
  5661. DWORD TXAPI_(876) TXHIGH memClipPaste(LPVOID pmem,HCLIP hclip);
  5662. wchar* TXAPI_(349) txGetFileExtW(TX* text);
  5663. IFILE TXAPI_(350) txGetAddress(TX* text);
  5664. IFILE TXAPI_(351) txGetAddressSelectTop(tx *text);
  5665. IFILE TXAPI_(352) txGetAddressSelectEnd(tx *text);
  5666. void TXAPI_(812) txJumpSelectTop(TX* text);
  5667. void TXAPI_(813) txJumpSelectEnd(TX* text);
  5668. int TXAPI_(790) txSelectGetMode(TX* text);
  5669. IFILE TXAPI_(353) txGetSelectLen(TX* text);
  5670. IFILE TXAPI_(354) txGetLineTop(TX* text);
  5671. IFILE TXAPI_(355) txGetLineTail(TX* text);
  5672. void TXAPI_(356) txDispCursor(TX* text);
  5673. void TXAPI_(357) txDispLocate(TX *text);
  5674. void TXAPI_(358) txSetUndisp(tx *text);
  5675. BOOL TXAPI_(359) txSetDisp(tx *text);
  5676. BOOL TXAPI_(360) TXAPIBASE txIsClipInPara(tx *text);
  5677. void TXAPI_(361) txSetLy(tx *text,int ly);
  5678. IFILE TXAPI_(362) TXHIGH txGetParaEnd(tx *text);
  5679. IFILE TXAPI_(902) TXHIGH txGetParaContentEnd(TX* text);
  5680. BOOL TXAPI_(363) TXHIGH txClipCopy(tx *text,IFILE cliptop,IFILE clipend,HCLIP hclip,int _clipkind);
  5681. BOOL TXAPI_(364) TXAPIBASE TXHIGH_THROUGH txIsCurFree(tx *text);
  5682. void TXAPI_(365) txDispAll(tx *text);
  5683. void TXAPI_(366) txMarkCur(TX* text);
  5684. void TXAPI_(367) txJumpMarkCur(tx *text);
  5685. void TXAPI_(368) txMarkNow(TX* text);
  5686. void TXAPI_(369) txMarkNowAddress(TX* text,IFILE adr);
  5687. void TXAPI_(370) txJumpMarkNow(TX* text);
  5688. IFILE TXAPI_(371) txEndMarkNow(TX* text);
  5689. void TXAPI_(372) TXHIGH_THROUGH txFlushLx(TX* text);
  5690. BOOL TXAPI_(373) txSelectQuit(tx *text);
  5691. BOOL TXAPI_(912) txSelectGetPrev(TX* text);
  5692. void TXAPI_(374) txSetLyCenter(tx *text);
  5693. int TXAPI_(375) txPrevLineN(TX* text,int n);
  5694. int TXAPI_(376) txNextLineN(TX* text,int n);
  5695. IBUFF TXAPI_(377) TXHIGH txGetCharSize(TX* text,IBUFF off);
  5696. void TXAPI_(378) txFlushCxBase(TX* text);
  5697. wchar* TXAPI_(379) txGetTitleFilenameW(TX* text);
  5698. wchar* TXAPI_(380) txGetTitleFilenameFullW(TX* text);
  5699. BOOL TXAPI_(381) TXCMDBASE txuiConvertChar(TX* text);
  5700. void TXAPI_(382) txApfInsertHR(TX* text);
  5701. BOOL TXAPI_(383) TXCMD txuiApfConfig(TX* text);
  5702. BOOL TXAPI_(384) TXCMD TXUI txuiQuote(TX* text);
  5703. BOOL TXAPI_(385) TXCMDBASE txClipboardAddCopy(TX* text);
  5704. BOOL TXAPI_(386) TXCMDBASE txClipboardAddCut(TX* text);
  5705. void TXAPI_(393) GetWorkRect(RECT *r);
  5706. int TXAPI_(394) txJumpLx(TX* text,int lx);
  5707. BOOL TXAPI_(395) txSearchContinue(TX* text);
  5708. BOOL TXAPI_(396) txSearchContinuePrev(TX* text);
  5709. BOOL TXAPI_(397) txSearchContinueModal(TX* text);
  5710. void TXAPI_(596) txSetSearchContinue(TX* text,mchar* szFind,SEARCHMODE searchmode);
  5711. BOOL TXAPI_(398) uiSelectFolderW(wchar wszfilename[CCHPATHNAME],wchar* wszCaption);
  5712. BOOL TXAPI_(803) uiSelectFolder(mchar szfilename[CCHPATHNAME],mchar* szCaption);
  5713. BOOL TXAPI_(399) txDownBuff(TX* text);
  5714. BOOL TXAPI_(400) txUpBuff(TX* text);
  5715. BOOL TXAPI_(401) clipClear(HCLIP hclip);
  5716. BOOL TXAPI_(402) TXCMDBASE txuiRefer(TX* text);
  5717. mchar* TXAPI_(403) txWzkeyToSzkey(TX* text,WZKEY wzkey,mchar szkey[CCHKEY]);
  5718. mchar* TXAPI_(404) szkeyToStr(mchar szkey[CCHKEY],mchar szstr[CCHWORD]);
  5719. void TXAPI_(405) txSetUndispEdit(TX* text);
  5720. BOOL TXAPI_(406) txSetDispEdit(TX* text);
  5721. int TXAPI_(407) txGetLxLineEnd(TX* text);
  5722. int TXAPI_(408) txGetLxLineTail(TX* text);
  5723. int TXAPI_(164) txIdmExec(TX* text,int idm);
  5724. int TXAPI_(903) txIdmExecPrim(TX* text,int idm,UINT mode);    //WZ4.00Ac 990207 new
  5725. int TXAPI_(825) idmRegister(void);    //WZ3.90I 981027 new
  5726. //WZ3.90I 981027 txIdmExecDirect廃止
  5727. int TXAPI_(838) TXHIGH txCmpCur(TX* text,mchar* szstr);
  5728. int TXAPI_(839) TXHIGH txCmpCurI(TX* text,mchar* szstr);
  5729. int TXAPI_(840) TXHIGH txCmpCurLen(TX* text,mchar* szstr,int lch);
  5730. int TXAPI_(841) TXHIGH txCmpCurLenI(TX* text,mchar* szstr,int lch);
  5731. int TXAPI_(842) TXHIGH txCmpCurPrev(TX* text,mchar* szstr);
  5732. int txCmpParaOffset(TX* text,mchar* szstr,IBUFF offset);
  5733. int txCmpIParatop(TX* text,mchar* szstr);
  5734. int txCmpIParatopLen(TX* text,mchar* szstr,int lch);
  5735. #ifdef __TXC__    // 互換
  5736. HWND TXAPI_(847) txGetNextEditor(TX* text);
  5737. BOOL TXAPI_(885) txInit(TX* text,mchar* szfilename);
  5738. #endif
  5739.  
  5740. //##grep
  5741.  
  5742. typedef struct tagFOLDER_WALK {
  5743.     BBOOL fSearchSubFolder;            // サブフォルダも検索
  5744.     BBOOL fNoSearchWindows;            // Windowsフォルダは検索しない
  5745.     BBOOL fNoSearchBinaryFiletype;    // バイナリ拡張子のファイルは検索しない
  5746.     BBOOL fNoSearchBigFile;            // 巨大なファイルは検索しない
  5747.     int (*appProc)(LPVOID appContext,wchar* wszfilename);
  5748.     LPVOID appContext;                // appProcに渡すクライアント定義コンテキスト
  5749. // appProc用
  5750.     BOOL fAborted;                    // 中止する
  5751. // 内部用
  5752.     wchar wszPath[CCHPATHNAME];        // 検索パス
  5753. } FOLDER_WALK;
  5754. int folderWalk(FOLDER_WALK* walk,wchar* wszPath);
  5755.  
  5756. //##汎用スタイルシート
  5757. //WZ3.90K 981113 new
  5758.  
  5759. typedef struct {
  5760.     mchar* szfilenameCfg;    // スタイルを保存するCFGファイル名
  5761.     void (*txMsghdrGetset)(TX* text,LPVOID appContext,BOOL fSet);    // txMsghdrGetsetするクライアント定義関数。
  5762.     LPVOID appContext;    // クライアント定義コンテキスト
  5763. } STYLESHEETARG;
  5764.  
  5765. int stylesheet_uiMente(STYLESHEETARG* arg,mchar szStyle[CCHWORD]);
  5766. BOOL stylesheet_Load(STYLESHEETARG* arg,mchar* szStyle);
  5767. BOOL stylesheet_Save(STYLESHEETARG* arg,mchar* szStyle);
  5768.  
  5769. //##base window
  5770.  
  5771. #define WNDTX_MOVING        0x0001    // 内部移動中
  5772.  
  5773. #define OFFSET_WNDTX_LEFT    4
  5774. #define OFFSET_WNDTX_TOP    6
  5775. #define OFFSET_WNDTX_CX        8
  5776. #define OFFSET_WNDTX_CY        10
  5777. #define OFFSET_WNDTX_FLAG    12
  5778. #define OFFSET_WNDTX_END    14
  5779.  
  5780. //##見出し関連
  5781. int headline_uistyle(HEADLINE_SET* context);
  5782. void txHeadlineFree(TX* text);
  5783. void txHeadlineInit(TX* text);
  5784. BOOL TXAPI_(837) txHeadlineSearchNext(TX* text);
  5785. BOOL TXAPI_(836) txHeadlineSearchPrev(TX* text);
  5786. BOOL txIbuffHeadlineGetContentPrim(TX* text,IBUFF ibuff,int iHeadline,mchar* szbuff,int cchbuff);
  5787. BOOL txHeadlineGetContentEx(TX* text,mchar* szbuff,int cchbuff);
  5788. int txHeadlineMatchStr(TX* text,IBUFF ibuff);
  5789. BOOL txHeadlineGet(TX* text,int iHeadline,mchar sz[CCHHEADLINE]);
  5790. void txHeadlineSetupMiseiri(TX* text);
  5791. BOOL txHeadlineJumpSameNestTop(TX* text,int nNest);
  5792. BOOL txHeadlineJumpSameNestEnd(TX* text,int nNest);
  5793. BOOL txHeadlineJumpSameNestTail(TX* text,int nNest);
  5794. BOOL txuiHeadlineChange(TX* text);
  5795. BOOL txuiHeadlineMap(TX* text);
  5796.  
  5797. //##マクロ関連
  5798. BOOL TXAPI_(868) macroExec(mchar* szMacro,TX* text);
  5799.  
  5800. #ifndef __TXC__
  5801.  
  5802. //##APF - 自動整形
  5803. extern BBOOL _fApfNameSymbol;    //WCE1.01 980504 "名前>"を整形するか?
  5804. extern mchar _szLineTop[];
  5805. mchar* mystrread(mchar* sz,TXCHAR* ch);
  5806. BOOL txApfExitModal(TX* text);
  5807. BOOL txApfExitEx(TX* text,DWORD mode);
  5808.     #define APF_TO_PLAINTEXT    0x01
  5809.     #define APF_TO_TML            0x02    //WZ3.90K 981113 
  5810. BOOL txApfExit(TX* text);
  5811. BOOL txApfEnter(TX* text);
  5812. BOOL txApfEnterModal(TX* text);
  5813. BOOL txApfEnterDeleteParaform(TX* text);
  5814. BOOL txApfEnterConnect(TX* text);
  5815. BOOL txApfEnterConnectPrev(TX* text);
  5816. BOOL txApfIndentInc(TX* text);
  5817. BOOL txApfIndentDec(TX* text);
  5818. BOOL txApfAtInsertBefore(TX* text);
  5819. BOOL txApfAtInsertAfter(TX* text);
  5820. void txApfIncrementArticle(TX* text);
  5821. void txApfExitFlag(TX* text);
  5822. int txApfGetWidth(TX* text);
  5823. int txApfGetLcxScenarioSerifuIndent(TX* text);
  5824.  
  5825. //##toolbar
  5826. #if WINDOWSCE
  5827.     #define toolbarSetEnableIdm(context,idm,f)
  5828.     #define cmdbarSetEnableIdm(hwnd,idm,f)    SendMessage(hwnd,TB_SETSTATE,idm,f ? TBSTATE_ENABLED : 0)    //WZ4.00Ab 990124 
  5829. #else
  5830. int toolbarGetHeight(TOOLBARCONTEXT* context);
  5831. TOOLBARCONTEXT* toolbarOpen(HWND hwndParent,mchar* szApp,mchar* szName);
  5832. BOOL toolbarProcNotify(TOOLBARCONTEXT* context,LPARAM lParam);
  5833. void toolbarClose(TOOLBARCONTEXT* context);
  5834. int szidmToIdmEx(mchar* szidm,int lchidm);
  5835. void toolbarSetEnableIdm(TOOLBARCONTEXT* context,int idm,BOOL fEnable);
  5836. BOOL toolbarGetEnableIdm(TOOLBARCONTEXT* context,int idm);
  5837. TOOLBARCONTEXT* toolbarLoad(mchar* szApp,mchar* szName);
  5838. TX* toolbarOpenText(mchar* szApp,mchar* szName);
  5839. #endif
  5840.  
  5841. //##縦書き
  5842.  
  5843. int VX(TX* text,int y);
  5844. int VXP(TX* text,int y);
  5845.  
  5846. //##設定の一覧
  5847. #define CFGLIST_STRBLK        0x0000    // strblkに出力
  5848. #define CFGLIST_LISTBOX        0x0100    // listboxに出力
  5849. #define CFGLIST_GETOP(mode)    ((mode) & 0xFF)
  5850. #define CFGLIST_ALL            0        // 設定名の一覧をすべて出力
  5851. #define CFGLIST_NAME        1        // 名前のみを出力。拡張子で始まる名前は出力しない
  5852. #define CFGLIST_EXT_NAME    2        // "拡張子" + " (名前)"を出力
  5853. #define CFGLIST_NAMESEL        3        // CFGLIST_NAMEと同じだが、CとHTMLを表示しない。    //WZ3.90N 981202 
  5854.                                     //WZ3.90P 981205 TMLタグを使う設定も表示しない
  5855. #define CFGLIST_NAMESELTML    4        // CFGLIST_NAMESELと同じだが、TMLタグを使う設定のみを表示    //WZ3.90P 981205 
  5856. int _textmsgMakeList(TX* text,LPVOID dst,UINT mode);
  5857. int textmsgMakeList(TX* text,HWND hctrl);
  5858. void _cfglistAdd(LPVOID dst,UINT mode,mchar* szName);
  5859. void _cfglistClear(LPVOID dst,UINT mode);
  5860. int cfglistAdd(LPVOID dst,UINT mode,mchar* szItem);
  5861.  
  5862.  
  5863. //##文字列関数群
  5864. mchar* cszGetWordTop(mchar* csz);
  5865. int cszGetWordLen(mchar* csz);
  5866. mchar* cszFindNosensecase(mchar* csz,mchar* sz);
  5867. BOOL cszItemDel(mchar* csz,mchar* sz);
  5868. mchar* cszItemAddAlloc(mchar* csz0,mchar* sz);
  5869. mchar* TXAPIBASE strGetWordTopLch(mchar* szStr,int lch);
  5870. int yearAdjust2000(int year);
  5871. int atoi2(mchar* p);
  5872. int atoiLen(mchar* p,int len);
  5873.  
  5874. //## internal text api
  5875. extern BBOOL _foverwriting;
  5876. BOOL lfSet(TX* text,LOGFONT* lf);
  5877. void FreeFont(TX* text);
  5878. void txFlushFont(TX* text);
  5879. void txFlushWidth(TX* text);
  5880. void InitDC(TX* text);
  5881. void TermDC(TX* text);
  5882. void OpenDC(TX* text);
  5883. void CloseDC(TX* text);
  5884. HWND txGetHwndtext(TX* text);
  5885. IBUFF SearchParaTop(LPBYTE buff,IMEM off,IMEM _size);
  5886. IBUFF SearchParaTopEx(LPBYTE buff,IMEM off,IMEM size,IBUFF ibuffAtError);
  5887. IBUFF SearchParaEnd(LPBYTE buff,IMEM off,IMEM _size);
  5888. int checkLy(TX* text,int ly);
  5889. void txCheckWidthTab(TX* text);
  5890. void DispLine(TX* text,int ly,IBUFF off,IBUFF linesize,NPARA npara);
  5891. void DispNull(TX* text,int ly);
  5892. #define txSetUndispSilent(text)    txSetUndisp(text)
  5893. #define txSetDispSilent(text)    txSetDisp(text)
  5894. void tyFlush(TX* text);
  5895. void DispLineNo(TX* text,int ly,NLINE nLine,NPARA npara,NPAGE npage,IBUFF off);
  5896. int hvGetCxClient(TX* text);
  5897. int hvGetCyClient(TX* text);
  5898. NPARA GetNparaFromOffset(TX* text,IBUFF offset);
  5899. int txGetCurCx(TX* text);
  5900. BOOL txFlushBase(TX* text);
  5901. void DispFlushClipBox(TX* text);
  5902. void TXHIGH_THROUGH txSetLyUndispEx(tx *text,int ly);
  5903. UINT txFormChar(TX* text,mchar* str,UINT offset);
  5904. BOOL txJumpCharTop(TX* text);
  5905. void sharefileOpen(TX* text);
  5906. BOOL sharefileClose(TX* text);
  5907. BOOL sharefileLoadAllClose(TX* text);
  5908. void SetReadAll(TX* text);
  5909. void FlushDispLines(tx *text,int lines0,int lines,int nLf);
  5910. BOOL undoGetEditAble(TX* text);
  5911. int JumpLineEnd(TX* text);
  5912. void ScrollY(TX* text,int lyTop,int lyEnd,int dy);
  5913. void DispUnderline(tx *text,int lynew,int lyold);
  5914. void focuslineHide(tx *text);
  5915. void focuslineShow(tx *text);
  5916. void focuslineXor(tx *text);
  5917. void focuslineInit(TX* text);
  5918. void TXHIGH_THROUGH _txFlushCury(TX* text,BOOL fTail);
  5919. BOOL TXHIGH_THROUGH txJumpXPrim(TX* text,int x);
  5920. BOOL SelectQuit(TX* text);
  5921. BOOL txSelectLineCur(TX* text);
  5922. BOOL TXHIGH txReadAll(TX* text);
  5923. int TXHIGH txOffsetToX(TX* text,IBUFF cury,IBUFF offset);
  5924. int TXHIGH txXToOffset(TX* text,IBUFF cury,int *pX,IBUFF curysize);
  5925. BOOL txJumpAddressNear(TX* text,IFILE address);
  5926. IBUFF TXHIGH InsertBytes(TX* text,mchar* str,IBUFF len,int nLf,BOOL fMove);
  5927. void TXHIGH_THROUGH FlushClipVz(TX* text,UINT fClip);
  5928. void FlushAddressAtInsert(TX *text,IFILE len);
  5929. NPARA txPrevParaN(TX* text,NPARA y);
  5930. NPARA txNextParaN(TX* text,NPARA y);
  5931. void undoInit(TX* text);
  5932. void undoTerm(TX* text);
  5933. void undoAddDeleteSelect(TX* text,DWORD address,DWORD size);
  5934. void undoAddDelete(TX* text,DWORD sizedelete);
  5935. void undoAddInsert(TX* text,IFILE address,LPVOID pinsert,DWORD sizeinsert,BOOL fMove);
  5936. void undoAddOpen(TX* text);
  5937. void undoAddCellFlush(TX* text,BOOL fStart);
  5938. void undoPackStart(TX* text);
  5939. BOOL undoPackEnd(TX* text);
  5940. BOOL undoSaveW(TX* text,wchar *wszfilename,FILETIME* ft,FILETIME* ft0);
  5941. void txFlushCxCyClient(TX* text);
  5942. void txFlushLcywindow(TX* text);
  5943. BOOL Init(TX* text,BOOL fTxDeleteText);
  5944. BOOL shareInit(void);
  5945. void shareTerm(void);
  5946. void shareProcEndSession(void);
  5947. BOOL textAdd(HWND hwnd);
  5948. BOOL textAddEx(HWND hwnd,WZPROCESS* arg);
  5949. BOOL textDelete(HWND hwnd);
  5950. int txGetCursorFaceInsert(TX* text);
  5951. int txGetCursorFaceWrite(TX* text);
  5952. void txFreeBitmap(TX* text);
  5953. void txFlushBitmap(TX* text);
  5954. int GetCurLines(TX* text,IBUFF off,int nLf);
  5955. BOOL frametextAdd(TX* text,wchar* wszCmdLine);
  5956. BOOL frametextSetTextFree(TX* text);
  5957. int frametextGetTextCount(void);
  5958. HWND isopenW(wchar *path);
  5959. BOOL cmdlineAnalyzeW(CMDLINECONTEXT* cc,wchar* szcmdline,int nCmdShow);
  5960. BOOL IntoModal(BOOL fOutputErrorMessage);
  5961. void ExitModal(void);
  5962. void ehHwndSetDisp(TX* text,RECT* rWork,BOOL fDisp);
  5963. int GetWidthCx(TX* text,IBUFF offset,NPARA npara,int nClm);
  5964. int GetPosLeft(TX* text,IBUFF offset,NPARA npara,BOOL fPrinter);
  5965. BOOL CALLBACK dlgprocConvertChar(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  5966. void dialogAddConvertChar(HDIALOG hd,CCCONTEXT* ccc);
  5967. void ccToCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5968. void ccFromCcc(CHARCONVERT* cc,CCCONTEXT* ccc);
  5969. BOOL dialogaAutoFilename(TX* text,mchar* szfilename,DWORD mode);
  5970.     #define AFN_SILENT    0x0001
  5971.     #define AFN_REFER    0x0002
  5972.     #define AFN_DETAIL    0x0004
  5973. int clmsToTclm(mchar* szClms,mchar* tClm,int cchClm,int iClm,int maxClm);
  5974. mchar* clmsFromTclmAlloc(mchar* tClm,int cchClm,int iClm,int maxClm,mchar* szFirstClm);
  5975. void sprintfAfnEx(mchar* szdst,mchar* szAf,TX* text,BOOL fSkipTopClm);
  5976. BOOL uiOpenHistFile(void);
  5977. BOOL txuiInsertHistSearch(TX* text);
  5978. BOOL txuiInsertHistCopy(TX* text);
  5979. BOOL txuiInsertHistStr(TX* text);
  5980. BOOL txuiInsertDelete(TX* text);
  5981. BOOL txuiInsertDate(TX* text);
  5982. BOOL txuiTextInfo(TX* text);
  5983. BOOL txSaveEh(TX* text);
  5984. int txGetCaretCx(TX* text);
  5985. void txFreeColor(TX* text);
  5986. void txSetColorReverse(TX* text,BOOL fReverse);
  5987. BOOL IsClose(TX* text);
  5988. BOOL txCreateWindow(TX* text);
  5989. void undoAddAutoForm(TX* text,BOOL fEnd);
  5990. void FlushScrollBar(TX* text);
  5991. BOOL ListBox_SetDeletedFromUndo(HWND hctrl,TX* text);
  5992. int clmFromLy(TX* text,int ly);
  5993. int clmGetX(TX* text,int iClm);
  5994. int clmGetY(TX* text,int iClm);
  5995. BOOL txuiInsertTemplate(TX* text);
  5996. BOOL txuiMemo(TX* text);
  5997. BOOL txuiSearch(TX* text);
  5998. BOOL txuiSearchSet(TX* text);
  5999. void txInitSearchContinueCB(TX* text);
  6000. BOOL txSelectToMemo(TX* text);
  6001. BOOL TXCMDBASE uiInsertControl(TX* text);
  6002. BOOL txOutlineOpen(TX* text);
  6003. BOOL txOutlineOpenEx(TX* text,mchar* szCaption);
  6004. void txOutlineClose(TX* text);
  6005. BOOL pwzIcon(void);
  6006. HWND pwzFiler(void);
  6007. HWND pwzGrep(void);
  6008. BOOL pwzMemo(void);
  6009. HWND pwzMail(void);
  6010. BOOL forkPwzIcon(void);
  6011. BOOL forkPwzFiler(void);
  6012. BOOL forkPwzMail(void);
  6013. BOOL forkPwzGrep(void);
  6014. BOOL forkPwzMemo(void);
  6015. BOOL forkPwzFilerSingle(wchar* wszcmdline);
  6016. BOOL forkPwzMailSingle(wchar* wszcmdline);
  6017. BOOL forkPwzMailSingleI(wchar* wszcmdline);
  6018. BOOL forkPwzGrepSingle(wchar* wszcmdline);
  6019. BOOL clipboardToMemo(void);
  6020. BOOL Exit(void);
  6021. int txIdmExecEx(TX* text,int idm,int nRepeat,BOOL keymacro_fAdd);
  6022.     #define TXIDM_KEYMACRO_ADD    0x01
  6023.     #define TXIDM_PRIM            0x02
  6024. void txDoCaption(TX* text);
  6025. void txOpenNewInstance(TX* text,BOOL fPost);
  6026. BOOL txGrepTagJump(TX* text);
  6027. void txNew(TX* text,BOOL fNewProcess);
  6028. BOOL txuiNew(TX* text);
  6029. void _txFlushMenu(TX* text,BOOL fShow);
  6030. mchar* GetFind(void);
  6031. void SetFind(mchar* szfind);
  6032. void uiHelp(int idStartHeadline);
  6033. void txFlushPreviewW(TX* text,wchar* wszfilename);
  6034. void txFlushPreview(TX* text,mchar* szfilename);
  6035. void SendMessageCmdline(HWND hwnd,wchar* wszcmdline);
  6036. BOOL txCompletePrev(TX* text);
  6037. BOOL txCompleteNext(TX* text);
  6038. void txRulerFlushDisp(TX* text);
  6039. void txAddRefer(TX* text,IFILE adr);
  6040. BOOL kcFromSJIS(TX* text,int kc);
  6041. void kcToSJISEx(TX* text,int kc);
  6042. int kcDetect(TX* text);
  6043. BOOL undoClear(TX* text);
  6044. BOOL txJumpThp(TX* text,mchar* szHeadline);
  6045. BOOL undoGetAble(TX* text);
  6046. BOOL redoGetAble(TX* text);
  6047. IFILE txGetWordTailForSelect(TX* text);
  6048. IFILE txGetWordTopForSelect(TX* text);
  6049. mchar* pwzGetVersion(void);
  6050. int lyToYClm(TX* text,int ly);
  6051. int txuiCloseEvery(TX* text,HWND hwndbase);
  6052. void txReflectCc(TX* text,CMDLINECONTEXT* pcc,BOOL fProfile);
  6053. void txSetImeAtOpen(TX* text);
  6054. BOOL mySHGetShortcutTarget(wchar* wszfilename,wchar* wsztarget,int cchTaraget);
  6055. int txGetXAlign(TX* text,IBUFF off,IBUFF linesize,int align,int cxWidth);
  6056. int txchWidth(TX* text,TXCHAR ch);
  6057. BOOL geneReadText(TX* textTarget,int igene,TX* text);
  6058. int _SearchNext(TX* text,mchar *szFind,DWORD searchmode,int lchFind);
  6059. void txOutlineAdjustNparaChange(TX* text,long nparaD);
  6060. void outlineJumpCur(OUTLINECONTROL* outline);
  6061. void paraatrtextTerm(TX* text);
  6062. BOOL paraatrtextGetEdit(TX* text,NPARA npara);
  6063. NPARA paraatrtextGetCount(TX* text);
  6064. PARAATR_TEXT* paraatrtextGetRecord(TX* text,NPARA npara);
  6065. void DispFlushClipBox(TX* text);
  6066. void DispFlushClipBoxExec(TX* text);
  6067. void txGetBoxOffset(TX* text,IBUFF cury,IBUFF curysize,int x,int* pOff1,int* pOff2);
  6068. BOOL ClipCopyBox(TX* text,IFILE cliptop,IFILE clipend,HCLIP hclip);
  6069. BOOL SelectDeleteBox(TX* text);
  6070. BOOL clipPush(HCLIP hclip,mchar* lpData,DWORD cbData);
  6071. BOOL ClipPasteBox(TX* text,mchar* pstr,IBUFF cbClip);
  6072. void txSetConfigDefaultDev(TX* text,mchar* szext);
  6073. BOOL imgCreateDIB(IMGSET* img,int cx,int cy,int bits);
  6074. BOOL imgSave(IMGSET* img,BOOL fCreateAlways);
  6075. void imgFreeContents(IMGSET* img);
  6076. BOOL txGetMultiClm(TX* text);
  6077. int txGetNclm(TX* text);
  6078. int TXAPI systemfontGetCx(void);
  6079. int TXAPI systemfontGetCy(void);
  6080. int TXAPI dtcx(int dtcx);
  6081. int TXAPI dtcy(int dtcy);
  6082. LRESULT txMaileditNotify(TX* text,UINT message,LPARAM lParam);
  6083. int GetTextTurn(HDC hdc,tchar* sz,int lchSz,int cx);
  6084. BOOL memJisToSjis(mchar* sz);
  6085. BOOL _lwriteEncodeBase64(HANDLE hfDst,HANDLE hfSrc,IFILE size);
  6086. #if !WINDOWSCE
  6087. HWND CommandBar_Create(HINSTANCE hInst, HWND hwndParent, int idCmdBar);
  6088. BOOL CommandBar_Show(HWND hwndCB, BOOL fShow);
  6089. int CommandBar_AddBitmap(HWND hwndCB, HINSTANCE hInst, int idBitmap,int iNumImages, int iImageWidth,int iImageHeight);
  6090. HWND CommandBar_InsertComboBox(HWND hwndCB, HINSTANCE hInstance,int  iWidth, UINT dwStyle,WORD idComboBox, WORD iButton);
  6091. BOOL CommandBar_InsertMenubar(HWND hwndCB, HINSTANCE hInst,WORD idMenu, WORD iButton);
  6092. HMENU CommandBar_GetMenu(HWND hwndCB, WORD iButton);
  6093. BOOL CommandBar_AddAdornments(HWND hwndCB,DWORD dwFlags,DWORD dwReserved);
  6094. int CommandBar_Height(HWND hwndCB);
  6095. void CommandBar_AddButtons(HWND hwndCB,int cbButtons,LPVOID lpButtons);
  6096. void CommandBar_AddToolTips(HWND hwndCB,int cbToolTips,LPVOID lpToolTipsStrings);
  6097. #endif
  6098. BOOL kcToSJIS(TX* text,int kc,int mode);
  6099. BOOL sockwzNew(void);
  6100. BOOL sockwzDelete(void);
  6101. void txFlushWindow(TX* text);
  6102. void TXAPI txKanaToJkata(TX* text);
  6103. BOOL TXAPI txQuoteEx(TX* text,mchar* szQuote,int mode);
  6104.     #define TXQUOTE_SELECT    0x01    // 範囲選択されてなかった時でも選択状態にする
  6105. BOOL iskanjifont(mchar *lfFaceName);
  6106. mchar* strSkipRe(mchar* p,int* pnRe);
  6107. #if WINDOWSCE
  6108. BOOL TextOut(HDC hdc,int x,int y,LPCTSTR lpString,int cbString);
  6109. BOOL IsIconic(HWND hwnd);
  6110. HWND GetDesktopWindow(void);
  6111. #endif
  6112. void myRectangle(HDC hdc,int left,int top,int right,int bottom);
  6113. UINT ch_jis2sjis(UINT ch);
  6114. int txCharGetWidth(TX* text,TEXTCHAR ch);
  6115. int txCharGetWidthKanji(TX* text,TEXTCHAR* p);
  6116. void txFlushKeyword(TX* text);
  6117. int clmGetLy(TX* text,int iClm);
  6118. BOOL forkPwzTermSingle(wchar* wszcmdline);
  6119. BOOL txuiRegisterWord(TX* text,HWND hwndParent);
  6120. void txMailheaderRead(TX* text);
  6121. void maileditpopupOpenSubject(MAILEDIT* mailedit);
  6122. void maileditpopupClose(MAILEDIT* mailedit);
  6123. BOOL maileditOnSyskeydown(TX* text,WPARAM wParam);
  6124. BOOL maileditOnTab(TX* text);
  6125. BOOL txuiCheckMailedit(TX* text,BOOL fUi);
  6126. void mailheaderSetWindowPos(TX* text,RECT* r);
  6127. BOOL _tapiTerm(BOOL fAtExist);
  6128. int txfTagNameGetLch(TEXTCHAR* pName);
  6129. BOOL wfilenameIsLocation(wchar* wszfilename);
  6130. int txSetupDispLine(TX* text,IBUFF cury);
  6131. BOOL txGetScrollBarPreviewH(TX* text);
  6132. int txLpGetCxPaper(TX* text);
  6133. void DispLineNull(TX* text);
  6134. BOOL txLpAddRate(TX* text,int d);
  6135. BOOL txInsertFileWztext(TX* textInsert,wchar* wszfilename,int mode);
  6136. void txFontsetcacheTerm(TX* text);
  6137. void fontsetSetText(TX* text,FONTSET* fontset);
  6138. void txFontsetGet(TX* text,FONTSET* fontset);
  6139. void fontsetFlush(TX* text,FONTSET* fontset);
  6140. void logfontSetup(LOGFONT* lf,mchar* lfFaceName,int lfHeight,HDC hdc);
  6141. BOOL txLpConfigtextRead(TX* text);
  6142. mchar* configGetName(CONFIG* config,int index);
  6143. void txLpConfigtextWrite(TX* text);
  6144. void txSetColorTextForce(TX* text);
  6145. void txSetupCyLine(TX* text,IBUFF cury,IBUFF curysize);
  6146. void ScrollPreviewY(TX* text,int yViewportOrgNew);
  6147. TX* hwndbaseIsMailer(void);
  6148. TX* hwndbaseIsTerm(void);
  6149. TX* hwndbaseIsHelp(void);
  6150. BOOL txPeekWM_CHAR(TX* text);
  6151. BOOL txPeekWM_SYSCHAR(TX* text);
  6152. BOOL txSelectToMemoEx(TX* text,mchar* szCaption);
  6153. BOOL txSelectOverwrite(TX* text);
  6154. BOOL txSelectGetOverwrite(TX* text);
  6155. void TXAPI TXCMD txTabToSpace(TX* text);
  6156. void TXAPI txDeleteTailSpace(TX* text);
  6157. IFILE txGetUrlTopEnd(TX* text,BOOL fTop);
  6158. BOOL txAutosaveGetOverwrite(TX* text);
  6159. #define txAutosaveGetBackup(text)    (!txAutosaveGetOverwrite(text))    //PWZ2BETA0.3 980510 new
  6160. BOOL txMsghdrSetTextbuff(TX* text,mchar* szHeader);
  6161. TEXTCHAR* txMsghdrGetTextbuff(TX* text,mchar* szHeader);
  6162. BOOL txMsghdrDelete(TX* text,mchar* szHeader);
  6163. BOOL txMsghdrSet(TX* text,mchar* szHeader,mchar* szContent);
  6164. BOOL txfConvert(TX* text,int modeSaveAs,HANDLE hf,TX* textQuote);
  6165. mchar* txfGetSubject(TX* text,mchar* buff,int cch);
  6166. void txSetTml(TX* text);
  6167. BOOL txSetTmlModal(TX* text);
  6168. void txSetGetCommonfont(TX* text,BOOL fSet);
  6169. void sbSetupConfigName(HSTRBLK sb);
  6170. void TXAPI sbReduce(HSTRBLK sb);
  6171. void txMailtextToPlaintext(TX* text);
  6172. void txPlaintextToMailtext(TX* text);
  6173. void txPlaintextToWordtext(TX* text);
  6174. void txFlushTable(TX* text);
  6175. void txOnCaretGet(TX* text,BOOL fGet);
  6176. int txMsghdrGet(TX* text,mchar* szHeader,mchar** pSz);
  6177. int txMsghdrGetInt(TX* text,mchar* szHeader,int intDefault);
  6178. BOOL txMsghdrGetString(TX* text,mchar* szHeader,mchar* szDefault,mchar* szbuff,int cchbuff);
  6179. BOOL txMsghdrGetStringW(TX* text,mchar* szHeader,wchar* szDefault,wchar* szbuff,int cchbuff);
  6180. int txMsghdrGetAlloc(TX* text,mchar* szHeader,mchar** pSz);
  6181. BOOL txMsghdrSetInt(TX* text,mchar* szHeader,int data);
  6182. BOOL txMsghdrGetExist(TX* text,mchar* szHeader);
  6183. BOOL txMsghdrGetsetString(TX* text,mchar* szHeader,mchar* szbuff,int cchbuff,BOOL fSet);
  6184. void txMsghdrGetsetStringInit(TX* text,mchar* szHeader,mchar* szInit,mchar* szbuff,int cchbuff,BOOL fSet);
  6185. BOOL txMsghdrGetsetInt(TX* text,mchar* szHeader,int* data,BOOL fSet);
  6186. void txMsghdrGetsetIntInit(TX* text,mchar* szHeader,int initdata,int* data,BOOL fSet);
  6187. BOOL txMsghdrGetsetIntW(TX* text,mchar* szHeader,WORD* data,BOOL fSet);
  6188. BOOL txMsghdrGetsetIntB(TX* text,mchar* szHeader,BYTE* data,BOOL fSet);
  6189. BOOL txVarSetString(TX* text,mchar* szName,mchar* szContent);
  6190. mchar* txVarReadString(TX* text,mchar* szName,mchar* szDefault);
  6191. typedef struct {
  6192.     IFILE adr;
  6193.     IFILE texttop;
  6194.     int ly;
  6195. } TEXTTOPEXIT;
  6196. void txResetTexttopEnter(TX* text,TEXTTOPEXIT* context);
  6197. void txResetTexttopExit(TX* text,TEXTTOPEXIT* context);
  6198. BOOL txIsCurscreenDispEof(TX* text);
  6199. TX* hwndMailerGetText(HWND hwnd);
  6200. void stdlibInit(void);
  6201. //
  6202. LRESULT CALLBACK dialogCallDlgprocTxpcode(FARPROC proc,HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  6203. void txpcodeNotifyTextClose(TX* text);
  6204. void txpcodeSetDlgproc(FARPROC proc,BOOL fRelease);
  6205. void txTextvarFreeAll(TX* text);
  6206. WZCMD szMacroToWzcmd(mchar* szMacro);
  6207. mchar* wzcmdToSzmacro(WZCMD wzcmd);
  6208. BOOL uiTxcConfig(void);
  6209. BOOL uiMacroExec(TX* text);
  6210. BOOL txMacroCompile(TX* text);
  6211. BOOL txMacroExec(TX* text);
  6212. BOOL txMacroDump(TX* text);
  6213. void txMacroLog(TX* text);
  6214. BOOL txeExec(mchar* szfilename,wchar* wszCmdLine);
  6215. void macroTerm(void);
  6216. void myCheckMenuItem(HMENU hmenu,int idm,BOOL fCheck);
  6217. void myEnableMenuItem(HMENU hmenu,int idm,BOOL fEnable);
  6218. BOOL GetEnableMenuItem(HMENU hmenu,int idm);
  6219. BOOL forkstdPrimW(wchar* wszfilename,wchar* wszsw,int modeFileOpen);    //WZ3.90F 980820 
  6220. IBUFF memGetCharSize(mchar* p,mchar* pEnd,SEARCHRE searchre);
  6221. mchar* memGetPrevChar(mchar* p,mchar* pTop,mchar* pEnd,SEARCHRE searchre);
  6222. TX* textmsgopen(mchar* szfilename,mchar* szName);
  6223. BOOL textmsgclose(TX* text);
  6224. BOOL txMsghdrGetsetStringW(TX* text,mchar* szHeader,wchar* szbuff,int wcchbuff,BOOL fSet);
  6225. BOOL textmsgDel(TX* text,mchar* szName);
  6226. void textmsgAdd(TX* text,mchar* szName);
  6227. BOOL textmsgSetNull(TX* text,mchar* szName);
  6228. BOOL textmsgNext(TX* text);
  6229. void txSetTexttopCur(TX* text);
  6230. BOOL txMsghdrJumpHeader(TX* text,mchar* szHeader);
  6231. BOOL txMsghdrSetFiletimeWzdate(TX* text,mchar* szHeader,FILETIME* filetime);
  6232. BOOL txMsghdrSetChoice(TX* text,mchar* szHeader,int data,mchar** tsz);
  6233. int txMsghdrGetChoice(TX* text,mchar* szHeader,int intDefault,mchar** tsz);
  6234. DWORD txMsghdrGetBinary(TX* text,mchar* szHeader,LPVOID pData);
  6235. BOOL txMsghdrSetW(TX* text,mchar* szHeader,wchar* wszContent);
  6236. BOOL txMsghdrSetBinary(TX* text,mchar* szHeader,DWORD sizedata,LPVOID pdata);
  6237. void txMsgJumpMsgTop(TX* text);
  6238. BOOL txMsghdrSetEx(TX* text,mchar* szHeader,mchar* szContent,int lchContent);
  6239. int txMsghdrGetContentMultiline(TX* text,int lchHeader,mchar** pSz);
  6240. void txMsghdrGetsetIntInitB(TX* text,mchar* szHeader,int initdata,BYTE* data,BOOL fSet);
  6241. void txMsghdrGetsetIntInitW(TX* text,mchar* szHeader,int initdata,WORD* data,BOOL fSet);
  6242. BOOL txMsghdrDeleteMultiline(TX* text,mchar* szHeader);
  6243. BOOL TXHIGH txIbuffIsMsgsepa(TX* text,IBUFF ibuff);
  6244. void txConfigFlushFilekind(TX* text);
  6245. TX* textmsgopenWzapp(mchar* szName);
  6246. BOOL textmsgGetRecord(TX* text,mchar* szName);
  6247. BOOL textmsgSearch(TX* text,mchar* szName);
  6248. void wi10toa(int value,wchar* buff);
  6249. long watoi10(wchar* buff);
  6250. void lpSetDefaultConfig(LPRINT* lp);
  6251. BOOL txLpReadMsghdr(TX* text,LPRINT* lp);
  6252. mchar* idmToString(mchar szCmd[CCHWORD],int idm);
  6253. mchar* idmToSzEmacsFunction(int idm);
  6254. void txKeylistOutputEmacs2Stroke(TX* textDst);
  6255. void __on_txFrameNewEmacs(TX* text);
  6256. void __on_txFrameNewHtml(TX* text);
  6257. void __on_txFrameNewSpeak(TX* text);
  6258. void __on_txNewSpeakFilelist(TX* text);
  6259. void __on_txNewSpeakGrep(TX* text);
  6260. void __on_txFrameNewSpeak(TX* text);
  6261. BOOL txuiHtmlInsertTable(TX* text);
  6262. void txHtmlCharOp(TX* text,int idm);
  6263. void txHelpOpenExtend(TX* text,int iHelp);
  6264. void cmdlineDeleteOneFilenameW(wchar* szcmdline);
  6265. int mmtextToPoints(HDC hdc,int mmtext);
  6266. BOOL TXHIGH_COND txIsCurMsgsepa(TX* text);
  6267. void rectReWork(RECT* r);
  6268. BOOL txfAnchorContextHelp(DWORD anchor,RECT* r);
  6269. BOOL IsOwnered(HWND hwndParent,HWND hwnd);
  6270. int lpdot(TX* text);
  6271. void hwndSetFontDefault(HWND hwnd);
  6272. BOOL strhtmlTagIsA(mchar* p);
  6273. int strhtmlGetTagLch(mchar* sz);
  6274. UINT strhtmlIsCharRefer(mchar* p);
  6275. BOOL strhtmlTagIsHR(mchar* p);
  6276. HBITMAP strhtmlTagGetReduceHbitmap(TX* text,mchar* p,VALIGN* pValign);
  6277. mchar* strhtmlTagIsIMG(mchar* p);
  6278. void headlinestyleSetDefaultFont(HEADLINESTYLE* style,int iHeadline,int lfHeight);
  6279. int pointsToLpx(LPRINT* lp,int points);
  6280. void txLpWriteMsghdr(TX* text,LPRINT* lp);
  6281. BOOL TXAPI txOpenMail(TX* text,mchar* szMailAddress);
  6282. BOOL TXAPI txOpenURL(TX* text,mchar* szURL);
  6283. #if !WINDOWSCE1
  6284. BSTR ime98GetPhonetic(OLECHAR* wszKanji);
  6285. #endif
  6286. LRESULT txSendWmNotify(TX* text,int txn);
  6287. void strToRect(mchar* p,RECT* r);
  6288. BOOL txuiConfirmNewfile(TX* text,CMDLINECONTEXT* pcc,wchar* wszfilename);
  6289. BOOL txConvertForSaveAs(TX* text,int modeSaveAs,wchar* wszfilename,BOOL* pfFileout);
  6290. BOOL on_mt_txQuit(TX* text);
  6291. BOOL txJumpTagPrim(TX* text,int mode);
  6292. HWND textGetLast(void);
  6293. HWND textGetPrev(HWND cur);
  6294. HWND textGetNext(HWND cur);
  6295. HDIALOG dialogNewAbout(mchar* szAppName,mchar* szVersion);
  6296. void dialogAddAboutCopyright(HDIALOG hd);
  6297. HSTRBLK sbSetupDrive(void);
  6298. HSTRBLK sbSetupInttable(HSTRBLK sb,int* table);
  6299. HSTRBLK sbSetupLfHeight(HSTRBLK sb);
  6300. HSTRBLK sbSetupWeight(HSTRBLK sb);
  6301. BOOL txuiSearchlist(TX* text,SEARCH_PACKET* search);
  6302. void searchoptFromSearchmode(SEARCHOPT* opt,SEARCHMODE searchmode);
  6303. void wndSetEnableSearchOption(HWND hwnd);
  6304. void dialogAddSearchopt(HDIALOG hd,SEARCHOPT* opt,int mode);
  6305. SEARCHMODE searchoptToSearchmode(SEARCHOPT* opt);
  6306. BOOL txLinkhistJumpPrevGetAble(TX* text);
  6307. BOOL txLinkhistJumpNextGetAble(TX* text);
  6308. BOOL txLinkhistJumpPrev(TX* text);
  6309. BOOL txLinkhistJumpNext(TX* text);
  6310. BOOL txuiJumpHist(TX* text);
  6311. mchar* txcGetEventMacro(void);
  6312. BOOL hbitmapGetSize(HBITMAP hBitmap,SIZE* s);
  6313. void keyhookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  6314. void keyhookEnd(void);
  6315. void keyhookTerm(void);
  6316. void mousehookStart(int (*hookProc)(WPARAM wParam,LPARAM lParam));
  6317. void mousehookEnd(void);
  6318. void mousehookTerm(void);
  6319. BOOL hwndControlProcWmKey(HWND hwnd);
  6320. BOOL imouseGetEnable(void);
  6321. BOOL messageIsMouseWheel(UINT message);
  6322. BOOL imouseGetPageTurn(void);
  6323. int imouseGetScrollLines(WPARAM wParam);
  6324. void txSetFileShare(TX* text,int modeFileShare);
  6325. int mmtextToLpx(TX* text,int mmtext);
  6326. void dialogaErrorOpenDialog(void);
  6327. IBUFF DeleteTailReturn(mchar* buff,IBUFF len);
  6328. BOOL CreateDirectoryForce_W(wchar* wszpath,LPVOID lpsa);
  6329. int statusbarGetPaneWidth(HWND hwndStatusbarWin,mchar* szString);
  6330. int statusbarSetSimple(HWND hwndStatusbarWin,BOOL fSimple);
  6331. int statusbarGetHeight(HWND hwndStatusbarWin);
  6332. BOOL my_isXdigiti(int c);
  6333. BOOL txBuffExpand(TX* text,IBUFF size);
  6334. void txFlushToolbar(TX* text);
  6335. void txInsertConfigtextNone(TX* text);
  6336. void txConvertMailTemplateToPlain(TX* text,TX* textDest,TX* textQuote);
  6337. void dialogAddAboutTimeLimit(HDIALOG hd);
  6338. int lpxToMmtext(TX* text,int lpx);
  6339. HWND hwndMailerGetStatusbar(HWND hwnd);
  6340. void mailerOpenMenuMouseRMessage(TX* text);
  6341. BOOL txuiSearchList(TX* text,SEARCH_PACKET* search);
  6342. BOOL txMultiWindow(TX* text,BOOL fSaveAddress);
  6343. void jumphistAdd(TX* text);
  6344. BOOL txAutosaveAtOpenEx(TX* text,BYTE autosaveAtOpen);
  6345. BOOL txGetBackupFilenameW(TX* text,wchar* wszfilename,wchar dst[CCHPATHNAME]);
  6346. void txPrevWindow(TX* text);
  6347. void txNextWindow(TX* text);
  6348. BOOL txuiIdmSelect(TX* text);
  6349. BOOL uiCustToolbar(mchar* szApp,mchar* szName);
  6350. BOOL txuiCustKey(TX* text);
  6351. void txKeylist(TX* text);
  6352. BOOL txIsCurDigitH(TX* text);
  6353. void txSetCurDigitL(TX* text);
  6354. BOOL txIsCurDigitL(TX* text);
  6355. void txSetCurDigitH(TX* text);
  6356. BOOL TXAPI txuiFileOpenReadVz(TX* text);
  6357. BOOL txuiSaveMacroFile(TX* text);
  6358. BOOL txuiJump(TX* text);
  6359. BOOL txJumpPrev(TX* text);
  6360. BOOL txJumpNext(TX* text);
  6361. BOOL txuiConvertText(TX* text);
  6362. int txGetLyCenter(TX* text);
  6363. BOOL txuiSort(TX* text);
  6364. BOOL txSwitchBinedit(TX* text);
  6365. BOOL txuiProject(TX* text,int mode);
  6366. BOOL txuiProof(TX* text);
  6367. BOOL txuiReWording(TX* text);
  6368. BOOL txuiSpellCheck(TX* text);
  6369. BOOL txuiSpellCheckCur(TX* text);
  6370. void txLpSetRateAuto(TX* text,int mode);
  6371. BOOL txLpSetRate(TX* text,int pvRate);
  6372. int txLpGetCyPaper(TX* text);
  6373. void txLpToolbarFlush(TX* text);
  6374. void txLpToolbarNotify(TX* text,int cmd);
  6375. BOOL txuiLpStyleDetail(TX* text);
  6376. BOOL txfUiFootnoteInsert(TX* text);
  6377. BOOL txfUiFootnoteOp(TX* text);
  6378. int txfTagInsertWithAtr(TX* text,TEXTCHAR* szTagName,TEXTCHAR chTagKind,TEXTCHAR* szAtr);
  6379. void txfFootnoteInsert(TX* text,int number,TX* text2);
  6380. void imgatrToString(IMGATR* atr,TEXTCHAR szAtr[CCHPATHNAME * 2]);
  6381. BOOL txuiSearchFunction(TX* text);
  6382. BOOL TXCMDBASE uiComplete(TX* text);
  6383. BOOL TXCMDBASE windowTileOverlap(void);
  6384. BOOL TXCMDBASE windowTile(void);
  6385. BOOL TXCMDBASE windowTileV(void);
  6386. BOOL TXCMDBASE windowTileH(void);
  6387. BOOL TXCMDBASE windowTileUndo(void);
  6388. BOOL txuiRegFiletypeConnection(TX* text);
  6389. BOOL txMaileditorAttachW(TX* text,wchar* wszfilename,BOOL fNote);
  6390. #if !WINDOWSCE
  6391. MT* txFindMtHwndbase(TX* text,HWND hwnd);
  6392. #endif
  6393. void SetExtRegTml(BOOL fSet);
  6394. void SetExtRegTxt(BOOL fSet);
  6395. void SetExtRegUnknown(BOOL fSet);
  6396. void SetExtRegTextsPwz(void);
  6397. void txProjectOpen(TX* text);
  6398. void txCheckFiletimeActive(TX* text);
  6399. BOOL on_mt_WM_ACTIVATE(TX* text,HWND hwnd);
  6400. BOOL on_mt_WM_PAINT(TX* text,HWND hwnd);
  6401. BOOL on_mt_WM_SIZE(TX* text,HWND hwnd);
  6402. int TXAPI GetWindowsPlatform(void);
  6403. void wzoleTerm(void);
  6404. BOOL __ddeDelete(void);
  6405. void listRegister(void);
  6406. #if WINDOWSCE
  6407. #define hvTextOut(text,hdc,x,y,str,len)    TextOut(hdc,x,y,str,len)
  6408. #define hvExtTextOut(text,hdc,x,y,op,r,lpszString,cbCount,lpDx)    ExtTextOut(hdc,x,y,op,r,lpszString,cbCount,lpDx)
  6409. #define hvMoveTo(text,hdc,x,y)    MoveTo(hdc,x,y)
  6410. #define hvLineTo(text,hdc,x,y)    LineTo(hdc,x,y)
  6411. #define hvDrawText(text,hdc,lpszStr,cchStr,r,op)    DrawText(hdc,lpszStr,cchStr,r,op)
  6412. #else
  6413. int hvDrawText(TX* text,HDC hdc,LPCTSTR lpszStr,int cchStr,RECT* r,UINT op);
  6414. void hvMoveTo(TX* text,HDC hdc,int x,int y);
  6415. void hvLineTo(TX* text,HDC hdc,int x,int y);
  6416. #endif
  6417. void hvRect(TX* text,RECT* r);
  6418. void hvRectBack(TX* text,RECT* r);
  6419. BOOL rectCheck(RECT* r);
  6420. IBUFF txIbuffFromLy(TX* text,int ly,IBUFF* pCurysize);
  6421. BOOL txIbuffIsUrl(TX* text,IBUFF ibuff);
  6422. BOOL txIbuffJumpLink(TX* text,IBUFF ibuff);
  6423. void keylistCreate(void);
  6424. BOOL TXAPI CommandExec(mchar* szline);
  6425. int zentohanAlpha(mchar* p);
  6426. BOOL txIbuffIsFunctionDefine(TX* text,IBUFF ibuff);
  6427. BOOL txuiSearchGet(TX* text,SEARCH_PACKET* search);
  6428. BOOL txSearchTabbeam(TX* text,SEARCHMODE searchmode);
  6429. void shStartNetwork(void);
  6430. DIRECTORYATR* txFlushDirectoryAtr(TX* text);
  6431. int kcDetectEx(TX* text,BOOL fInternal);
  6432. void txpcodeNotifyTextOpen(TX* text);
  6433. void txFreeKeyword(TX* text);
  6434. void txReleaseHookWndprocAll(TX* text,TXWNDHOOK* root);
  6435. void txCloseToolbar(TX* text);
  6436. int lpcxGetFrameLeft(TX* text,int iHeadline);
  6437. int lpcxGetFrameRight(TX* text,int iHeadline);
  6438. int lpcxGetFrameLeftRight(TX* text,int iHeadline);
  6439. int txCharGetWidthStr(TX* text,TEXTCHAR* str,int lch);
  6440. BOOL wpathCreateDirectoryPath(wchar* wszfilename);
  6441. BOOL TXAPI wpathGetRoot(wchar* wsz);
  6442. BOOL TXAPI pathGetRoot(mchar* sz);
  6443. IFILE ClipCopyBoxToHglobal(TX* text,IFILE cliptop,IFILE clipend,HGLOBAL hGlobal);
  6444. BOOL oleclipCopy(CLIPITEM* clipitem);
  6445. void searchoptSetupMode(SEARCHOPT* opt);
  6446. #if !WINDOWSCE
  6447. HBITMAP toolbaritemLoadBitmap(TOOLBARITEM* item);
  6448. #endif
  6449. void txFlushMenu(TX* text);
  6450. void txDoCaptionEx(TX* text,HWND hwndbase,int idMt);
  6451. BOOL wpathGetFfd(wchar* wszfilename,WIN32_FIND_DATAW* ffd);
  6452. void wndtxSetMoving(HWND hwnd,BOOL fSet);
  6453. TX* txGetKeywordText(TX* text);
  6454. BOOL fileIsWztext_W(wchar* wszfilename);
  6455. #if WZFUNC_TEXTCFGBIN
  6456. void shSetConfigChanged(mchar* szName);
  6457. #else
  6458.     #define shSetConfigChanged(szName)
  6459. #endif
  6460. BOOL speak(LPCSTR lpszText,UINT fuType);
  6461. void txSpeakText(TX* text,UINT fuType,BOOL fTxf);
  6462. void imeSetPosPrim(TX* text);
  6463. BOOL wordicGetExist(void);
  6464. BOOL txDicWord(TX* text);
  6465.  
  6466.  
  6467. #endif    // __TXC__
  6468. #endif    // RC_INVOKED
  6469. #endif    //__PWZ_H
  6470.