当前位置: 首页>>代码示例>>C++>>正文


C++ CElement::QueryInterface方法代码示例

本文整理汇总了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);
}
开发者ID:hufuman,项目名称:xindows,代码行数:55,代码来源:Collect.cpp


注:本文中的CElement::QueryInterface方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。