HOME > プログラマーズガイド > クライアントインターフェース > ActiveX コンポーネント
> ActiveX コンポーネント・リファレンス
ActiveX コンポーネント・リファレンス
クラス一覧

クラス名 説明
NumberReveiver.TcpReceiver NumberWatcher サーバと TCP/IP インターフェースを使って通信するためのクラスです。
NumberReceiver.MulticastReceiver NumberWatcher サーバからの電話番号を IP マルチキャストインターフェースを使って受信するためのクラスです。IP マルチキャスト通信は着信電話番号データの受信しかできません。ナンバーディスプレイアダプタのメモリ読み出し、書き込みをしたい場合は TcpReceiver クラスの方を使って下さい。
NumberReceiver.NumberData 電話番号データです。
明示的にこのオブジェクトを作ることはありません。TcpReceiver や MulticastReceiver クラス内でこのオブジェクトを作っています。



NumberReceiver.TcpReceiver クラス

スレッディングモデル: Apartment

構成
プロパティ一覧
プロパティ名 説明
Active NumberWatcher サーバへの接続/接続解除
BindAddr ソケットにバインドする IP アドレスまたはホスト名
BindPort ソケットに設定するポート番号
KeepAliveInterval KeepAlive パケット送信間隔(秒)
KeepAliveResTimeout KeepAlive レスポンス受信タイムアウト(秒)
LastError プロパティ設定時、メソッド呼び出し時のエラー状態を表す値
ServerAddr 接続する NumberWatcher サーバの IP アドレスまたはホスト名
ServerPort 接続する NumberWatcher サーバのポート番号
メソッド一覧
メソッド名 説明
Close NumberWatcher サーバとの接続解除
Open NumberWatcher サーバへの接続
ReadMemory ナンバーディスプレイアダプタのメモリ読み出し
ReadMemory2 ナンバーディスプレイアダプタのメモリ読み出し
WriteMemory ナンバーディスプレイアダプタのメモリ書き込み
イベント一覧
メソッド名 説明
OnClose NumberWatcher サーバとの接続解除時
OnError 内部処理エラー発生時
OnPhoneDetect 電話着信時

プロパティ
Active [アクセス] Read and Write
[データ型] IDL: VARIANT_BOOL VB: Boolean
[初期値] False

[解説]

True にすると NumberWatcher サーバに接続(= Openメソッド呼び出し)し、False にすると接続を解除(= Closeメソッド呼び出し)します。エラーの場合は LastError プロパティにエラーコードが設定されます。

BindAddr [アクセス] Read and Write
[データ型] IDL: BSTR VB: String
[初期値] "" (空ストリング)

[解説]

ソケットにバインドする IP アドレスまたはホスト名を設定します。空ストリングにすると自動設定されます。

BindPort [アクセス] Read and Write
[データ型] IDL: short VB: Integer
[初期値] 0

[解説]

ソケットに設定するポート番号を設定します。0 にすると自動設定されます。

KeepAliveInterval [アクセス] Read and Write
[データ型] IDL: long VB: Long
[初期値] 60 (秒)

[解説]

NumberWatcher サーバとの接続を維持させるために、定期的にデータを送信しています。 このプロパティにはその送信間隔を秒数で指定しますが、送信間隔はサーバ側の numwat.ini ファイル[Dispatch.TCP] keepAliveTimeout 設定値以下になるように設定する必要があります。 keppAliveTimeout 設定値以上にしてしまうと keepAliveTimeout 時間経過後にサーバに接続を解除されてしまいます。 (サーバ側の keepAliveTimeout の初期値は 90 秒です。)

定期的に NOP コマンドデータを送信しています。

KeepAliveResTimeout [アクセス] Read and Write
[データ型] IDL: long VB: Long
[初期値] 20 (秒)

[解説]

KeepAliveInterval の間隔で送信している NOP コマンドのレスポンスが返ってくるまでのタイムアウト時間を設定します。これは NumberWatcher サーバが生きているかどうか確認するためです。タイムアウトになるとサーバとの接続を解除します。

