@@ -99,7 +99,7 @@ Func _NetWebView2_CreateManager($sUserAgent = '', $s_fnEventPrefix = "", $s_AddB
9999; ~ __NetWebView2_ObjName_FlagsValue($oWebV2M)
100100 If @error Then __NetWebView2_Log(@ScriptLineNumber , " ! [NetWebView2Lib]: Manager Creation ERROR" , 1 )
101101 If $sUserAgent Then $oWebV2M .SetUserAgent($sUserAgent )
102- If $s_AddBrowserArgs Then $oWebV2M .AdditionalBrowserArguments = $s_AddBrowserArgs
102+ If $s_AddBrowserArgs Then $oWebV2M .AdditionalBrowserArguments= $s_AddBrowserArgs
103103 If $s_fnEventPrefix Then $_g_sNetWebView2_User_WebViewEvents = $s_fnEventPrefix
104104 ObjEvent ($oWebV2M , " __NetWebView2_WebViewEvents__" , " IWebViewEvents" )
105105 Return SetError (@error , @extended , $oWebV2M )
@@ -218,14 +218,14 @@ EndFunc ;==>_NetWebView2_CleanUp
218218; Example .......: No
219219; ===============================================================================================================================
220220Func _NetWebView2_LoadWait(ByRef $oWebV2M , $iStatus = $WEBVIEW2__NAVSTATUS__READY )
221- Local Const $s_Prefix = ' _NetWebView2_LoadWait: iStatus:' & $iStatus
221+ Local Const $s_Prefix = " [ _NetWebView2_LoadWait] : iStatus:" & $iStatus
222222 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
223223 #forceref $oMyError
224224
225225 ; Wait for WebView2 to be ready
226226 While Sleep (10 )
227227 If $oWebV2M .IsReady Then
228- If $iStatus == $WEBVIEW2__NAVSTATUS__READY Or __NetWebView2_NavigationStatus() > = $iStatus Then
228+ If __NetWebView2_NavigationStatus() > = $iStatus Then
229229 ExitLoop
230230 EndIf
231231 EndIf
@@ -252,21 +252,39 @@ EndFunc ;==>_NetWebView2_LoadWait
252252; Example .......: No
253253; ===============================================================================================================================
254254Func _NetWebView2_Navigate(ByRef $oWebV2M , $sURL , $b_LoadWait = True )
255+ Local Const $s_Prefix = " [_NetWebView2_LoadWait]: URL:" & $sURL & " WAIT:" & $b_LoadWait
255256 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
256257 #forceref $oMyError
257258
258259 Local $iNavigation = $oWebV2M .Navigate($sURL )
260+ If @error Then __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
259261 If @error Then Return SetError (@error , @extended , $iNavigation )
260262
261263 If $b_LoadWait Then _NetWebView2_LoadWait($oWebV2M , $WEBVIEW2__NAVSTATUS__TITLE_CHANGED )
264+ If @error Then __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
262265 Return SetError (@error , @extended , ' ' )
263266EndFunc ; ==>_NetWebView2_Navigate
264267
268+ ; #FUNCTION# ====================================================================================================================
269+ ; Name ..........: _NetWebView2_GetSource
270+ ; Description ...:
271+ ; Syntax ........: _NetWebView2_GetSource(ByRef $oWebV2M)
272+ ; Parameters ....: $oWebV2M - [in/out] an object.
273+ ; Return values .: None
274+ ; Author ........: mLipok
275+ ; Modified ......:
276+ ; Remarks .......:
277+ ; Related .......:
278+ ; Link ..........:
279+ ; Example .......: No
280+ ; ===============================================================================================================================
265281Func _NetWebView2_GetSource(ByRef $oWebV2M )
282+ Local Const $s_Prefix = " [_NetWebView2_GetSource]:"
266283 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
267284 #forceref $oMyError
268285
269286 Local $sSource = $oWebV2M .GetSource()
287+ If @error Then __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
270288 Return SetError (@error , @extended , $sSource )
271289EndFunc ; ==>_NetWebView2_GetSource
272290
@@ -287,10 +305,10 @@ EndFunc ;==>_NetWebView2_GetSource
287305; Example .......: No
288306; ===============================================================================================================================
289307Func _NetWebView2_NavigateToString(ByRef $oWebV2M , $s_HTML , $b_LoadWait = True )
308+ Local Const $s_Prefix = " [_NetWebView2_NavigateToString]:" & " HTML Size:" & StringLen ($s_HTML ) & " LoadWait:" & $b_LoadWait
290309 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
291310 #forceref $oMyError
292311
293- Local Const $s_Prefix = " [_NetWebView2_PrintToPdfStream]:" & " HTML Size:" & StringLen ($s_HTML ) & " LoadWait:" & $b_LoadWait
294312 Local $iNavigation = $oWebV2M .NavigateToString($s_HTML )
295313 If @error Then Return SetError (@error , @extended , $iNavigation )
296314
@@ -302,24 +320,29 @@ EndFunc ;==>_NetWebView2_NavigateToString
302320; #FUNCTION# ====================================================================================================================
303321; Name ..........: _NetWebView2_ExportPageData
304322; Description ...:
305- ; Syntax ........: _NetWebView2_ExportPageData(ByRef $oWebV2M, $sFormat , $sFilePath)
323+ ; Syntax ........: _NetWebView2_ExportPageData(ByRef $oWebV2M, $iFormat[ , $sFilePath = ''] )
306324; Parameters ....: $oWebV2M - [in/out] an object.
307- ; $sFormat - a string value.
308- ; $sFilePath - a string value.
309- ; Return values .: None
325+ ; $iFormat - a string value. 0 HTML only, 1 MHTML Snapshot
326+ ; $sFilePath - [optional] a string value. Default is '' which mean make Base64 as a result instead write to file
327+ ; Return values .: Success - Depends on $sFilePath String with Base64 encoded binary content of the PDF or "SUCCESS: File saved to ...."
328+ ; Failure - string with error description "ERROR: ........." and set @error to 1
310329; Author ........: mLipok
311330; Modified ......:
312331; Remarks .......:
313332; Related .......:
314333; Link ..........:
315334; Example .......: No
316335; ===============================================================================================================================
317- Func _NetWebView2_ExportPageData(ByRef $oWebV2M , $sFormat , $sFilePath )
336+ Func _NetWebView2_ExportPageData(ByRef $oWebV2M , $iFormat , $sFilePath = ' ' )
337+ #TODO $sParameters - search for = > " name" : " captureSnapshot" ; https://github.com/ChromeDevTools/devtools-protocol/blob/master/json/browser_protocol.json
338+ #TODO https:// github.com/ ioa747/ NetWebView2Lib/ issues/ 15
339+ #TODO https:// github.com/ ioa747/ NetWebView2Lib/ pull/ 16
340+
341+ Local Const $s_Prefix = " [_NetWebView2_ExportPageData]:" & " Format:" & $iFormat & " FilePath:" & $sFilePath
318342 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
319343 #forceref $oMyError
320344
321- Local Const $s_Prefix = " [_NetWebView2_PrintToPdfStream]:" & " Format:" & $sFormat & " FilePath:" & $sFilePath
322- Local $s_Result = $oWebV2M .ExportPageData($sFormat , $sFilePath )
345+ Local $s_Result = $oWebV2M .ExportPageData($iFormat , $sFilePath )
323346 If StringInStr ($s_Result , ' ERROR:' ) Then SetError (1 )
324347 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix & " RESULT:" & ((@error ) ? ($s_Result ) : (" SUCCESS" )), 1 )
325348 Return SetError (@error , @extended , $s_Result )
@@ -328,30 +351,78 @@ EndFunc ;==>_NetWebView2_ExportPageData
328351; #FUNCTION# ====================================================================================================================
329352; Name ..........: _NetWebView2_PrintToPdfStream
330353; Description ...:
331- ; Syntax ........: _NetWebView2_PrintToPdfStream(ByRef $oWebV2M, $sFormat, $sFilePath )
354+ ; Syntax ........: _NetWebView2_PrintToPdfStream(ByRef $oWebV2M)
332355; Parameters ....: $oWebV2M - [in/out] an object.
333- ; $sFormat - a string value.
334- ; $sFilePath - a string value.
335- ; Return values .: None
356+ ; Return values .: Success - String with Base64 encoded binary content of the PDF
357+ ; Failure - string with error description "ERROR: ........." and set @error to 1
336358; Author ........: mLipok
337359; Modified ......:
338360; Remarks .......:
339361; Related .......:
340362; Link ..........:
341363; Example .......: No
342364; ===============================================================================================================================
343- Func _NetWebView2_PrintToPdfStream(ByRef $oWebV2M , $sFormat , $sFilePath )
365+ Func _NetWebView2_PrintToPdfStream(ByRef $oWebV2M )
366+ Local Const $s_Prefix = " [_NetWebView2_PrintToPdfStream]:"
344367 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
345368 #forceref $oMyError
346369
347- Local Const $s_Prefix = " [_NetWebView2_PrintToPdfStream]:" & " Format:" & $sFormat & " FilePath:" & $sFilePath
348- Local $s_Result = $oWebV2M .PrintToPdfStream($sFormat , $sFilePath )
370+ Local $s_Result = $oWebV2M .PrintToPdfStream()
349371 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
350372 If StringInStr ($s_Result , ' ERROR:' ) Then SetError (1 )
373+
351374 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix & " RESULT:" & ((@error ) ? ($s_Result ) : (" SUCCESS" )), 1 )
352375 Return SetError (@error , @extended , $s_Result )
353376EndFunc ; ==>_NetWebView2_PrintToPdfStream
354377
378+ ; #FUNCTION# ====================================================================================================================
379+ ; Name ..........: _NetWebView2_DecodeB64
380+ ; Description ...:
381+ ; Syntax ........: _NetWebView2_DecodeB64(ByRef $oWebV2M, $sData)
382+ ; Parameters ....: $oWebV2M - [in/out] an object.
383+ ; $sData - a string value.
384+ ; Return values .: None
385+ ; Author ........: mLipok
386+ ; Modified ......:
387+ ; Remarks .......:
388+ ; Related .......:
389+ ; Link ..........:
390+ ; Example .......: No
391+ ; ===============================================================================================================================
392+ Func _NetWebView2_DecodeB64(ByRef $oWebV2M , $sData )
393+ Local Const $s_Prefix = " [_NetWebView2_DecodeB64]:"
394+ Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
395+ #forceref $oMyError
396+
397+ Local $vResult = $oWebV2M .DecodeB64($sData )
398+ __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
399+ Return SetError (@error , @extended , $vResult )
400+ EndFunc
401+
402+ ; #FUNCTION# ====================================================================================================================
403+ ; Name ..........: _NetWebView2_EncodeB64
404+ ; Description ...:
405+ ; Syntax ........: _NetWebView2_EncodeB64(ByRef $oWebV2M, $sData)
406+ ; Parameters ....: $oWebV2M - [in/out] an object.
407+ ; $sData - a string value.
408+ ; Return values .: None
409+ ; Author ........: mLipok
410+ ; Modified ......:
411+ ; Remarks .......:
412+ ; Related .......:
413+ ; Link ..........:
414+ ; Example .......: No
415+ ; ===============================================================================================================================
416+ Func _NetWebView2_EncodeB64(ByRef $oWebV2M , $sData )
417+ Local Const $s_Prefix = " [_NetWebView2_EncodeB64]:"
418+ Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
419+ #forceref $oMyError
420+
421+ Local $vResult = $oWebV2M .EncodeB64($sData )
422+ __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
423+ Return SetError (@error , @extended , $vResult )
424+ EndFunc
425+
355426#EndRegion ; NetWebView2Lib UDF - core function
356427
357428#Region ; NetWebView2Lib UDF - helper function
@@ -474,14 +545,15 @@ EndFunc ;==>__NetWebView2_COMErrFunc
474545; Handles native WebView2 events
475546#TODO = > Func __NetWebView2_WebViewEvents__OnMessageReceived(ByRef $oWebV2M , $hGUI , $sMsg )
476547Func __NetWebView2_WebViewEvents__OnMessageReceived($sMsg )
548+ Local Const $s_Prefix = " [WebViewEvents__OnMessageReceived]:"
477549 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
478550 #forceref $oMyError
551+
479552 Local $iSplitPos = StringInStr ($sMsg , " |" )
480553 Local $sCommand = $iSplitPos ? StringStripWS (StringLeft ($sMsg , $iSplitPos - 1 ), 3 ) : $sMsg
481554 Local $sData = $iSplitPos ? StringTrimLeft ($sMsg , $iSplitPos ) : " "
482555 Local $aParts
483556
484- Local Const $s_Prefix = " [WebViewEvents__OnMessageReceived]:" & $sCommand & " : "
485557 Switch $sCommand
486558 Case " INIT_READY"
487559 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix & $sData , 1 )
@@ -525,10 +597,10 @@ EndFunc ;==>__NetWebView2_WebViewEvents__OnMessageReceived
525597; Handles custom messages from JavaScript (window.chrome.webview.postMessage)
526598#TODO = > Func __NetWebView2_JSEvents__OnMessageReceived(ByRef $oWebV2M , ByRef $oWebJS , $hGUI , $sMsg )
527599Func __NetWebView2_JSEvents__OnMessageReceived($sMsg )
600+ Local Const $s_Prefix = " [JSEvents__OnMessageReceived]:"
528601 Local $oMyError = ObjEvent (" AutoIt.Error" , __NetWebView2_COMErrFunc) ; Local COM Error Handler
529602 #forceref $oMyError
530603
531- Local Const $s_Prefix = " [JSEvents__OnMessageReceived]:"
532604 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix & " " & (StringLen ($sMsg ) > 150 ? StringLeft ($sMsg , 150 ) & " ..." : $sMsg ), 1 )
533605 Local $sFirstChar = StringLeft ($sMsg , 1 )
534606
@@ -637,4 +709,3 @@ Func __NetWebView2_WebViewEvents__OnContextMenu($sMenuData)
637709 __NetWebView2_Log(@ScriptLineNumber , $s_Prefix , 1 )
638710EndFunc ; ==>__NetWebView2_WebViewEvents__OnContextMenu
639711#EndRegion ; NetWebView2Lib UDF - === EVENT HANDLERS ===
640-
0 commit comments