★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・★━…‥・ なごみコネクト HSP実装用モジュールガイド feat. ReadMe Of NagomiConnect from version:1.14_P3 HP『略して仮。』http://www.tvg.ne.jp/menyukko/ Last Update : 2013/11/20 Copyright (C) 2013 衣日和 All rights reserved. ・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★・‥…━★ ◆モジュール概要 Outline ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ なごみコネクトは独自のプロセス間データ通信規約です。私のHNから一文字とって"なごみコネクト"です。 一言でいえば、アプリ間で簡単にデータを共有するためのルールです。 このモジュールは、なごみコネクトをHSPから簡単に利用できるようにいくつかの命令/関数にまとめたもの です。ユーザーはこのモジュールをインクルードするだけで細かい仕様を意識することなくなごみコネクト の機能を使用することができます。 ◆パッケージ内容 Included Files ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ P3パッケージ(HSPプログラムコンテスト2013 出展パック3版)に含まれるファイルは以下の通りです。 ▽ (RootDir) ├-▽ common ○モジュールフォルダ │ └-◇ NagomiConnect.hsp ※ ├-▽ doclib ○ドキュメントフォルダ │ └-◇ なごみコネクト設計書.html ※ ├-▽ sample ○サンプルフォルダ │ └-▽ NagomiConnect │ ├-◇ 01_ブレークポイント.hsp ・サンプル │ ├-◇ 02_なごコネに参加する.hsp ・サンプル │ ├-◇ 03_多重起動を防止する.hsp ・サンプル │ ├-◇ 04_特定の相手を確認する.hsp ・サンプル │ ├-◇ 05_不定長データを送信する.hsp ・サンプル │ ├-◇ 06_不定長データを要求する.hsp ・サンプル │ ├-◇ 07_数値のやりとり.hsp ・サンプル │ ├-◇ ほたるデモ.hsp ・サンプル(コンソール版HSP使用) │ ├-◇ なごみ.hsp ・(旧)運用状況観察・開発補助ツールのソースコード │ ├-◇ ほたる.hsp ・ほたる.exeのソースコード │ └-◇ hotaru2.png ・ほたるで使用する画像 ├-◇ なごみコネクトマニュアル.txt ・このファイル └-◇ ほたる.exe ※ ◇NagomiConnect.hsp HSP実装用のモジュールファイルです。HSPでなごコネを使用する場合、このファイルをインクルードす るだけで簡単に実装できます。 またHDL(HSP Document Library)対応書式のヘルプ(.hsファイル相当)を内包していますので、HSP本体 パックのcommonフォルダに入れるとF1キーでヘルプが読めるようになります。 ◇なごみコネクト設計書.html なごコネの仕様解説書です。上記モジュールを使用する分には理解する必要はありません。 加筆修正してアプリの配布パッケージ等に同梱すると、そのアプリのなごコネを利用した外部入力仕様 などを広く公開することができます。 ◇ほたる.exe なごコネの運用観察・開発補助およびデバッグ機能の受信用サポートツールです。 ブレークポイント風デバッグを使用する際は予め起動しておいてください。また一部サンプルでも利用 します。 ◆インストール&アンインストール Install and Uninstall ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ ◇インストール この配布パッケージの内容物をフォルダ構造を維持したままHSPの本体パッケージに上書き(実質ファイ ル追加のみ)してください。 ◇簡単インストール common/NagomiConnect.hspをインクルードできる場所に置いてください。 HSP本体パッケージのcommonフォルダ下に置くとHDLでヘルプを読むことができるようになります。 ◇アンインストール 追加したファイルをすべて捨ててください。レジストリ等は操作しておりません。 ◇サンプルの実行 上記インストール作業を行わなくてもサンプルは実行できるようになっているはずですが、もしコンパ イルエラーが発生するようならば簡単インストールを行ってください。 ◆使用準備 First Operation ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ スクリプトに #include "NagomiConnect.hsp" 等と記入してモジュールをインクルードしてください。 kernel32.as、user32.as を併用する場合、衝突回避のためこれらより先に、また定義を含みますので実際 に使用する箇所より上の行にインクルードしてください。 ◆モジュールの仕組み BlackBox's Gimmick ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ なごみコネクトがWindowsAPIによって提供されるカーネルオブジェクトとウィンドウメッセージを組み合わ せた設計になっているため、HSPの標準機能である外部DLL呼び出しを使用しています。使用しているAPIは すべてOSがWindows95当時からサポートしているものです。 つまり、WindowsAPIが滞りなく利用できる環境であれば『このモジュールのみ』で動作します。 別途DLLやHPIあるいはモジュール等のインクルードファイルを用意する必要はありません。 ですがウィンドウメッセージを使う都合上、コンソール版ランタイム(hsp3cl)使用時は一部の機能に制約が かかります。また外部DLL呼び出しをサポートしていないランタイムでの利用はできません。 ◆用語解説 Technical term ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ ◇なごみコネクト アプリの集まる広場のようなものです。同じ空間にいるアプリなら目的の相手を見つけることもできる し、会話や小包の受け渡しもできる、そのような場所を提供します。 ◇アプリ それぞれが独立したプログラムです。管理やセキュリティーといった都合で、アプリ同士の交流はOSに よって制限されています。なごみコネクトは正攻法でこの交流をサポートします。 その性質上このテキストにはふたつ以上のアプリが登場します。区別するために、自分側をマイアプリ 相手側をアナザーアプリと呼ぶことがあります。 ◇アプリ識別子 個々のアプリに付けた愛称のようなもので、最初にアプリを捜索するときのキーワードになります。 アプリ開発者側で 1〜4byte の任意の名前を付けてください。この名前は第3者製のアプリと重複する 場合があります。 ◇アプリ番号 なごみコネクトへの参加番号で、参加中のアプリすべてに他とは被らない一意の番号が割り振られます。 簡単に言えば背番号です。特定の相手と通信するときに使用します。 この番号は1から順番に割り当てられ、欠番は再利用されます。0番はゲスト扱いでなごみコネクトに 参加していないアプリが一部の機能を使用するときの仮番号になります。 ◇レター通信 ふたつのアプリを結ぶための機能です。この機能を介して会話や小包の受け渡しをサポートします。 ◇不定長データ データ容量を固定しない任意の数値列です。見る人が見れば理解できる数値の塊だと思ってください。 便宜上、文字コードで構成され文章として読めるモノを文字列(あるいはコマンド)、それ以外のモノを バイナリデータと称します。 ◇一時スペース 不定長データの受け渡しの際に一時的に確保するメモリ領域です。なごみコネクトに参加したアプリは それぞれひとつずつ一時スペースの保有が可能です。 つまりデータ受け渡しをするとき合計でふたつの一時スペースが存在する可能性がありますが、なごみ コネクトには『自身が所有する一時スペースのみ編集可能』というルールがあります。 要は、参照(取得)するときは相手が管理している側の一時スペースにデータがありますということです。 ◆命令・関数一覧 Command List ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ ◇なごみコネクト登録 なごみコネクトに参加するとアナザーアプリから発見されるようになります。 NGMC_ConnectEntry なごコネ登録(参加/内容更新) NGMC_ConnectClose なごコネ登録(離脱) NGMC_EntryNumber() なごコネ情報取得(マイアプリ番号) NGMC_SetApplicationName なごコネ情報指定(マイアプリの名称) NGMC_SetVersion なごコネ情報指定(マイアプリのバージョン) NGMC_SetShortMessage なごコネ情報指定(マイアプリのショートメッセージ) ◇なごみコネクト情報取得 なごみコネクトから各種情報を取得します。 NGMC_AliveCheck() なごコネ情報取得(アプリの存在-有効-判定) NGMC_ItemCount() なごコネ情報取得(参加アプリ数) NGMC_SearchItem() なごコネ情報取得(アプリを検索) NGMC_GetItemName() なごコネ情報取得(アプリのアプリ識別子) NGMC_GetApplicationName() なごコネ情報取得(アプリの名称) NGMC_GetVersion() なごコネ情報取得(アプリのバージョン) NGMC_GetShortMessage() なごコネ情報取得(アプリのショートメッセージ) ◇レター送信 アナザーアプリにレターを送信します。 NGMC_SendInquire レター送信(相手確認) NGMC_SendCommand レター送信(文字列) NGMC_SendData レター送信(バイナリデータ) NGMC_SendRequest レター送信(データ要求) NGMC_SendLetter レター送信(ユーザー定義) ◇レター受信設定 各種レターを受信したときの動作を設定します。 NGMC_ReplyInquire レター受信設定(相手確認) NGMC_ReplyCommandOrData レター受信設定(文字列、バイナリデータ) NGMC_ReplyRequest レター受信設定(データ要求) NGMC_ReplyLetter レター受信設定(ユーザー定義) NGMC_ReplyCancel レター受信設定(取り消し) NGMC_ReplyClear レター受信設定(全消し) ◇レター受信要因取得 レター受信時の割り込み中に情報を取得します。 NGMC_ReceiveItem() レター受信情報(送信元) NGMC_ReceiveType() レター受信情報(レター種類) NGMC_ReceiveParam() レター受信情報(パラメータ値) ◇不定長データ格納スペース操作 一時的なメモリ領域(不定長データの受け渡しに使う)の操作をおこないます。 NGMC_GetCommand() 不定長データ取得(文字列) NGMC_GetData 不定長データ取得(バイナリデータ) NGMC_GetDataSize() 不定長データ取得(データサイズ) NGMC_SetData 不定長データ格納(文字列、バイナリデータ) NGMC_DeleteData 不定長データ破棄 ◇デバッグ機能 デバッグ時に使用できるなごみコネクトの機能です。 NGMC_BreakPoint ブレークポイント(一時中断)設置 ◇暫定機能 今のところ運用方法が曖昧な命令/関数です。 NGMC_SendGreeting レター送信(あいさつ) NGMC_SendMyPost レター送信(自身への割り込みを発生させる) NGMC_ReplyGreeting レター受信設定(あいさつ) NGMC_ReplyMyPost レター受信設定(自身への割り込み) NGMC_GetDataType() 不定長データ取得(データタイプ) ◆命令・関数詳細 Detail ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ ※コンテスト既定のサイズ調整のため割愛しています。 全文はパッケージ内の なごみコネクトマニュアル.txt で読むことができますm(_ _)m。 ◆スぺシャルサンクス Hontou ni Arigatou ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ すばらしい開発環境をくれたHSP製作者さん 発表の場を与えてくれたコンテスト事務局さん ご意見ご感想をくれた登録ユーザーさん、ネット審査員さん たくさんの情報をくれたネット上の有志達さん そして、なごみコネクトを手に取ってくれた皆様がた すごくすごく感謝していますm(_ _)m ◆著作権、利用条件 Copyright / Escape Clause ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ なごみコネクトおよび実装用モジュールの著作権は作者である 衣日和 が有します。 なごみコネクトを組み込んだソフトウェアの著作権はソフトウェアの開発者側にあります。 なごみコネクトは下記の禁止事項を除き自由に利用することができます。 禁止事項 ・人を陥れ損害を与える目的のソフトウェア(ウィルス・スパイウェア)に組み込む行為 ・人に迷惑をかける目的のソフトウェア(ジョークソフト)に組み込む行為 ・なごみコネクトを破壊し他のアプリの動作を阻害する目的での利用 なごみコネクトを使用したことに起因するトラブル・損害等について衣日和は一切の責任を負いませんので 自己責任でご利用ください。 ソフトウェア開発者は、なごみコネクト設計書.html のアプリ固有記載欄を加筆編集した上でソフトウェア の配布パッケージに添付することができます。 またモジュールファイル(NagomiConnect.hsp)の添付も自由です。組み込んだソフトウェアはもちろん、そ のソースコードを公開する場合にこのファイルを添付することが可能です。 改造も自由ですがその場合はオリジナル版との区別がつくようにしてください。 いずれの場合も、衣日和に対して一切の連絡・許諾を取る必要はありません。 なごみコネクトを使用している旨を掲示する必要もありません(仕様公開しない使い方は限定的ですが)。 しかしながら事後にでも一報を頂けると衣日和はすごく喜びます(≧▽≦)。感想などもお待ちしています。 ◆改訂履歴 History of NagomiConnect ━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・‥…━…‥・*☆*・‥ ver.1.14_P3 2013.11.20 HSPプログラムコンテスト2013更新 ・サンプル1〜7追加 ・モジュールファイルのHDL部を完全リニューアル(処理コードの変更は無し) ・モジュールガイド製作、リードミー併合 ・難解な用語/関数群を整理、一新 ・サンプルが増えたため、なごみ.exeは不要に(T T)/~ ver.1.14_P2 2013.10.19 HSPプログラムコンテスト2013更新 ・ブレークポイント風なんちゃってデバッグ機能搭載 ・サンプル>ほたる.hspを完全作り直し ・ほたる(立ち絵)のレイヤー位置がずれてハズカシイ(//▽//)ことになっていた のを修正、結果ボリュームも増えて解決(^▽^)b ・ほたる(立ち絵)を2Pカラーに変更(塗り直しではなく光度調整) ver.1.14_P1 2013. 8.23 HSPプログラムコンテスト2013にて初版発行 ・想像以上にドキュメント整備に時間かかった ver.1.xx 2013. 8. 1 製作完了予定日に到達、まだドキュメントもサンプルもできてない(T_T) ver.1.10 2013.xx.xx 仕様大幅改定、新規モジュール・ビューア製作開始 ・コネクトの一部をアペンドに移行、アペンド必須化 ・ミューテ導入(作業の簡略化と正確性向上) ・ウィンドウを持たないアプリでも参加可能に ver.1.00直前 2013. 6. 9 製作完了目前に4096byte壁の存在に気付くorz ・グローバルメモリー代替を模索するも共有できずorz ・現モジュール破棄orz 2013. 4. 1 予てより策定していた規約のHSPモジュール化着手 2006.xx.xx プロセス間データ通信規約 策定開始? ♭------------------------------------------------------------------------------------------------# ♪Thank you for reading.