CComUnkArray クラス

このクラスは IUnknown ポインターを格納します。IConnectionPointImpl テンプレート クラスのパラメーターとして使用されるように設計されています。

構文

template<unsigned int nMaxSize>
class CComUnkArray

パラメーター

nMaxSize
静的配列に保持できる IUnknown ポインターの最大数。

メンバー

パブリック コンストラクター

名前 説明
CComUnkArray::CComUnkArray コンストラクターです。

パブリック メソッド

名前 説明
CComUnkArray::Add このメソッドを呼び出すと、配列を指す IUnknown ポインターを追加できます。
CComUnkArray::begin コレクション内の最初の IUnknown ポインターを指すポインターを返します。
CComUnkArray::end コレクション内の最後 IUnknown ポインターの 1 つ後を指すポインターを返します。
CComUnkArray::GetCookie このメソッドを呼び出すと、特定の IUnknown ポインターに関連付けられている Cookie を取得できます。
CComUnkArray::GetUnknown このメソッドを呼び出すと、特定の Cookie に関連付けられている IUnknown ポインターを取得できます。
CComUnkArray::Remove このメソッドを呼び出すと、配列から IUnknown ポインターを削除することができます。

解説

CComUnkArray は、固定された数の IUnknown ポインター (それぞれが接続ポイント上のインターフェイス) を保持します。 CComUnkArray は、IConnectionPointImpl テンプレート クラスに対するパラメーターとして使用できます。 CComUnkArray<1> は、1 つの接続ポイントに対して最適化された CComUnkArray のテンプレート特殊化です。

CComUnkArray のメソッドである beginend を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。

接続ポイント プロキシの作成を自動化する方法の詳細については、「オブジェクトへの接続ポイントの追加」を参照してください。

Note

クラス CComDynamicUnkArray は、接続ポイントを持つコントロールを作成するときに、[クラスの追加] ウィザードによって使用されます。 接続ポイントの数を手動で指定する場合は、参照を CComDynamicUnkArray から CComUnkArray<n> に変更します。ここで、n は必要な接続ポイントの数です。

必要条件

ヘッダー: atlcom.h

CComUnkArray::Add

このメソッドを呼び出すと、配列を指す IUnknown ポインターを追加できます。

DWORD Add(IUnknown* pUnk);

パラメーター

pUnk
このメソッドを呼び出すと、配列を指す IUnknown ポインターを追加できます。

戻り値

新たに追加されたポインターに関連付けられた Cookie、または新しいポインターを格納する十分な大きさが配列にない場合は 0 を返します。

CComUnkArray::begin

IUnknown インターフェイス ポインターのコレクションの先頭を指すポインターを返します。

IUnknown**
    begin();

戻り値

IUnknown インターフェイス ポインターを指すポインター。

解説

コレクションには、IUnknown としてローカルに格納されるインターフェイスを指すポインターが含まれています。 各 IUnknown インターフェイスを実際のインターフェイス型にキャストしてから、それを介して呼び出します。 最初にインターフェイスを照会する必要はありません。

IUnknown インターフェイスを使用する前に、それが NULL でないことを確認する必要があります。

CComUnkArray::CComUnkArray

コンストラクター。

CComUnkArray();

解説

nMaxSizeIUnknown ポインターを保持するようにコレクションを設定し、ポインターを NULL に初期化します。

CComUnkArray::end

コレクション内の最後 IUnknown ポインターの 1 つ後を指すポインターを返します。

IUnknown**
    end();

戻り値

IUnknown インターフェイス ポインターを指すポインター。

解説

CComUnkArray のメソッドである beginend を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。

IUnknown** p = m_vec.begin();
while(p != m_vec.end())
{
   // Do something with *p
   p++;
}

CComUnkArray::GetCookie

このメソッドを呼び出すと、特定の IUnknown ポインターに関連付けられている Cookie を取得できます。

DWORD WINAPI GetCookie(IUnknown** ppFind);

パラメーター

ppFind
関連付けられている Cookie が必要な IUnknown ポインター。

戻り値

IUnknown ポインターに関連付けられている Cookie を返します。一致する IUnknown ポインターが見つからない場合は 0 を返します。

解説

同じ IUnknown ポインターのインスタンスが複数ある場合、この関数からは最初のインスタンスの Cookie が返されます。

CComUnkArray::GetUnknown

このメソッドを呼び出すと、特定の Cookie に関連付けられている IUnknown ポインターを取得できます。

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

パラメーター

dwCookie
関連付けられた IUnknown ポインターが必要となる Cookie。

戻り値

IUnknown ポインターを返します。一致するクッキーが見つからない場合は NULL を返します。

CComUnkArray::Remove

このメソッドを呼び出すと、配列から IUnknown ポインターを削除することができます。

BOOL Remove(DWORD dwCookie);

パラメーター

dwCookie
配列から削除する IUnknown ポインターを参照している Cookie。

戻り値

ポインターが削除された場合は TRUE を返します。それ以外の場合は FALSE を返します。

関連項目

CComDynamicUnkArray クラス
クラスの概要