メッセージ受送信
ウィンドウメッセージにより外部プロセスから稼動中の ClipCommand を操作することができます。
仕様
wm_copydata でデータの受け渡しを行います。以下のデータ形式で ClipCommand にリクエストを行ってください。ClipCommand はリクエストに応じた処理をした後、送り元ウィンドウハンドルに対して wm_copydata メッセージを送ります。
copydatastruct
dwData=リクエストID
cbData=リクエストデータの長さ
lpData=リクエストデータへのポインタ
リクエストの種類
リクエストデータおよびレスポンスデータは、リクエストIDによりフォーマットが異なります。
レスポンスデータの1行目には、ステータスコードが記述されています。
| ID | 101 |
| 説明 | コマンド発行 |
| リクエストデータ | 命令文 |
| ID | 102 |
| 説明 | 履歴へ追加せずにコマンド発行 |
| リクエストデータ | 命令文 |
| ID | 201 |
| 説明 | プログラム起動 |
| リクエストデータ | 起動するプログラムの名称 |
| ID | 301 |
| 説明 | プログラム一覧の取得 |
| リクエストデータ | なし |
| ID | 302 |
| 説明 | 辞書一覧の取得 |
| リクエストデータ | なし |
| ID | 303 |
| 説明 | ヘッドラインセンサー一覧の取得 |
| リクエストデータ | なし |
| ID | 304 |
| 説明 | 検索サイト一覧の取得 |
| リクエストデータ | なし |
ステータスコード
| 200 type OK | 正常に終了した |
| 400 Bad Request | リクエスト不備 |
なお、200 が返されるのはメッセージ送受信が正常に行われたことを示すものであり、例えばヘッドラインセンスに失敗した等でも、メッセージ送受信が成功すれば 200 が返ります。実行エラーに関しては、返されたレスポンスデータで判別する必要があります。
レスポンスデータ
正常終了時、レスポンスデータ 1 行目に種類が記述されています。種類により、2 行目以降のフォーマットが異なります。
| 種類 | CALC |
| 説明 | 計算結果を返します。 |
| データ | 2 行目:計算結果。エラーの場合、半角スペース。 3 行目以降:エラーメッセージ |
| 種類 | CONV |
| 説明 | 基数変換結果を返します。 |
| データ | 2 行目:基数変換結果。エラーの場合、半角スペース。 3 行目以降:エラーメッセージ |
| 種類 | DICTIONARY/* |
| 説明 | 辞書引きの結果を返します。 |
| データ |
2 行目:辞書引きが行われた単語 3 行目:件名[32]検索結果文字列の行数 ・件名と行数記述との間は半角スペースで区切られています。 ・行数記述が”-1”の場合、最終行までが検索結果文字列になります。 ・ 1 件しか存在しない場合も同じフォーマットです。 |
| 種類 | GETDICTIONARY |
| 説明 | 辞書一覧を返します。 |
| データ | 2 行目:辞書名 : : (辞書の数だけ繰り返されます) |
| 種類 | GETHEADLINE |
| 説明 | ヘッドラインセンサー一覧を返します。 |
| データ | 2 行目:ヘッドラインセンサー名 : : (ヘッドラインセンサーの数だけ繰り返されます) |
| 種類 | GETPROGRAM |
| 説明 | プログラム一覧を返します。 |
| データ | 2 行目:プログラム名 : : (プログラムの数だけ繰り返されます) |
| 種類 | GETSEARCH |
| 説明 | 検索サイト一覧を返します。 |
| データ | 2 行目:検索サイト名 : : (検索サイトの数だけ繰り返されます) |
| 種類 | HEADLINE/* |
| 説明 | ヘッドラインセンス結果を返します。 |
| データ | 2 行目:ヘッドラインセンサー名 3 行目:URL 4 行目以降:ヘッドラインセンス結果 |
| 種類 | LAUNCH |
| 説明 | プログラムが起動されたことを通知します。 |
| データ | 2 行目:起動されたプログラムの名称 |
| 種類 | MESSAGE |
| 説明 | 通常メッセージ |
| データ | 2 行目以降:メッセージ文 |
| 種類 | SEARCH/* |
| 説明 | 検索が実行されたことを通知します。 |
| データ | 2 行目:検索が行われた単語 |
ウィンドウハンドル取得方法
file mapping object ”ClipCommand”からデータを取得することで確実にウィンドウハンドルを取得できます。「file mapping object」の章を参照して下さい。