This template embeds Windows Media Player in an instance of the WebBrowser Control.
#COMPILE EXE
#DIM ALL
%UNICODE = 1
' // Include files for external files
%USEWEBBROWSER = 1 ' // Use the WebBrowser control
#INCLUDE ONCE "CWindow.inc" ' // CWindow class
#INCLUDE ONCE "mshtml.inc" ' // MSHTML
' // Identifier
%IDC_WEBBROWSER = 101
' ########################################################################################
' Main
' ########################################################################################
FUNCTION WinMain (BYVAL hInstance AS DWORD, BYVAL hPrevInstance AS DWORD, BYVAL lpszCmdLine AS WSTRINGZ PTR, BYVAL nCmdShow AS LONG) AS LONG
' // Create an instance of the class
LOCAL pWindow AS IWindow
pWindow = CLASS "CWindow"
IF ISNOTHING(pWindow) THEN EXIT FUNCTION
' // Create the main window
pWindow.CreateWindow(%NULL, "CWindow.AddWebBrowser Demo: Windows Media Player", 0, 0, 478, 428, -1, -1, CODEPTR(WindowProc))
' // Center the window
pWindow.CenterWindow
' // Add a WebBrowser control and display a YouTube video
LOCAL hCtl AS DWORD
LOCAL s AS WSTRING
LOCAL bstrURL AS WSTRING
bstrURL = "useglue.wmv" ' --> change me
' // Build the web page. Remember to always start it with "MSHTML:".
s = "MSHTML:<?xml version=""1.0""?>"
s += "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">" & $CRLF
s += "<html>" & $CRLF
s += "<head>" & $CRLF
s += "<title>Windows Media Player</title>" & $CRLF
s += "" & $CRLF
s += "</head>" & $CRLF
s += "<body scroll=""auto"" style=""margin: 0px 0px 0px 0px"">"
s += "<object id=""video"" classid=""clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"" type=""application/x-oleobject"" width=""100%"" height=""100%"">" & $CRLF
s += "<param name=""URL"" value=" & bstrURL & ">" & $CRLF
s += "<param name=""Enabled"" value=""true"">" & $CRLF
s += "<param name=""AutoStart"" value=""true"">" & $CRLF
s += "<param name=""PlayCount"" value=""1"">" & $CRLF
s += "<param name=""Volume"" value=""50"">" & $CRLF
s += "<param name=""Balance""value=""0"">" & $CRLF
s += "<param name=""Rate"" value=""1.0"">" & $CRLF
s += "<param name=""Mute"" value=""false"">" & $CRLF
s += "<param name=""FullScreen"" value=""false"">" & $CRLF
s += "<param name=""uiMode"" value=""full"">" & $CRLF
s += "</object>" & $CRLF
s += "" & $CRLF
s += "</body>" & $CRLF
s += "" & $CRLF
s += "</html>" & $CRLF
' // Create the control
hCtl = pWindow.AddWebBrowserControl(pWindow.hwnd, %IDC_WEBBROWSER, s, 5, 5, 582, 356, -1, -1)
' // Default message pump (you can replace it with your own)
pWindow.DoEvents(nCmdShow)
END FUNCTION
' ########################################################################################
' ========================================================================================
' Main callback function.
' ========================================================================================
FUNCTION WindowProc (BYVAL hwnd AS DWORD, BYVAL uMsg AS DWORD, BYVAL wParam AS DWORD, BYVAL lParam AS LONG) AS LONG
LOCAL rc AS RECT
SELECT CASE uMsg
CASE %WM_SYSCOMMAND
' // Capture this message and send a WM_CLOSE message
' // Note: Needed with some OCXs, that otherwise remain in memory
IF (wParam AND &HFFF0) = %SC_CLOSE THEN
SendMessage hwnd, %WM_CLOSE, 0, 0
EXIT FUNCTION
END IF
CASE %WM_COMMAND
SELECT CASE LO(WORD, wParam)
CASE %IDCANCEL
' // If the Escape key has been pressed...
IF HI(WORD, wParam) = %BN_CLICKED THEN
' // ... close the application by sending a WM_CLOSE message
SendMessage hwnd, %WM_CLOSE, 0, 0
EXIT FUNCTION
END IF
END SELECT
CASE %WM_SIZE
IF wParam <> %SIZE_MINIMIZED THEN
' // Get the client area of the main window
GetClientRect hwnd, rc
' // Resize the control
MoveWindow GetDlgItem(hwnd, %IDC_WEBBROWSER), 5, 5, rc.nRight - rc.nLeft - 10, rc.nBottom - rc.nTop - 10, %TRUE
END IF
CASE %WM_DESTROY
' // End the application
PostQuitMessage 0
EXIT FUNCTION
END SELECT
' // Pass unprocessed messages to Windows
FUNCTION = DefWindowProc(hwnd, uMsg, wParam, lParam)
END FUNCTION
' ========================================================================================