home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 March
/
VPR9803B.ISO
/
APUPDATE
/
VC
/
Tx300b
/
TX300B.LZH
/
HELP.C
< prev
next >
Wrap
Text File
|
1997-05-20
|
18KB
|
717 lines
// WZ EDITOR 標準機能 ヘルプ
// Copyright 1995-96 TY
//{###ヘルプ}
//ヘルプファイルのオープン、WZAPIヘルプ、
//"About..."ダイアログ作成機能などを提供します。
#include <windows.h>
#include <windowsx.h>
#include "dialog.h"
#if 1//2.90
#include "apidb2.h"
#else
#include "cmdlist.h"
#endif
static void helpinformation(mchar* szhelpfilename,txstr szword)
{
if (szword == "") {
statprintf("ヘルプ %s の目次を開きます",szhelpfilename);
} else {
statprintf("ヘルプ %s を %s で引きます",szhelpfilename,szword);
}
}
//1.00H2
static BOOL getword(tx* text,txstr szword)
{
txJumpWordTop(text);
TXCHAR ch = txGetChar(text);
if (ch > ' ' && !txchIsReturn(ch)) { // 有効な文字列なら...
txGetWord(text,szword);
return TRUE;
} else {
szword = "";
return FALSE;
}
}
BOOL TXAPI helpContext(mchar* szfilename,int id)
{
//1.99A
return WinHelpWz(szfilename,HELP_CONTEXT,id);
}
BOOL TXAPI helpPartialkey(mchar* szfilename,mchar* szkey)
{
//1.99A
return WinHelpWz(szfilename,HELP_PARTIALKEY,(LPARAM)szkey);
}
static mchar* strchrtail(mchar* szstr,WORD c)
{
// szstrの一番後方のcへのポインタを返す
//3.00A2 970505 new
mchar* p0 = NULL;
mchar* p = szstr;
while(1) {
p = strchr(p,c);
if (!p) break;
p0 = p;
p = p + 1;
}
return p0;
}
BOOL TXAPI helpOpen(mchar *_szfilename)
{
// カーソル位置の単語で_szfilenameのWindowsHELPを引く
mchar szfilename[CCHPATHNAME] = {0};
pathSetFileName(szfilename,_szfilename);
txstr szword;
//
#if 1//3.00A2 970505 HTMLテキストモードで、"<TAG>"中にカーソルがあるときはTAGのヘルプを呼び出す様にした
if (text->fHTML) {
if (txIsWP(text)) {
//2.99H 970405 HTML体裁モードで、タグ上での外部ヘルプ呼び出しに対応
PLUGHTMLTAG* plug = txGetCurPlug(text);
if (plug && plug->head.modePlug == PLUG_HTML_TAG) {
mchar* p = plug->szTag;
if (*p == '<') p++;
int len = strGetWordLen(p);
if (len && p[len-1] == '>') len--;
txstrcpylen(szword,p,len);
}
} else {
txstr sz(160);
if (txGetChar(text) == '<') {
txGetParaRear(text,sz);
} else {
txstr szline(80);
txGetParaFront(text,szline);
mchar* p = strchrtail(szline,'<');
if (p && !strchr(p,'>')) {
txstr szrear(80);
txGetParaRear(text,szrear);
sz = p;
sz += szrear;
}
}
if (sz[0]) {
//information(sz);
mchar* p = sz;
p++;
if (*p == '/') p++;
//
mchar* q = strchr(p,'>');
if (q) *q = 0;
//
int len = strGetWordLen(p);
txstrcpylen(szword,p,len);
}
}
}
#else
if (text->fHTML && text->editmode) {
//2.99H 970405 HTML体裁モードで、タグ上での外部ヘルプ呼び出しに対応
PLUGHTMLTAG* plug = txGetCurPlug(text);
if (plug && plug->head.modePlug == PLUG_HTML_TAG) {
mchar* p = plug->szTag;
if (*p == '<') p++;
int len = strGetWordLen(p);
if (len && p[len-1] == '>') len--;
txstrcpylen(szword,p,len);
}
}
#endif
//
if (szword[0] || getword(text,szword)) {
helpinformation(szfilename,szword);
#if 1//2.00B
WinHelpWz(szfilename,HELP_PARTIALKEY,(LPARAM)(mchar*)szword);
#else
WinHelp(text->hwndbase,szfilename,HELP_PARTIALKEY,(LPARAM)(mchar*)szword);
#endif
return TRUE;
} else {
helpinformation(szfilename,szword);
#if 1//2.00B
WinHelpWz(szfilename,HELP_CONTENTS,0);
#else
WinHelp(text->hwndbase,szfilename,HELP_CONTENTS,0);
#endif
return FALSE;
}
}
BOOL TXCMDBASE txapihelp(TX* text)
{
// カーソル位置の単語でTXAPIヘルプを引く
static mchar szfilename[] = "WZ API";
txstr szword;
#if 1//3.00B1 970520 WZ APIヘルプ:カーソル位置が関数名でなければ、uiApiListSearchの代わりにuiApiListを実行。uiApiListでは「基本のみ表示」を選んだら覚える(uiApiListSearchは常に「全て表示」)。
TXCHAR ch = txGetChar(text);
if (isalpha(ch) || ch == '_') {
} else {
uiApiList(text);
return TRUE;
}
#endif
if (getword(text,szword)) {
helpinformation(szfilename,szword);
#if 1//2.90
uiApiListSearch(szword);
#else
apilistSearch(szword);
#endif
} else {
helpinformation(szfilename,szword);
#if 1//2.90
uiApiListSearch(NULL);
#else
apilistSearch(NULL);
#endif
}
return TRUE;
}
static void _help(mchar *szfilename)
{
if (!stricmp(szfilename,"tx")) {
txapihelp(text);
} else if (!stricmp(szfilename,"htmlwz")) {//2.99F 970404 外部ヘルプにhtmlwzを登録したときWZ16,NTで開けなかった
if ((_fwin40 && _platform == WINDOWS95) || _fwinnt351) {
helpOpen(text->szexedir + "htmlwz.hlp");
} else {
helpOpen(text->szexedir + "htmlwz16.hlp");
}
} else {
helpOpen(szfilename);
}
}
help
{
HDIALOG hd = dialog("外部ヘルプの説明");
dialogCaption(hd,"●概要");
dialogIndent(hd,2);
dialogCaption(hd,"WZでは、2つまで外部ヘルプを登録することができます。");
dialogCaption(hd,"外部ヘルプは拡張子ごとに登録できます。");
dialogCaption(hd,"登録は[設定]-[拡張子に固有の設定]-[タイトル・ヘルプ・マクロ]-[外部ヘルプ]で行います。");
dialogIndent(hd,-2);
dialogCaption(hd,"●外部ヘルプを引く");
dialogIndent(hd,2);
dialogCaption(hd,"カーソル位置の単語で、外部ヘルプを引くことができます。");
dialogCaption(hd,"Ctrl+{F1}で外部ヘルプ1、Ctrl+{F2}で外部ヘルプ2を引けます。");
dialogCaption(hd,"引くときに、カーソル位置を単語の先頭に合わせる必要はありません。");
dialogCaption(hd,"また、カーソル位置が空白文字などのときは、ヘルプの目次を開きます。");
dialogIndent(hd,-2);
dialogOpen(hd);
}
BOOL TXCMDBASE help1(TX* text)
{
// ヘルプ1を開く
//{#MS} ^[F1] [F1]
//{#VZIBM} ^[F1] [F12]
//{#VZ98} ^[F1] [HELP]
//{#MI} ^[F1]
//{#EMACS} {F12} ^{F1}
if (text->tszhelp[0][0]) _help(text->tszhelp[0]);
return TRUE;
}
BOOL TXCMDBASE help2(TX* text)
{
// ヘルプ2を開く
//{#MS} ^[F2] [F2]
//{#VZ} ^[F2]
//{#MI} ^[F2]
//{#EMACS} ^{F2}
if (text->tszhelp[1][0]) _help(text->tszhelp[1]);
return TRUE;
}
mskeyEsc
{
// 選択中でなければ、キー一覧を表示。
// 選択中なら選択解除。
//{#MS} {Esc}
if (text->fClip) {
txSelectQuit(text);
} else {
call("custmize.uiKeyList");
}
}
//##アバウトダイアログ
BITMAPFILEHEADER *bitmapLoad(mchar *szfilename)
{
BYTE *data = NULL;
HFILE hf;
hf = _lopen(szfilename,OF_READ);
if (hf != HFILE_ERROR) {
BITMAPFILEHEADER head;
_lread(hf,&head,sizeof(head));
data = GlobalAllocPtr(TXGMEM_MOVEABLE,head.bfSize);
_llseek(hf,0,SEEK_SET);
if (data) {
_hread(hf,data,head.bfSize);
}
_lclose(hf);
}
return (void*)data;
}
static mchar *_about_sztitle;
static mchar *_about_szversion;
static mchar *_about_szcopyright;
static mchar szfilename[CCHPATHNAME];
// ビットマップファイル名をszfilenameに指定しておくこと
static void aboutdraw(HWND hwnddlg)
{
BITMAPFILEHEADER *head = bitmapLoad(szfilename);
HWND hwnd = GetDlgItem(hwnddlg,100);
HDC hdc = GetDC(hwnd);
HFONT hfont0;
hfont0 = SelectObject(hdc,GetStockObject(GetSystemFontNo()));
//
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
//
if (head) {
BITMAPINFOHEADER *info = (void *)((LPBYTE)head + sizeof(BITMAPFILEHEADER));
LPBYTE bits = (LPBYTE)head + head->bfOffBits;
int cx = info->biWidth;
int cy = info->biHeight;
#if 0 // 変わらない
HBITMAP hbitmap = CreateDIBitmap(
hdc,
info,
CBM_INIT,(LPSTR)bits,
(LPBITMAPINFO)info,
DIB_RGB_COLORS
);
POINT size,org;
HDC hdcmem = CreateCompatibleDC(hdc);
SelectObject(hdcmem,hbitmap);
SetMapMode(hdcmem,GetMapMode(hdc));
{
BITMAP bm;
GetObject(hbitmap,sizeof(BITMAP),(LPSTR)&bm);
size.x = bm.bmWidth;
size.y = bm.bmHeight;
DPtoLP(hdc,&size,1);
}
//
org.x = 0;
org.y = 0;
DPtoLP(hdc,&org,1);
//
BitBlt(hdc,0,0,size.x,size.y,hdcmem,org.x,org.y,SRCCOPY);
DeleteDC(hdcmem);
#else
SetStretchBltMode(hdc,COLORONCOLOR);
SetDIBitsToDevice(
hdc,
0,0,
cx,cy,
0,0,
0,info->biHeight,
(LPSTR)bits,
(LPBITMAPINFO)info,
DIB_RGB_COLORS
);
#endif
GlobalFreePtr(head);
}
{
int cxd;
int cyd;
if (_fwin40) {
TEXTMETRIC tm;
GetTextMetrics(hdc,&tm);
cxd = tm.tmAveCharWidth;
cyd = tm.tmHeight;
} else {
cxd = LOWORD(GetDialogBaseUnits());
cyd = HIWORD(GetDialogBaseUnits());
}
SIZE size;
GetTextExtentPoint(hdc,_about_sztitle,strlen(_about_sztitle),&size);
int cxtitle = size.cx;
GetTextExtentPoint(hdc,_about_szversion,strlen(_about_szversion),&size);
int cxversion = size.cx;
GetTextExtentPoint(hdc,_about_szcopyright,strlen(_about_szcopyright),&size);
int cxcopyright = size.cx;
int cx,cy;
RECT r;
// set cx,cy
GetClientRect(hwnd,&r);
cx = r.right - r.left - cxd;
cy = r.bottom - r.top;
//
// SetTextColor(hdc,GetSysColor(COLOR_BTNTEXT));
// SetBkColor(hdc,GetSysColor(COLOR_BTNFACE));
SetTextColor(hdc,RGB(0,0,0));
if (text1->fCtl3d) {
SetBkColor(hdc,GetSysColor(COLOR_BTNFACE));
} else {
SetBkColor(hdc,RGB(255,255,255));
}
//
if (_about_sztitle[0]) {
r.top = 5 * (cyd/8);
r.right = cx - 3 - cxd * 2;
r.left = r.right - cxtitle;
TextOut(hdc,r.left,r.top,_about_sztitle,strlen(_about_sztitle));
r.bottom = r.top + cyd;
RECTINC(r);RECTINC(r);RECTINC(r);r.left -= cxd * 2;r.right += cxd * 2;
hdcDrawFrame(hdc,&r,DF_INFO);
}
//
if (_about_szversion[0]) {
r.top = r.bottom + cyd / 2;
r.right = cx - 1 - cxd * 2;
r.left = r.right - cxversion;
TextOut(hdc,r.left,r.top,_about_szversion,strlen(_about_szversion));
r.bottom = r.top + cyd;
RECTINC(r);r.left -= cxd;r.right += cxd;
hdcDrawFrame(hdc,&r,DF_INFO);
}
//
if (_about_szcopyright[0]) {
r.top = cy - 13 * (cyd/8);
r.right = cx - 1 - cxd;
r.left = r.right - cxcopyright;
TextOut(hdc,r.left,r.top,_about_szcopyright,strlen(_about_szcopyright));
r.bottom = r.top + cyd;
RECTINC(r);r.left -= cxd;r.right += cxd;
hdcDrawFrame(hdc,&r,DF_INFO);
}
}
if (!text->fCtl3d) {
RECT r;
GetClientRect(hwnd,&r);
hdcDrawFrame(hdc,&r,DF_BUTTON);
}
SelectObject(hdc,hfont0);
ReleaseDC(hwnd,hdc);
}
static void OKdraw(HWND hwnddlg)
{
HWND hwnd = GetDlgItem(hwnddlg,IDOK);
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
}
long TXCALLBACK dialogprocAbout(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message) {
case WM_INITDIALOG: {
return TRUE;
}
case WM_COMMAND: {
switch(LOWORD(wParam)) {
case IDOK:
case IDCANCEL: {
EndDialog(hwnd,0);
return TRUE;
}
}
break;
}
case WM_PAINT: {
aboutdraw(hwnd);
//1.00C Aboutダイアログで、画面外に一部を移動させてリドローさせると、OKボタンが欠けていた
OKdraw(hwnd);//OKボタンを描画
break;
}
}
return FALSE;
}
BOOL TXAPI aboutDialog(mchar *szbitmapfilename,mchar *szappname,mchar *szversion,mchar *szcopyright)
{
// "About..."ダイアログボックスを表示します
// szbitmapfilenameには、"wz:\uriuri.bmp"のように、
// 表示するビットマップファイルを指定します。
// "wz:\..."の様に指定しないといけません。
// ビットマップの色は16または256色にしてください。
// ビットマップ上に名前やボタンを表示します。
// szappnameにはアプリケーションの名前、
// szversionにはアプリケーションのバージョン、
// szcopyrightにはコピーライトを指定します。
HDIALOG hd = dialog("About...");
DTRECT r;
int cx = 300;
int cy = 200;
if (strnicmp(szbitmapfilename,"wz:\\",4)) return FALSE;
#ifdef __FLAT__
if (!stricmp(szbitmapfilename,\"wz:\about.bmp")) {
strcpy(szfilename,text->szexedir+"about32.bmp");
} else {
strcpy(szfilename,text->szexedir+(szbitmapfilename+4));
}
#else
strcpy(szfilename,text->szexedir+(szbitmapfilename+4));
#endif
//
_about_sztitle = szappname;
_about_szversion = szversion;
_about_szcopyright = szcopyright;
{
BITMAPFILEHEADER *head = bitmapLoad(szfilename);
if (head) {
BITMAPINFOHEADER *info = (void *)((LPBYTE)head + sizeof(BITMAPFILEHEADER));
cx = info->biWidth;
cy = info->biHeight;
}
GlobalFreePtr(head);
}
//
r.x = 0;r.y = 0;
if (_fwin40/* && _platform == WINDOWS95 2.98A */) {
#ifdef __FLAT__
TEXTMETRIC tm;
HDC hdc = GetDC(text->hwndbase);
HFONT hfont0 = SelectObject(hdc,GetStockObject(DEFAULT_GUI_FONT));
GetTextMetrics(hdc,&tm);
SelectObject(hdc,hfont0);
ReleaseDC(text->hwndbase,hdc);
r.cx = cx = (cx * 4) / tm.tmAveCharWidth;
r.cy = cy = (cy * 8) / tm.tmHeight;
#endif
} else {
r.cx = cx = cx * 4 / LOWORD(GetDialogBaseUnits());
r.cy = cy = cy * 8 / HIWORD(GetDialogBaseUnits());
}
_dialogAddItem(hd,DCS_LTEXT,"",100,&r,0);
dialogSetSize(hd,&r);
//
r.cx = DTCX * 10;
r.cy = DTCYCMDBUTTON;
r.x = (cx - r.cx) / 2;
r.y = cy - DTCYINT - r.cy;
_dialogAddItem(hd,DCS_DEFPUSHBUTTON," OK ",IDOK,&r,0);
//
_dialogModal(hd,macroMakeWndProc("dialogprocAbout"),wndtxGetActive(text->hwndbase),0);
return TRUE;
}
at_ty
{
static mchar* tsz[] = {
"電源オン若しくはリセットで起動しました","","1967",
"マイコン(^^;を知る。12bitのCPUに惹かれてました(^^;","","1980",
"誕生日プレゼントにi8080Aとi8085を買ってもらう(^^;","","1980",
"PC-8001を自作しようとするが1年かけて挫折(^^;","","1981",
"","","",
//
"マイコンショップの店頭でBASICプログラミングに励む(^^;","","1981-1984",
"line文でアートしてたらデパートの店員さんに","","",
"まぁきれいと言われた事を覚えてます(^^;","","",
"MyComputer購入資金捻出のため、こっそり","","1984.1-7",
"毎日往復14km走って通学してバス代を浮かす(^^;","","",
"ポケコンPC-1251を入手","","1984",
"やっとMyComputerでBASIC/機械語プログラミング開始ウルウル","","1984",
"ポケコンPB-700を入手","","1984",
"ポケコンPC-1350を入手","","1984.8",
"ノートに16進ダンプリストを書きながらプログラミング開始(^^;","","1984.8",
"OLPHOUS(スクロールシューティングゲーム)","PC-1350","1985.5",
"ANZAS(スクロールシューティングゲーム)","PC-1350","1985.7",
"TY-COMPILER(BASICコンパイラ)","PC-1350/60K","1985.9",
"白黒液晶でソフトで階調表示","PC-1350","1986.2",
"TY-マージャン","PC-1350","1986.3",
"ポケットコンピュータ機械語マニュアル 監修","","1986.5",
"PC-1600Kデータブック 編集","","1986.10",
"TY-モニタ","PC-13xx/14xx/1600K","1985-1987",
"TY-TERMINAL","PC-1350/60/60K","1987.4",
"TY-漢字TERMINAL","PC-1360K","1987.10",
"TY-TRACER","PC-1350/60/60K","1987.10",
"TY-MEMO(メモ帳)","PC-1350/60K","1988.2",
"TY-簡易TERMINAL","PC-1480","1988.3",
"TY-DISASSEMBLER","PC-1480","1988.4",
"TY-簡易ASSEMBLER","PC-1480","1988.5",
"TY-DOS","PC-1480","1988.8",
"TY-TERM","PC-1480","1988.8",
"TY-MON","PC-1480","1988.8",
"TY-ED(エディタ)","PC-1480","1988.9",
"TY-KXASM(簡易アセンブラ)","PC-1480","1988.9",
"アルバイトで旅券管理システムのCでのプログラミング開始","","1988",
"「プログラムの部品化/再利用」、","","1991.3",
"「アプリも部品として再利用できる」をコンセプトにVW WORKS開発開始","","",
"VW WORKS","PC-9801","1993.6",
"VWの締切前は多摩川の土手や桜の花が切れそうな心を癒してくれました(^^;","","",
"WZ EDITOR 1.0","Windows3.1","1995.7",
"WZは95.1まで白黒ノートPC-9801NS/Aで作ってました","","",
"川の土手や桜の花の下でもせっせとプログラミング(^^)","","",
"WZ EDITOR 1.01","Windows95/NT/3.1","1995.12",
"WZ EDITOR 2.0","Windows95/NT/3.1","1996.3",
"WZ EDITOR 3.0","Windows95/NT/3.1","1997.4",
"こうして改めて見るとよくつくったなぁという感じです。","","",
"ここまでくるのに沢山の方にお世話になりました。","","",
"この場を借りて感謝致します。","","",
"そして、これからもどうぞよろしく!","","",
};
int npage = sizeof(tsz) / sizeof(mchar*) / 3;
int ipage = 0;
int lcy = 5;
while(1) {
{
HDIALOG hd = dialog("作者紹介 山口敏郎(TY)");
dialogSetH(hd);
int i;
int n = lcy;
for (i = ipage;i < npage && n--;i++) {
dialogCaption(hd,tsz[i*3]);
dialogSetPosLX(hd,30);
dialogCaption(hd,tsz[i*3+1]);
dialogSetPosLX(hd,50);
dialogCaption(hd,tsz[i*3+2]);
dialogSetPosLX(hd,60);
dialogLF(hd);
}
dialogLFV(hd);
//ダイアログのサイズを一定に
dialogSetPosLX(hd,70);
dialogSetV(hd);
dialogOK(hd,10);
dialogCancel(hd,10);
if (!dialogOpen(hd)) break;
}
ipage += lcy;
if (ipage >= npage) break;
}
}
BOOL dlgprocAbout(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message) {
case WM_LBUTTONDOWN: {
int x = LOWORD(lParam);
int y = HIWORD(lParam);
RECT r;
GetClientRect(hwnd,&r);
if (r.right / 3 < x && x < r.right * 2 / 3) {
if (r.bottom / 3 < y && y < r.bottom * 2 / 3) {
at_ty();
}
}
break;
}
}
return FALSE;
}
//1.00H
BOOL TXAPI about(ABOUTINFO* info)
{
HDIALOG hd = dialog("About...");
{
PMACROFUNC pfunc;
if (macroGetFuncAddress("dlgprocAbout",&pfunc)) {
dialogSetHook(hd,&pfunc);
}
}
if (info->szicon) {
DTRECT r;
r.x = DTCX * 2;
r.y = DTCY;
r.cx = DTCX * 5;
r.cy = DTCY * 3;
__dialogAddItem(hd,"STATIC",info->szicon,-1,&r,SS_ICON|WS_CHILD|WS_VISIBLE);
}
int bx = 10;
dialogIndent(hd,bx);
dialogSpaceV(hd);
dialogCaption(hd,info->szappname);
dialogIndent(hd,2);
dialogCaption(hd,info->szversion);
dialogCaption(hd,info->szcopyright);
if (info->szcopyright2) dialogCaption(hd,info->szcopyright2);
dialogCaption(hd,NULL);
int lx = bx + 14;
dialogSetH(hd);
dialogSetPosLX(hd,bx);
dialogCaption(hd,"登録者名:");//2.00E2 ネットワークを意識して"使用者名"から変更
dialogSetPosLX(hd,lx);
dialogCaption(hd,text->share->env_username);
dialogLF(hd);
//
dialogSetPosLX(hd,bx);
dialogCaption(hd,"シリアル番号:");
dialogSetPosLX(hd,lx);
dialogCaption(hd,text->share->env_serial);
dialogLF(hd);
dialogSetV(hd);
#ifdef __FLAT__
dialogSetPosLX(hd,bx);
{
MEMORYSTATUS stat;
static mchar buff[CCHWORD];
stat.dwLength = sizeof(stat);
GlobalMemoryStatus(&stat);
sprintf(
buff,
"仮想メモリ %d KB free、物理メモリ %d KB free",
(stat.dwAvailPageFile+stat.dwAvailPhys)/1024,
(stat.dwAvailPhys)/1024
);
dialogCaption(hd,buff);
dialogCaption(hd,NULL);
}
#endif
dialogLFV(hd);
dialogOK(hd,10);
return dialogOpen(hd);
}
BOOL TXCMDBASE aboutWz(TX* text)
{
// WZのバージョン情報
PostMessage(text->hwndbase,WM_COMMAND,IDM_TXABOUT,0);
return TRUE;
}
BOOL TXCMDBASE helpWz(TX* text)
{
// WZのヘルプの目次を開く
return WinHelpWz(NULL,HELP_CONTENTS,0L);
}
BOOL TXCMDBASE helpWzSearch(TX* text)
{
// WZのヘルプのキーワードで検索を開く
return WinHelpWz(NULL,HELP_PARTIALKEY,(LPARAM)"");
}
extern "event" BOOL TXAPI openURL(TX* text,mchar* szURL);
BOOL TXCMDBASE wzhomepage(TX* text)
{
// WZのホームページを開く
//2.99B 970322 new
return openURL(text,"http://www.villagecenter.co.jp/wz30");
}