This flag allows to suppress the error message in case there are no currently
running instances of this object and can be useful if the caller doesn't know
in advance whether it's available or not.
Closes #12734.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66967
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxMSW-specific wxAutomationObject::GetInstance() method now creates a new
instance if needed instead of failing if the application providing the
requested ProgID is not running. Pass wxAutomationInstance_UseExistingOnly
- flag to it to revert to the old behaviour.
+ flag to it to revert to the old behaviour. It is also possible to use the
+ wxAutomationInstance_SilentIfNone flag to prevent the error message if no
+ currently running instances of this object are available.
Changes in behaviour which may result in compilation errors
wxAutomationInstance_UseExistingOnly = 0,
// Create a new instance if there are no existing ones.
- wxAutomationInstance_CreateIfNeeded = 1
+ wxAutomationInstance_CreateIfNeeded = 1,
+
+ // Do not log errors if we failed to get the existing instance because none
+ // is available.
+ wxAutomationInstance_SilentIfNone = 2
};
/*
instance failed, we should call wxAutomationObject::CreateInstance() to
create a new one.
*/
- wxAutomationInstance_CreateIfNeeded = 1
+ wxAutomationInstance_CreateIfNeeded = 1,
+
+ /**
+ Do not show an error message if no existing instance is currently
+ running.
+
+ All other errors will still be reported as usual.
+ */
+ wxAutomationInstance_SilentIfNone = 2
};
If attaching to an existing object failed and @a flags includes
wxAutomationInstance_CreateIfNeeded flag, a new object will be created.
+ Otherwise this function will normally log an error message which may be
+ undesirable if the object may or may not exist. The
+ wxAutomationInstance_SilentIfNone flag can be used to prevent the error
+ from being logged in this case.
Returns @true if a pointer was successfully retrieved, @false
otherwise.
}
else
{
- wxLogSysError(hr,
- _("Cannot get an active instance of \"%s\""), progId);
+ // Log an error except if we're supposed to fail silently when the
+ // error is that no current instance exists.
+ if ( hr != MK_E_UNAVAILABLE ||
+ !(flags & wxAutomationInstance_SilentIfNone) )
+ {
+ wxLogSysError(hr,
+ _("Cannot get an active instance of \"%s\""),
+ progId);
+ }
}
return false;