On 2024-08-01 4:37 p.m., Valentin Abrutski wrote:
Hello Mark.
Sorry for bothering you again. I got another issue. When I call
IActiveScript method: SetScriptSite(IActiveScriptSite site)
I got invalid cast exception. Mostprobably it means that
IActiveScriptSite can't be properly passed as argument to
SetScriptSite. My assumption that my definition of
IActiveScriptSite is different from one is used in py2in32 library.
I could find usages of IActiveScriptSite interface in the source
code of the library. But I can't find definition of this interface.
I'm not sure what you are asking. IActiveScriptSite is documented at
https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.debugger.interop.iactivescriptsite?view=visualstudiosdk-2019
and IActiveScript at
https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.debugger.interop.iactivescript?view=visualstudiosdk-2019.
The c++ "receiver" of this call for pywin32 is at
https://github.com/mhammond/pywin32/blob/main/com/win32comext/axscript/src/PyGActiveScript.cpp#L5
Mark
Can you advise me where I can find it?
On Thu, Aug 1, 2024 at 4:19 PM Valentin Abrutski <v...@zaptest.com> wrote:
Hi Mark, just to let you know. I found the root cause. I was
trying to get 32bit version of interface and pywin32 export 64bit
version(different GUID and slightly different function signature)
Thank you for your help.
On Wed, Jul 31, 2024 at 5:08 PM Valentin Abrutski <v...@zaptest.com>
wrote:
Thank you Mark. I will try that. Appreciate
ср, 31 июл. 2024 г., 17:01 Mark Hammond
<mhamm...@skippinet.com.au>:
Sorry, I can't explain that - running pyscript.py should
register things and support for IActiveScriptParse is
unconditional. You could try running `pyscript.py --debug`
which might print some debug stuff, or even add print
statements to client.py's QueryInterface function to make
sure it's actually being called. Also, executing
win32comext/axscript/test/testHost.py should try and
exercise the engine.
HTH,
Mark
On 2024-07-31 9:14 a.m., Valentin Abrutski wrote:
Hi Mark. Thank you for the idea. And appreciate your help.
I tried it. And to be sure that I'm doing it right. I've
tried to use this approach to get not only
IActiveScriptParse, but also IActiveScript
Still the same issue. I can get IActiveScript. But when
try to get IActiveScriptParse I get error code:
|0x80004002| (|E_NOINTERFACE|)
I've double checked GUID of IActiveScriptParse which is
used in QuearyInterface and it looks
correct: BB1A2AE2-A4F9-11cf-8F20-00805F2CD064
I'm thinking about is it possible that the way I
registered Python Script Engine is not correct? Is it
possible that there are different way to do that?
Just to remind you, I just run python pyscript.py
On Wed, Jul 31, 2024 at 12:58 AM Mark Hammond
<mhamm...@skippinet.com.au> wrote:
On 2024-07-30 4:29 p.m., Valentin Abrutski wrote:
Hi Mark.
I double checked what I did with my previous
attempt. And still can't get success. Probably you
can give me an idea of what I'm doing wrong.
I am working on an application(.Net) which provides
scripting capabilities via AcriveScript Engine. With
the ability to debug script step by step and etc.
And we provide a standard set of languages VBScript
and JScript. And now we want to provide Python support.
Obviously I need to add a new ActiveScript Engine
for Python. to system
What I did. I installed python and installed the
pywin32 package.
Then I found this script
Python311\Lib\site-packages\win32comext\axscript\client\pyscript.py
and run it :
python pyscript.py
Requesting elevation and retrying...
Registered: Python
After that, I go to my application code and do the
same we already do for Standard JScript or VBScript
engines.
For example, import of COM JScript class is defined
[ComImport,
Guid("F414C260-6AC0-11CF-B6D1-00AA00BBBB58")]
public class JScript
{
}
So I defined import class for Python using GUID from
python class implementation
[ComImport,
Guid("DF630910-1C1D-11d0-AE36-8C0F5E000000")]
public class PythonScript
{
}
Then my expectation is that I can cast it to
IAcriveScript and IActiveScripParse (like I do with
standard languages)
_engine = new PythonScript();
_iap = _engine as IActiveScriptParse;
_ias = _engine as IActiveScript;
But IActiveScriptParse still is null, IActiveScript
- is good.
I suppose that probably I did initialization in
wrong way? or something like that?
My best guess is that the "as" isn't working due to a
lack of a typelib for the engine - but a
QueryInterface(IID_IActiveScriptParse) on the
IActiveScript interface should work.
HTH,
Mark
On Tue, Jul 30, 2024 at 10:54 PM Valentin Abrutski
<v...@zaptest.com> wrote:
Hi Mark
Appreciate for fast response. I will look into
it. Thank you.
On Tue, Jul 30, 2024 at 5:56 PM Mark Hammond
<mhamm...@skippinet.com.au> wrote:
IActiveScriptParse is supported - check out
the com/win32comext/axscript directory.
Cheers,
Mark
On 2024-07-30 10:14 a.m., Valentin Abrutski
wrote:
Hello all,
Hopefully somebody can help me.
Microsoft provides implementations for
Microsoft Scripting Engine - VbScript and
JScript.
I need to add Python Script Engine support.
I see that pywin32 already has a component
for that(COM object). But it exposes only
the IActiveScript interface. For my needs I
also need IActiveScriptParse interface.
please advise me if pywin32 implements it
also and I just missed something? or if you
have an idea what to do to get.. I will
appreciate for your help.
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32