LastError [アクセス] Read Only
[データ型] IDL: long VB: Long

[解説]

直前に実行したメソッド、またはプロパティの設定でのエラー状態を表すエラーコードが格納されています。

エラーコード表)
エラーコード値 エラー内容
0 エラーはありません。直前に実行したメソッド、プロパティの設定は正常に行われています。
1 コマンドのパラメータが正しくありません。
2 アダプタインデックス値が不正です。
3 ナンバーディスプレイアダプタがまだオープンしていません。
4 ナンバーディスプレイアダプタからのメモリ読み出し時エラー
5 ナンバーディスプレイアダプタへのメモリ書き込み時エラー
-1 管理者権限がないため実行できません。
-2 未定義コマンドです。
-99 NumberWatcher サーバがシャットダウン動作中です。
100 まだ NumberWatcher サーバに接続していません。
101 NumberWatcher サーバ接続中は設定変更できません。
102 NumberWatcher サーバとの接続が切断されました。
103 BindAddr プロパティ値が正しくありません。
104 ソケットを作成できません。
105 ServerAddr プロパティ値が正しくありません。
106 NumberWatcher サーバに接続できません。
200 NumberWatcher サーバからのレスポンス待ちタイムアウト
201 レスポンスヘッダ部が正しくありません。
202 コマンドに対するレスポンスの不一致です。
203 レスポンスデータ部が正しくありません。
999 内部エラー
ServerAddr [アクセス] Read and Write
[データ型] IDL: BSTR VB: String
[初期値] "127.0.0.1"

[解説]

接続する NumberWatcher サーバの IP アドレスまたはホスト名を設定します。

ServerPort [アクセス] Read and Write
[データ型] IDL: short VB: Integer
[初期値] 9876

[解説]

接続する NumberWatcher サーバのポート番号を設定します。


メソッド
Close
IDL HRESULT _stdcall Close( void );
VB Sub Close()

[解説]

NumberWatcher サーバとの接続を解除します。これは Active=False と同じです。このメソッドまたは Active=False で明示的に接続を解除した場合は OnClose イベントは発生しません。

Open
IDL HRESULT _stdcall Open([out, retval] VARIANT_BOOL * Result );
VB Function Open() As Boolean

[解説]

NumberWatcher サーバに接続します。これは Active=True と同じです。正常にオープンできた場合、または既にオープンしている場合は True を返します。オープンできない場合は False を返し、LastError プロパティにエラーコードが設定されます。

ReadMemory
IDL HRESULT _stdcall ReadMemory([in] short AdaptorIndex, [in] short Addr, [out] INumberData ** NumberData, [out, retval] VARIANT_BOOL * Result );
VB Function ReadMemory(AdaptorIndex As Integer, Addr As Integer, NumberData As NumberData) As Boolean

[解説]

ナンバーディスプレイアダプタのメモリを読み出します。AdaptorIndex には対象のナンバーディスプレイアダプタのインデックス(1台目 = 0, 2台目=1,...)を指定し、Addr には読み出すメモリアドレス(1 ~ 30)を指定します。

正常に読み出せた場合は True を返し、さらに NumberData に読み出した電話番号データがセットされます。エラーの場合は False を返し、LastError プロパティにエラーコードが設定されます。

なお、VBScript からはこのメソッドは呼び出せないので、代わりに ReadMemory2 メソッドを使って下さい。

ReadMemory2
IDL HRESULT _stdcall ReadMemory2([in] short AdaptorIndex, [in] short Addr, [out, retval] INumberData ** Result );
VB Function ReadMemory2(AdaptorIndex As Integer, Addr As Integer) As NumberData

[解説]

ナンバーディスプレイアダプタのメモリを読み出します。機能自体は ReadMemory メソッドと同じですが呼び出し方が異なります。AdaptorIndex には対象のナンバーディスプレイアダプタのインデックス(1台目 = 0, 2台目=1,...)を指定し、Addr には読み出すメモリアドレス(1 ~ 30)を指定します。

