Hi all
I have this code in a button pressed event:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
IAccessible* accessibleFrame = NULL;
if (S_OK != AccessibleObjectFromWindow((HWND)GetHWND(),OBJID_CLIENT,IID_IAccessible, (void**) & accessibleFrame))
{
return;
}
VARIANT varID;
varID.lVal = CHILDID_SELF;
varID.vt = VT_I4;
BSTR MyBstr = L"Just to init it ";
HRESULT hr = accessibleFrame->get_accName(varID, &MyBstr);
wxMessageBox("Done", "Done", wxYES_NO | wxCANCEL, this);
|
When I debug it, step by step, everything works fine until get_accName instruction line. When this instruction is executed, the execution stream jumps to appbase.cpp ti the followinf method:
1 2 3 4 5 6 7
|
#if wxUSE_EXCEPTIONS
Void wxAppConsoleBase::HandleEvent(wxEvtHandler *handler,
wxEventFunction func,
wxEvent& event) const
{
// by default, simply call the handler
(handler->*func)(event);
|
If I continue to press F7, the execution stream jumps again to get_accName and then again to HandleEvent(). What is happening?
If I press shift+F7 in the get_accName call, the flow jumps to HandleEvent in the same way. Is there any way to step into get_accName?
Can not understand what is going on. the execution stream never reachs wxMessageBox()
I also surrounded get_accName like this:
1 2 3 4 5 6 7 8
|
try
{
HRESULT hr = accessibleFrame->get_accName(varID, &MyBstr);
}
catch(char* strg)
{
wxMessageBox("Hello", "Hello", wxYES_NO | wxCANCEL, this);
}
|
but catch is never called either…
Any help would be very appreciated
I tested this code in MS VC++ and it runs well...
Alex
Env: codeblocks, mingw, win7, WxSmith and DEBUG configuration
This code works fine when I use ms vc++ (using MS compiler), when I use Mingw and Ultima++ and when I use the same codeblocks and mingw with a win32 app
Is it WxWidgets the main problem?