Re: [Win32Lib] wrap Media control?

new topic     » goto parent     » topic index » view thread      » older message » newer message

Here's my updated example. It still doesn't load the media, but other methods work fine...

 
include Win32Lib.ew 
include wmp.ew 
without warning 
 
object PATH 
 
    PATH = getenv("PATH") 
    if sequence( PATH ) then 
        PATH = w32split( PATH, ";" ) 
        PATH = w32removeItem( "", PATH ) 
        VOID = setSearchPaths( PATH ) 
    end if 
 
constant icoMedia = extractIcon({ "wmp.dll", 7, 1 }) 
 
constant kAppName   = "Windows Media Player Demo" 
constant Main       = create( Window, kAppName, 0, Default, Default, 640, 480, 0 ) 
constant File       = create( Menu, "&File", Main, 0, 0, 0, 0, 0 ) 
constant File_Open  = create( MenuItem, "&Open...", File, 0, 0, 0, 0, 0 ) 
constant File_Sep1  = create( MenuItem, "-", File, 0, 0, 0, 0, 0 ) 
constant File_Exit  = create( MenuItem, "E&xit", File, 0, 0, 0, 0, w32AUTOCLOSE ) 
constant Help       = create( Menu, "&Help", Main, 0, 0, 0, 0, 0 ) 
constant Help_About = create( MenuItem, "&About...", Help, 0, 0, 0, 0, 0 ) 
 
constant WMPlayer   = create_com_control( WindowsMediaPlayer_clsid_ix, getHandle(Main), 0, 0, 0, 0 ) 
constant WMControls = ref_com_object( IWMPControls3_clsid_ix, invoke(WMPlayer, {WindowsMediaPlayer_p_controls}, {}, {}, DISPATCH_PROPERTYGET) ) 
constant WMSettings = ref_com_object( IWMPSettings2_clsid_ix, invoke(WMPlayer, {WindowsMediaPlayer_p_settings}, {}, {}, DISPATCH_PROPERTYGET) ) 
 
setIcon( Main, icoMedia ) 
 
procedure Main_onOpen( integer pSelf, integer pEvent, sequence pParams ) 
 
    VOID = invoke( WMSettings, {IWMPSettings2_p_autoStart}, {w32True}, {VT_BOOL}, DISPATCH_PROPERTYPUT ) 
    VOID = invoke( WMPlayer, {WindowsMediaPlayer_p_enabled}, {w32True}, {VT_BOOL}, DISPATCH_PROPERTYPUT ) 
 
end procedure 
setHandler( Main, w32HOpen, routine_id("Main_onOpen") ) 
 
procedure Main_onResize( integer pSelf, integer pEvent, sequence pParams ) 
 
    sequence rect 
     
    rect = getClientRect( pSelf ) 
    move_obj( WMPlayer, rect[1..4] ) 
     
end procedure 
setHandler( Main, w32HResize, routine_id("Main_onResize") ) 
 
procedure Main_onClose( integer pSelf, integer pEvent, sequence pParams ) 
 
    VOID = invoke( WMPlayer, {WindowsMediaPlayer_m_close}, {}, {}, DISPATCH_METHOD ) 
    release_com() 
 
end procedure 
setHandler( Main, w32HClose, routine_id("Main_onClose") ) 
 
procedure File_Open_onClick( integer pSelf, integer pEvent, sequence pParams ) 
 
    sequence filename, media 
    object pWMPCore, bstr 
    atom WMCore, WMMedia, WMError, WMErrorItem 
     
    filename = getOpenFileName( Main, "", {"All files (*.*)", "*.*"} ) 
    if length( filename ) = 0 then 
        return 
    end if 
     
    -- both methods result in #80020004 DISP_E_PARAMNOTFOUND: Parameter not found. 
     
    -- method #1 
    bstr = alloc_bstr( filename ) 
    WMMedia = ref_com_object( IWMPMedia_clsid_ix, invoke(WMPlayer, {WindowsMediaPlayer_m_newMedia}, {bstr}, {VT_BSTR}, DISPATCH_METHOD) ) 
    free_bstr( bstr ) 
     
    media = invoke( WMMedia, {IWMPMedia_p_name}, {}, {}, DISPATCH_PROPERTYGET ) 
    setText( Main, kAppName & " - " & media ) 
     
    VOID = invoke( WMPlayer, {WindowsMediaPlayer_p_currentMedia}, {WMMedia}, {VT_BYREF}, DISPATCH_PROPERTYPUT ) 
    if is_error( VOID ) then 
        VOID = message_box( sprintf("#%08x", VOID), "Error", MB_ICONERROR ) 
    end if 
     
    -- method #2 
    --bstr = alloc_bstr( filename ) 
    --VOID = invoke( WMPlayer, {WindowsMediaPlayer_p_URL}, {bstr}, {VT_BSTR}, DISPATCH_PROPERTYPUT ) 
    --free_bstr( bstr ) 
     
end procedure 
setHandler( File_Open, w32HClick, routine_id("File_Open_onClick") ) 
 
procedure Help_About_onClick( integer pSelf, integer pEvent, sequence pParams ) 
 
    sequence version 
     
    version = invoke( WMPlayer, {WindowsMediaPlayer_p_versionInfo}, {}, {}, DISPATCH_PROPERTYGET ) 
    VOID = message_box( "Version: " & version, "Windows Media Player Demo", MB_ICONINFORMATION ) 
 
end procedure 
setHandler( Help_About, w32HClick, routine_id("Help_About_onClick") ) 
 
WinMain( Main, Normal ) 

-Greg

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu