Hello Toninho,
Many thank´s for the sample
Why me out of the application is returned a error GPF ?
It can post the example "c:\fwh\samples\webexp.prg" working with WIN_AxInit() / WIN_AxGetControlas() ?
toninhofwi wrote:This works:
_hInstance,
Toninho.
Sheng wrote:toninhofwi wrote:This works:
_hInstance,
Toninho.
You are lost "_hInstance" same as Harbour-mail-list.
#include "winapi.ch"
local oWindow, oActiveX
DEFINE WINDOW oWindow FROM 0,0 to 400,300 TITLE "Flash Player"
WIN_AxInit()
oActiveX = WIN_AxGetControl( WApi_CreateWindowEX( 0, "AtlAxWin", "ShockwaveFlash.ShockwaveFlash.1", nOR( WS_CHILD, WS_VISIBLE ), 0, 0, 200, 200, win_N2P( oWindow:hWnd ), 0 ), nil )
ACTIVATE WINDOW oWindow ON INIT oActiveX : LoadMovie( 0, "c:\flash.swf" )
No, it is a "working in progress", now Harbour have fully support for it and the GPF was fixed.
#include "FiveWin.ch"
function Main()
local oWnd, oActiveX
local cEvents := ""
DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"
oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
oWnd:oClient = oActiveX // To fill the entire window surface
oActiveX:Do( "Navigate", "http://www.google.com.br" )
oActiveX:SetProp( "StatusBar", .t. )
// MsgInfo( oActiveX:GetProp( "StatusBar" ) )
oActiveX:bOnEvent = { | event, aParams, pParams | cEvents += EventInfo( event, aParams, pParams, oActiveX ) }
ACTIVATE WINDOW oWnd ;
VALID ( MemoEdit( cEvents ), .t. )
return nil
function EventInfo( event, aParams, pParams, oActiveX )
local cMsg := "Event: " + cValToChar( event ) + CRLF
local n
cMsg += "Params: " + CRLF
for n = 1 to Len( aParams )
cMsg += cValToChar( aParams[ n ] ) + CRLF
next
if event == "BeforeNavigate2"
// MsgInfo( aParams[ 2 ] )
// SetEventParam( pParams, 7, .t. ) // Comment this to allow navigation
endif
return cMsg + CRLF
Antonio Linares wrote:Are ActiveX events working on the Harbour new build ?
#include "winapi.ch"
local oWindow, oActiveX
DEFINE WINDOW oWindow FROM 0,0 to 400,300 TITLE "Google"
WIN_AxInit()
oActiveX = WIN_AxGetControl( WApi_CreateWindowEX( 0, "AtlAxWin", "Shell.Explorer", nOR( WS_CHILD, WS_VISIBLE ), 0, 0, 200, 200, win_N2P( oWindow:hWnd ), 0 ), @LogFunc() )
ACTIVATE WINDOW oWindow ON INIT oActiveX:Navigate( "http://www.google.com" )
static procedure LogFunc( ... )
local aParam := {...}
AEval( aParam, { |x,y| IIf( ValType( x ) == "O", aParam[ y ] := "O:" + x:ClassName, nil ) } )
LogToFile( Time() + " " + HB_VALTOEXP( aParam ) )
return
Yes it have, and I confirm it with Mindaugas, pleaser look:
#include "fivewin.ch"
function MAIN
local oWindow, oActiveX
DEFINE WINDOW oWindow FROM 0,0 to 400,300 TITLE "Google"
WIN_AxInit()
oActiveX = WIN_AxGetControl( WApi_CreateWindowEX( 0, "AtlAxWin", "Shell.Explorer", nOR( WS_CHILD, WS_VISIBLE ), 0, 0, 200, 200, win_N2P( oWindow:hWnd ), 0 ), @LogFunc() )
ACTIVATE WINDOW oWindow ON INIT oActiveX:Navigate( "http://www.google.com" )
return NIL
static procedure LogFunc( ... )
local aParam := {...}
AEval( aParam, { |x,y| IIf( ValType( x ) == "O", aParam[ y ] := "O:" + x:ClassName, nil ) } )
msgstop( Time() + " " + HB_VALTOEXP( aParam ) )
* LogToFile( Time() + " " + HB_VALTOEXP( aParam ) )
return
Application Internal Error - C:\test\CODEJ.exe
Terminated at: 2009.06.17 16:35:38
Unrecoverable error 6005: Exception error:
Exception Code:C0000027
Exception Address:7C80DEAC
EAX:00000000 EBX:00000000 ECX:00000000 EDX:00000000
ESI:00000000 EDI:00000000 EBP:0012DC58
CS:EIP:001B:7C80DEAC SS:ESP:0023:0012DC48
DS:0023 ES:3B0023 FS:003B GS:0000
Flags:00000202
CS:EIP: 5D 5F 5E 5B 8B E5 5D C3 8B 4C 24 04 F7 41 04 06
SS:ESP: 0012DC58 7C816FF0 00000000 0012FFE0 0012DC7C 7C839B65 0012FFE0 0012DC7C 00000000 00000000 00000000 0012DD68 0012DD80 0012DCA0 7C9032A8 0012DD68
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
7C80DEAC 0012DC58 0012DC7C 7C839B65 0012FFE0 0012DC7C 00000000 00000000 00000000 0012DD68 0012DD80
7C839B65 0012DC7C 0012DCA0 7C9032A8 0012DD68 0012FFE0 0012DD80 0012DD3C 0012E184 7C9032BC 0012FFE0
7C9032A8 0012DCA0 0012DD50 7C90327A 0012DD68 0012FFE0 0012DD80 0012DD3C 7C839AF0 00000001 0012DD68 0012FFE0
7C90327A 0012DD50 0012E058 7C90E48A 00000000 0012DD80 0012DD68 0012DD80 C0000090 00000000 00000000 77C2FA29
7C90E48A 0012E058 0012E0F0 10110443 40000000 47C6D096 101104C1 7E3684B2 0012E0F0 0012E0F8 0012E0FC 0012E0F4
10110443 0012E0F0 0012E190 73D8DA0E 001D08DA 00000362 73D8DA1A 00000001 0012E410 73D8D9C7 0012E410 00000000
...
Modules:
Called from WAPI_CREATEWINDOWEX(0)
Called from MAIN(58) in CODEJ.prg
#include "FiveWin.ch"
#define xtpControlError 0
#define xtpControlButton 1
#define xtpControlPopup 2
#define xtpControlButtonPopup 3
#define xtpControlSplitButtonPopup 4
#define xtpControlComboBox 5
#define xtpControlEdit 6
#define xtpControlCustom 7
#define xtpControlLabel 8
#define xtpControlCheckBox 9
#define xtpControlGallery 10
#define xtpControlRadioButton 11
#define xtpImageNormal 0
#define xtpImageDisabled 1
#define xtpImageHot 2
#define xtpImageChecked 3
#define xtpImagePressed 4
function Main()
local oWnd, oAct
local oRb
local oQA, oQBtn1, oQBtn2, oQBtn3
local oSysButton, oControl, oPopupBar
local oStatusBar, oToolTipContext, oIcons
local oTabFiles, oGroup1
local oTabEdit, oGroup2
local oTabBuild
local aButtons := {}
local oButton1, oButton2, oButton3, oButton4
local oExitBtn, oExitBtn2
local oBmp1, oBmp2, oBmp3, obmp4, obmp5, obmp6, obmp7, obmp8, obmp9
local oAct2
DEFINE WINDOW oWnd TITLE "FWH Support Codejock ActiveX"
WIN_AxInit()
oBmp1 := TBitmap():Define( , "\fwh\bitmaps\16x16\new2.bmp", oWnd )
oBmp2 := TBitmap():Define( , "\fwh\bitmaps\16x16\open2.bmp", oWnd )
oBmp3 := TBitmap():Define( , "\fwh\bitmaps\alphabmp\explorer.bmp", oWnd )
oBmp4 := TBitmap():Define( , "\fwh\bitmaps\32x32\open.bmp", oWnd )
oBmp5 := TBitmap():Define( , "\fwh\bitmaps\32x32\people.bmp", oWnd )
oBmp6 := TBitmap():Define( , "\fwh\bitmaps\32x32\keys.bmp", oWnd )
oBmp7 := TBitmap():Define( , "\fwh\bitmaps\32x32\quit.bmp", oWnd )
oBmp8 := TBitmap():Define( , "\fwh\bitmaps\16x16\copy.bmp", oWnd )
oBmp9 := TBitmap():Define( , "\fwh\bitmaps\16x16\info.bmp", oWnd )
* oAct := TActiveX():New( oWnd, "Codejock.CommandBarsFrame.13.0.0", 0, 0, 0, 0 )
oAct := WIN_AxGetControl( WApi_CreateWindowEX( 0, "AtlAxWin", "Codejock.CommandBarsFrame.13.0.0", nOR( WS_CHILD, WS_VISIBLE ), 0, 0, 600, 500, win_N2P( oWnd:hWnd ), 0 ) )
oAct2 := CreateObject("Codejock.CommandbarsGlobalSettings.13.0.0")
WiTH OBJECT oAct2
:License:= "CommandBars Control Copyright (c) " + ;
"2003-2006 Codejock Software" +CRLF+ "PRODUCT-ID: " + ;
"XCB-ESD-ACTX-9600" + CRLF + "VALIDATE-CODE: XXX-XXX-XXX-XXX"
END WITH
*oSettings := oAct2:GetProp( "GlobalSettings" )
MsgInfo( oAct2:License )
MsgInfo( oAct2:version)
oAct:bOnEvent = { | cEvent, aParams, pParams | RibbonBarEvent( cEvent, aParams, pParams, aButtons, oWnd ) }
oAct:Do( "AttachToWindow", oWnd:hWnd )
oAct:Do( "EnableOffice2007Frame", .T. )
oAct:Do( "VisualTheme", .T. )
// ToolTipContext - Richard
oToolTipContext := TOleAuto():New( ActXPdisp( oAct:hActiveX ) )
oToolTipContext := oToolTipContext:ToolTipContext()
oToolTipContext:Style = 5 && xtpToolTipOffice2007
oToolTipContext:ShowTitleAndDescription( .T., 0 )
oToolTipContext:ShowImage( .T., 0 )
oToolTipContext:SetMargin( 2, 2, 2, 2 )
oToolTipContext:MaxTipWidth = 180
// StatusBar-Richard
oStatusBar := TOleAuto():New( ActXPdisp( oAct:hActiveX ) )
oStatusBar:StatusBar:Visible = .T.
oStatusBar:StatusBar:AddPane( 0 )
oStatusBar:StatusBar:AddPane( 59137 )
oStatusBar:StatusBar:AddPane( 59138 )
oStatusBar:StatusBar:AddPane( 59139 )
oStatusBar:StatusBar:IdleText = "FWH support Codejock RibbonBar"
oIcons := oAct:Do( "icons" )
oIcons:AddBitmap( oBmp1:hBitmap,1,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp2:hBitmap,2,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp3:hBitmap,3,xtpImageNormal,.t. ) // 4th param, Bool to Alpha Channel Support
oIcons:AddBitmap( oBmp4:hBitmap,4,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp5:hBitmap,5,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp6:hBitmap,6,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp7:hBitmap,7,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp8:hBitmap,8,xtpImageNormal,.f. )
oIcons:AddBitmap( oBmp9:hBitmap,9,xtpImageNormal,.f. )
oIcons:LoadBitmap( "\fwh\bitmaps\32x32\edit.bmp",4, xtpImageNormal)
//oAct:Hide()
// RibbonBar - Richard
oRb = oAct:Do( "AddRibbonBar", "Ribbon Bar" )
oRb:EnableDocking(64)
oRb:EnableFrameTheme()
oRb:ShowQuickAccessBelowRibbon(.F.)
oRb:ShowCaptionAlways(.T.)
oRb:ShowQuickAccess(.T.)
oRb:ShowGripper()
// QuickAccess - Richard
oQA:= oRb:QuickAccessControls()
oQBtn1 := oQA:Add( 1, 1, "&New" )
oQBtn2 := oQA:Add( 1, 2, "&Save" )
oQBtn3 := oQA:Add( 1, 8, "©" )
oQA:Add( 1, 9, "&info" )
// Add SysButton - Richard
oSysButton := oRb:AddSystemButton()
oSysButton:IconId( 5 )
oSysButton:CommandBar:Controls:Add( 1, 4, "&New" )
oSysbutton:CommandBar:Controls:Add( 1, 5, "&Open..." )
oSysbutton:CommandBar:Controls:Add( 1, 6, "&Save" )
oSysbutton:CommandBar:Controls:Add( 1, 6, "Save &As..." )
oControl := oSysButton:CommandBar:Controls:Add( 4, 5, "&Print")
oControl:BeginGroup = .T.
oPopupBar := TOleAuto():New( ActXPdisp( oAct:hActiveX ) )
oPopupBar := oPopupBar:CreateCommandBar("CXTPRibbonSystemPopupBarPage")
oControl:CommandBar = oPopupBar
oControl := oPopupBar:Controls:Add( 8, 0, "Preview and print the document")
oControl:Width = 296
oControl:DefaultItem = .T.
oControl:Style = 1 && xtpButtonCaption
oPopupBar:DefaultButtonStyle = 5 && xtpButtonCaptionAndDescription
oPopupBar:SetIconSize( 32, 32 )
oPopupBar:ShowGripper = .F.
oPopupBar:Controls:Add( 1, 4, "Print Pre&view" )
oPrnSetup = oPopupBar:Controls:Add( 1, 5, "Pr&int Setup..." )
oPopupBar:Controls:Add( 1, 6, "Print Pre&view" )
oSysbutton:CommandBar:Controls:Add( 1, 1230, "Prepare" )
oSysbutton:CommandBar:Controls:Add( 1, 1235, "Send" )
oSysbutton:CommandBar:Controls:Add( 1, 1230, "Publish" )
oExitBtn2 = oSysbutton:CommandBar:Controls:Add( 1, 7, "Close" )
oSysbutton:CommandBar:SetIconSize( 32, 32 )
// RibbonBar Table - Richard
oTabFiles = oRb:InsertTab( 0, "&Files" )
oTabFiles_Grp1 = oTabFiles:Groups:AddGroup("&Clipboard", 0)
oTabFiles_Grp1:ShowOptionButton = .T.
// TabFiles Group ToolTip - Richard
oTabFiles_Grp1:ControlGroupOption:Id = 1000
oTabFiles_Grp1:ControlGroupOption:ToolTipText = "Clipboard"
oTabFiles_Grp1:ControlGroupOption:DescriptionText = "Show clipboard dialog"
oTabFiles_Grp1:ControlGroupOption:IconId(3)
oPaste := oTabFiles_Grp1:Add( 4, 1, "&Paste")
oPaste:CommandBar:Controls:Add( 1, 1, "&Paste" )
oPaste:CommandBar:Controls:Add( 1, 2, "&Paste Special" )
oButton1 = oTabFiles_Grp1:Add( xtpControlButton, 2, "&Cut" )
oButton2 = oTabFiles_Grp1:Add( xtpControlButton, 3, "&Copy" )
oBtn1 := oTabFiles_Grp1:Add( 1, 9, "Format")
oBtn1:Enabled = .F.
oBtn2 := oTabFiles_Grp1:Add( 1, 8, "Delete")
oExitBtn := oTabFiles_Grp1:Add( xtpControlButton, 7, "Exit")
oTabFiles_Grp2 := oTabFiles:Groups:AddGroup( "&Font", 1)
oButton3 = oTabFiles_Grp2:Add( xtpControlButton, 4, NIL )
oButton4 = oTabfiles_Grp2:Add( xtpControlButton, 3, "" )
oButton4:SetIconSize( 64,64 )
oButton4:Width = 70
oButton4:Height = 70
oTabEdit = oRb:InsertTab( 1, "&Edit" )
oTabBuild = oRb:InsertTab( 2, "&Build" )
oTabBuild:Color = 5
oTable_Grp := oTabBuild:Groups:AddGroup( "&Show/Hide", 5025)
oTable_Grp:Add( 9, 2807, "Ruler" )
oTable_Grp:Add( 9, 2808, "GridLines" )
oTable_Grp:Add( 9, 2809, "Properties" )
oTable_Grp:Add( 9, 2810, "Document Map" )
oTable_Grp:Add( 9, 2811, "Thumbnails" )
oTable_Grp:Add( 9, 2812, "Document Action Bar" )
oControlOptions := oRb:Controls:Add( 2, 0, "Options")
oControlOptions:Flags = 1 && xtpFlagRightAlign
oControl := oControlOptions:CommandBar:Controls:Add( 2, 0, "Styles")
oControl:CommandBar:Controls:Add( 1, 3000, "Blue" )
oControl:CommandBar:Controls:Add( 1, 3001, "Black" )
oControl:CommandBar:Controls:Add( 1, 3003, "Silver" )
oControl:CommandBar:Controls:Add( 1, 3002, "Aqua" )
oControlPopup := oControlOptions:CommandBar:Controls:Add( 2, 0, "Font", -1, .F.)
oControlPopup:CommandBar:Controls:Add( 11, 32883, "System Default", -1, .F.)
oControl := oControlPopup:CommandBar:Controls:Add( 11, 32884, "Normal", -1, .F.)
oControl:BeginGroup = .T.
oControlPopup:CommandBar:Controls:Add( 11, 32885, "Large", -1, .F.)
oControlPopup:CommandBar:Controls:Add( 11, 32886, "Extra Large", -1, .F.)
oControl := oControlPopup:CommandBar:Controls:Add( 1, 32887, "Auto Resize Icons", -1, .F.)
oControl:BeginGroup = .T.
oControlOptions:CommandBar:Controls:Add( 1, 3004, "Right To Left" )
oControlOptions:CommandBar:Controls:Add( 1, 3005, "Animation" )
oControlAbout := oRb:Controls:Add( 1, 4000, "&About")
oControlAbout:Flags = 1 && xtpFlagRightAlign
AAdd( aButtons, oButton1 )
AAdd( aButtons, oButton2 )
AADD( aButtons, oQBtn1 )
AADD( aButtons, oQBtn2 )
AADD( aButtons, oQBtn3 )
AADD( aButtons, oExitBtn )
AADD( aButtons, oExitBtn2 )
AADD( aButtons, oControlAbout )
AADD( aButtons, oPrnSetup )
oButton1:Caption = "FiveWin power!"
oButton1:TooltipText = "Ribbonbar for FWH"
ACTIVATE WINDOW oWnd
return nil
function RibbonBarEvent( cEvent, aParams, pParams, aButtons, oWnd )
do case
case cEvent == "Execute" .and. Len( aButtons ) > 0
do case
case aButtons[ 1 ]:hObj == aParams[ 1 ]
MsgInfo( "Button 1" )
case aButtons[ 2 ]:hObj == aParams[ 1 ]
MsgInfo( "Button 2" )
case aButtons[ 3 ]:hObj == aParams[ 1 ]
MsgInfo( "From Quick Access Button 1" )
case aButtons[ 4 ]:hObj == aParams[ 1 ]
MsgInfo( "From Quick Access Button 2" + CRLF + "FIVEWIN SHARING POWER" )
case aButtons[ 5 ]:hObj == aParams[ 1 ]
MsgInfo( "From Quick Access Button 3" )
case aButtons[ 6 ]:hObj == aParams[ 1 ]
oWnd:End()
case aButtons[ 7 ]:hObj == aParams[ 1 ]
oWnd:End()
case aButtons[ 8 ]:hObj == aParams[ 1 ]
MsgInfo( "FWH's ActiveX Power support Codejock", "About Codejock" )
case aButtons[ 9 ]:hObj == aParams[ 1 ]
PrinterSetup()
endcase
endcase
return nil
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: No registered users and 61 guests