この文字列は必ずしもグローバルアトムテーブルに格納されたものである必要はありません。そのアプリケーション内で一意なローカルアトムが返ります。その文字列をローカルアトムテーブルに格納してみると面白いでしょう。特定の文字列がローカルアトムテーブルに存在するかを調べることもできます。ローカルアトム系の関数の使い方は、グローバルアトム系の関数の使い方とよく似ています。ローカルアトムテーブルに文字列を格納するには、AddAtomを呼び出します。lpString);lpStringは、ローカルアトムに格納したい文字列を指定します。戻り値は、格納された文字列を識別するローカルアトムです。ローカルアトムテーブルから文字列を削除するには、DeleteAtomを呼び出します。nAtom);nAtomは、削除したい文字列を識別するローカルアトムを指定します。ローカルアトムに関連する文字列を取得するには、GetAtomNameを呼び出します。nSize);nAtomは、取得したい文字列を識別するローカルアトムを指定します。lpBufferは、文字列を受け取るバッファを指定します。nSize、lpBufferのサイズを指定します。ローカルアトムテーブルから文字列を検索するには、FindAtomを呼び出します。lpString);lpStringは、検索したい文字列を指定します。戻り値は、文字列に関連するローカルアトムになります。ATOM型の変数を返す関数としては、ウインドウクラスの登録に使用するRegisterClassExがあります。GetAtomNameやGlobalGetAtomNameに指定しても関連する文字列を取得することはできません。当初はローカルアトムテーブルが使われていると考えていたのですが、そのようなことはないようです。したことからも分かるように、ローカルアトムテーブルに何からの文字列が既に格納されていることは基本的にないといえるでしょう。ローカルアトムテーブルに格納できる文字列の数は既定で37とされていますが、これを変更するにはInitAtomTableを呼び出します。ローカルアトムテーブルに存在するかを調べます。TEXT("%sは存在します。TEXT("%sは存在しません。lParam);}WM_CREATEではコントロールを作成するだけでなく、AddAtomも呼び出しています。これにより、abcという文字列がローカルアトムテーブルに格納されます。ボタンが押されたらWM_COMMANDが送られ、GetWindowTextで入力された文字列を取得します。この文字列がabcであるならば、FindAtomは文字列の検索に成功することになります。