Win32 API 日本語リファレンス
ホームMedia.MediaPlayer › IWMPControls

IWMPControls

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID74c09e02-f828-11d2-a74b-00a0c905f36e継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 16

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_isAvailable(LPWSTR bstrItem, VARIANT_BOOL* pIsAvailable)
bstrItemLPWSTRin可用性を問い合わせる操作名やコマンドを指定する文字列。play や pause などを指定する。
pIsAvailableVARIANT_BOOL*inout指定操作が現在実行可能かを受け取る。VARIANT_TRUE で利用可、VARIANT_FALSE で不可。
vtbl 8 HRESULT play()
vtbl 9 HRESULT stop()
vtbl 10 HRESULT pause()
vtbl 11 HRESULT fastForward()
vtbl 12 HRESULT fastReverse()
vtbl 13 HRESULT get_currentPosition(DOUBLE* pdCurrentPosition)
pdCurrentPositionDOUBLE*inout現在の再生位置を秒単位の倍精度浮動小数点で受け取る出力先。
vtbl 14 HRESULT put_currentPosition(DOUBLE dCurrentPosition)
dCurrentPositionDOUBLEinシーク先の再生位置を秒単位で指定する。先頭からの経過秒数。
vtbl 15 HRESULT get_currentPositionString(LPWSTR* pbstrCurrentPosition)
pbstrCurrentPositionLPWSTR*inout現在位置を hh:mm:ss 形式の文字列で受け取る。呼び出し側で解放する。
vtbl 16 HRESULT next()
vtbl 17 HRESULT previous()
vtbl 18 HRESULT get_currentItem(IWMPMedia** ppIWMPMedia)
ppIWMPMediaIWMPMedia**out現在再生中のメディア項目を表す IWMPMedia インターフェイスを受け取る。解放が必要。
vtbl 19 HRESULT put_currentItem(IWMPMedia* pIWMPMedia)
pIWMPMediaIWMPMedia*in現在の再生対象に設定するメディア項目の IWMPMedia インターフェイス。
vtbl 20 HRESULT get_currentMarker(INT* plMarker)
plMarkerINT*inout現在のマーカー番号を受け取る。マーカーは 1 始まりの整数。
vtbl 21 HRESULT put_currentMarker(INT lMarker)
lMarkerINTin移動先のマーカー番号を指定する。1 始まりの整数で指定する。
vtbl 22 HRESULT playItem(IWMPMedia* pIWMPMedia)
pIWMPMediaIWMPMedia*in再生を開始するメディア項目を表す IWMPMedia インターフェイス。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWMPControls "{74C09E02-F828-11D2-A74B-00A0C905F36E}"
#usecom global IWMPControls IID_IWMPControls "{}"
#comfunc global IWMPControls_get_isAvailable            7 wstr,var
#comfunc global IWMPControls_play                       8
#comfunc global IWMPControls_stop                       9
#comfunc global IWMPControls_pause                      10
#comfunc global IWMPControls_fastForward                11
#comfunc global IWMPControls_fastReverse                12
#comfunc global IWMPControls_get_currentPosition        13 var
#comfunc global IWMPControls_put_currentPosition        14 double
#comfunc global IWMPControls_get_currentPositionString  15 var
#comfunc global IWMPControls_next                       16
#comfunc global IWMPControls_previous                   17
#comfunc global IWMPControls_get_currentItem            18 sptr
#comfunc global IWMPControls_put_currentItem            19 sptr
#comfunc global IWMPControls_get_currentMarker          20 var
#comfunc global IWMPControls_put_currentMarker          21 int
#comfunc global IWMPControls_playItem                   22 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。