[SSP技術資料]

SSTP関連の資料


SSTP拡張

全てのバージョンのSSTPコマンドにおいて,Localeオプションが使用できます.Charsetオプションとセットで使用することで,任意の文字コードを扱うことができるようにします.デフォルトでは,Locale: Japaneseです.

INSTALL SSTP/1.0

INSTALLは,任意のゴーストやバルーンなどを外部アプリケーションから本体にインストールさせるために使用します.

INSTALL SSTP/1.0
Sender: SSP
Path: C:\temp\konomi.nar

Pathにインストールするアーカイブのパスを指定します.

未実装ですが,
INSTALL SSTP/1.0
Sender: SSP
Url: http://doichan.netbank.co.jp/spp/emily.nar

のような使い方もありえると思います.

SSTP/1.5

SSTP/1.5はIM for SSPのためのプロトコルですが,インストールされている特定のゴーストにしゃべらせる目的で使用することもできます.

SEND SSTP/1.5
Ghost: えみりぃ
Script: ユニコードっておいしい?\e
Charset: UTF-8
Locale: Japanese
Port: 9821

Ghostに,対象となるゴーストを指定します.指定されたゴーストがない場合の処理は本体の処理に依存します.SSPではない場合はデフォルトゴーストがしゃべります.また,SSPの場合は,本体の他にしゃべるためだけに指定されたゴーストがデスクトップに立ちます.
Portオプションは,IM機能を使いたい場合に,返信先のポートを指定します.受信したユーザはこのポートにメッセージを送ることができます.このオプションはなくても構いません.


SSPで使用するポート

ポート:9821がデフォルトのポートになっています.

標準では,11000番もリスニングしています.9801は「設定」-「SSTP」より有効にしてください.


SSPでサポートするEXECUTEコマンド

SSTP EXECUTE/1.xのメッセージのうち,SSPでサポートするものです.SSP固有のものが追加される可能性があります.

・GetName

稼動中のゴーストの名前(さくら側)を返します.

・GetVersion

次の文字列を返します.

SSP xx.xx

(xx.xxにはバージョン文字列が入る)

・GetCollision

現在のゴーストの現在のサーフェースのあたり判定の領域を得るためのコマンドです

次のような値を返します

SSTP/1.0 200 OK
Head: 74,28,218,77
Face: 100,82,196,123
Bust: 98,181,196,226
 
あたり判定のデータがないときは全部同じ値(-1)が入ります


SSPの存在を確認する方法

SSPが起動している間,「ssp」という名のMUTEXオブジェクトを持っています.
次のようにすることで,SSPが起動できるかどうかを確認することができます.

m_hMutex = ::OpenMutex(MUTEX_ALL_ACCESS,FALSE,"ssp");
if(m_hMutex){
    //SSP起動中
}
else{
    //SSP起動してない
}

SSPのファイルマッピングオブジェクト

ウィンドウハンドルを得るために使用します

SSPでも「Sakura」という名前のファイルマッピングオブジェクトを使用します.
「何か。」がいるときも,「何か。」のデータを壊さないようにしているので共存できます.

くわしくは「何か。」のほうを参照