アトム関数の一覧表示

アトムとはアプリケーションの内部、またはアプリケーション間で
一群の文字列を共有する仕組みである。
アトムには「ローカルアトム」と「グローバルアトム」があり、グローバルアトムを使えば
複数のプロセス間で情報を共有できる。

文字列とそれに対応する16ビット値(Integer)との一連の組み合わせを「アトムテーブル」という。
広義の意味ではこの仕組みのことを「アトム」というが、
狭義の意味ではこの16ビット値のことを「アトム」という。

アトムのイメージとしては「メモリ中に存在するリストボックス」のようなものである。
もちろんリストボックスとは全く関係ないが、文字列を検索する関数や
項目の追加・削除を扱う関数もある。そうゆう意味ではメモリ中に存在するリストボックスと取れる。

このアトムの仕組みはDDE(Dynamic Data Exchange)の内部の仕組みとして使われている。


ローカルアトム・・・ローカルアトムは、特定のアプリケーションの中でのみ有効なアトムである。
                    別のアプリケーションとデータを共有することができない。
                    作成したローカルアトムテーブルは、アプリケーションが終了すると
                    自動的に削除される。

グローバルアトム・・グローバルアトムは別のアプリケーション(プロセス)からも
                    アクセス可能なメモリに作成されるので
                    複数のアプリケーションの共有データとして使うことができる。
                    共有されるようにするため、アプリケーションが
                    終了しても自動的に削除されない。
                    そのため必ず明示的に削除する必要がある。

アトムの種類・・・・アトムには「文字列アトム」と「整数アトム」がある。

文字列アトム・・・・文字列アトムは文字列とそれに対応する16ビット値との組み合わせで、
                    次のような性質を持つ。
                      @  文字列アトムの範囲は&HC000&(49,152)〜&HFFFF&
                      A  文字列は大文字・小文字の区別がない
                      B  文字列を検索するときは、文字列の全てが一致しなければならない
                      C  文字列の長さは255バイト以下である
                      D  各アトムの文字列は参照カウントを持ち
                          アトムテーブルに同じ文字列を追加した場合に
                          参照カウントを一つ挙げ、削除したときに参照カウントを一つ下げる
                          参照カウントが0になったとき、初めて削除される

整数アトム・・・・・整数アトムは次のような性質を持つ。
                      @  整数アトムの範囲は&H1(1)〜&HBFFF&(49,151)です。
                      A  登録する整数アトム値に対応する文字列の書式は
                          整数値の先頭に「#」を付ける
                          例えば323に対応する文字列は#323になる
                      B  文字列アトムのような参照カウントはない

最大エントリ数・・ ローカルアトムテーブルの最大エントリ数のデフォルトは37である。
                   しかし、InitAtomTable()関数でこのエントリ数を変えることができる。

                   グローバルアトムテーブルの場合、37に固定されている。

ネットワーク(というか通信)
関数名機能Sample
アトム
AddAtomローカルアトムテーブルに項目を追加するなし
DeleteAtom指定のアトムの項目を削除するなし
FindAtom指定の文字列がローカルアトムテーブル内にあるかどうかを調べるなし
GetAtomName指定のアトムの文字列を取得するなし
GlobalAddAtomグローバルアトムテーブルに項目を追加するなし
GlobalDeleteAtomグローバルアトムテーブルから指定のアトムの項目を削除するなし
GlobalFindAtom指定の文字列がグローバルアトムテーブル内にあるか調べるなし
GlobalGetAtomNameグローバルアトムテーブルから文字列を取得するなし
InitAtomTableローカルアトムテーブルを初期化するなし