Giter VIP home page Giter VIP logo

Comments (5)

plnelson avatar plnelson commented on July 19, 2024

What scenario are you trying to support? I tried to clarify the documentation on the page you linked, but I don't know if that will help you without understanding the scenario better.

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on July 19, 2024

@tszirr the dispatcher will take care of finding the next implementation automatically. You just call the same API again. Something like:

class MyExpressionEvaluator : public IDkmLanguageExpressionEvaluator
{
    HRESULT STDMETHODCALLTYPE EvaluateExpression(
        _In_ Evaluation::DkmInspectionContext* pInspectionContext,
        _In_ DkmWorkList* pWorkList,
        _In_ Evaluation::DkmLanguageExpression* pExpression,
        _In_ CallStack::DkmStackWalkFrame* pStackFrame,
        _In_ IDkmCompletionRoutine<Evaluation::DkmEvaluateExpressionAsyncResult>* pCompletionRoutine
        )
    {
        CComPtr<DkmLanguageExpression> pNewExpression;
        TranslateExpression(pStackFrame, pExpression, &pNewExpression); // your code translates the expression into C++

        return pInspectionContext->EvaluateExpression(pWorkList, pNewExpression, pStackFrame, pCompletionRoutine);
    }        
    ....
}

You may find that you need to create a new inspection context since the one provided for you will have the language id set to your language. But I think the C++ EE will just carry on in C++ mode anyway.

from concordextensibilitysamples.

tszirr avatar tszirr commented on July 19, 2024

Thank you, that is exactly the information I needed!

Could you clarify the section in the sense that the "first parameter" bit in the text usually refers to some kind of context or dispatcher object? I was very misled by matching IDkmExample and DkmExample, which led me to think that chaining only works if I explicitly get a pointer to the next implementation in the chain. (The concrete example given by Gregg is very helpful in that regard.) Thanks!

from concordextensibilitysamples.

gregg-miskelly avatar gregg-miskelly commented on July 19, 2024

@tszirr I tweaked the wording a bit. Let me know if that sounds more clear.

from concordextensibilitysamples.

tszirr avatar tszirr commented on July 19, 2024

Great, now it is more than clear. Thanks a lot!

from concordextensibilitysamples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.