ライブラリ未満のコードの断片
(2010-11-16 (火) 06:50:16)
HTEXT text = getfocus(); printf("文書スタイル名:%cs\n", text.v.clmstyle);
(2010-11-15 (月) 08:20:18)
HTEXT newobj expandwzcfg(CLM path) { // wzcfg:// をフルパスに展開して返す。文字コードはsjisex。 // 例: expandwzcfg("wzcfg://myconf.cfg") ==> "c:\\wz7\\myconf.cfg" wchar *wp = wdupfn(path); char *p = strdupW(wp); HTEXT ret = dup(p); free(wp); free(p); if(!tosjis(ret, detectkc(ret))) return 0; return ret; }
HTEXT newobj expandwzcfgex(CLM path) { // 基本的に expandwzcfg と同じだが、環境変数 wzcfg が設定されていた場合そのパスを展開して返す。 // この関数を使うことでユーザーが設定ファイルの設置場所を変更できる。 // もちろんこの関数を使っていないWZ本体の設定ファイルは元の場所のまま。 wchar buf[MAX_PATH*2]; if(!GetEnvironmentVariable(L"wzcfg", buf, sizeof(buf))) return expandwzcfg(path); char *p = strdupW(buf); HTEXT t = dup(p); free(p); HTEXT ret = textprintf("%cs", path); HTEXT re = renew("^wzcfg://(.*)", 0); if(!research(re, ret, SEARCH_ALL)) return ret; return textprintf("%s\\%s", t, regettag(re, 1)); }
_expandwzcfg { HTEXT s = expandwzcfg("wzcfg://test.txt"); printf("s1={%s}\n", getdata(s)); s = expandwzcfg("wzcfg://textc/sample.c"); printf("s2={%s}\n", getdata(s)); s = expandwzcfgex("wzcfg://textc/sample.c"); printf("s3={%s}\n", getdata(s)); }
(2010-11-08 (月) 10:53:08)
HTEXT getstatus() { HWND wf = wtoolfind(ID_PRINT); if(!wf) return 0; return wgetv(GetWindow(GetWindow(wf, GW_CHILD),GW_CHILD)).text; }
(2010-11-08 (月) 10:39:26)
HTEXT newobj getsysbakdir() { HTEXT sys = new(); if(!loadex(sys, "wzcfg://idSYSTEM.sys", TEXTFILE_SHARE_R | LOAD_ERRINFO)) return 0; HTEXT ret = new(); clmcpy(ret, sys.clmbakdir); if(!strlen(ret)) return 0; return ret; }
HTEXT newobj getsysfolder() { HTEXT sys = new(); if(!loadex(sys, "wzcfg://idSYSTEM.sys", TEXTFILE_SHARE_R | LOAD_ERRINFO)) return 0; HTEXT ret = new(); clmcpy(ret, sys.clmfolder); if(!strlen(ret)) return 0; return ret; }