Just wondering if there is interest about this...
Using WebView with Borland !!!
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Using WebView with Borland !!!
We have been able to easily make WebView2 work with Borland 
Just wondering if there is interest about this...
Just wondering if there is interest about this...
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Ok, for those of you that want to start testing and using it, here we go:
I prefer to use dynamic linking so we don't force all FWH users to distribute webview DLLs. This code is working fine using MSVC and MinGW, but
it is failing with Borland thus Borland works fine when we use static linking (explained on this post also). Thats why we need your feedback:
webview.prg
webview.dll must be downloaded from here:
https://github.com/webview/webview/tree/master/dll/x86
https://github.com/webview/webview/tree/master/dll/x64
and webview2 has to be installed from here:
https://developer.microsoft.com/en-us/microsoft-edge/webview2/
WebView2Loader.dll correct size is 326.552. The ones distributed in https://github.com/webview/webview/tree/master/dll are smaller (probably older), but the provided webview.dll is correct.
Simply copy the above webview.prg to FWH\samples and do buildh32.bat webview for MSVC and buildg.bat webview for MinGW. If you do a buildh.bat webview you will see that it crashes after building the webview but you can see it. Still wondering why.
But Borland works fine if we do a static linking this way:
1. We create the .DEF file of webview.dll this way:
impdef.exe webview.def webview.dll
2. We need to modify webview.def this way (please notice the underscores in front of the names):
Now we create the import library (webview.lib) this way from the above .def file:
implib.exe webview.lib webview.def
Here you have webview.prg for static linking for Borland:
to build it simply do:
and you will get your EXE working properly with Borland (but using static linking)
Once we get your feedback, we will turn this into a FWH control that you can place anywhere in your app (window, dialog, control)
Please notice that there are some other functions in the .DEF file that we have not implemented yet, but are quite simply to be implemented following the above example.
Welcome to the magic of webview for all
I prefer to use dynamic linking so we don't force all FWH users to distribute webview DLLs. This code is working fine using MSVC and MinGW, but
it is failing with Borland thus Borland works fine when we use static linking (explained on this post also). Thats why we need your feedback:
webview.prg
Code: Select all | Expand
#include "FiveWin.ch"
static hDLL
function Main()
local hWebView
hDLL = LoadLibrary( "webview.dll" )
hWebView = WebView_Create( 0, 0 )
WebView_Navigate( hWebView, "https://www.google.com" )
WebView_Run( hWebView )
WebView_Destroy( hWebView )
FreeLibrary( hDLL )
return nil
DLL FUNCTION WEBVIEW_CREATE( nDebug AS LONG, hWndParent AS LONG ) AS LONG PASCAL FROM "webview_create" LIB hDLL
DLL FUNCTION WEBVIEW_RUN( hWebView AS LONG ) AS VOID PASCAL FROM "webview_run" LIB hDLL
DLL FUNCTION WEBVIEW_NAVIGATE( hWebView AS LONG, cUrl AS LPSTR ) AS VOID PASCAL FROM "webview_navigate" LIB hDLL
DLL FUNCTION WEBVIEW_DESTROY( hWebView AS LONG ) AS VOID PASCAL FROM "webview_destroy" LIB hDLLwebview.dll must be downloaded from here:
https://github.com/webview/webview/tree/master/dll/x86
https://github.com/webview/webview/tree/master/dll/x64
and webview2 has to be installed from here:
https://developer.microsoft.com/en-us/microsoft-edge/webview2/
WebView2Loader.dll correct size is 326.552. The ones distributed in https://github.com/webview/webview/tree/master/dll are smaller (probably older), but the provided webview.dll is correct.
Simply copy the above webview.prg to FWH\samples and do buildh32.bat webview for MSVC and buildg.bat webview for MinGW. If you do a buildh.bat webview you will see that it crashes after building the webview but you can see it. Still wondering why.
But Borland works fine if we do a static linking this way:
1. We create the .DEF file of webview.dll this way:
impdef.exe webview.def webview.dll
2. We need to modify webview.def this way (please notice the underscores in front of the names):
LIBRARY WEBVIEW.DLL
EXPORTS
_webview_bind @1 ; webview_bind
_webview_create @2 ; webview_create
_webview_destroy @3 ; webview_destroy
_webview_dispatch @4 ; webview_dispatch
_webview_eval @5 ; webview_eval
_webview_get_window @6 ; webview_get_window
_webview_init @7 ; webview_init
_webview_navigate @8 ; webview_navigate
_webview_return @9 ; webview_return
_webview_run @10 ; webview_run
_webview_set_size @11 ; webview_set_size
_webview_set_title @12 ; webview_set_title
_webview_terminate @13 ; webview_terminate
Now we create the import library (webview.lib) this way from the above .def file:
implib.exe webview.lib webview.def
Here you have webview.prg for static linking for Borland:
Code: Select all | Expand
function Main()
local hWebView := WebView_Create()
WebView_Navigate( hWebView, "https://www.google.com" )
WebView_Run( hWebView )
return nil
#pragma BEGINDUMP
#include <hbapi.h>
void * webview_create(int debug, void * window );
void webview_run( void * w );
void webview_navigate( void * w, const char * url );
HB_FUNC( WEBVIEW_CREATE )
{
hb_retptr( webview_create( 0, NULL ) );
}
HB_FUNC( WEBVIEW_RUN )
{
webview_run( hb_parptr( 1 ) );
}
HB_FUNC( WEBVIEW_NAVIGATE )
{
webview_navigate( hb_parptr( 1 ), hb_parc( 2 ) );
}
#pragma ENDDUMPto build it simply do:
set path=c:\bcc7\bin
c:\harbour\bin\hbmk2 webview.prg -lwebview -comp=bcc
and you will get your EXE working properly with Borland (but using static linking)
Once we get your feedback, we will turn this into a FWH control that you can place anywhere in your app (window, dialog, control)
Please notice that there are some other functions in the .DEF file that we have not implemented yet, but are quite simply to be implemented following the above example.
Welcome to the magic of webview for all
Re: Using WebView with Borland !!!
Antonio:
Pude generar sin errores el exe
Se lanza pero se cierra.
Este es el log
Pude generar sin errores el exe
Se lanza pero se cierra.
Este es el log
Code: Select all | Expand
Application Internal Error - C:\fwh16\samples\testwebv.exe
Terminated at: 2021-12-01 09:27:53
Unrecoverable error 6005: Exception error:
Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:6CF6DCC9
EAX:00000000 EBX:00933490 ECX:00000000 EDX:00949278
ESI:6CFEB56C EDI:0019F7E8 EBP:0019F798
CS:EIP:0023:6CF6DCC9 SS:ESP:002B:0019F790
DS:002B ES:002B FS:0053 GS:002B
Flags:00010206
Exception Parameters: 00000000 00000000
CS:EIP: 8B 08 8B 51 0C 89 55 F8 83 7D 08 00 74 0B 8B 45
SS:ESP: 6A9FD134 00000060 0019F7BC 6DF41D2C 00949278 80010106 00000000 00000000 C6AB732E 80010106 0019F7E8 0019F80C 6A81DF62 00933490 80010106 00000000
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
6CF6DCC9 0019F798 0019F7BC 6DF41D2C 00949278 80010106 00000000 00000000 C6AB732E 80010106 0019F7E8
6DF41D2C 0019F7BC 0019F80C 6A81DF62 00933490 80010106 00000000 00000000 2E83C480 00000037 00933490 00000000
6A81DF62 0019F80C 0019F848 6A7CD063 00000000 009525B8 00000000 00933490 00000000 2E89C5A0 0000002D 80000030
6A7CD063 0019F848 0019F86C 6DF4265D 00000001 00000000 009525B8 00000000 00933490 009525B8 00000000
6DF4265D 0019F86C 0019F8A8 6DF41343 0093DE48 00000001 00000000 009525B8 00000000 00933490 0000006E 0000006E
6DF41343 0019F8A8 0019F8CC 6DF41D0A 00000000 00000000 00933490 6A8F9B01 C6AB7C5E 80010106 0019F8F8
6DF41D0A 0019F8CC 0019F920 6A81DF62 00933490 80010106 00000000 00000000 0019F93C 00933490 00933490 00000000
6A81DF62 0019F920 0019F95C 6A7CD063 00000000 009525B8 00000000 00933490 00000000 2E89C600 0000002D 80000030
6A7CD063 0019F95C 0019F980 6DF4265D 00000001 00000000 009525B8 00000000 00933490 009525B8 00000000
6DF4265D 0019F980 0019F9BC 6DF41343 0094BED0 00000001 00000000 009525B8 00000000 00933490 0000006E 0000006E
6DF41343 0019F9BC 0019FA30 6DF4129C 00000000 00000000 00933490 00586115 6CF70B56 0019FB28 0019F9F4 00000000
6DF4129C 0019FA30 0019FC84 6CF73588 00000000 009525B8 00000000 00949278 42C53424 0019FC94 00904B98 0019FAB8
6CF73588 0019FC84 0019FD74 6CF6995F 019A0B76 00000000 6CFEBCA0 6CF6B87C 0019FD84 00933340 0019FD74 6CF6990B
6CF6995F 0019FD74 0019FD98 6CF696D7 00000000 00000000 42C53538 00933340 0019FF60 6CFAF0DD FFFFFFFF
6CF696D7 0019FD98 0019FDBC 6CF61090 00000000 00000000 0019FDC8 00000000 00586115 00933340 00753BA0
6CF61090 0019FDBC 0019FDE4 004015ED 00000000 00000000 004A0BF0 00000001 00000000 00000000 00000000 00000000
004015ED 0019FDE4 0019FEF8 0049A9FA 00000000 00401458 00000001 006F6F00 00003E88 006F74AC 024EFCE4 00753F0C
0049A9FA 0019FEF8 0019FF20 004015E0 0058610C 005860C8 004A0BF0 00000000 00000000 00000000 00000000 00000003
004015E0 0019FF20 0019FF34 00499CCC 00000000 00586048 008F3AE8
00499CCC 0019FF34 0019FF40 004CBF36 00000001
Modules:
00400000 00382000 C:\fwh16\samples\testwebv.exe
77A00000 001A3000 C:\WINDOWS\SYSTEM32\ntdll.dll
75930000 000F0000 C:\WINDOWS\System32\KERNEL32.DLL
76F90000 00214000 C:\WINDOWS\System32\KERNELBASE.dll
75D60000 0007A000 C:\WINDOWS\System32\ADVAPI32.DLL
762C0000 000BF000 C:\WINDOWS\System32\msvcrt.dll
6CF60000 000AB000 C:\fwh16\samples\WEBVIEW.DLL
75CB0000 00075000 C:\WINDOWS\System32\sechost.dll
75B10000 000BF000 C:\WINDOWS\System32\RPCRT4.dll
76CC0000 001A0000 C:\WINDOWS\System32\USER32.dll
75F70000 00018000 C:\WINDOWS\System32\win32u.dll
6DF40000 00020000 C:\fwh16\samples\WebView2Loader.dll
76F60000 00024000 C:\WINDOWS\System32\GDI32.dll
77940000 000AF000 C:\WINDOWS\System32\COMDLG32.DLL
75DF0000 000DC000 C:\WINDOWS\System32\gdi32full.dll
76390000 00281000 C:\WINDOWS\System32\combase.dll
76680000 0007B000 C:\WINDOWS\System32\msvcp_win.dll
76040000 00120000 C:\WINDOWS\System32\ucrtbase.dll
75C60000 00045000 C:\WINDOWS\System32\SHLWAPI.dll
75FB0000 00087000 C:\WINDOWS\System32\shcore.dll
75ED0000 00096000 C:\WINDOWS\System32\OLEAUT32.dll
77320000 005B3000 C:\WINDOWS\System32\SHELL32.dll
757B0000 00008000 C:\WINDOWS\SYSTEM32\VERSION.DLL
75A20000 000E3000 C:\WINDOWS\System32\OLE32.DLL
6DCB0000 0008D000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.1110_none_c0da534e38c01f4d\COMCTL32.DLL
75730000 00072000 C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
717B0000 00006000 C:\WINDOWS\SYSTEM32\MSIMG32.DLL
71B40000 00028000 C:\WINDOWS\SYSTEM32\WINMM.DLL
6DF10000 0002C000 C:\WINDOWS\SYSTEM32\OLEDLG.DLL
717C0000 00169000 C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.1348_none_d94f9953e1060d01\GDIPLUS.DLL
75D30000 00025000 C:\WINDOWS\System32\IMM32.DLL
70BA0000 00074000 C:\WINDOWS\system32\uxtheme.dll
76160000 000D3000 C:\WINDOWS\System32\MSCTF.dll
75010000 0000F000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
75C00000 0005F000 C:\WINDOWS\System32\bcryptPrimitives.dll
6F8C0000 000B9000 C:\WINDOWS\SYSTEM32\textinputframework.dll
6F640000 0027E000 C:\WINDOWS\System32\CoreUIComponents.dll
6F5A0000 0009B000 C:\WINDOWS\System32\CoreMessaging.dll
758C0000 00063000 C:\WINDOWS\System32\WS2_32.dll
729E0000 00029000 C:\WINDOWS\SYSTEM32\ntmarta.dll
6F4C0000 000DB000 C:\WINDOWS\SYSTEM32\wintypes.dll
6A7A0000 002CE000 C:\Program Files (x86)\Microsoft\EdgeWebView\Application\96.0.1054.41\EBWebView\x86\EmbeddedBrowserWebView.dll
728C0000 0000A000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
Called from WEBVIEW_CREATE(0)
Called from MAIN(3) in testwebv.prg
------------------------------------------------------------------------
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
César,
Has probado el enlace dinámico (uso de webview.dll) ó el estático (uso de webview.lib) ?
Has probado el enlace dinámico (uso de webview.dll) ó el estático (uso de webview.lib) ?
Re: Using WebView with Borland !!!
Buena noticia
En unos días que termine un asunto prioritario, referente a la nomina electrónica, intentare usar este nuevo elemento.
Saludos
LEANDRO AREVALO
En unos días que termine un asunto prioritario, referente a la nomina electrónica, intentare usar este nuevo elemento.
Saludos
LEANDRO AREVALO
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
[email protected]
[email protected]
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
[email protected]
[email protected]
[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Implementing the "bind" from javascript to our FWH app:
to build it, from FWH\samples do:
buildh32.bat webview
webview.prg
test.html
when you click on the "test" button (javacript code), low level C test() in our FWH app will be executed!

to build it, from FWH\samples do:
buildh32.bat webview
webview.prg
Code: Select all | Expand
#include "FiveWin.ch"
static hDLL
function Main()
local hWebView
hDLL = LoadLibrary( "webview.dll" )
hWebView = WebView_Create( 0, 0 )
WebView_Navigate( hWebView, "https://www.fivetechsoft.com/test.html" )
WebView_Bind( hWebView, "test", Test(), hWebView )
WebView_Run( hWebView )
WebView_Destroy( hWebView )
FreeLibrary( hDLL )
return nil
DLL FUNCTION WEBVIEW_CREATE( nDebug AS LONG, hWndParent AS LONG ) AS LONG PASCAL FROM "webview_create" LIB hDLL
DLL FUNCTION WEBVIEW_RUN( hWebView AS LONG ) AS VOID PASCAL FROM "webview_run" LIB hDLL
DLL FUNCTION WEBVIEW_NAVIGATE( hWebView AS LONG, cUrl AS LPSTR ) AS VOID PASCAL FROM "webview_navigate" LIB hDLL
DLL FUNCTION WEBVIEW_DESTROY( hWebView AS LONG ) AS VOID PASCAL FROM "webview_destroy" LIB hDLL
DLL FUNCTION WEBVIEW_BIND( hWebView AS LONG, cName AS LPSTR, pFunc AS LONG, pVoid AS LONG ) AS VOID PASCAL FROM "webview_bind" LIB hDLL
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
static void test( const char * x, const char * y, void * t )
{
MessageBox( 0, "OK", "OK", 0 );
}
HB_FUNC( TEST )
{
hb_retnl( ( HB_LONG ) test );
}
#pragma ENDDUMPtest.html
Code: Select all | Expand
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button onclick="test()">test</button>
</body>
</html>when you click on the "test" button (javacript code), low level C test() in our FWH app will be executed!

- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Implementing WebView_Eval( hWebView, cJavaScript )
webview.prg
webview.prg
Code: Select all | Expand
#include "FiveWin.ch"
static hDLL
function Main()
local hWebView
hDLL = LoadLibrary( "webview.dll" )
hWebView = WebView_Create( 0, 0 )
WebView_Navigate( hWebView, "https://www.fivetechsoft.com/test.html" )
WebView_Eval( hWebView, 'document.body.style.backgroundColor = "blue"' )
WebView_Bind( hWebView, "test", Test(), hWebView )
WebView_Run( hWebView )
WebView_Destroy( hWebView )
FreeLibrary( hDLL )
return nil
DLL FUNCTION WEBVIEW_CREATE( nDebug AS LONG, hWndParent AS LONG ) AS LONG PASCAL FROM "webview_create" LIB hDLL
DLL FUNCTION WEBVIEW_RUN( hWebView AS LONG ) AS VOID PASCAL FROM "webview_run" LIB hDLL
DLL FUNCTION WEBVIEW_NAVIGATE( hWebView AS LONG, cUrl AS LPSTR ) AS VOID PASCAL FROM "webview_navigate" LIB hDLL
DLL FUNCTION WEBVIEW_DESTROY( hWebView AS LONG ) AS VOID PASCAL FROM "webview_destroy" LIB hDLL
DLL FUNCTION WEBVIEW_BIND( hWebView AS LONG, cName AS LPSTR, pFunc AS LONG, pVoid AS LONG ) AS VOID PASCAL FROM "webview_bind" LIB hDLL
DLL FUNCTION WEBVIEW_EVAL( hWebView AS LONG, cJavaScript AS LPSTR ) AS VOID PASCAL FROM "webview_eval" LIB hDLL
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
static void test( const char * x, const char * y, void * t )
{
// void * wv = t;
// printf( "params:[%s],[%s],[%p]", x, y, t );
// webview_terminate( wv );
MessageBox( 0, "OK", "OK", 0 );
}
HB_FUNC( TEST )
{
hb_retnl( ( HB_LONG ) test );
}
#pragma ENDDUMP- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Getting closer to what we are looking for 
Download it and test it from here:
https://github.com/FiveTechSoft/FWH_tools/raw/master/webview.zip
if you want to build it, from FWH\samples:
buildh32.bat webview
webview.prg
Download it and test it from here:
https://github.com/FiveTechSoft/FWH_tools/raw/master/webview.zip
if you want to build it, from FWH\samples:
buildh32.bat webview
webview.prg
Code: Select all | Expand
#include "FiveWin.ch"
static hDLL
function Main()
local hWebView
hDLL = LoadLibrary( "webview.dll" )
hWebView = WebView_Create( 0, 0 )
WebView_Navigate( hWebView, Html() ) // or use a URL like "https://www.fivetechsoft.com/test.html" )
// WebView_Eval( hWebView, 'document.body.style.backgroundColor = "blue"' )
WebView_Bind( hWebView, "test", Test(), hWebView )
WebView_Run( hWebView )
WebView_Destroy( hWebView )
FreeLibrary( hDLL )
return nil
function Html()
local cHtml
TEXT INTO cHtml
data:text/html,
<html>
<head>
</head>
<body style="background-color:cyan">
<h2>Using WebView from FWH</h2>
<button onclick='test( 123, "Hello" )'>Call FWH app from web browser</button>
</body>
</html>
ENDTEXT
return cHtml
DLL FUNCTION WEBVIEW_CREATE( nDebug AS LONG, hWndParent AS LONG ) AS LONG PASCAL FROM "webview_create" LIB hDLL
DLL FUNCTION WEBVIEW_RUN( hWebView AS LONG ) AS VOID PASCAL FROM "webview_run" LIB hDLL
DLL FUNCTION WEBVIEW_NAVIGATE( hWebView AS LONG, cUrl AS LPSTR ) AS VOID PASCAL FROM "webview_navigate" LIB hDLL
DLL FUNCTION WEBVIEW_DESTROY( hWebView AS LONG ) AS VOID PASCAL FROM "webview_destroy" LIB hDLL
DLL FUNCTION WEBVIEW_BIND( hWebView AS LONG, cName AS LPSTR, pFunc AS LONG, pVoid AS LONG ) AS VOID PASCAL FROM "webview_bind" LIB hDLL
DLL FUNCTION WEBVIEW_EVAL( hWebView AS LONG, cJavaScript AS LPSTR ) AS VOID PASCAL FROM "webview_eval" LIB hDLL
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
static void test( const char * x, const char * y, void * t )
{
MessageBox( 0, x, y, 0 );
}
HB_FUNC( TEST )
{
hb_retnl( ( HB_LONG ) test );
}
#pragma ENDDUMP- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Easier to understand implementation:
webview.prg

webview.prg
Code: Select all | Expand
#include "FiveWin.ch"
static hDLL, s_nCalls, s_cJsonResult
function Main()
local hWebView
hDLL = LoadLibrary( "webview.dll" )
hWebView = WebView_Create( 0, 0 )
WebView_Navigate( hWebView, Html() ) // or use a URL like "https://www.fivetechsoft.com/test.html" )
// WebView_Eval( hWebView, 'document.body.style.backgroundColor = "blue"' )
WebView_Bind( hWebView, "SendToFWH", SendToFWHAddress(), hWebView )
WebView_Run( hWebView )
WebView_Destroy( hWebView )
FreeLibrary( hDLL )
return nil
function WebView_SaveValues( cCalls, cJsonResult )
s_nCalls = Val( cCalls )
s_cJsonResult = cJsonResult
MsgInfo( s_nCalls, s_cJsonResult )
return nil
function Html()
local cHtml
TEXT INTO cHtml
data:text/html,
<html>
<head>
</head>
<body style="background-color:cyan">
<h2>Using WebView from FWH</h2>
<button onclick='SendToFWH( 123 )'>Call FWH app from web browser</button>
<button onclick='SendToFWH( 456 )'>Test 2</button>
<button onclick='SendToFWH( 123, 456, "yes it works!" )'>Test 3</button>
</body>
</html>
ENDTEXT
return cHtml
DLL FUNCTION WEBVIEW_CREATE( nDebug AS LONG, hWndParent AS LONG ) AS LONG PASCAL FROM "webview_create" LIB hDLL
DLL FUNCTION WEBVIEW_RUN( hWebView AS LONG ) AS VOID PASCAL FROM "webview_run" LIB hDLL
DLL FUNCTION WEBVIEW_NAVIGATE( hWebView AS LONG, cUrl AS LPSTR ) AS VOID PASCAL FROM "webview_navigate" LIB hDLL
DLL FUNCTION WEBVIEW_DESTROY( hWebView AS LONG ) AS VOID PASCAL FROM "webview_destroy" LIB hDLL
DLL FUNCTION WEBVIEW_BIND( hWebView AS LONG, cName AS LPSTR, pFunc AS LONG, pVoid AS LONG ) AS VOID PASCAL FROM "webview_bind" LIB hDLL
DLL FUNCTION WEBVIEW_EVAL( hWebView AS LONG, cJavaScript AS LPSTR ) AS VOID PASCAL FROM "webview_eval" LIB hDLL
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
#include <hbvm.h>
static void SendToFWH( const char * szNumRequests, const char * szJson, void * p )
{
hb_vmPushSymbol( hb_dynsymGetSymbol( "WEBVIEW_SAVEVALUES" ) );
hb_vmPushNil();
hb_vmPushString( szNumRequests, strlen( szNumRequests ) );
hb_vmPushString( szJson, strlen( szJson ) );
hb_vmFunction( 2 );
}
HB_FUNC( SENDTOFWHADDRESS )
{
hb_retnl( ( HB_LONG ) SendToFWH );
}
#pragma ENDDUMP
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Using this technique we are going to do unitary tests on web apps 
Next example will help you to see it much clearer, when you see a web app being used "automatically" without user intervention
and checking for itself if it is working as expected or not
Basically from our Harbour app, we load a web app and automatically start filling what is required and checking the results we get.
From Harbour we execute JavaScript using webview_eval() and from JavaScript we return the values to our Harbour app
Next example will help you to see it much clearer, when you see a web app being used "automatically" without user intervention
and checking for itself if it is working as expected or not
Basically from our Harbour app, we load a web app and automatically start filling what is required and checking the results we get.
From Harbour we execute JavaScript using webview_eval() and from JavaScript we return the values to our Harbour app
Re: Using WebView with Borland !!!
Hi Antonio,
Can we test WebView using msvc?
Thanks.
Can we test WebView using msvc?
Thanks.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.06
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.06
- Antonio Linares
- Site Admin
- Posts: 44515
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Using WebView with Borland !!!
Hakan,
> Can we test WebView using msvc?
yes, only 32 bits for now. But surely we will get it working on 64 bits too.
> Can we test WebView using msvc?
yes, only 32 bits for now. But surely we will get it working on 64 bits too.
Re: Using WebView with Borland !!!
Antonio Linares wrote:Hakan,
> Can we test WebView using msvc?
yes, only 32 bits for now. But surely we will get it working on 64 bits too.
That's enough.
Regards,
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.06
Hakan ONEMLI
Harbour & MSVC 2022 & FWH 23.06