Skip to content

Commit 30e0a77

Browse files
authored
Update NetWebView2Lib.au3
1 parent 2693a98 commit 30e0a77

1 file changed

Lines changed: 35 additions & 18 deletions

File tree

NetWebView2Lib.au3

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#AutoIt3Wrapper_Run_AU3Check=Y
44
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
55
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
6-
#Au3Stripper_Ignore_Funcs=__NetWebView2_WebEvents__*,__NetWebView2_JSEvents__*
6+
#Au3Stripper_Ignore_Funcs=__NetWebView2_WebViewEvents__*,__NetWebView2_JSEvents__*
77

88
#include <Array.au3>
99
#include <GUIConstantsEx.au3>
@@ -17,6 +17,8 @@
1717
Global $_g_hNetWebView2Lib_DLL = ''
1818
Global $_g_oWeb
1919
Global $g_DebugInfo = True
20+
Global $_g_sUser_FnPrefix__NetWebView2_JSEvents = ""
21+
Global $_g_sUser_FnPrefix__NetWebView2_WebViewEvents = ""
2022

2123
#Region ; NetWebView2Lib UDF - core function
2224
Func _NetWebView2_StartUp($sDLLFileFullPath)
@@ -66,7 +68,9 @@ EndFunc ;==>_NetWebView2_ShutDown
6668
; Example .......: No
6769
; ===============================================================================================================================
6870
Func _NetWebView2_Initialize(ByRef $oWebV2M, $hGUI, $sProfileDirectory, $i_Left = 0, $i_Top = 0, $i_Width = 0, $i_Height = 0, $b_LoadWait = True, $b_SetAutoResize = True, $b_AreDevToolsEnabled = True, $i_ZoomFactor = 1.0, $s_BackColor = "0x2B2B2B")
69-
Local $iInit = $oWebV2M.Initialize($hGUI, $sProfileDirectory, $i_Left, $i_Top, $i_Width, $i_Height)
71+
72+
; Important: Pass $hGUI in parentheses to maintain Pointer type for COM
73+
Local $iInit = $oWebV2M.Initialize(($hGUI), $sProfileDirectory, $i_Left, $i_Top, $i_Width, $i_Height)
7074
If @error Then Return SetError(@error, @extended, $iInit)
7175

7276
If $b_LoadWait Then _NetWebView2_LoadWait($oWebV2M)
@@ -83,8 +87,8 @@ EndFunc ;==>_NetWebView2_Initialize
8387
; #FUNCTION# ====================================================================================================================
8488
; Name ..........: _NetWebView2_CreateManager
8589
; Description ...:
86-
; Syntax ........: _NetWebView2_CreateManager([$sFnPrefix = "__NetWebView2_WebEvents__"])
87-
; Parameters ....: $sFnPrefix - [optional] a string value. Default is "__NetWebView2_WebEvents__".
90+
; Syntax ........: _NetWebView2_CreateManager([$sUser_FnPrefix = ""])
91+
; Parameters ....: $sUser_FnPrefix - [optional] a string value. Default is "".
8892
; Return values .: None
8993
; Author ........: mLipok, ioa747
9094
; Modified ......:
@@ -93,23 +97,24 @@ EndFunc ;==>_NetWebView2_Initialize
9397
; Link ..........:
9498
; Example .......: No
9599
; ===============================================================================================================================
96-
Func _NetWebView2_CreateManager($sFnPrefix = "__NetWebView2_WebEvents__")
100+
Func _NetWebView2_CreateManager($sUser_FnPrefix = "")
97101
Local $oMyError = ObjEvent("AutoIt.Error", __NetWebView2_COMErrFunc) ; Local COM Error Handler
98102
#forceref $oMyError
99103
Local $oWebV2M = ObjCreate("NetWebView2.Manager") ; REGISTERED VERSION
100104
;~ __NetWebView2_ObjName_FlagsValue($oWebV2M)
101105
If @error Then __NetWebView2_Log(@ScriptLineNumber, "! [NetWebView2Lib]: Manager Creation ERROR")
102106

