te リファレンス (te.xxxxx)
Tablacus Explorer のスクリプトから使えるグローバルオブジェクト te のリファレンスです。
- Windows API 関数は api リファレンス(
api.xxxxx=te.WindowsAPI)を参照してください。
目次
- コントロールの取得
- オブジェクトの生成
- スクリプト全体のデータ
- ウィンドウ・描画制御
- 数値設定プロパティ
- 文字列設定プロパティ
- イベント(
te.OnXxx) - 定数
- te.Ctrl が返すオブジェクトのメンバー一覧
- 廃止・内部用
1. コントロールの取得
te.Ctrl(type [, id])
コントロールを1つ取得します。
| type | 戻り値 | id の意味 |
|---|---|---|
CTRL_FV / CTRL_SB / CTRL_EB |
ShellBrowser(ファイルビュー) | 1始まりの通し番号。省略すると現在のタブのビュー(無ければ新規作成) |
CTRL_TV |
そのShellBrowserのツリー(TreeView) | 同上 |
CTRL_TC |
タブコントロール(TabCtrl) | 1始まりの番号。0/省略は現在のタブコントロール |
CTRL_WB |
WebBrowser(呼び出し元のウィンドウ。サブウィンドウならそのWebBrowser) | 使用しない |
CTRL_FI |
セッションIDが一致する列挙中の FolderItems | セッションID |
該当がなければ空(undefined)が返ります。
const FV = te.Ctrl(CTRL_FV); // 現在のビュー
const TC = te.Ctrl(CTRL_TC); // 現在のタブコントロール
te.Ctrls(type [, bVisibleOnly [, bSafeArray]])
指定種別のコントロールすべてを配列で返します。
| 引数 | 説明 |
|---|---|
type |
CTRL_FV/CTRL_SB/CTRL_EB/CTRL_TV/CTRL_TC/CTRL_WB |
bVisibleOnly |
true で表示中のものだけ(CTRL_TV ではツリー表示中のものだけ)。省略/false で全件 |
bSafeArray |
true で SafeArray を返す。省略/false では配列(旧互換メソッド付き)オブジェクト |
const arFV = te.Ctrls(CTRL_FV, true); // 表示中のビュー
for (let i = 0; i < arFV.length; i++) { /* arFV[i] */ }
te.CtrlFromPoint(pt)
スクリーン座標 pt(POINT など)の下にあるコントロールを返します。
te.CtrlFromWindow(hwnd)
ウィンドウハンドルに対応するコントロールを返します。
te.CreateCtrl(type, ...)
コントロールを新規作成します。type により引数が異なります。
| type | 呼び出し | 説明 |
|---|---|---|
CTRL_TC |
te.CreateCtrl(CTRL_TC, p1, p2, p3, p4, p5) |
5個以上の引数が必要。各引数がタブコントロールの設定値(Left, Top, Width, Height, Style 相当の順)として設定され、作成後に表示されます |
CTRL_SW |
te.CreateCtrl(CTRL_SW, url, arguments, parent, width, height [, x, y]) |
独立したサブウィンドウ(WebBrowser)を作成。parent は hwnd かコントロール。x,y 省略時は親の中央。画面外にはみ出さないよう補正されます |
CTRL_TV |
te.CreateCtrl(CTRL_TV) |
ツリービューを新規作成 |
arguments は作成されたウィンドウ側で te.Arguments として一度だけ取得できます。
te.ArrangeCB(TC, rc)
タブコントロール TC を矩形 rc(RECT の Memory)に配置し直します。OnArrange 内部での使用を想定したものです。
2. オブジェクトの生成
| メンバー | 説明 |
|---|---|
te.Object() |
空のオブジェクト |
te.Array() |
配列オブジェクト |
te.FolderItems([DataObject]) |
FolderItems を作成する。引数にIDataObject(またはFolderItems)を渡すとその内容で作成 |
te.CommonDialog |
CommonDialog オブジェクト(te.CommonDialog 参照時に新規生成。ファイルを開く/保存ダイアログ等) |
te.ProgressDialog |
ProgressDialog オブジェクト(進捗ダイアログ) |
te.WICBitmap |
WICBitmap(画像処理)オブジェクト。旧名 te.GdiplusBitmap も同じ(非推奨) |
te.WindowsAPI |
api オブジェクト(api リファレンス) |
te.WindowsAPI0 |
CreateObject だけを持つ軽量オブジェクト。te.WindowsAPI0.CreateObject("api") で api を得る(非同期スクリプトで使用) |
apiオブジェクト以外は基本的にapi.CreateObject(...)を使ってください。
| オブジェクト種別 | 説明 |
|---|---|
api.CreateObject("Array") |
配列オブジェクト |
api.CreateObject("CommonDialog") |
CommonDialog オブジェクト(参照時に新規生成。ファイルを開く/保存ダイアログ等) |
api.CreateObject("Enum") |
列挙型オブジェクト |
api.CreateObject("FolderItems") |
FolderItems オブジェクト |
api.CreateObject("Object") |
空のオブジェクト |
api.CreateObject("ProgressDialog") |
ProgressDialog オブジェクト(進捗ダイアログ) |
api.CreateObject("SafeArray", [object]) |
SafeArray オブジェクト |
api.CreateObject("WICBitmap") |
WICBitmap(画像処理)オブジェクト |
te.CreateObject(progid)
COM オブジェクトを新規作成します(new ActiveXObject 相当)。失敗すると空を返します。
こちらも、api.CreateObject(progid)を使用してください。
const wsh = api.CreateObject("WScript.Shell");
const fso = api.CreateObject("Scripting.FileSystemObject");
te.GetObject(progid | moniker)
実行中の COM オブジェクトを取得します。実行中のものがなければ新規作成し、ProgID でなければモニカー(CoGetObject)として解釈します。
こちらはapi.GetObject(...)とは別物です
3. スクリプト全体のデータ
| メンバー | 読み/書き | 説明 |
|---|---|---|
te.Data |
R/W | 任意の値を保持できるグローバル変数。スクリプト間(およびリロードをまたがない範囲)で共有 |
te.Arguments |
R/W | 書き込みで値を保存、読み取りで値を返してクリアする(一度きり)。CreateCtrl(CTRL_SW, …) で渡した引数の受け取り用 |
te.hwnd |
R | メインウィンドウのハンドル |
te.About |
R/W | アプリ名・バージョン文字列("Tablacus Explorer 〜")。文字列を渡すと上書き |
te.Reload([bForce])
設定を再読み込みします(100ms後にタイマーで実行)。通常はイベントをクリアして画面を更新します。内部の例外カウンタが尽きている場合、または bForce が真の場合は完全なリロードを行います。
te.ClearEvents()
登録済みのイベントハンドラをすべてクリアし、ダークモードの状態も再取得します。リロード前処理で使います。
te.AddEvent(name, proc) / te.RemoveEvent(name, proc)
ネイティブ関数ポインタ(api.GetProcAddress の戻り値など)を登録/解除します。対象は次の3つだけです。
| name | 用途 |
|---|---|
"GetArchive" |
アーカイブ展開DLLの関数 |
"GetImage" |
画像取得(サムネイル等)の関数 |
"MessageSFVCB" |
シェルビューのコールバック |
JavaScript 関数のイベント登録(AddEvent("Name", function))は te.OnXxx プロパティを設定するスクリプト側(sync.js 等)の仕組みで、本体の te.AddEvent とは別物です。
4. ウィンドウ・描画制御
te.LockUpdate([n]) / te.UnlockUpdate([n])
ウィンドウ配置の再計算(ArrangeWindow)を一時停止/再開します。ロックはカウンタ式で、呼んだ回数だけ UnlockUpdate が必要です。引数なしの場合は内部カウンタに16を加減し(完全ロック)、引数ありの場合は1を加減します。引数なしの UnlockUpdate は、ロックが解除された時点で配置を再実行します。
te.LockUpdate();
try { /* タブやペインを大量に操作 */ } finally { te.UnlockUpdate(); }
te.MainMenu(n)
シェルのメインメニュー(shell32 のメニューリソース)の n 番目のサブメニューを複製した HMENU を返します。現在のタブが無い場合は項目が無効状態になります。使い終わったら api.DestroyMenu で破棄してください。
5. 数値設定プロパティ
te.Xxx で読み取り、te.Xxx = n で書き込みます(いずれも整数)。値を変更すると下記の副作用があります。
| プロパティ | 説明 |
|---|---|
te.Type |
常に読み取り専用(CTRL_TE を返す) |
te.offsetLeft / offsetTop / offsetRight / offsetBottom |
メインウィンドウ内のコントロール領域の余白(px)。変更すると即座に再配置される |
te.Tab |
タブ関連の設定値 |
te.CmdShow |
起動時の表示状態(SW_*) |
te.Layout |
レイアウト設定。変更すると全ビューのレイアウト・表示モード/アイコンサイズを再判定する |
te.NetworkTimeout |
ネットワークパスの存在確認のタイムアウト(ms) |
te.SizeFormat |
ファイルサイズの表示形式 |
te.Version |
バージョン番号 |
te.UseHiddenFilter |
HiddenFilter を使用するか |
te.ColumnEmphasis |
ソート列の強調表示 |
te.ViewOrder |
ビューの並び順設定 |
te.LibraryFilter |
ライブラリのフィルタ設定 |
te.AutoArrange |
自動整列の設定 |
te.ShowInternet |
インターネット(「Internet」ルート)の表示設定 |
te.DragIcon |
ドラッグ中アイコンの設定 |
各値の意味の詳細(ビット割り当てなど)は実装側では保持するだけのものも多く、設定画面(
options.js)・sync.jsでの使われ方に依存します。
6. 文字列設定プロパティ
引数ありで設定、引数なしで取得します。
| プロパティ | 説明 |
|---|---|
te.DateTimeFormat |
日時列の書式 |
te.HiddenFilter |
隠しファイル用フィルタ(;区切りのワイルドカード) |
te.ExplorerBrowserFilter |
ExplorerBrowser 用フィルタ |
te.TreeHiddenFilter |
ツリーで隠すフィルタ |
7. イベント(te.OnXxx)
te.OnXxx = function (...) { ... } の形で関数を設定します(取得も可能)。実装上、これらは設定された関数をそのまま保持して本体から呼び出すスロットです。
実際の引数と戻り値の意味は、script/sync.js / sync1.js / common.js の利用例か各アドオンを参照してください(以下の引数は、コードで確認できたもののみ記載)。
ビュー・ナビゲーション
OnBeforeNavigate OnBeginNavigate OnNavigateComplete OnViewCreated OnViewModeChanged OnIconSizeChanged OnColumnsChanged OnColumnClick OnSort OnSorting OnFilterChanged OnFilterView OnContentsChanged OnIncludeItem OnILGetParent OnTranslatePath OnReplacePath OnGetPaneState OnVisibleChanged OnArrange
アイテム操作・描画
OnItemClick OnDefaultCommand OnItemPrePaint OnItemPostPaint OnHandleIcon OnHitTest OnSelectionChanged OnSelectionChanging OnBeginLabelEdit OnEndLabelEdit OnSetName OnGetAlt OnShowError
入力・メニュー・コマンド
OnKeyMessage OnMouseMessage OnMenuMessage OnCommand OnInvokeCommand OnShowContextMenu
ドラッグ&ドロップ
OnBeginDrag OnDragEnter OnDragOver OnDragLeave OnDrop OnDragImage
- OnBeforeGetData(Ctrl, Items, nMode): ドラッグ終了時(ドロップ先未確定の転送前)に呼ばれる。実装では nMode = 4、戻り値が真ならドラッグをキャンセル
アプリケーション・システム
OnCreate OnClose OnAppMessage OnSystemMessage OnWindowRegistered(設定すると ShellWindows のイベント購読を開始) OnStatusText OnToolTip OnNewWindow OnClipboardText OnEndThread
その他
Labels(ラベル表示関数。call を持たないとき「ラベルモード」になる) ColumnsReplace
8. 定数
te.Ctrl() / te.Ctrls() / te.CreateCtrl() や各オブジェクトの Type が返す値です(consts.js でグローバルに定義)。
| 定数 | 値 | 対象 |
|---|---|---|
CTRL_FV |
0 |
ファイルビュー(ShellBrowser) |
CTRL_SB |
1 |
ShellBrowser |
CTRL_EB |
2 |
ExplorerBrowser |
CTRL_TE |
0x10000 |
te 自身 |
CTRL_WB |
0x20000 |
WebBrowser(メイン) |
CTRL_SW |
0x20001 |
WebBrowser(サブウィンドウ) |
CTRL_AR |
0x2ffff |
配列 |
CTRL_TC |
0x30000 |
タブコントロール |
CTRL_TV |
0x40000 |
ツリービュー |
CTRL_DT |
0x80000 |
デスクトップ |
CTRL_FI |
0xF0000 |
FolderItems(列挙) |
9. te.Ctrl が返すオブジェクトのメンバー一覧
メンバー名のみ(各テーブル定義から抽出)。詳細は各オブジェクトの実装(TE.cpp/objects.cpp)を参照してください。
ShellBrowser(CTRL_FV/CTRL_SB/CTRL_EB)
Data hwnd Type Navigate Navigate2 Index FolderFlags History CurrentViewMode SetViewMode IconSize Options SizeFormat NameFormat ViewFlags Id FilterView Search FolderItem TreeView Parent Focus Close Title Suspend Items SelectedItems ShellFolderView Droptarget Columns GetColumns Searches MapColumnToSCID hwndList hwndView SortColumn GetSortColumn GroupBy HitTest hwndAlt AltSortColumn ItemCount Item Refresh ViewMenu TranslateAccelerator GetItemPosition SelectAndPositionItem SelectItem FocusedItem GetFocusedItem GetItemRect ViewProperty Notify NavigateComplete AddItem RemoveItem AddItems RemoveAll SessionId TotalFileSize ColumnsReplace OnIncludeObject AltSelectedItems VirtualName
TabCtrl(CTRL_TC)
Data hwnd Type HitTest Move Selected Close SelectedIndex Visible Id LockUpdate UnlockUpdate SetOrder _NewEnum Item Count length Left Top Width Height Style Align TabWidth TabHeight
TreeView(CTRL_TV)
Data Type hwnd Close hwndTree FolderView Align Visible Focus HitTest Refresh GetItemRect Notify Width Style EnumFlags RootStyle SelectedItem SelectedItems Root SetRoot Expand Columns CountViewTypes Depth EnumOptions Export Flags Import Mode ResetSort SetViewType Synchronize TVFlags
WebBrowser(CTRL_WB/CTRL_SW)
Application Close Data Document DropMode Focus hwnd OnClose PreventClose TranslateAccelerator Type Visible Window
FolderItems(CTRL_FI、te.FolderItems()、api.DataObject())
_NewEnum AddItem Application Count Data dwEffect GetData hDrop Index Item length Parent pdwEffect SetData UseText
FolderItem
_BLOB Alt Enum FocusedItem FolderItem Id Name Path Unavailable
Memory(api.Memory())
_BLOB _NewEnum Clone Count Free Item length P Read Size Write
ContextMenu(api.ContextMenu())
FolderView GetCommandString HandleMenuMsg hmenu idCmdFirst idCmdLast indexMenu InvokeCommand Items QueryContextMenu uFlags
10. 廃止・内部用
| メンバー | 状態 |
|---|---|
te.GdiplusBitmap |
te.WICBitmap の旧名。非推奨 |
te.HookDragDrop |
廃止。何もしない |
te.Background / te.ThumbnailProvider |
廃止(コメントアウト済み) |
te.TestObj |
開発用ビルド(USE_TESTOBJECT)のみ |
te.fn |
同期スクリプト用(_USE_SYNC ビルド)の内部スロット |