谢谢. 我试了好多都不成.

解决方案 »

  1.   

    IHTMLEmbedElement Interface's src
      

  2.   

    我也知道,但是这个不行, 因为我通过IDISPATCH的QueryInterface来查询IHTMLEmbedElement的接口, 总是返回空值, 反而是IHTMLBodyElement,IHTMLControlElement都能取到.
      

  3.   

    2 cheng_young(古道西风瘦马) : 
    通过IHTMLObjectElement接口怎么获得EMBED的url?
      

  4.   

    得不到IHTMLEmbedElement接口, 可能是因为网页上没用EMBED 标记, 而用的是OBJECT
    将网页上OBJECT改成EMBED 标记就可得到IHTMLEmbedElement接口
      

  5.   

    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH="400" HEIGHT="300">
     <PARAM NAME=movie VALUE="http://ad4.sina.com.cn/gzh/drinkpop.swf"> <PARAM NAME=quality VALUE=high>
     <EMBED src="http://ad4.sina.com.cn/gzh/drinkpop.swf" quality=high WIDTH="400" HEIGHT="300" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
    </OBJECT>上面是一个最简单的EMBED flash的例子, 既有OBJECT也有EMBED, 但是就是得不到IHTMLEmbedElement接口.
      

  6.   

    用这个:
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH="400" HEIGHT="300">
     <PARAM NAME=movie VALUE="http://ad4.sina.com.cn/gzh/drinkpop.swf"> <PARAM NAME=quality VALUE=high> 
    </OBJECT><EMBED src="http://ad4.sina.com.cn/gzh/drinkpop.swf" quality=high WIDTH="400" HEIGHT="300" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
      

  7.   

    <html>
    <head>
    </head>
    <body onload="Init()">
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH="400" HEIGHT="300" ID="Shockwaveflash1" >
     <PARAM NAME=movie VALUE="http://ad4.sina.com.cn/gzh/drinkpop.swf"> <PARAM NAME=quality VALUE=high>
     <EMBED src="http://ad4.sina.com.cn/gzh/drinkpop.swf" quality=high WIDTH="400" HEIGHT="300" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
    </OBJECT>
    </body><script>
    function Init()
    {
    var obj = new ActiveXObject( "ComCom.EmbededObject" );
    obj.GetMovie( Shockwaveflash1 );
    }
    </script>
    </html>
    STDMETHODIMP CEmbededObject::GetMovie(IDispatch* pDispatch)
    {
    // TODO: Add your implementation code here IDispatchEx* pDispatchEx = (IDispatchEx*) pDispatch; VARIANT var;
    BSTR bstrName( L"Movie" );
    DISPID dispid;
    IDispatchEx *pdex = pDispatchEx;
    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0}; // Assign to pdex and bstrName
    if (SUCCEEDED(pdex->GetDispID(bstrName, fdexNameCaseSensitive, &dispid)))
    {
    pdex->InvokeEx(dispid, LOCALE_USER_DEFAULT,
    DISPATCH_PROPERTYGET, &dispparamsNoArgs, 
    &var, NULL, NULL);
    } return S_OK;
    }Visual studio.NET/ie6 测试通过
    测试通过
      

  8.   

    http://expert.csdn.net/Expert/topic/934/934618.xml?temp=.5816004
      

  9.   

    http://expert.csdn.net/Expert/topic/1335/1335633.xml?temp=.3264734
      

  10.   

    HRESULT GetIDsOfNames( 
    REFIID riid,  
    OLECHAR FAR* FAR* rgszNames, 
    unsigned int cNames, 
    LCID lcid, 
    DISPID FAR* 
    rgDispId );要想通过上面的函数得到控件属性(一个EMBED flash)的DispID, 那参数rgszNames我应该用什么? 也就flash控件的名字是什么?
      

  11.   

    http://www.csdn.net/Develop/read_article.asp?id=14752