103-
ObjEvent($oWebV2M, $sFnPrefix, "IWebViewEvents")
107+
If $sUser_FnPrefix Then $_g_sUser_FnPrefix__NetWebView2_WebViewEvents = $sUser_FnPrefix
108+
ObjEvent($oWebV2M, "__NetWebView2_WebViewEvents__", "IWebViewEvents")
104109
Return SetError(@error, @extended, $oWebV2M)
105110
EndFunc ;==>_NetWebView2_CreateManager
106111

107112
; #FUNCTION# ====================================================================================================================
108113
; Name ..........: _NetWebView2_GetBridge
109114
; Description ...:
110-
; Syntax ........: _NetWebView2_GetBridge(ByRef $oWebV2M[, $sFnPrefix = "__NetWebView2_JSEvents__"])
115+
; Syntax ........: _NetWebView2_GetBridge(ByRef $oWebV2M[, $sUser_FnPrefix = ""])
111116
; Parameters ....: $oWebV2M - [in/out] an object.
112-
; $sFnPrefix - [optional] a string value. Default is "__NetWebView2_JSEvents__".
117+
; $sUser_FnPrefix - [optional] a string value. Default is "".
113118
; Return values .: None
114119
; Author ........: mLipok, ioa747
115120
; Modified ......:
@@ -118,14 +123,15 @@ EndFunc ;==>_NetWebView2_CreateManager
118123
; Link ..........:
119124
; Example .......: No
120125
; ===============================================================================================================================
121-
Func _NetWebView2_GetBridge(ByRef $oWebV2M, $sFnPrefix = "__NetWebView2_JSEvents__")
126+
Func _NetWebView2_GetBridge(ByRef $oWebV2M, $sUser_FnPrefix = "")
122127
Local $oMyError = ObjEvent("AutoIt.Error", __NetWebView2_COMErrFunc) ; Local COM Error Handler
123128
#forceref $oMyError
124129

125130
Local $oWebJS = $oWebV2M.GetBridge()
126131
If @error Then __NetWebView2_Log(@ScriptLineNumber, "! [NetWebView2Lib]: Manager.GetBridge() ERROR")
127132

128-
ObjEvent($oWebJS, $sFnPrefix, "IBridgeEvents")
133+
If $sUser_FnPrefix Then $_g_sUser_FnPrefix__NetWebView2_JSEvents = $sUser_FnPrefix
134+
ObjEvent($oWebJS, "__NetWebView2_JSEvents__", "IBridgeEvents")
129135
Return SetError(@error, @extended, $oWebJS)
130136
EndFunc ;==>_NetWebView2_GetBridge
131137

@@ -387,8 +393,8 @@ Func __NetWebView2_COMErrFunc($oError) ; COM Error Function used by COM Error Ha
387393
EndFunc ;==>__NetWebView2_COMErrFunc
388394

