IDirectPlay8Address インターフェイス
IDirectPlay8Address インターフェイス
IDirectPlay8Address インターフェイスは、Microsoft® DirectPlay® アドレスの作成と操作に使う汎用的なアドレス設定メソッドを備えている。このインターフェイスは、CLSID_DirectPlay8Address コンポーネント オブジェクト モデル (COM) オブジェクトを通じて利用できるインターフェイスの 1 つである。このインターフェイスをサポートするオブジェクトを作成するには、CLSID CLSID_DirectPlay8Address の CoCreateInstanceEx メソッドを使い、IID_IDirectPlay8Address インターフェイスを指定する。
IDirectPlay8Address メソッド
AddComponent | アドレスにコンポーネントを追加する。コンポーネントがアドレスの一部である場合、この呼び出しにより新しい値に置き換わる。 この呼び出しを行うと、値はネイティブなフォーマットで指定される。したがって、lpvData パラメータは、ネイティブ フォーマットでデータを保持する変数に再設定されたポインタにする必要がある。たとえば、コンポーネントがグローバル一意識別子 (GUID) である場合、lpvData パラメータには GUID に再設定されたポインタを指定する必要がある。 このメソッドは、定義済みコンポーネント タイプが正しいフォーマットであるかどうかを確認する。 |
BuildFromDPADDRESS | 現在のオブジェクトの内部アドレスに、指定された DirectPlay 4 アドレスに相当する DirectPlay 8 のアドレスを設定する。このメソッドの目的は、ロビー開発者が古いロビー コードを使って新しい Microsoft DirectPlay インターフェイスでゲームを起動できるようにすることにある。 このメソッドは、指定されたアドレスのアドレス コンポーネントを列挙し、対応する要素を DirectPlay 8 アドレスに追加する。 |
BuildFromURLA | オブジェクトを DirectPlay URL 文字列に指定されているオブジェクトに等しく設定する。オブジェクトの内容は消去される。 |
BuildFromURLW | オブジェクトを、指定されている DirectPlay URL 文字列に等しく設定する。オブジェクトの内容は消去される。 |
Clear | アドレス オブジェクトを空のアドレスにリセットする。 |
Duplicate | このオブジェクトのアドレスを複製する DirectPlay Address オブジェクトを作成する。 |
GetComponentByIndex | 指定されたインデックスのコンポーネントに関する情報を取得する。コンポーネントの値はネイティブなフォーマットで取得される。コンポーネント キーが見つからない場合、メソッドは DPNERR_DOESNOTEXIST を返す。 コンポーネントの値はネイティブなフォーマットで取得される。したがって、コンポーネントの値が DWORD である場合、この呼び出しにより DWORD が取得される。つまり、バッファ サイズは 4 であり、pvBuffer は PDWORD に再設定される。 |
GetComponentByName | 指定されたキーのコンポーネントに関する情報を取得する。コンポーネントの値はネイティブなフォーマットで取得される。コンポーネント キーが見つからない場合、DPNERR_DOESNOTEXIST が返される。 コンポーネントの値はネイティブなフォーマットで取得される。したがって、コンポーネントの値が DWORD である場合、この呼び出しにより DWORD が取得される。つまり、バッファ サイズは 4 であり、pvBuffer は PDWORD に再設定される。 |
GetDevice | アドレス オブジェクトのローカル デバイス GUID を取得する。デバイスが指定されていない場合、このメソッドは DPNERR_DOESNOTEXIST を返す。 |
GetNumComponents | アドレス内のコンポーネント数を取得する。 |
GetSP | アドレス オブジェクトのサービス プロバイダ GUID を取得する。サービス プロバイダが指定されていない場合、このメソッドは DPNERR_DOESNOTEXIST を返す。 |
GetURLA | このオブジェクトが表す DirectPlay アドレスの URL 文字列を取得する (ANSI バージョン)。 |
GetURLW | このオブジェクトが表す DirectPlay アドレスの URL 文字列を取得する。 |
GetUserData | アドレス オブジェクトのユーザー データを取得する。このアドレス オブジェクトにユーザー データが存在しない場合、このメソッドは DPNERR_DOESNOTEXIST を返す。 |
IsEqual | 2 つのアドレスが等しいか比較する。 |
SetDevice | アドレス オブジェクトのローカル デバイス GUID を設定する。このアドレスにローカル デバイスが指定されている場合は、この呼び出しで上書きされる。 |
SetEqual | 呼び出されるオブジェクトの内容をメソッドに渡されるアドレス オブジェクトの内容に一致するように設定する。 |
SetSP | アドレス オブジェクトのサービス プロバイダ GUID を設定する。このアドレスにサービス プロバイダが指定されている場合は、この呼び出しで上書きされる。 |
SetUserData | アドレス オブジェクトにユーザー データを設定する。このアドレスにユーザー データが存在する場合は、この呼び出しで上書きされる。 |
注意
メッセージを配信するには、マルチプレーヤ ゲームの各参加者が一意のアドレスを持っている必要がある。このアドレスは、アプリケーションを実行しているコンピュータ (デバイス アドレス) か、アプリケーションが通信する必要のあるコンピュータ (ホスト アドレス) を表す。
DirectPlay はアドレスを URL として表す。URL は、DirectPlay API との受け渡しができるように、アドレス オブジェクトにカプセル化される。一般に、アドレス URL は、次の順序に従う 3 つの基本要素で構成される文字列である。スキーム、スキーム セパレータ、およびデータ文字列。
すべての DirectPlay アドレスは "x-directplay" をスキームとして使い、":/" をスキーム セパレータとして使う。セパレータとして ":/" を使うと、後に続くデータが不透明であることを示す。つまり、そのデータ文字列はどのインターネット標準にも適合していないので、変更せずにそのまま受け取り側アプリケーションに渡す必要がある。したがって、DirectPlay のすべての URL は次の形式になる。
x-directplay:/[data string]
アドレス オブジェクトを処理するには、2 つの基本的な方法がある。
- 通常の文字列操作方法を使い、データ文字列を直接処理する。
- データ文字列の個別の要素を取得または修正するには、IDirectPlay8Address が公開するメソッドを使う。
DirectPlay アドレスの詳細については、「DirectPlay アドレシング」を参照すること。
インターフェイスの情報
継承元 | IUnknown |
ヘッダー | dpaddr.h |
最低限のオペレーティング システム | Windows 98、Pocket PC 2002 |