タブブラウザ Sleipnir オンラインデータベース
B5-EC-A5-D7-A5-E9-A5-B0-A5-A4-A5-F3-A4-CE-B3-AB-C8-AF-.html

  [ トップ | ヘルプ ]

SPXの仕様 †

  • Sleipnir のプラグイン(spx)を開発するための資料です。
  • Sleipnir1.66とともに配布されているヘッダファイル SPlugin.h に基づいています。

実装 †

プラグインDLLは以下の2関数を実装しエクスポートする必要があります。spxプラグインでは関数の呼び出し規則としてWINAPIの呼び出し規則を用います。SPlugin.hでは SPX_CALL マクロとして定義されています。

SPX_GetPluginInfo 関数 †

書式
SPX_USHORT SPX_CALL SPX_GetPluginInfo();
説明
DLL が Sleipnir プラグインであることを示します。上位バイトにプラグインの種別、下位バイトに基づいている仕様のバージョンをセットして返します。

SPX_Initialize 関数 †

書式
SPX_LONG SPX_CALL SPX_Initialize(SPX_IBrowserEventListener* ipEvent);
説明
プラグインの初期化とリスナの登録を行います。

データ型 †

SPX_ULONG
符号なし32ビット整数型
SPX_USHORT
符号なし16ビット整数型
SPX_UCHAR
符号なし8ビット整数型
SPX_LONG
符号あり32ビット整数型
SPX_SHORT
符号あり16ビット整数型
SPX_CHAR
符号あり8ビット整数型
SPX_VOID
void 型
SPX_BOOL
8ビット論理型
SPX_VARIANT
バリアント型
SPX_HWND
ウィンドウハンドル

定数 †

プラグインタイプ †

SPX_GetPluginInfo の返り値の上位バイトにセットします。

定義済み定数説明
0SPX_PLUGIN_UNKNOWN不明なプラグイン
1SPX_PLUGIN_EXTENDED_PANEL拡張パネル用プラグイン
2SPX_PLUGIN_INTELLI_SEARCHIntelliSearch 用プラグイン

プラグインバージョン †

SPX_GetPluginInfo の返り値の下位バイトにセットします。これらの定数の値はこのページで解説している仕様に基づくものです。

定義済み定数説明
103SPX_EXTENDED_PANEL_VERSION拡張パネルプラグインバージョン
0SPX_INTELLI_SEARCH_VERSIONIntelliSearch プラグインバージョン

エラーコード †

定義済み定数説明
0SPX_ERR_CODE_SUCCESS成功
1SPX_ERR_CODE_FAILED失敗
2SPX_ERR_CODE_MEMORYメモリ不足
3SPX_ERR_CODE_NOT_SUPPORT未サポート

Sleipnirメッセージ †

SPX_ISleipnir::SendMessage, SPX_ISleipnir::PostMessageの第一引数に渡します。

フォルダ定数 †

SPX_SM_GETSPECIALFOLDERで使用される、フォルダを示す定数です。

定義済み定数説明
0SPX_SF_APPアプリケーションディレクトリ
1SPX_SF_INIiniファイル等の保存されているディレクトリ
2SPX_SF_ACTIVESKIN使用されているスキンのディレクトリ

Sleipnir メッセージ †

SPX_SM_GETVERSION メッセージ †

説明
Sleipnir のバージョンを取得
First
SPX_ULONG* バージョン情報(1.60 => 160)
Second
なし
戻り値
エラーコード
使用例
SPX_ULONG ver; // 宣言
ipSleipnir->SendMessage(SPX_SM_GETVERSION, (SPX_ULONG)&ver, 0); // 呼び出し
if (ver == 160)
{
  MessageBox(NULL, "OK", "", MB_OK); // ver1.60ならダイアログを表示する
}

SPX_SM_GETPAGECOUNT メッセージ †

説明
開かれているページ数を取得
First
SPX_ULONG* ページ数
Second
なし
戻り値
エラーコード
使用例

SPX_SM_GETBROWSERINTERFACE メッセージ †

説明
指定のページの IWebBrowser2 を取得
First
IWebBrowser2 を取得するページ番号
Second
SPX_VOID** IWebBrowser2 へのポインタ
戻り値
エラーコード
使用例

SPX_SM_NAVIGATE メッセージ †

