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
のメソッドである begin と end を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。
接続ポイント プロキシの作成を自動化する方法の詳細については、「オブジェクトへの接続ポイントの追加」を参照してください。
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();
解説
ポインターを保持するコレクション nMaxSize
IUnknown
設定し、ポインターを NULL に初期化します。
CComUnkArray::end
コレクション内の最後 IUnknown
ポインターの 1 つ後を指すポインターを返します。
IUnknown**
end();
戻り値
IUnknown
インターフェイス ポインターを指すポインター。
解説
CComUnkArray
のメソッドである begin
と end
を使用すると、イベントが発生したときなど、すべての接続ポイントをループ処理することができます。
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 を返します。