Björn Swift schrieb:
> I've been playing around with comtypes for the last few days and ran
> into some trouble reading COM Properties. The COM in question is
> Microsoft.Hpc.Scheduler.Scheduler and this is the Python code
> executed:
>
from comtypes.client import CreateObject
scheduler = CreateObject("Microsoft.Hpc.Scheduler.Scheduler")
scheduler.Connect("corecluster00")
job = scheduler.CreateJob()
task = job.CreateTask()
task.commandLine = r"mpiexec -n 4 ping -n 15 bjorns-ws"
job.AddTask(task)
scheduler.SubmitJob(job, None, None)
Björn, can you say a few words about what this hpc stuff is? An add-on for
Windows Server 2008?
> Now we want to take a look at the job object and figure out the Job ID.
>
job
>
>
job.id
> 124256112
>
job.id
> 124256080
>
job.id
> 124256048
>
> Strange, an ever changing ID. Trying the _ISchedulerJob__com__get_id function:
>
import ctypes
i = ctypes.c_long()
job._ISchedulerJob__com__get_id(ctypes.byref(i))
i
> c_long(124256016)
>
job._ISchedulerJob__com__get_id(ctypes.byref(i))
i
> c_long(124255984)
>
> Basically the same result.
Both the direct attribute access job.id and job._ISchedulerJob__com__get_id()
use the same mechanism internally, only the calling convention is different
so it is no wonder that they return the same result.
But what happens if I use IDispatch'ers Invoke ?
>
job.Invoke(1610743834, _invkind=2)
> 184
>
> Bingo, the correct job ID !
>
> The same goes for other properties, such as job.State:
>
job.State
> -1164233603
>
job.Invoke(1610743851, _invkind=2)
> 128
>
>
> The dispatch ids are correct in the autogenerated Python classes (as
> per job.GetIDsOfNames output). I tried to chase down what was causing
> the error, but as I'm not familiar with comtypes internals I got a
> bit lost. I attempted to get from accessing job.id to IDispatch's
> Invoke() without luck.
>
from comtypes.gen._C45D10A1_54E8_420B_A052_719D47EC7C16_0_2_0 import
ISchedulerJob
ISchedulerJob.id
ISchedulerJob.id.fget
>
>
> Does job.id perhaps not use the Dispatch interface ?
No, by default comtypes uses the custom interface when it is available.
> As there seems to be an issue with Microsoft.Hpc.Scheduler.dll (beta
> 2) causing my Python debugger to crash on breakpoints, tracing the
> steps from A to B therefore makes up for a fun manual labor
> step-through process ;) Perhaps you can identify the problem or point
> me in the right direction?
Can you please post the IDL of this interface, and also the generated code for
it?
Maybe I'm able to spot something...
--
Thanks,
Thomas
-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
comtypes-users mailing list
comtypes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/comtypes-users