説明
指定のページでナビゲート開始
First
SPX_ULONG ナビゲートを行うページ番号
Second
SPX_CHAR* URI を示す文字列
戻り値
エラーコード
使用例

SPX_SM_NEWWINDOW メッセージ †

説明
任意の URI で新しいページを作成
First
SPX_BOOL アクティブにするか
Second
SPX_CHAR* URI を示す文字列
戻り値
エラーコード
使用例

SPX_SM_CLOSEPAGE メッセージ †

説明
指定のページを閉じる
First
SPX_ULONG 閉じるページ番号
Second
なし
戻り値
エラーコード
使用例

SPX_SM_GETURL メッセージ †

説明
指定のページの URL を取得する
First
SPX_ULONG ページ番号
Second
SRX_CHAR** URL が格納されたアドレス ISleipnir::Free で開放すること
戻り値
エラーコード
使用例

SPX_SM_GETTITLE メッセージ †

説明
指定のページのタイトルを取得する
First
SPX_ULONG ページ番号
Second
SRX_CHAR** タイトルが格納されたアドレス ISleipnir::Free で開放すること
戻り値
エラーコード
使用例

SPX_SM_GETACTIVEPAGE メッセージ †

説明
アクティブなページを取得
First
SPX_ULONG* ページ番号
Second
なし
戻り値
エラーコード
使用例

SPX_SM_SETACTIVEPAGE メッセージ †

説明
アクティブなページを設定
First
SPX_ULONG ページ番号
Second
なし
戻り値
エラーコード
使用例

SPX_SM_NEWWINDOW2 メッセージ †

説明
任意の URI で新しいページを作成
First
SPX_ULONG* 作成したページの番号
Second
SPX_CHAR* URI を示す文字列
戻り値
エラーコード
使用例

SPX_SM_GETAPPINTERFACE メッセージ †

説明
指定のページのアプリケーションオブジェクトの LPDISPATCH を取得
First
取得するページ番号
Second
SPX_VOID** LPDISPATCH
戻り値
エラーコード
使用例

SPX_SM_GETSPECIALFOLDER メッセージ †

説明
特定のフォルダを取得する
First
SPX_ULONG 取得したいフォルダ ID
定義済み定数説明
0SPX_SF_APPアプリケーションディレクトリ
1SPX_SF_INIiniファイル等の保存されているディレクトリ
2SPX_SF_ACTIVESKIN使用されているスキンのディレクトリ
Second
SPX_CHAR** フォルダ名 ISleipnir::Free で開放すること
戻り値
エラーコード
使用例
SPX_CHAR* caExeDir;
SPX_CHAR* caIniDir;
ipSleipnir->SendMessage(SPX_SM_GETSPECIALFOLDER, SPX_SF_APP, (SPX_ULONG)&caExeDir);
ipSleipnir->SendMessage(SPX_SM_GETSPECIALFOLDER, SPX_SF_INI, (SPX_ULONG)&caIniDir);
MessageBox(hWnd, caIniDir, caExeDir, MB_OK);

ipSleipnir->Free(caIniDir);
ipSleipnir->Free(caExeDir);

SPX_ISleipnir 構造体 †

Sleipnir 側から渡される構造体で、メソッドポインタがセットされています。

SendMessage 関数 †

定義
typedef SPX_ULONG (SPX_CALL* SPX_SendMessage)(SPX_ULONG qMsg, SPX_ULONG qFirst, SPX_ULONG qSecond);
説明
Sleipnirにメッセージを送信(SendMessage)します。

PostMessage 関数 †

書式
typedef SPX_ULONG (SPX_CALL* SPX_PostMessage)(SPX_ULONG qMsg, SPX_ULONG qFirst, SPX_ULONG qSecond);
説明
Sleipnirにメッセージを送信(PostMessage)します。

Malloc 関数 †

書式
typedef SPX_VOID* (SPX_CALL* SPX_Malloc )(SPX_ULONG qSize);
説明
メモリを確保します。

Free 関数 †

書式
typedef SPX_LONG (SPX_CALL* SPX_Free )(SPX_VOID* vpMemory);
説明
メモリを解放します。

Sleipnir ブラウザイベントリスナ †

Sleipnir から通知されるイベントです。
プラグインは OnCreate/OnDestroy を必ず実装する必要があります。
実装しないイベントは NULL を指定してください。

OnCreate イベント †

