home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 November
/
VPR9711A.ISO
/
VPR_DATA
/
Special
/
Wz30demo
/
wz30demo.lzh
/
STD
/
STD.TLL
< prev
next >
Wrap
Text File
|
1997-06-14
|
93KB
|
1,031 lines
TX-EXPORT 2.00 26850bytes
/// 32bit version
// WZ EDITOR 標準機能 TX-C標準ライブラリ関数群
// Copyright 1995-96 TY
#ifndef __IH_STD
#define __IH_STD
//{###std}
//{###情報取得}
#define WIN16 1
#define WIN32S 2
#define WINDOWS95 3
#define WINDOWSNT 4
#ifdef __TXC__
extern "std" {
#endif
// TX-C:外部にexportする静的変数は、初期化済みデータ(static)でないといけない
// bssではだめ。
extern BYTE _platform; // GetWindowsPlatform()の値と同じ
extern BYTE _fwin40; // is Windows4.0(Windows95) ?
extern BYTE _fwinnt351; // is WindowsNT3.51 ?
extern BYTE _fpsh; // プロパティーシートを使う?
#ifdef __TXC__
}
#endif
#define IsPropSheet() (_fwin40 || _fwinnt351)
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl GetWindowsPlatform(void);
//{#@}std
// 現在動作中のWindowsのプラットフォームを返します。
// WIN16,WIN32S,WINDOWS95,WINDOWSNTのどれかを返します。
//1.00Fで追加
int _cdecl getversion(void);
//{#@}std
// WZのバージョン番号を返します。
// 1.00Cなら0x1003を返します。
// 1.00Cで追加しました。
// 1.00/1.00A/1.00BでこのAPIを呼び出すとダイナミックリンクエラーになります。
// 1.00/1.00A/1.00Bかどうかを判定するには次のようにしてください。
// if (iswz100AB()) {//1.00/1.00A/1.00B}
int _cdecl textSearch(HWND hwnd);
//{#@}std
//1.00H4 リストから探す。見つからなければ-1を返す
BOOL _cdecl textSetProcessMode(HWND hwnd,DWORD modeProcess);
//{#@}std
//1.00H5 hwndの窓のmodeProcessを設定
DWORD _cdecl textGetProcessMode(HWND hwnd);
//{#@}std
//1.00H5 hwndの窓のmodeProcessを返す
// hwndが見つからなければ0を返す
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###ファイル名・パス名}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
void _cdecl pathGetWzexeFilename(mchar* szfilename);
//{#@}std
// szfilenameにWZ.EXEのフルパスをセットする。
// 2.90で追加。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###コマンドライン}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
BOOL _cdecl _txapibase wzExec(LPBYTE _szarg);
//{#@}std
//3.00B1 970613 wzExec:長い引数に対応
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###文字列ブロック}
//複数の文字列をまとめて管理する機能を提供します。
//文字列の追加、削除、検索などができます。
//WZのヒストリー機能実現、キーワード管理に使われています。
//[1]文字列ブロック変数を用意
//HSTRBLK hsb;
//[2]sbNewで初期化
//[3]sbAdd,sbSearchなどで利用
//[4]sbDeleteで終了処理
#ifndef __HSTRBLK
#define __HSTRBLK
#if 1//1.99C _text.h16だとエラーが出た
typedef struct tagSTRBLK * HSTRBLK;
#else
#ifdef __CC_STD // 自分自身のコンパイル
typedef struct tagSTRBLK * HSTRBLK;
#else
DECLARE_HANDLE_TX(HSTRBLK);
#endif
#endif
// share構造体に置くためだけに、データ構造を公開する。
// ユーザーは、メンバを参照してはいけない。
typedef struct tagSTRBLK {
LPBYTE buff;
LPBYTE ptail;
WORD sizebuff; // buffのサイズ
WORD nstr; // 文字列数
// WORD bit field
WORD fSenseCase:1;
WORD fCustData:1;
WORD fShared:1;
WORD fstatic:1; // for internal
WORD fAlloc:1; //2.90 buff is allced by strblk
WORD reserved:11;
// WORD bit field end
LPBYTE pfound;
} STRBLK;
#endif
#ifdef __TXC__
extern "std" {
#endif
//{#API}
HSTRBLK _cdecl sbNewStatic(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
//{#@}std
// sbNewと同じだが、ハンドルを利用側で作成
// 次のように使用
// STRBLK _sb;
// HSTRBLK sb = sbNewStatic(&_sb,buff,sizebuff);
// sbAdd(sb,"abc");...
// sbAdd(&_sb,"abc");...//これでもOK
HSTRBLK _cdecl sbNewStaticShare(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
//{#@}std
HSTRBLK _cdecl sbNew(LPBYTE buff,WORD sizebuff);
//{#@}std
// 文字列バッファをbuffに、buffのサイズをsizebuffに指定してオープン
// ハンドルを返す
HSTRBLK _cdecl sbNewAlloc(WORD sizebuff);
//{#@}std
// sizebuffサイズの文字列バッファサイズをアロケートし、ハンドルを返す。
//2.90 で追加
void _cdecl sbSetBuff(HSTRBLK sb,LPBYTE buff,WORD sizebuff);
//{#@}std
// sbDelAll後、文字列バッファをbuffにセットし直す。
// 以前の文字列バッファの解放は行わない
//2.00Eで追加
LPVOID _cdecl sbGetBuff(HSTRBLK sb);
//{#@}std
// 文字列バッファを返す
//1.00Fで追加
BOOL _cdecl sbReverse(HSTRBLK sb);
//{#@}std
// sbの内容を逆順にします。
//2.99C 970325 new
void _cdecl sbSetSenseCase(HSTRBLK sb,BOOL fSet);
//{#@}std
// 大文字・小文字を区別するかどうか設定
// デフォルト:区別
// いつでも変更できます
BOOL _cdecl sbGetSenseCase(HSTRBLK sb);
//{#@}std
// 大文字・小文字を区別するかどうかの設定内容を返します
//1.96で追加
void _cdecl sbSetCustData(HSTRBLK sb,BOOL fSet);
//{#@}std
// CustDataを使うかどうかの設定
// デフォルト:使わない
// sbNew等の直後に呼び出してください。
//1.01A で追加
BOOL _cdecl sbGetCustData(HSTRBLK sb);
//{#@}std
// CustDataを持っているかどうか返す
//1.91A
void _cdecl sbDelAll(HSTRBLK sb);
//{#@}std
// すべて削除
BOOL _cdecl sbLoad(HSTRBLK sb,HFILE hf);
//{#@}std
// ファイルからロード
BOOL _cdecl sbSave(HSTRBLK sb,HFILE hf);
//{#@}std
// ファイルへセーブ
mchar* _cdecl sbAdd(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrを末尾に追加。追加結果の文字列ポインタを返す
int _cdecl sbiPreSearch(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrを検索。見つけた位置(0から(sbGetCount-1))を返す
// 文字列の頭だけが一致すればOKとする。
int _cdecl sbiSearch(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrを検索。見つけた位置(0から(sbGetCount-1))を返す
// 見つからなければ-1を返す
BOOL _cdecl sbSearch(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrを検索。見つかったかどうか返す
BOOL _cdecl sbDel(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrを削除
mchar* _cdecl sbAddHist(HSTRBLK sb,mchar* szstr);
//{#@}std
// szstrがすでにあれば、末尾に移動する
// なければ末尾に追加する
int _cdecl sbGetCount(HSTRBLK sb);
//{#@}std
// 文字列数を返す
mchar* _cdecl sbRead(HSTRBLK sb,int istr);
//{#@}std
// i番目(0から(sbGetCount-1))の文字列を返す
DWORD _cdecl sbReadCustdata(HSTRBLK sb,int istr);
//{#@}std
// i番目(0から(sbGetCount-1))のCustDataを返す
// 読みだせなければ0を返す
//1.01A で追加
//2.95 970131 sbReadCustData -> sbReadCustdata
BOOL _cdecl sbWriteCustdata(HSTRBLK sb,int istr,DWORD CustData);
//{#@}std
// i番目(0から(sbGetCount-1))のCustDataをセットする
// セットできたかどうかを返す
//1.01A で追加
BOOL _cdecl sbDelI(HSTRBLK sb,int i);
//{#@}std
// i番目(0から(sbGetCount-1))の文字列を削除
mchar* _cdecl sbRead2(HSTRBLK sb,int istr,WORD* lchstr);
//{#@}std
// i番目(0から(sbGetCount-1))の文字列を返す
// sizestrに文字列のサイズ(最後のNULLも含む)を返す
int _cdecl sbiSearchPrev(HSTRBLK sb,mchar* szstr,int istr);
//{#@}std
// istr-1から0までszstrを検索する
// 見つからなければ-1を返す
// szstrより長い文字列でも、先頭部分が一致すればOKとする
// 大文字・小文字は区別しない
int _cdecl sbiSearchNext(HSTRBLK sb,mchar* szstr,int istr);
//{#@}std
// istr+1からnstr-1までszstrを検索する
// 見つからなければ-1を返す
// szstrより長い文字列でも、先頭部分が一致すればOKとする
// 大文字・小文字は区別しない
BOOL _cdecl sbDelete(HSTRBLK sb);
//{#@}std
// 破棄。不要になったら必ず呼んでください
HSTRBLK _cdecl sbFromHist(HANDLETX hist);
//{#@}std
// histから、sbに変換。histがsbの場合はそのままhistを返す。
// 2.90 で追加。
HANDLETX _cdecl sbToHist(HSTRBLK sb);
//{#@}std
// sbからhistへ変換。sbがhistでなければ0を返す。
// 2.90 で追加。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
#ifndef __INTTABLE
#define __INTTABLE
typedef struct {
int sizeTable;
int n;
DWORD* table;
} INTTABLE;
#endif
#ifdef __TXC__
extern "std" {
#endif
//{#API}
BOOL _cdecl itInit(INTTABLE* it,DWORD* table,int cbTable);
//{#@}std
// 次の様に使用
// INTTABLE it;
// DWORD table[5];
// itInit(&it,table,sizeof(table);
int _cdecl itiSearch(INTTABLE* it,DWORD val);
//{#@}std
BOOL _cdecl itSearch(INTTABLE* it,DWORD val);
//{#@}std
BOOL _cdecl itAdd(INTTABLE* it,DWORD val);
//{#@}std
BOOL _cdecl itDel(INTTABLE* it,DWORD val);
//{#@}std
BOOL _cdecl itDelAll(INTTABLE* it);
//{#@}std
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###文字操作}
//文字のタイプを返したり、各種変換機能を提供します。
#define _K1 0x01
#define _K2 0x02
#define _K12 (_K1|_K2)
#define _KANA 0x04
#define __ALP 0x08
#define __NUM 0x10
#define __LOW 0x20
#define __SPC 0x40
#ifdef __TXC__
extern "std" {//1.00C iskanjiが使えないことがあった
#endif
extern UCHAR tJctype[256];
#ifdef __TXC__
}
#endif
#define iskanji(c) (tJctype[(UCHAR)(c)]&_K1)
#define iskanji2(c) (tJctype[(UCHAR)(c)]&_K2)
#define iskana(c) (tJctype[(UCHAR)(c)]&_KANA)
#ifdef __TXC__
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl _txapibase isalnum(TXCHAR c);
//{#@}std
// cが半角英数字かどうか返す
// 全角対応(isalnum('A')は0を返す)
int _cdecl _txapibase isalpha(TXCHAR c);
//{#@}std
// cが半角英字かどうか返す
// 全角対応(isalpha('A')は0を返す)
int _cdecl _txapibase isdigit(TXCHAR c);
//{#@}std
// cが半角数字かどうか返す
// 全角対応(isdigit('0')は0を返す)
int _cdecl _txapibase islower(TXCHAR c);
//{#@}std
// cが半角英小文字かどうか返す
// 全角対応(islower('a')は0を返す)
int _cdecl _txapibase isupper(TXCHAR c);
//{#@}std
// cが半角英大文字かどうか返す
// 全角対応(isupper('A')は0を返す)
int _cdecl _txapibase isspace(TXCHAR c);
//{#@}std
// cが半角空白文字かどうか返す
// cがスペース、タブ、復帰、改行、垂直タブ、改ページ
// (0x20,0x09-0x0D)なら真を返す
// 全角対応(isspace(' ')は0を返す)
int _cdecl _txapibase isreturn(TXCHAR c);
//{#@}std
// cが改行文字かどうか返す
// cが'\n'か0x0Aか0x1A(EOF)なら真を返す
// 全角対応
int _cdecl _txapibase iseof(TXCHAR c);
//{#@}std
// cがEOF文字(0x1A)なら真を返す
// 全角対応
int _cdecl _txapibase iszenkaku(TXCHAR c);
//{#@}std
// cが全角文字なら真を返す
TXCHAR _cdecl _txapibase toupper(TXCHAR c);
//{#@}std
// cが半角英小文字なら、半角英大文字に変換して返す
// そうでなければcを返す
// 全角対応(toupper('a')は'a'を返す)
TXCHAR _cdecl _txapibase tolower(TXCHAR c);
//{#@}std
// cが半角英大文字なら、半角英小文字に変換して返す
// そうでなければcを返す
// 全角対応(tolower('A')は'A'を返す)
//{#ENDAPI}
#ifdef __TXC__
}
#endif
#endif
//{###文字列操作}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
mchar* _cdecl strnext(mchar* szstr);
//{#@}std
// szstrが差す文字の次の文字へのポインタを返します
// 漢字、2バイト目が0の漢字にも対応しています。
// szstrがヌル文字を差していればszstrをそのまま返します。
//1.90で新設
mchar* _cdecl strprev(mchar* sztop,mchar* szstr);
//{#@}std
// szstrが差す文字の前の文字へのポインタを返します
// sztopに文字列の先頭文字へのポインタを渡してください
// 漢字、2バイト目が0の漢字にも対応しています。
// szstrが文字列の先頭ならszstrをそのまま返します。
//3.00B1 970519 new
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###ファイル名・パス名}
//ファイル名、パス名文字列の操作機能を提供します。
//フルパス指定からファイル名や拡張子を取り出したりセットしたりできます。
// パス名・ファイル名の最大長('\0'を含む)
#define CCHPATHNAME32 260 //1.98 WZ32のCCHPATHNAME
#ifdef __FLAT__
#define CCHDRIVE 3 //1.00F ドライブ名の長さ
#define CCHFILENAME 256 // "12345678.123\"等も平気
#define CCHFILEEXT 256 // "."も含む拡張子の最大長
#define CCHPATHNAME 260 // ファイル名も含む長さ絶対パスの最大長
#define CCHSPATHNAME 260 //1.00F ファイル名も含む長さ絶対パスの最大長
#define CCHAPPNAME 64
#else
#define CCHDRIVE 3 //1.00F ドライブ名の長さ
#define CCHFILENAME 14 // "12345678.123\"等も平気
#define CCHFILEEXT 5 // "."も含む拡張子の最大長
#define CCHPATHNAME 145 // ファイル名も含む長さ絶対パスの最大長
#define CCHSPATHNAME 72 //1.00F そう長くはならない絶対パスの最大長(メモリ節約)
#define CCHAPPNAME 64
#endif
#ifdef __TXC__
extern "tx" {
#endif
BOOL TXAPI txfullpath(mchar *dst,mchar *src);
#ifdef __TXC__
}
#endif
#ifdef __TXC__
extern "std" {
#endif
//{#API}
mchar* _cdecl _txapibase pathGetExt(mchar* path);
//{#@}std
// pathの拡張子へのポインタを返す
// path:"aaaa.bcd"や"aaaa."なら、'.'へのポインタを返す
// path:"aaaa"なら、'\0'(文字列ターミネータ)へのポインタを返す
//1.00F ディレクトリに拡張子が含まれていると誤動作していた
mchar* _cdecl _txapibase pathSetExt(mchar* path,mchar* ext);
//{#@}std
// pathの拡張子をextに設定する
// ext:".bcd"や"."や""のように指定する
//3.00A3 970508 pathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
BOOL _cdecl _txapibase pathIsExt(mchar* path,mchar* ext);
//{#@}std
// pathの拡張子がextか返す
// pathGetExtの返り値とextをstricmpして結果を返す
// 一致でTRUE, 不一致でFALSEを返す
BOOL _cdecl pathEquFileName(mchar* path,mchar* name);
//{#@}std
// pathの拡張子を除くファイル名がnameか返す
// 一致でTRUE, 不一致でFALSEを返す
//1.00Cで追加
mchar* _cdecl _txapibase pathGetFileName(mchar* path);
//{#@}std
// pathのファイル名を返す
BOOL _cdecl pathIsAutosave(mchar* szfilename);
//{#@}std
UINT _cdecl pathGetDriveType(mchar* szfilename);
//{#@}std
// szfilenameのドライブのドライブタイプを返します。
// szfilenameはフルパスで指定してください。
int _cdecl ispathsepa(mchar c);
//{#@}std
// cがパスセパレータ'/'か'\'ならTRUE、そうでなければFALSEを返します。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
enum PATHMODE {PATH_RELATIVE,PATH_ABSOLUTE,PATH_ABSOLUTEDRIVE,PATH_URL};
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl pathGetMode(mchar* szfilename);
//{#@}std
// szfilenameのモードを返します。
// PATH_RELATIVE,PATH_ABSOLUTE,PATH_ABSOLUTEDRIVE,PATH_URLのいずれかを返します
//1.90で新設
mchar* _cdecl pathSepa(mchar* szstr);
//{#@}std
// szstrからパスセパレータ'/'と'\'を探し、最初に見つけたパスセパレータを返す
// なければNULLを返す
//1.90で新設
void _cdecl pathFlushSepa(mchar* szstr,int ch);
//{#@}std
// szstrのパスセパレータをchにセットします
//1.90で新設
int _cdecl pathCmp(mchar* szpath1,mchar* szpath2,int* plch);
//{#@}std
// strcmpと同じ様にszpath1とszpath2を比較します。
// パスセパレータ'\'と'/'は、同一文字として比較します。
// plchがNULLでなければマッチした文字数をplchに返します。
//1.90で新設
//2.98 970307 "c:\wz"と"c:\wz\std"でも一致しまっていた
int _cdecl pathCmpN(mchar* szpath1,mchar* szpath2,int lch,int* plch);
//{#@}std
// strncmpと同じ様にszpath1とszpath2を比較します。
// パスセパレータ'\'と'/'は、同一文字として比較します。
// plchがNULLでなければマッチした文字数をplchに返します。
//1.90で新設
int _cdecl pathSetMode(mchar* szfilename,mchar* szbase,mchar* szaddress,int mode);
//{#@}std
// szfilenameのモードを設定します。
// modeにはPATH_RELATIVE,PATH_ABSOLUTE,PATH_ABSOLUTEDRIVE,PATH_URLのいずれかを指定します。
// szbaseにはベースディレクトリ、szaddressには、PATH_URLの場合サーバとドネインを指定します。
//1.90で新設
//3.00A3 970508 szfilenameのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
mchar* _cdecl pathToWz(mchar* szpath);
//{#@}std
// szpathがWZディレクトリ内を指すものであれば、wz:\形式に変換します。
// そうでなければ何もしません
// szpathを返します
//3.00A3 970508 szpathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
void _cdecl pathFlush(mchar* szstr);
//{#@}std
// szstrに"..\"が含まれていたら適切に処理して取り除ければ取り除きます
//1.90で新設
mchar* _cdecl _txapibase pathSetFileName(mchar* path,mchar* filename);
//{#@}std
// pathのファイル名をfilenameに設定します
// filenameにドライブ名付き絶対パス、絶対パス、
// "wz:\","win:\"付きパスを指定することもできます
//1.90 "..\"に対応
//2.00B "%{date}","%{year}","%{month}","%{day}"で
// 現在の日付,年,月,日を指定できます。
// "windrive:\"付きパスを指定することもできます
// "..\"を含めることもできます
//3.00A3 970508 pathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
BOOL _cdecl pathGetFull(mchar* path);
//{#@}std
// pathが絶対パスかどうか返します。
// pathの先頭部分が、"ドライブ名:\","ドライブ名:/","\\"かどうかで判断しています。
//2.00B UNC対応
BOOL _cdecl pathFormDir(mchar* path);
//{#@}std
// pathの最後がパスセパレータで終わっていたら、取り除いてTRUEを返す
// そうでなければFALSEを返す
void _cdecl pathSetDir(mchar* path);
//{#@}std
// pathの最後がパスセパレータで終わっていなければ、パスセパレータを追加する
//3.00A3 970508 pathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
BOOL _cdecl _txapibase pathFormLong(mchar* path);
//{#@}std
// pathが、["ファイル名"],["ファイル名],[ファイル名"]のときは、
// pathに[ファイル名]をセットしTRUEを返します。
// そうでなければFALSEを返します
mchar* _cdecl _txapibase pathSetLong(mchar* path);
//{#@}std
// pathを""で括ります。
// strlen(path)が最大2文字増加しますので、これに見合った長さのバッファのポインタを
// pathに指定してください。
// pathを返します
//3.00A3 970508 pathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
void _cdecl pathForm(mchar* path);
//{#@}std
// pathをDOSのパス形式に変換
// "a:\wz\wz.exe" -> "a:\wz"
// "a:\abc" -> "a:\"
BOOL _cdecl pathIsDirectory(mchar* path);
//{#@}std
// pathがディレクトリかどうか返す
// pathがディレクトリでないか存在しなければFALSEを返す
//1.00Fで追加
BOOL _cdecl pathIsWild(mchar* path);
//{#@}std
// pathが'*','?',を含んでいたらTRUEを返す
BOOL _cdecl pathIsFileName(mchar* path);
//{#@}std
// パス指定がファイルかどうか返す
// pathが""だったり、'*','?',';'を含んでたり、
// ディレクトリだったらFALSEを返す
// そうでなければTRUEを返す
BOOL _cdecl pathDirExist(mchar* path);
//{#@}std
// pathのディレクトリが存在するか返す
// pathは、DOSのパス形式で指定
// pathが、"a:\"のようなドライブ指定なら、必ずTRUEを返す
// そうでなければ、実際にディレクトリがあるか調べる
mchar* _cdecl pathSetFull(mchar* path);
//{#@}std
// pathを絶対パスに変換
//3.00A3 970508 pathのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
BOOL _cdecl pathSearchExt(mchar* szdst,mchar* szenvext);
//{#@}std
// szdstの拡張子を、szenvextリストにセットして検索する
// 見つかったかどうか返す
// szdstの拡張子を変更する
//3.00A3 970508 szdstのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
mchar* _cdecl pathEnvWalk(mchar* szenvpath,mchar* szdst);
//{#@}std
//パス指定szenvpathを解析し、1つずつ取り出します。
//結果をszdstに返します。次に調べるべきパス指定を返します。
//なければNULLを返します。
//使い方:std.cのpathSearchを参考にしてください。
BOOL _cdecl pathSearch(mchar* szdst,mchar* szpath,mchar* szenvpath,mchar* szenvext);
//{#@}std
// szpathを検索し、szdstに結果を入れる
// ファイルが見つかったかどうかを返す
//3.00A3 970508 szdstのサイズは最低CCHPATHNAMEであることを仮定しています。これを
// オーバーしないように設定します
BOOL _cdecl pathIsIncluded(mchar* szfilename,mchar* szenvpath);
//{#@}std
// szfilenameのファイルのディレクトリが、
// szenvpathのパス指定に含まれているか返します
// szfilenameにはフルパスを指定してください。
// ファイル名はダミーでもいいですから指定して下さい。
//{#EX}pathIsIncluded(\"a:\wz\std\apidb.c",\"a:\wz\std");はTRUEを返します
//1.00Cで追加
BOOL _cdecl _txapibase fileIsExist(mchar* _szfilename);
//{#@}std
// szsrcのファイルが存在するかどうか返します。
// ファイル名は""でくくってあっても構いません。
void _cdecl pathAuto(mchar* szfilename,mchar* szenvpath,mchar* szenvext);
//{#@}std
// WZ Editorのパス検索と同じ機能を提供
void _cdecl _wzpathAuto(mchar* szfilename,BOOL fSearchPath);
//{#@}std
//2.92
void _cdecl wzpathAuto(mchar* szfilename);
//{#@}std
// szfilenameに結果を返すので注意すること
// szfilenameにはCCHPATHNAME以上のサイズのメモリを渡すこと
// 絶対パスを返すわけではない
//2.92
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###メニュー操作}
//メニューを作成し、コマンドを追加します。
//メニューは#winmenu命令を使って簡単につくれます。usermenu.txcを参考にしてください。
#ifdef __TXC__
extern "std" {
#endif
//{#API}
HMENU _cdecl menuNew(void);
//{#@}std
// 新しくメニューを作成し、メニューハンドルを返します。
void _cdecl menuTitle(HMENU hmenu,mchar* sztitle);
//{#@}std
// メニューにタイトルを付けます。menuNewの直後に呼び出して下さい。
void _cdecl menuTxD(HMENU hmenu,mchar key,mchar* sztitle,mchar* szfunc);
//{#@}std
// メニューにDOSスタイルのコマンドを追加します。
// sztitleにメニューに表示する文字列、szfuncにWZのコマンドを指定して下さい。
void _cdecl menuStr(HMENU hmenu,mchar* szStr,int id);
//{#@}std
// メニューに文字列を追加します。
// szStrに文字列、idにメニューIDを指定して下さい。
void _cdecl menuSepa(HMENU hmenu);
//{#@}std
// メニューにセパレータを追加します。
void _cdecl menuPopup(HMENU hmenu,mchar* szStr,HMENU hmenuPopup);
//{#@}std
// メニューにポップアップメニューを追加します。
// szStrに文字列、hmenuPopupに追加するメニューのハンドルを指定して下さい。
void _cdecl menuDelete(HMENU hmenu);
//{#@}std
// メニューを削除します。メニューを使い終わったら呼んで下さい。
void _cdecl menuHist(HMENU hmenu);
//{#@}std
// メニューにファイルヒストリリストを追加します。
void _cdecl menuHistTab(HMENU hmenu);
//{#@}std
// メニューにDOSスタイルのファイルヒストリリストを追加します。
void _cdecl menuOpenMouse(HMENU hmenu);
//{#@}std
// マウスカーソル位置にメニューを表示します
void _cdecl menuOpen(HMENU hmenu);
//{#@}std
// カーソル位置にメニューを表示します
// マウスでメニューが開かれた場合は、マウスカーソル位置にメニューを表示します
void _cdecl menuDelAll(HMENU hmenu);
//{#@}std
// メニューの内容を全て破棄します。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
#ifdef __TXC__
//{###メモリ操作}
//メモリブロックの割り当てや解放、コピー機能などを提供します。
#ifdef __TXC__
extern "std" {
#endif
//{#API}
LPVOID _cdecl memAlloc(DWORD cbsize);
//{#@}std
// cbsizeバイトのグローバルメモリブロックを確保し、
// メモリブロックのポインタを返す
// 確保したメモリブロックの0クリアはしません
LPVOID _cdecl memAllocZeroinit(DWORD cbsize);
//{#@}std
// cbsizeバイトのグローバルメモリブロックを確保し、
// メモリブロックのポインタを返す
// 確保したメモリブロックの0クリアもします
//1.95で追加
void _cdecl memFree(LPVOID pmem);
//{#@}std
// memAllocで確保したメモリブロックを解放する。
LPVOID _cdecl memResize(LPVOID p,DWORD size);
//{#@}std
// memAllocで確保したメモリブロックのサイズを変更する
//1.91A で追加
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###ダイアログ}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
void _cdecl _txapibase information(mchar* _format,...);
//{#@}std
// 情報メッセージボックスを出します
// printfと同じ書式指定でメッセージを表示します
// 表示できるメッセージの長さは最大500バイトです。
void _cdecl _txapibase attention(mchar* _format,...);
//{#@}std
// 警告メッセージボックスを出します
// printfと同じ書式指定でメッセージを表示します
// 表示できるメッセージの長さは最大500バイトです。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###ダイアログ}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl _txapibase question(mchar* _format,...);
//{#@}std
// 問い合わせメッセージボックスを出します
// printfと同じ書式指定でメッセージを表示します
// [はい]が選択されるとIDYES、
// [いいえ]が選択されるとIDNO、
// [キャンセル]が選択されるとIDCANCEL、を返します
// 表示できるメッセージの長さは最大500バイトです。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###標準出力}
//stdoutウィンドウに文字列を出力します。
//マクロのデバッグなどに使えます。
//2.00B printf,printでは、必ず標準出力窓のテキストの末尾に文字列を出力するようにしました。
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl print(mchar* szstr);
//{#@}std
// 標準出力に文字列を出力する
int _cdecl _txapibase printf(mchar* _format,...);
//{#@}std
// 書式付き出力を行う
// 出力は標準出力先"stdout"テキストに行う
// 正常実行できた場合は、出力したバイト数(ヌルターミネータは除く)を返す
// 書式の指定はCと同じ。詳細はCの本を参照してください。
// %cで漢字も表示できます。
// %[-][0][n][,][l]{d|u|x|X|c|s|p}
// 例:printf("a = %3d,szstr = %s\n",a,szstr);
// ※100バイトを越えるような長いformatは指定できません
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###文字列操作}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
int _cdecl _txapibase sprintf(mchar* buff,mchar* _format,...);
//{#@}std
// printfと同じ様に、書式化された出力を文字列buffに
// 正常実行できた場合は、出力したバイト数(ヌルターミネータは除く)を返す
// 文字列バッファbuffの長さチェックはされないので、注意してください
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###表示}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
void _cdecl txDispInfo(PTEXT text,mchar* _format,...);
//{#@}std
// ステータスバーに情報を表示
// formatはprintfと同じ様に指定
// textのhwndtextが画面に表示されていれば(表テキストであれば)、
// ステータスバーに表示します。txSetUndisp中でも、表示します。
// 表示されていなければ(裏テキストならば)、表示しません。
//1.00F "$b","$c"は廃止しました
void _cdecl _txapibase statprintf(mchar* _format,...);
//{#@}std
// ステータスバーに情報を表示
// formatはprintfと同じ様に指定
// txSetUndisp中かどうかに関わらず、常に表示します。
//1.99Bで追加
void _cdecl informationex(mchar* _format,...);
//{#@}std
// ステータスバーに情報を表示
// ステータスバーが非表示ならinformationする
// formatはprintfと同じ様に指定
// txSetUndisp中かどうかに関わらず、常に表示します。
//2.92で追加
void _cdecl txDispSl(PTEXT text,int hsl,mchar* _format,...);
//{#@}std
// hsl(HSL1からHSL3)に情報を表示
// formatはprintfと同じ様に指定
// 文字列の先頭部に"$c"を指定するとセンタリングして表示します。
//{#ENDAPI}
#ifdef __TXC__
}
#endif
#endif
//{###文字操作}
#ifdef __TXC__
extern "std" {
#endif
//{#API}
BOOL _cdecl _txapibase txchIsKanji(TXCHAR c);
//{#@}std
// cが全角文字かどうか返す
BOOL _cdecl _txapibase txchIsReturn(TXCHAR c);
//{#@}std
// cが改行コード(0x0D0A,0x0A,0x1A)かどうか返す
//{#ENDAPI}
#ifdef __TXC__
}
#endif
//{###ウィンドウ操作}
//WZ特有のウィンドウ操作を行います。
#ifdef __TXC__
extern "std" {
#endif
//{#API}
BOOL _cdecl wndRegisterClass(mchar* szWndProc,txstr strClass);
//{#@}std
// 簡易 RegisterClass
// 一般的なスタイルを持つウィンドウクラスを登録します。
// szWndProcには"マクロファイル名.ウィンドウプロシジャ名",
// strClassには、txstr型の変数を渡して下さい。wndRegisterClassがワーク用に
// 使います。利用側は変数の内容を変更してはいけません。
// ウィンドウが不要になったら、strClassを引数に指定してwndUnregisterClass
// してください。
// thanks dieさん
//2.96A 970211 仕様変更 strClassのフォーマット変更、返り値 void->BOOL:成功したかどうか返す
void _cdecl wndUnregisterClass(txstr strClass);
//{#@}std
// 簡易 UnregisterClass
// wndRegisterClassで登録したウィンドウクラスの登録を解除します。
// strClassには、wndRegisterClassに渡したstrClassを渡して下さい。
// thanks dieさん
//2.96A 970211 macroMakeWndProcで確保したリソースを解放するようにした
//{#ENDAPI}
#ifdef __TXC__
}
#endif
#endif
TX-PCODE32 3.00
03A FA KE メ コ メ (C
ャ 周< HヮE 4{ ( FヮE渇 7P ) Fヱ+ Fヵx *周E滑 煙3 Fヱ*Cx + Fヵャ 周E渇 4 ( Fヵャ ( Fヱ) Fヱ+ Fヱ(C┐「 = > E懸E掲u ┐「 周? E轡EHヮHヴ@ ヮ Hヵ呪2ヮE周E<zEN周E掘z呪E4 E EK綬呪EHュ尿 ヮE┐「 周 Hヴ@ ヮ赤 E」HヮE ニ呪? E轡EHヮE掘z綬E4 EHヮ HヴA ヮE┐「 周 Hヴ@ ヮ赤 E」HヮE 呪? E轡EHヮ呪E掘z綬E4 EHヴA ヮE┐「 > E兄ャ韮 > E血E Eヰ), E」ヵム> E倹Eキ韮 > E倹E Eヵム韮 > E血E EΔ嫣周 Hヮ HヰH綬」ヮ任 妊 E