389395
; Handles native WebView2 events
390-
#TODO => Func __NetWebView2_WebEvents__OnMessageReceived(ByRef $oWebV2M, $hGUI, $sMsg)
391-
Func __NetWebView2_WebEvents__OnMessageReceived($sMsg)
396+
#TODO => Func __NetWebView2_WebViewEvents__OnMessageReceived(ByRef $oWebV2M, $hGUI, $sMsg)
397+
Func __NetWebView2_WebViewEvents__OnMessageReceived($sMsg)
392398
Local $oMyError = ObjEvent("AutoIt.Error", __NetWebView2_COMErrFunc) ; Local COM Error Handler
393399
#forceref $oMyError
394400
Local $iSplitPos = StringInStr($sMsg, "|")
@@ -420,18 +426,24 @@ Func __NetWebView2_WebEvents__OnMessageReceived($sMsg)
420426
If $aParts[0] >= 2 Then
421427
Local $iW = Int($aParts[1]), $iH = Int($aParts[2])
422428
; Filter minor resize glitches
423-
If $iW > 50 And $iH > 50 Then __NetWebView2_Log(@ScriptLineNumber, $s_Prefix & $iW & "x" & $iH)
429+
If $iW > 50 And $iH > 50 Then __NetWebView2_Log(@ScriptLineNumber, $s_Prefix & $iW & "x" & $iH)
424430
EndIf
425431
Case Else
426432
__NetWebView2_Log(@ScriptLineNumber, $s_Prefix & (StringLen($sMsg) > 150 ? StringLeft($sMsg, 150) & "..." : $sMsg), 0)
427433
EndSwitch
428-
EndFunc ;==>__NetWebView2_WebEvents__OnMessageReceived
434+
If $_g_sUser_FnPrefix__NetWebView2_WebViewEvents Then
435+
#TODO =>>>> Call($_g_sUser_FnPrefix__NetWebView2_WebViewEvents & 'OnMessageReceived', $oWebV2M, $hGUI, $sMsg)
436+
Call($_g_sUser_FnPrefix__NetWebView2_WebViewEvents & 'OnMessageReceived', $sMsg)
437+
EndIf
438+
439+
EndFunc ;==>__NetWebView2_WebViewEvents__OnMessageReceived
429440

430441
; Handles custom messages from JavaScript (window.chrome.webview.postMessage)
431442
#TODO => Func __NetWebView2_JSEvents__OnMessageReceived(ByRef $oWebV2M, ByRef $oWebJS, $hGUI, $sMsg)
432443
Func __NetWebView2_JSEvents__OnMessageReceived($sMsg)
433444
Local $oMyError = ObjEvent("AutoIt.Error", __NetWebView2_COMErrFunc) ; Local COM Error Handler
434445
#forceref $oMyError
446+
435447
__NetWebView2_Log(@ScriptLineNumber, ">>> [JavaScriptEvents]: " & (StringLen($sMsg) > 150 ? StringLeft($sMsg, 150) & "..." : $sMsg), 0)
436448
Local $sFirstChar = StringLeft($sMsg, 1)
437449

@@ -484,13 +496,18 @@ Func __NetWebView2_JSEvents__OnMessageReceived($sMsg)
484496

485497
EndSwitch
486498
EndIf
499+
500+
If $_g_sUser_FnPrefix__NetWebView2_JSEvents Then
501+
#TODO =>>>> Call($_g_sUser_FnPrefix__NetWebView2_JSEvents & 'OnMessageReceived', $oWebV2M, $oWebJS, $hGUI, $sMsg)
502+
Call($_g_sUser_FnPrefix__NetWebView2_JSEvents & 'OnMessageReceived', $sMsg)
503+
EndIf
504+
487505
EndFunc ;==>__NetWebView2_JSEvents__OnMessageReceived
488506

489-
#TODO => Func __NetWebView2_WebEvents__OnContextMenuRequested(ByRef $oWebV2M, $sLink, $iX, $iY, $sSelection)
490-
Func __NetWebView2_WebEvents__OnContextMenuRequested($sLink, $iX, $iY, $sSelection)
507+
#TODO => Func __NetWebView2_WebViewEvents__OnContextMenuRequested(ByRef $oWebV2M, $sLink, $iX, $iY, $sSelection)
508+
Func __NetWebView2_WebViewEvents__OnContextMenuRequested($sLink, $iX, $iY, $sSelection)
491509
#forceref $sLink, $iX, $iY, $sSelection
492510
Local $oMyError = ObjEvent("AutoIt.Error", __NetWebView2_COMErrFunc) ; Local COM Error Handler
493511
#forceref $oMyError
494-
EndFunc ;==>__NetWebView2_WebEvents__OnContextMenuRequested
512+
EndFunc ;==>__NetWebView2_WebViewEvents__OnContextMenuRequested
495513
#EndRegion ; NetWebView2Lib UDF - === EVENT HANDLERS ===
496-

0 commit comments

Comments
 (0)