kann mir jemand sagen, warum ich das Objekt im Webgadget = Player nicht erwische, wäre Dankbar für einen Tip!
Code: Alles auswählen
#WebG = 5
Global WebObject.IWebBrowser2
Global MediaString$ = "Z:\Movies\Andreas Kümmert - Heart Of Stone.mp4" ; <======= Hier File einsetzen!
Global PlayerWidth= 600
Global PlayerHeight= 600
Procedure PRESENT_MediaPlayerInsideExplorer(GGadget,MediaString.s,PlayerWidth,PlayerHeight)
Protected tmedia.s
tmedia = "<html>"
tmedia = "<body topmargin=0 leftmargin=0 scroll='no'>"
tmedia + "<OBJECT id='Player' height='"+PlayerHeight+"' width='"+PlayerWidth+"' classid=clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95>"
; Wie kann ich das OBEJCT 'Player' einbinden "*WebObject.IWebBrowser2 = MyGetWindowLong(Player, #GWL_USERDATA)" und Abfragen auf zb. STOP
tmedia + "<param name='filename' value='"+MediaString+"'>"
tmedia + "<param name='animationatstart' value='true'>"
tmedia + "<param name='transparentatstart' value='true'>"
tmedia + "<param name='autostart' value='true'>"
tmedia + "<param name='showcontrols' value='true'>"
tmedia + "<param name='ShowStatusBar' value='false'>"
tmedia + "<param name='windowlessvideo' value='false'>"
tmedia + "</object>"
tmedia + "</body>"
tmedia + "</html>"
SetGadgetItemText(GGadget, #PB_Web_HtmlCode , tmedia)
EndProcedure
win = OpenWindow(#PB_Any,0,0,800,600,"test")
CreateGadgetList(WindowID(win))
WebGadget(#WebG,0,0,800,600,"")
; html$ = "<!DOCTYPE HTML PUBLIC "+Chr(34)+"-//W3C//DTD HTML 4.01 Transitional//EN"+Chr(34)+"><HTML><HEAD><TITLE>test</TITLE><BODY contentEditable=true>Press RETURN anywhere in this line. Now try SHIFT+RETURN.</BODY></HTML>"
; SetGadgetItemText(#WebG,#PB_Web_HtmlCode,html$)
PRESENT_MediaPlayerInsideExplorer(#WebG,MediaString$,PlayerWidth,PlayerHeight)
Repeat
we=WindowEvent()
; If we = #WM_KEYDOWN
wParam = EventwParam()
lParam = EventlParam()
If wParam = #VK_MEDIA_PLAY_PAUSE Or wParam = #VK_MEDIA_NEXT_TRACK
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#WebG), #GWL_USERDATA)
CoInitialize_(0)
CoCreateInstance_(?CLSID_IOleInPlaceActiveObject, 0, 1, ?IID_IOleInPlaceActiveObject,@OleObject.IOleInPlaceActiveObject)
If WebObject\QueryInterface(?IID_IOleInPlaceActiveObject, @OleObject) = #S_OK
web.MSG\message = we
; I know EventwParam() and EventwLaram()are no longer supported in Purebasic, but for now it works
web\wParam = wParam
web\lParam = lParam
Debug wParam
Debug lParam
Debug "#VK_MEDIA_PLAY_PAUSE"
OleObject\TranslateAccelerator(@web)
OleObject\Release()
EndIf
CoUninitialize_()
EndIf
If wParam=#VK_MEDIA_STOP
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(#WebG), #GWL_USERDATA)
CoInitialize_(0)
CoCreateInstance_(?CLSID_IOleInPlaceActiveObject, 0, 1, ?IID_IOleInPlaceActiveObject,@OleObject.IOleInPlaceActiveObject)
WebObject\QueryInterface(?IID_IOleInPlaceActiveObject, @OleObject)
web.MSG\message = #WM_KEYDOWN
;web\wParam = #VK_SHIFT
;web\lParam = #VK_RETURN
web\wParam = #VK_MEDIA_STOP
web\lParam = lParam
Debug "Return"
OleObject\TranslateAccelerator(@web)
OleObject\Release()
CoUninitialize_()
EndIf
; EndIf
Until GetAsyncKeyState_(#VK_ESCAPE) Or we=#PB_Event_CloseWindow
CloseWindow(win)
End
DataSection
;{00000117-0000-0000-C000-000000000046}
; IID_IOleInPlaceActiveObject:
; Data.l $00000117
; Data.w $0000, $0000
; Data.b $C0, $00, $00, $00, $00, $00, $00, $46
;
; ;{00000320-0000-0000-C000-000000000046}
; CLSID_IOleInPlaceActiveObject:
; Data.l $00000320
; Data.w $0000, $0000
; Data.b $C0, $00, $00, $00, $00, $00, $00, $46
; CLSID_MediaPlayer_MediaPlayer: ; {22D6F312-B0F6-11D0-94AB-0080C74C7E95}
CLSID_IOleInPlaceActiveObject:
Data.l $22D6F312
Data.w $B0F6,$11D0
Data.b $94,$AB,$0,$80,$C7,$4C,$7E,$95
; IID__MediaPlayerEvents: ; {2D3A4C40-E711-11D0-94AB-0080C74C7E95}
IID_IOleInPlaceActiveObject:
Data.l $2D3A4C40
Data.w $E711,$11D0
Data.b $94,$AB,$0,$80,$C7,$4C,$7E,$95
EndDataSection