CComUnkArray 類別
此類別會IUnknown
儲存指標,並設計為做為 IConnectionPointImpl 範本類別的參數。
語法
template<unsigned int nMaxSize>
class CComUnkArray
參數
nMaxSize
可以保留在靜態陣列中的指標數目 IUnknown
上限。
成員
公用建構函式
名稱 | 描述 |
---|---|
CComUnkArray::CComUnkArray | 建構函式。 |
公用方法
名稱 | 描述 |
---|---|
CComUnkArray::Add | 呼叫這個方法以將指標新增 IUnknown 至陣列。 |
CComUnkArray::begin | 傳回集合中第一個 IUnknown 指標的指標。 |
CComUnkArray::end | 傳回集合中最後 IUnknown 一個指標之後的指標。 |
CComUnkArray::GetCookie | 呼叫這個方法以取得與指定 IUnknown 指標相關聯的Cookie。 |
CComUnkArray::GetUnknown | 呼叫這個方法以取得 IUnknown 與指定 Cookie 相關聯的指標。 |
CComUnkArray::Remove | 呼叫這個方法以從陣列中移除 IUnknown 指標。 |
備註
CComUnkArray
會保存固定數目的 IUnknown
指標,每個指標都是連接點上的介面。 CComUnkArray
可作為 IConnectionPointImpl 樣本類別的參數。 CComUnkArray<1>
是已針對一個連接點優化的範本特製化 CComUnkArray
。
方法CComUnkArray
的開始和結束可用來迴圈所有連接點(例如,引發事件時)。
如需自動建立連接點 Proxy 的詳細資訊,請參閱 將連接點新增至物件 。
注意
注意 建立具有連接點的控件時,[新增類別精靈] 會使用 CComDynamicUnkArray 類別。 如果您想要手動指定連接點數目,請將參考從 CComDynamicUnkArray
變更為 CComUnkArray<
n ,其中 n >
是所需的連接點數目。
需求
標頭: atlcom.h
CComUnkArray::Add
呼叫這個方法以將指標新增 IUnknown
至陣列。
DWORD Add(IUnknown* pUnk);
參數
朋克
呼叫這個方法以將指標新增 IUnknown
至陣列。
傳回值
如果陣列不夠大而無法包含新的指標,則傳回與新加入指標相關聯的Cookie,或0。
CComUnkArray::begin
傳回介面指標集合開頭的 IUnknown
指標。
IUnknown**
begin();
傳回值
介面指標的 IUnknown
指標。
備註
集合包含儲存在本機做為 IUnknown
之介面的指標。 您會將每個 IUnknown
介面轉換成實際介面類型,然後透過它呼叫。 您不需要先查詢介面。
使用 IUnknown
介面之前,您應該先檢查它是否為 NULL。
CComUnkArray::CComUnkArray
建構函式。
CComUnkArray();
備註
設定集合來保存nMaxSize
IUnknown
指標,並將指標初始化為 NULL。
CComUnkArray::end
傳回集合中最後 IUnknown
一個指標之後的指標。
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
IUnknown
需要相關聯 Cookie 的指標。
傳回值
傳回與 IUnknown
指標相關聯的 Cookie,如果找不到相符 IUnknown
的指標,則傳回 0。
備註
如果相同 IUnknown
指標有多個實例,此函式會傳回第一個的Cookie。
CComUnkArray::GetUnknown
呼叫這個方法以取得 IUnknown
與指定 Cookie 相關聯的指標。
IUnknown* WINAPI GetUnknown(DWORD dwCookie);
參數
dwCookie
需要相關聯 IUnknown
指標的Cookie。
傳回值
IUnknown
傳回指標,如果沒有找到相符的Cookie,則傳回NULL。
CComUnkArray::Remove
呼叫這個方法以從陣列中移除 IUnknown
指標。
BOOL Remove(DWORD dwCookie);
參數
dwCookie
參考 IUnknown
要從陣列中移除之指標的Cookie。
傳回值
如果移除指標,則傳回 TRUE,否則傳回 FALSE。