[トップ][一覧][最近の更新]

編集履歴:差分

記録開始以来のHSPのCOMを利用しない方法でWMPの変更箇所

  • + 追加された行
  • - 削除された行

編集履歴ページに戻る

- 番外編にしてみた。
- 
- 
- 
- 
- [[$$toc]]
- - →[[HSP3・サンプルスクリプト]]に戻る
- 
- ----
- これにイベントを取るとなると、もっと面倒になります。~%
- 圧倒的にCOMを利用したほうが簡単にできますね。~%
- 
- * スクリプト
- {{{
- ;
- ; COMを使わない方法。
- ;
- 
- #packopt runtime "hsp3c.hrt"
- 
- onexit gosub *exit
- 
- #define QueryInterface             0
- #define AddRef                     1
- #define Release                    2
- #define put_URL                    9
- 
- #uselib "oleaut32.dll"
- #cfunc SysAllocString "SysAllocString" wptr
- #func  SysFreeString "SysFreeString" int
- 
- #uselib "ole32.dll"
- #func global CoInitialize   "CoInitialize" nullptr
- #func global CoUninitialize "CoUninitialize"
- 
- #uselib "atl.dll"
- #func AtlAxWinInit "AtlAxWinInit"
- #func AtlAxGetControl "AtlAxGetControl" int,var
- 
- 	CoInitialize : AtlAxWinInit
- 
- 	screen 0,640,500
- 
- 	objsize 50,20
- 
- 	pos 0,0 : button gosub "OPEN",*go1
- 
- 	pos 0,20
- 	winobj "AtlAxWin","WMPlayer.OCX",0,$50000000,640,480
- 	WMPID=stat
- 
- 	AtlAxGetControl objinfo(WMPID,2),ppWMP
- 	dupptr pWMP,ppWMP,4:dupptr WMP,pWMP,46*4
- 
- stop
- 
- *go1
-         sdim path,520
-         dialog "mpg;*.avi;*.wmv;*.ram;*.mp3;*.wav",16,"Movie"
-         if stat == 0 {return}
-         path = refstr
- 	title ""+getpath(path,9)
- 
- 	bstr=SysAllocString(path)
- 
- 	prm=ppWMP,bstr : hr=callfunc(prm,WMP.put_URL,2)
- 
- 	SysFreeString bstr
- 
- return
- 
- *exit
- 	hr=callfunc(ppWMP,WMP.Release,1):ppWMP=0
- 	CoUninitialize
- 	clrobj
- end
- }}}
- * memo~%
- 2006/04/08 14:09:09 JST~%
- 変更~%
- onexit *exit -> onexit gosub *exit