azure active directory – how can i slice a V_BSTR in c++?

Use std::wstring to pull apart the BSTR after copying. one way of doing this is below

ATL::CComVariant var;
hr = pUsr->Get(ATL::CComBSTR("userAccountControl"), &var);
if (SUCCEEDED(hr) && V_VT(&var) == VT_BSTR)
{
    std::wstring wstr = V_BSTR(&var);
    if (wstr.length() >= 3)
        wstr = wstr.substr(wstr.length()-3);

    // convert to integer. 
    int res = std::stoi(wstr);

    // TODO: do something with 'res'
    std::cout << res << '\n'
}

That said, clearly you’re calling this code from some context neither shown, nor really discussed, in your post. But this is one way to do what you want, and has no memory leaks as a bonus.

Read more here: Source link