本文整理汇总了C++中CElement::QueryInterface方法的典型用法代码示例。如果您正苦于以下问题:C++ CElement::QueryInterface方法的具体用法?C++ CElement::QueryInterface怎么用?C++ CElement::QueryInterface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CElement
的用法示例。
在下文中一共展示了CElement::QueryInterface方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetDisp
//+------------------------------------------------------------------------
//
// Member: GetDisp
//
// Synopsis: Get a dispatch ptr on an element from the cache.
// Return the nth element that mathces the name
//
//-------------------------------------------------------------------------
HRESULT CCollectionCache::GetDisp(
long lIndex,
LPCTSTR Name,
long lNthElement,
IDispatch** ppdisp,
BOOL fCaseSensitive)
{
long lSize,l;
HRESULT hr = DISP_E_MEMBERNOTFOUND;
CCollectionCacheItem* pItem;
CElement* pElem;
Assert((lIndex>=0) && (lIndex<_aryItems.Size()));
Assert(ppdisp);
pItem = _aryItems[lIndex]._pCacheItem;
*ppdisp = NULL;
// if lIndexElement is too large, just pretend we
// didn't find it rather then erroring out
if(lNthElement < 0)
{
hr = E_INVALIDARG;
goto Cleanup;
}
lSize = pItem->Length();
if(lNthElement >= lSize)
{
goto Cleanup;
}
for(l=0; l<lSize; ++l)
{
pElem = pItem->GetAt(l);
Assert(pElem);
if(CompareName(pElem, Name, FALSE, fCaseSensitive) && !lNthElement--)
{
RRETURN(pElem->QueryInterface(IID_IDispatch, (void**)ppdisp));
}
}
Cleanup:
RRETURN(hr);
}