From 16e3c61e907e473034188dd4bd000b09935077ab Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 6 Jan 2025 22:58:48 -0500 Subject: [PATCH] Remove ActiveX Scripting for Internet Explorer --- AutoDuck/pywin32.mak | 1 - com/win32com/HTML/docindex.html | 4 +- com/win32comext/axscript/client/framework.py | 43 +---- com/win32comext/axscript/client/pyscript.py | 5 +- .../axscript/client/pyscript_rexec.py | 54 ------ .../axscript/demos/client/ie/CHARTPY.HTM | 180 ------------------ .../axscript/demos/client/ie/FOO.HTM | 46 ----- .../axscript/demos/client/ie/MarqueeText1.htm | 24 --- .../axscript/demos/client/ie/calc.htm | 115 ----------- .../axscript/demos/client/ie/dbgtest.htm | 16 -- .../axscript/demos/client/ie/demo.htm | 25 --- .../axscript/demos/client/ie/demo_check.htm | 39 ---- .../axscript/demos/client/ie/demo_intro.htm | 37 ---- .../axscript/demos/client/ie/demo_menu.htm | 14 -- .../axscript/demos/client/ie/docwrite.htm | 25 --- .../axscript/demos/client/ie/foo2.htm | 105 ---------- .../axscript/demos/client/ie/form.htm | 25 --- .../axscript/demos/client/ie/marqueeDemo.htm | 59 ------ .../axscript/demos/client/ie/mousetrack.htm | 82 -------- .../demos/client/ie/pycom_blowing.gif | Bin 20926 -> 0 bytes setup.py | 1 - 21 files changed, 4 insertions(+), 896 deletions(-) delete mode 100644 com/win32comext/axscript/client/pyscript_rexec.py delete mode 100644 com/win32comext/axscript/demos/client/ie/CHARTPY.HTM delete mode 100644 com/win32comext/axscript/demos/client/ie/FOO.HTM delete mode 100644 com/win32comext/axscript/demos/client/ie/MarqueeText1.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/calc.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/dbgtest.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/demo.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/demo_check.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/demo_intro.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/demo_menu.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/docwrite.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/foo2.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/form.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/marqueeDemo.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/mousetrack.htm delete mode 100644 com/win32comext/axscript/demos/client/ie/pycom_blowing.gif diff --git a/AutoDuck/pywin32.mak b/AutoDuck/pywin32.mak index b6dd33464a..e0e6451de3 100644 --- a/AutoDuck/pywin32.mak +++ b/AutoDuck/pywin32.mak @@ -27,7 +27,6 @@ HTML_FILES = $(WIN32_HELP_DIR)\*.html \ $(WIN32COM_DIR)/HTML/*.html \ $(WIN32COM_DIR)/HTML/image/* \ $(WIN32COM_HELP_DIR)/*.htm* \ - $(WIN32COMEXT_DIR)/axscript/demos/client/ie/* \ $(ISAPI_DIR)/doc/*.html \ $(PYTHONWIN_DIR)/readme.html $(PYTHONWIN_DIR)/doc/* $(PYTHONWIN_DIR)/doc/debugger/* \ ../CHANGES.txt \ diff --git a/com/win32com/HTML/docindex.html b/com/win32com/HTML/docindex.html index fff74de826..4a46325f86 100644 --- a/com/win32com/HTML/docindex.html +++ b/com/win32com/HTML/docindex.html @@ -16,7 +16,5 @@

PythonCOM Documentation Index

An advanced VARIANT object which can give more control over parameter types

A brief description of the win32com package structure

Python COM Implementation documentation

-

Misc stuff I don’t know where to put anywhere else

-

ActiveX Scripting

-

ActiveX Scripting Demos

+

Misc stuff I don't know where to put anywhere else

diff --git a/com/win32comext/axscript/client/framework.py b/com/win32comext/axscript/client/framework.py index c4a04329f8..af1a8ab2bc 100644 --- a/com/win32comext/axscript/client/framework.py +++ b/com/win32comext/axscript/client/framework.py @@ -510,16 +510,6 @@ def FindBuildSubItemEvents(self): result = self.dispatch.Invoke( dispid, 0x0, pythoncom.DISPATCH_PROPERTYGET, 1 ) - # IE has an interesting problem - there are lots of synonyms for the same object. Eg - # in a simple form, "window.top", "window.window", "window.parent", "window.self" - # all refer to the same object. Our event implementation code does not differentiate - # eg, "window_onload" will fire for *all* objects named "window". Thus, - # "window" and "window.window" will fire the same event handler :( - # One option would be to check if the sub-object is indeed the - # parent object - however, this would stop "top_onload" from firing, - # as no event handler for "top" would work. - # I think we simply need to connect to a *single* event handler. - # As use in IE is deprecated, I am not solving this now. if isinstance( result, pythoncom.TypeIIDs[pythoncom.IID_IDispatch] ): @@ -527,18 +517,6 @@ def FindBuildSubItemEvents(self): subObj = self.GetCreateSubItem( self, name, result, axscript.SCRIPTITEM_ISVISIBLE ) - # print( - # "subobj", - # name, - # "flags are", - # subObj.flags, - # "mydisp=", - # self.dispatch, - # "result disp=", - # result, - # "compare=", - # self.dispatch == result, - # ) subObj.BuildEvents() subObj.Register() except pythoncom.com_error: @@ -727,15 +705,6 @@ def ParseProcedureText( startingLineNumber, flags, ) - # NOTE - this is never called, as we have disabled this interface. - # Problem is, once enabled all even code comes via here, rather than AddScriptlet. - # However, the "procName" is always an empty string - ie, itemName is the object whose event we are handling, - # but no idea what the specific event is!? - # Problem is disabling this block is that AddScriptlet is _not_ passed - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Chart Type
Simple Pie Simple Column
Pie with Wedge Out Stacked Column
Simple Point Full Column
Stacked Point Simple Bar
Full Point Stacked Bar
Simple Line Full Bar
Stacked Line HLC Stock
Full Line HLC Stock WSJ
Simple Area OHLC Stock
Stack Area OHLC Stock WSJ
Full Area
- - - - - - - - - - - - - -
Gridlines
Horizontal
Vertical
Background
Opaque
Transparent
- -
-
- - - -
-

- -
-Notes
-The chart's properties on this page are changed by selecting the various radio buttons and check boxes. The OnClick event of these intrinsic controls calls VBScript procedures that change the chart properties.
-

-The About Chart Control command button calls the chart's AboutBox method.
-

-To view the source code for this page, select Source from the View menu.
-

-If you have any questions or comments about this example, please send them to billr@smart.net. We would appreciate feedback and would like to hear about other developers' experiences with these new tools.
- - -


- - - - - -
- -© 1996 Rollins & Associates, Inc.
-Page last updated 08/28/96
-Please send comments to billr@smart.net
-
-
- - diff --git a/com/win32comext/axscript/demos/client/ie/FOO.HTM b/com/win32comext/axscript/demos/client/ie/FOO.HTM deleted file mode 100644 index 5565025424..0000000000 --- a/com/win32comext/axscript/demos/client/ie/FOO.HTM +++ /dev/null @@ -1,46 +0,0 @@ - - -Let's try this out: - -
- - - - - - -
-And here is a second form -

-

- -

- - - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/MarqueeText1.htm b/com/win32comext/axscript/demos/client/ie/MarqueeText1.htm deleted file mode 100644 index 8a01afafff..0000000000 --- a/com/win32comext/axscript/demos/client/ie/MarqueeText1.htm +++ /dev/null @@ -1,24 +0,0 @@ - - - - Internet Workshop - - - - -

-
-

Python AX Script Engine -
Demo using the Marquee Control -
Mark Hammond. - -

This is really quite a boring demo, as the Marquee control does everything. However, there is Python code behind the buttons that change the speed. This code is all of 2 lines per button!!! - -

For more information on Python as an ActiveX scripting language, see - -

Python -
http://www.python.org - -
- - diff --git a/com/win32comext/axscript/demos/client/ie/calc.htm b/com/win32comext/axscript/demos/client/ie/calc.htm deleted file mode 100644 index b9bfe63f31..0000000000 --- a/com/win32comext/axscript/demos/client/ie/calc.htm +++ /dev/null @@ -1,115 +0,0 @@ - -Python Script sample: Calculator - - - - -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Calculator

- -
diff --git a/com/win32comext/axscript/demos/client/ie/dbgtest.htm b/com/win32comext/axscript/demos/client/ie/dbgtest.htm deleted file mode 100644 index a36d83ceee..0000000000 --- a/com/win32comext/axscript/demos/client/ie/dbgtest.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/demo.htm b/com/win32comext/axscript/demos/client/ie/demo.htm deleted file mode 100644 index a1f72813cf..0000000000 --- a/com/win32comext/axscript/demos/client/ie/demo.htm +++ /dev/null @@ -1,25 +0,0 @@ - - -Python AXScript Demos - - - - - - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/demo_check.htm b/com/win32comext/axscript/demos/client/ie/demo_check.htm deleted file mode 100644 index ac74cf5647..0000000000 --- a/com/win32comext/axscript/demos/client/ie/demo_check.htm +++ /dev/null @@ -1,39 +0,0 @@ - -

Engine Registration

- - - -

The Python ActiveX Scripting Engine is not currently registered.

- -

Due to a privacy -concern discovered in the engine, the use of Python inside IE has been disabled.

- -Before any of the supplied demos will work, the engine must be successfully registered. - -

To install a version of the engine, that does work with IE, you can execute the Python program -win32com\axscript\client\pyscript_rexec.py must be run. You can either do this manually, or follow the instructions below.

- -

Register the engine now!

- -

If you have read about the privacy -concern and still wish to register the engine, just follow the process outlined below:

-
    -
  1. Click on the link below -
  2. A dialog will be presented asking if the file should be opened or saved to disk. Select "Open it". -
  3. A Console program will briefly open, while the server is registered. -
- -

Register the engine now - -

Checking the registration

-After the registration is complete, simply hit the Reload button. If the -registration was successful, the page will change to the Python/AvtiveX Demo Page. - - - - diff --git a/com/win32comext/axscript/demos/client/ie/demo_intro.htm b/com/win32comext/axscript/demos/client/ie/demo_intro.htm deleted file mode 100644 index c02be1a6ef..0000000000 --- a/com/win32comext/axscript/demos/client/ie/demo_intro.htm +++ /dev/null @@ -1,37 +0,0 @@ - - - -

- Python ActiveX Scripting Demonstation - -

- -

Congratulations on installing the Python ActiveX Scripting Engine

- -

Be warned that there is a privacy -concern with this engine. Please read this information, including how to disable the feature.

- - -

Object model

-

Except as described below, the object module exposed should be similar to that exposed -by Visual Basic, etc. Due to the nature of ActiveX Scripting, the details for each -host are different, but Python should work "correctly". - -

The object model exposed via Python for MSIE is not as seamless as VB. The biggest limitation is -the concept of a "local" namespace. For example, in VB, you can -code text="Hi there", but in Python, you must code -MyForm.ThisButton.Text="Hi There". See the foo2 sample -for futher details. - -

Known bugs and problems

- - - diff --git a/com/win32comext/axscript/demos/client/ie/demo_menu.htm b/com/win32comext/axscript/demos/client/ie/demo_menu.htm deleted file mode 100644 index e83c3d5b19..0000000000 --- a/com/win32comext/axscript/demos/client/ie/demo_menu.htm +++ /dev/null @@ -1,14 +0,0 @@ - - -

Scripting Demos

-

An Introduction to the -scripting engine. - -

The Calculator Demo is a very -cool sample written by Aaron Watters. - -

Mouse track is another of -Aaron's samples, and shows how fast the Python engine is! - -

The foo2 sample is mainly used -for debugging and testing, but does show some forms in action. diff --git a/com/win32comext/axscript/demos/client/ie/docwrite.htm b/com/win32comext/axscript/demos/client/ie/docwrite.htm deleted file mode 100644 index c95b7902eb..0000000000 --- a/com/win32comext/axscript/demos/client/ie/docwrite.htm +++ /dev/null @@ -1,25 +0,0 @@ - - -A page generated by Python - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/foo2.htm b/com/win32comext/axscript/demos/client/ie/foo2.htm deleted file mode 100644 index 7849dfb8db..0000000000 --- a/com/win32comext/axscript/demos/client/ie/foo2.htm +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -

The caption on the first button is set by the Window Load code. Clicking -that button changes the text in the first edit box. - -

The second button changes its own text when clicked. - -

The fourth button calls a global function, defined in the global 'script' scope, -rather than the 'MyForm' scope. - -

- - - - - - - - - - - -

-

-And here is a second form -

-

- - - - - - - -

- - - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/form.htm b/com/win32comext/axscript/demos/client/ie/form.htm deleted file mode 100644 index 97a239f362..0000000000 --- a/com/win32comext/axscript/demos/client/ie/form.htm +++ /dev/null @@ -1,25 +0,0 @@ - - - -
- Name
- Address
- - - - - - - - diff --git a/com/win32comext/axscript/demos/client/ie/marqueeDemo.htm b/com/win32comext/axscript/demos/client/ie/marqueeDemo.htm deleted file mode 100644 index 0716d5ed4d..0000000000 --- a/com/win32comext/axscript/demos/client/ie/marqueeDemo.htm +++ /dev/null @@ -1,59 +0,0 @@ - - - - Internet Workshop - - - - -

-
-

Marquee Demo - -

- - - - - - - - - - -

- - - - - - - - -

  -


-Notes: -

- - - - - diff --git a/com/win32comext/axscript/demos/client/ie/mousetrack.htm b/com/win32comext/axscript/demos/client/ie/mousetrack.htm deleted file mode 100644 index 4c2627690b..0000000000 --- a/com/win32comext/axscript/demos/client/ie/mousetrack.htm +++ /dev/null @@ -1,82 +0,0 @@ - - -Python Scripting sample: Mouse tracking - - - - -
- - -
 
-
- -

-A mouse tracking demo. Move the mouse over the image above... - - - -

- - - - - diff --git a/com/win32comext/axscript/demos/client/ie/pycom_blowing.gif b/com/win32comext/axscript/demos/client/ie/pycom_blowing.gif deleted file mode 100644 index 0d65a2928962860cf8b675b5192a43b165f31350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20926 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 Ab^rhX diff --git a/setup.py b/setup.py index b9a664f444..9151a65880 100644 --- a/setup.py +++ b/setup.py @@ -2127,7 +2127,6 @@ def convert_optional_data_files(files): "com/win32comext/axscript/test/*.vbs", "com/win32comext/axscript/Demos/*.pys", "com/win32comext/axscript/Demos/*.htm*", - "com/win32comext/axscript/Demos/*.gif", "com/win32comext/axscript/Demos/*.asp", "com/win32comext/mapi/demos/*.py", "com/win32comext/propsys/test/*.py",