書式
SPX_HWND SPX_CALL SPX_CreateProc(SPX_ISleipnir* ipSleipnir, SPX_HWND hWndParent);
説明
Sleipnir の子ウィンドウを作成する。作成された子ウィンドウはエクスプローラバーに表示される。

OnDestroy イベント †

書式
SPX_LONG SPX_CALL SPX_DestroyProc(SPX_ISleipnir* ipSleipnir, SPX_HWND hWnd)
説明
自分自身を破棄する。

OnIdle イベント †

書式
SPX_LONG SPX_CALL SPX_IdleProc(SPX_ISleipnir* ipSleipnir, SPX_HWND hWnd);
説明
Sleipnir がアイドル中にコールされる。プラグインはタイマを起動せずにこのイベントを使用すること。

OnProperty イベント †

書式
SPX_LONG SPX_CALL SPX_PropertyProc(SPX_ISleipnir* ipSleipnir, SPX_HWND hWnd, SPX_ULONG x, SPX_ULONG y);
説明
プラグインの設定を選択すると呼び出される。

開発環境 †

メソッドポインタを扱える言語と関数をエクスポート可能なネイティヴコンパイラ。
C/C++(gcc, Visual C++), D, Delphi, Visual Basicあたり

参考(フリーで手に入る開発環境) †

  • spx(dll)を作製するのに使える開発環境を幾つか紹介
    標準でIDE(統合開発環境)を備えているものもあります。

☆Borland -MicroSoftと並ぶ大手SoftVendor

  • 最近のニュースでは開発環境部門の売却が噂されており、いつまで今の形態でアプリケーションを提供してくれるのか不透明...
★Borland - Delphi 6 Personal 日本語版
大規模なデータベースを扱ったりしない限りは、必要十分な機能が搭載されています。
インストールして使用するには米Borlandのサイトにてライセンス情報を取得する必要があります。
★Borland C++ Compiler 5.5
コマンドラインで使用するコンパイラ。詳細は猫でも~・・・を参照
ダウンロードするにはボーランドMyPageに登録が必要
・BCC環境ファイル/パス設定プログラム
BCCの初期設定をGUIで行える。
(ファイル提供先の[C MAGAZINE for Web]が、3月18日発売の4月号で休刊とのこと。サイトの存続については不明なので必要な方は早めに入手されることをオススメします)
・Turbo Debugger 5.5
BCCで開発したアプリケーションのソースレベルデバッグができるようになります。
MyPage内のダウンロード/ライセンス発行ページでインストールパスワードを手に入れる必要があります。
・BCC Developer 日本語
BCCにIDEライクなインターフェースを提供してくれます。

☆Microsoft-Visual Studio Express Editionシリーズ

  • 提供開始から一年間だけ無料でダウンロードできます。最近正式版がUpされたばかりなので当分大丈夫でしょう(2006/02/11現在)
    インストール後30日以内に製品の登録が必要。
★Visual C++ 2005 Express Edition 日本語インターフェース
コンパイラ、コード エディタ、デバッガ、プロジェクト システムなどを備えた C++ プログラミング ツール。
★Visual Basic 2005 Express Edition 日本語インターフェース
Visual Basic 言語を使用して、Windows アプリケーションやコンソール アプリケーション、クラス ライブラリをプログラミング。

☆その他 個人が開発し、フリーで提供されているもの

★SharpDevelop 日本語インターフェースあり
.NET Framework SDKのフロントエンド(IDE)。
C#およびVB.NETのコーディングとコンパイルが行える。
・Microsoft .NET Framework
SharpDevelopの動作に必要。
★ActiveBasic 日本語
BASICでdllまで作れちゃう...(言語はN88BASICライクなものからオブジェクト指向のものまで。)
よくあるインタプリタではなく、Win32のコンパイラなので生成されたファイルの動作速度も問題ない。
IDEもわかりやすくプロセスデバッガもついている。
サポートページも充実。

サンプルプラグイン †


  • Sleipnir2 Skin・Plugin作成 thread Part1にて943氏(=BabelPanelの735氏かな?)がSPX作製支援用のサンプルプログラムをGPLにて公開してくれていますのでリンクを貼っておきます。
    • DelphiでSleipnir1.6用パネルプラグインを開発するサンプル
      (メッセージ周りが少し不安)---Webページより

      SpxPlugin

Last-modified: 2020-12-09 (水) 10:43:34 (2d)