正常に読み出せた場合は NumberReceiver.NumberData オブジェクト(正確には INumberData インターフェースポインタ)を返します。エラーの場合は LastError プロパティにエラーコードが設定され、呼び出し側に COM (Component Object Model) エラーを返します。そのため呼び出し側でエラー(例外)ハンドリングする必要があります。

WriteMemory
IDL HRESULT _stdcall WriteMemory([in] short AdaptorIndex, [in] BSTR Number, [out, retval] VARIANT_BOOL * Result );
VB Function WriteMemory(AdaptorIndex As Integer, Number As String) As Boolean

[解説]

ナンバーディスプレイアダプタのメモリに電話番号を書き込みます。AdaptorIndex には対象のナンバーディスプレイアダプタのインデックス(1台目 = 0, 2台目=1,...)を指定し、Number には書き込む電話番号(数字のみ)を指定します。

正常に書き込めた場合は True を返します。エラーの場合は False を返し、LastError プロパティにエラーコードが設定されます。


イベント
OnClose
IDL HRESULT OnClose( void );
VB Event OnClose()

[解説]

サーバとの接続が解除された場合にこのイベントが発生します。Close メソッドまたは Active=False で明示的に接続を解除した場合はこのイベントは発生しません。

OnError
IDL HRESULT OnError([in] BSTR Msg );
VB Event OnError(Msg As String)

[解説]

内部でエラーが起きた場合に発生するイベントです。Msg にはエラーメッセージが入っています。

OnPhoneDetect
IDL HRESULT OnPhoneDetect([in] INumberData * NumberData );
VB Event OnPhoneDetect(NumberData As NumberData)

[解説]

電話を着信すると、このイベントが発生します。NumberData には電話番号データが入っています。


NumberReceiver.MulticastReceiver クラス

スレッディングモデル: Apartment

構成
プロパティ一覧
プロパティ名 説明
Active マルチキャスト通信の開始/終了
BindAddr ソケットにバインドする IP アドレスまたはホスト名
BindPort ソケットに設定するポート番号
LastError プロパティ設定時、メソッド呼び出し時のエラー状態を表す値
MCastAddr マルチキャストアドレス
メソッド一覧
メソッド名 説明
Close マルチキャスト通信の終了
Open マルチキャスト通信の開始
イベント一覧
メソッド名 説明
OnError 受信エラー時
OnPhoneDetect 電話着信時

プロパティ
Active [アクセス] Read and Write
[データ型] IDL: VARIANT_BOOL VB: Boolean
[初期値] False

[解説]

True にすると NumberWatcher サーバからの送信パケットを受信できるように通信状態を設定します。(= Openメソッド呼び出し) False にすると通信状態を解除します。(= Closeメソッド呼び出し)

BindAddr [アクセス] Read and Write
[データ型] IDL: BSTR VB: String
[初期値] "" (空ストリング)

[解説]

ソケットにバインドする IP アドレスまたはホスト名を設定します。空ストリングにすると自動設定されます。

BindPort [アクセス] Read and Write
[データ型] IDL: short VB: Integer
[初期値] 9876

[解説]

マルチキャスト送信された電話番号パケットを受信するポート番号を設定します。NumberWatcher サーバの numwat.ini ファイル[Dispatch.Multicast] mcastPort の設定値に合わせるようにして下さい。そうしないと受信できません。

LastError [アクセス] Read Only
[データ型] IDL: long VB: Long

[解説]

直前に実行したメソッド、またはプロパティの設定でのエラー状態を表すエラーコードが格納されています。

エラーコード表)
エラーコード値 エラー内容
0 エラーはありません。直前に実行したメソッド、プロパティの設定は正常に行われています。
101 通信有効状態のときは設定変更できません。
103 BindAddr プロパティ値が正しくありません。
104 ソケットを作成できません。
999 内部エラー
MCastAddr [アクセス] Read and Write
[データ型] IDL: BSTR VB: String
[初期値] "226.0.0.1"

[解説]

マルチキャスト送信された電話番号パケット受信する、マルチキャストアドレスを設定します。NumberWatcher サーバの numwat.ini ファイル[Dispatch.Multicast] mcastAddr の設定値に合わせるようにして下さい。そうしないと受信できません。

