[Bug 48110] Toad for MySQL Freeware 7.x (.NET 4.5 app) wants TaskService::ConnectedUser property

WineHQ Bugzilla wine-bugs at winehq.org
Sat Jan 4 10:09:26 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=48110

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

the log as requested (although it doesn't show something new):

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Quest Software/Toad for MySQL
Freeware 7.3

$ WINEDEBUG=+seh,+loaddll,+process,+taskschd wine ./toad.exe >>log.txt 2>&1
...
0137:fixme:path:parse_url failed to parse L"Microsoft.Win32.TaskScheduler"
0137:trace:process:NtQueryInformationProcess
(0xffffffff,0x0000000c,0x32b864,0x00000004,(nil))
0137:trace:loaddll:load_native_dll Loaded
L"C:\\windows\\assembly\\NativeImages_v4.0.30319_32\\Microsoft.Wb2e8627a#\\faac5f641827ac265e16ea27998d80dc\\Microsoft.Win32.TaskScheduler.ni.dll"
at 0x1a620000: native
...
0137:trace:loaddll:load_native_dll Loaded L"C:\\windows\\system32\\xmllite.dll"
at 0xfa20000: PE builtin
0137:trace:loaddll:load_native_dll Loaded
L"C:\\windows\\system32\\taskschd.dll" at 0xf990000: PE builtin
0137:trace:taskschd:DllGetClassObject
{0f87369f-a4e5-4cfc-bd3e-73e6154572dd},{00000001-0000-0000-c000-000000000046},0032E798
0137:trace:taskschd:factory_QueryInterface
0F9AD078,{00000001-0000-0000-c000-000000000046},0032E798
0137:trace:taskschd:factory_QueryInterface
0F9AD078,{b196b28f-bab4-101a-b69c-00aa00341d07},0032E9B0
0137:fixme:taskschd:factory_QueryInterface interface
{b196b28f-bab4-101a-b69c-00aa00341d07} is not implemented
0137:trace:taskschd:factory_CreateInstance
00000000,{00000000-0000-0000-c000-000000000046},0032E9C4
0137:trace:taskschd:TaskService_create created 0D7ED790
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{00000000-0000-0000-c000-000000000046},0032E9C4
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{00000000-0000-0000-c000-000000000046},0032E5DC
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4},0032E590
0137:fixme:taskschd:TaskService_QueryInterface interface
{c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{af86e2e0-b12d-4c6a-9c5a-d7aa65101e90},0032E188
0137:fixme:taskschd:TaskService_QueryInterface interface
{af86e2e0-b12d-4c6a-9c5a-d7aa65101e90} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{ecc8691b-c1db-4dc0-855e-65f6c551af49},0032DEF4
0137:fixme:taskschd:TaskService_QueryInterface interface
{ecc8691b-c1db-4dc0-855e-65f6c551af49} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90},0032DEA4
0137:fixme:taskschd:TaskService_QueryInterface interface
{94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{00000003-0000-0000-c000-000000000046},0032DEB0
0137:fixme:taskschd:TaskService_QueryInterface interface
{00000003-0000-0000-c000-000000000046} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{00000144-0000-0000-c000-000000000046},0032E3AC
0137:fixme:taskschd:TaskService_QueryInterface interface
{00000144-0000-0000-c000-000000000046} is not implemented
0137:trace:taskschd:TaskService_QueryInterface
0D7ED790,{2faba4c7-4da9-4013-9697-20cc3fd40f85},0032E95C
0137:trace:taskschd:TaskService_Connect 0D7ED790,0032E9E0 {VT_EMPTY},0032EA10
{VT_EMPTY},0032EA00 {VT_EMPTY},0032E9F0 {VT_EMPTY}
0137:trace:taskschd:start_schedsvc Trying to start L"Schedule" service
0137:trace:taskschd:TaskService_Connect server version 0x10003
0137:trace:taskschd:TaskService_get_TargetServer 0D7ED790,0032EB38
0137:fixme:taskschd:TaskService_get_ConnectedUser 0D7ED790,0032EB38: stub

0137:trace:seh:raise_exception code=e0434352 flags=1 addr=0x1000dab1
ip=1000dab1 tid=0137
0137:trace:seh:raise_exception  info[0]=80004001
0137:trace:seh:raise_exception  info[1]=00000000
0137:trace:seh:raise_exception  info[2]=00000000
0137:trace:seh:raise_exception  info[3]=00000000
0137:trace:seh:raise_exception  info[4]=009e0000
0137:trace:seh:raise_exception  eax=0032e938 ebx=00000005 ecx=0032e92c
edx=00000005 esi=00000005 edi=00000001
0137:trace:seh:raise_exception  ebp=0032e98c esp=0032e938 cs=0023 ds=c8b002b
es=4d43002b fs=0063 gs=006b flags=00000212
0137:trace:seh:call_vectored_handlers calling handler at 0xb81bea code=e0434352
flags=1
0137:trace:seh:call_vectored_handlers handler at 0xb81bea returned 0
...
--- snip ---

I found a 'Microsoft.Win32.TaskScheduler' reference implementation here:

https://github.com/dahall/TaskScheduler ("Provides a .NET wrapper for the
Windows Task Scheduler. It aggregates the multiple versions, provides an editor
and allows for localization. ")

https://github.com/dahall/TaskScheduler/blob/74a56a9c0a4522d6f3928abe5cee02f051119238/TaskService/TaskService.cs#L877

Not sure how much it resembles the MS one though.

--- snip ---
/// <summary>Connects this instance of the <see cref="TaskService"/> class to a
running Task Scheduler.</summary>
private void Connect()
{
    ResetUnsetProperties();

    if (!initializing && !DesignMode)
    {
        if (!string.IsNullOrEmpty(userDomain) &&
!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(userPassword) ||
             string.IsNullOrEmpty(userDomain) && string.IsNullOrEmpty(userName)
&& string.IsNullOrEmpty(userPassword))
        {
            // Clear stuff if already connected
            connecting = true;
            Dispose(true);

            if (LibraryIsV2 && !forceV1)
            {
                v2TaskService = new V2Interop.ITaskService();
                if (!string.IsNullOrEmpty(targetServer))
                {
                    // Check to ensure character only server name. (Suggested
by bigsan)
                    if (targetServer.StartsWith(@"\"))
                        targetServer = targetServer.TrimStart('\\');
                    // Make sure null is provided for local machine to
compensate for a native library oddity (Found by ctrollen)
                    if (targetServer.Equals(Environment.MachineName,
StringComparison.CurrentCultureIgnoreCase))
                        targetServer = null;
                }
                else
                    targetServer = null;
                v2TaskService.Connect(targetServer, userName, userDomain,
userPassword);
                targetServer = v2TaskService.TargetServer;
                userName = v2TaskService.ConnectedUser;
                userDomain = v2TaskService.ConnectedDomain;
                maxVer = GetV2Version();
...
--- snip ---

If the reference implementation is accurate, we need
'TaskService::ConnectedDomain' as well.

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/taskschd/task.c#l3937

--- snip ---
3937 static HRESULT WINAPI TaskService_get_ConnectedDomain(ITaskService *iface,
BSTR *domain)
3938 {
3939     FIXME("%p,%p: stub\n", iface, domain);
3940     return E_NOTIMPL;
3941 }
--- snip ---

$ wine --version
wine-5.0-rc4

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list