Неспособность использовать get_accName для управления MFC - PullRequest
0 голосов
/ 31 января 2019

У меня есть управление MFC.Я хочу, чтобы элементы в нем имели разные имена в таких инструментах, как AccExplorer.Я вызываю EnableActiveAccessibility в конструкторе, и я пытался перегрузить get_accName следующим образом:

HRESULT CGPP2XDCAMPathAndDesc::get_accName(VARIANT varChild, BSTR * pszName)
{
HRESULT res = S_OK;
if (varChild.vt != VT_I4)
{
    *pszName = NULL;
    return E_INVALIDARG;
}
switch (varChild.lVal) 
{
case CHILDID_SELF:
    *pszName = SysAllocString(_T("P2XDCAM control"));
    break;
case CHILDID_DRIVE_LIST:
    *pszName = SysAllocString(_T("Path list"));
    break;
...
default:
    res = E_UNEXPECTED;
    break;
};

return res;
}

Когда я пытаюсь получить доступные данные элемента управления в полном объеме, я получаю это: AccExplorer where the root control is P2XDCAM, all its child controls are marked Нажатие любого из «неинициализированных» элементов управления на AccExplorer не выбирает сам элемент управления.

Принимая во внимание, что если я нажимаю на отдельные элементы управления внутри элемента управления, я получаю это: enter image description here

Есть идеи, как заставить эту работу работать?

...