マルチキャストアドレスの範囲は 224.0.0.0 ~ 239.255.255.255 です。(一部使えないアドレスがあります。)詳しくは、RFC2365, RFC1112, RFC2236 や関連サイト等を参照して下さい。


メソッド
Close
IDL HRESULT _stdcall Close( void );
VB Sub Close()

[解説]

マルチキャスト送信パケットの受信状態を解除します。これは Active=False と同じです。

Open
IDL HRESULT _stdcall Open([out, retval] VARIANT_BOOL * Result );
VB Function Open() As Boolean

[解説]

NumberWatcher サーバからのマルチキャスト送信パケットを受信できる状態に設定します。これは Active=True と同じです。正常にオープンできた場合、または既にオープンしている場合は True を返します。オープンできない場合は False を返し、LastError プロパティにエラーコードが設定されます。


イベント
OnError
IDL HRESULT OnError([in] BSTR Msg );
VB Event OnError(Msg As String)

[解説]

内部でエラーが起きた場合に発生するイベントです。Msg にはエラーメッセージが入っています。

OnPhoneDetect
IDL HRESULT OnPhoneDetect([in] INumberData * NumberData, [in] BSTR FromAddr, [in] short FromPort );
VB Event OnPhoneDetect(NumberData As NumberData, FromAddr As String, FromPort As Integer)

[解説]

電話を着信すると、このイベントが発生します。NumberData には電話番号データが入っています。FromAddr, FromPort には電話番号パケットの送信元(NumberWatcher サーバ)の IP アドレスとポート番号が入っています。


NumberReceiver.NumberData クラス

スレッディングモデル: Apartment

構成
プロパティ一覧
プロパティ名 説明
AdaptorIndex アダプタインデックス
Year 電話着信時の日時(年)
Month 電話着信時の日時(月)
Day 電話着信時の日時(日)
DayOfWeek 電話着信時の日時(曜日)
Hour 電話着信時の日時(時)
Minute 電話着信時の日時(分)
NumType 電話番号の種別
Number 電話番号
プロパティ
AdaptorIndex [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信元のナンバーディスプレイアダプタのインデックスです。例えばナンバーディスプレイアダプタを 2 台使っている場合は 1 台目が 0 で、2 台目が 1 となります。

Year [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「年」(西暦)の部分です。この値はナンバーディスプレイアダプタには存在しないため、MonthDay の内容および NumberWatcher サーバマシンの日付を元に自動計算して割り出しています。 そのため正確な値にならない場合もあります。

電話番号が格納されていないメモリを読み出した場合は -1 になります。

Month [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「月」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 1 = 1月 ~ 12 = 12月 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

Day [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「日」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 1 = 1日~ 31 = 31日 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

DayOfWeek [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「曜日」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 0 = 日曜日~ 6 = 土曜日 ですが、電話番号が格納されていないメモリを読み出した場合は 9 になります。

Hour [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「時」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は0 = 0時 ~ 59 = 59時 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

Minute [アクセス] Read Only
[データ型] IDL: short VB: Integer

[解説]

電話着信した日時の「分」の部分です。これはナンバーディスプレイアダプタから取得した値です。 値の範囲は 0 = 0分 ~ 59 = 59分 ですが、電話番号が格納されていないメモリを読み出した場合は 99 になります。

NumType [アクセス] Read Only
[データ型] IDL: NumberType 列挙型 VB: NumberType

[解説]

電話着信した電話番号の種別です。値の意味は以下の通りです。

  0 ・・・ 有効な電話番号
  1 ・・・ 非通知
  2 ・・・ 表示圏外
  3 ・・・ 公衆電話
  4 ・・・ 電話番号なし(メモリ履歴がないアドレス読み出し時)
  5 ・・・ エラー
Number [アクセス] Read Only
[データ型] IDL: BSTR VB: String

[解説]

電話着信した電話番号です。電話番号にはハイフン文字("-")は含まれません。NumType の値が 0 のときだけ有効な電話番号が入っています。




Visual Basic 6 で使う VCL コンポーネント