IMSVidCtl
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IMSVidCtl インターフェイスは、Video Control のメインインターフェイスです。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidCtl)。
メソッド 43
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_AutoSize メソッドは、Video Control がその内容全体を表示するために自動的にサイズ変更されるかどうかを決定する値を取得します。
| pbool | VARIANT_BOOL* | out | プロパティの現在の値を受け取る VARIANT_BOOL 型の変数へのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_AutoSize メソッドは、Video Control がその内容全体を表示するために自動的にサイズ変更されるかどうかを指定します。
| vbool | VARIANT_BOOL | in | Video Control が自動的にサイズ変更されるかどうかを指定します。次のいずれかの値を使用します。
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_BackColor メソッドは、Video Control の背景色を取得します。
| backcolor | DWORD* | out | OLE_COLOR 値を受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_BackColor メソッドは、Video Control の背景色を指定します。
| backcolor | DWORD | in | 背景色を OLE_COLOR 値として指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
Video Control は、フィルターグラフが停止しているか、または構築されていないときに背景色を使用します。また、レターボックスモードでビデオ矩形の未使用領域を塗りつぶす際にもこの色を使用します。背景色は「境界」色と呼ばれることもあります。
例
COLORREF orange = RGB(0xFF, 0x80, 0x00);
hr = pVideoControl->put_BackColor(static_cast<OLE_COLOR>(orange));
get_Enabled メソッドは、Video Control がユーザー生成イベントに応答できるかどうかを決定する値を取得します。
| pbool | VARIANT_BOOL* | out | プロパティの現在の値を受け取る VARIANT_BOOL 型の変数。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_Enabled メソッドは、Video Control がユーザー生成イベントに応答できるかどうかを決定する値を指定します。
| vbool | VARIANT_BOOL | in | プロパティの新しい値を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_TabStop メソッドは、ユーザーが TAB キーを使用して Video Control にフォーカスを与えられるかどうかを照会します。
| pbool | VARIANT_BOOL* | out | 次のいずれかの値を受け取ります。
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_TabStop メソッドは、ユーザーが TAB キーを使用して Video Control にフォーカスを与えられるかどうかを指定します。
| vbool | VARIANT_BOOL | in | 次のいずれかの値を指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_Window メソッドは、Video Control に関連付けられたウィンドウを取得します。
| phwnd | HWND* | out | ウィンドウへのハンドルを受け取ります。 |
戻り値
Refresh メソッドは、Video Control の外観を直ちに更新します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、標準の ActiveX コントロールメソッドです。Video Control ウィンドウに再描画を強制します。再描画の前に、Video Control はビデオ矩形が最新であること、およびすべての Video Mixing Renderer の設定が正しいことを確認します。
get_DisplaySize メソッドは、表示サイズを取得します。
| CurrentValue | DisplaySizeList* | out | DisplaySizeList 列挙体のメンバーを受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
AutoSize プロパティが false の場合、表示サイズは効果を持ちません。
put_DisplaySize メソッドは、表示サイズを指定します。
| NewValue | DisplaySizeList | in | 表示サイズを DisplaySizeList 列挙体のメンバーとして指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
AutoSize プロパティが false の場合、このプロパティを設定しても効果はありません。
get_MaintainAspectRatio メソッドは、Video Control がソースビデオのアスペクト比を維持するかどうかを照会します。
| CurrentValue | VARIANT_BOOL* | out | 次のいずれかの値を受け取ります。
|
戻り値
put_MaintainAspectRatio メソッドは、Video Control がソースビデオのアスペクト比を維持するかどうかを指定します。
| NewValue | VARIANT_BOOL | in | 次のいずれかの値を指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_ColorKey メソッドは、ビデオレンダラーが使用しているカラーキーを取得します。
| CurrentValue | DWORD* | out | OLE_COLOR 値を受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
カラーキーは、ビデオレンダラーがオーバーレイサーフェスに描画する際に使用されます。
例
OLE_COLOR ocKey;
COLORREF clrKey;
pVideoControl->get_ColorKey(&ocKey);
OleTranslateColor(ocKey, 0, &clrKey);
put_ColorKey メソッドは、カラーキーを指定します。
| NewValue | DWORD | in | カラーキーを OLE_COLOR 値として指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
カラーキーは、ビデオレンダラーがオーバーレイサーフェスに描画する際に使用されます。
get_InputsAvailable メソッドは、指定されたカテゴリ内で使用可能な入力デバイスを取得します。
| CategoryGuid | LPWSTR | in | 列挙するカテゴリの GUID を指定する BSTR。 |
| pVal | IMSVidInputDevices** | out | IMSVidInputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、オートメーションクライアント向けに提供されています。C++ アプリケーションでは、BSTR 値ではなく GUID を受け取る IMSVidCtl::get__InputsAvailable メソッドを使用できます。
メソッドが成功すると、IMSVidInputDevices インターフェイスには未解放の参照カウントが残ります。呼び出し元はインターフェイスを解放する必要があります。
get_OutputsAvailable メソッドは、指定されたカテゴリで使用可能な出力デバイスを取得します。
| CategoryGuid | LPWSTR | in | 列挙するカテゴリの GUID を指定する BSTR。 |
| pVal | IMSVidOutputDevices** | out | IMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get__InputsAvailable メソッドは、指定されたカテゴリで使用可能な入力デバイスを取得します。
| CategoryGuid | GUID* | in | 列挙するカテゴリを指定する GUID へのポインター。サポートされるカテゴリには次のものがあります。
| ||||||||
| pVal | IMSVidInputDevices** | out | IMSVidInputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、入力デバイスの読み取り専用コレクションを返します。返された IMSVidInputDevices ポインターを使用してコレクションを列挙します。
例
次の例は、使用可能な BDA 互換チューナーを列挙し、そのフレンドリ名を取得します。
CComPtr<IMSVidInputDevices> pInputs;
hr = pVidControl->get__InputsAvailable(&KSCATEGORY_BDA_NETWORK_PROVIDER, &pInputs);
if (SUCCEEDED(hr))
{
long lCount;
hr = pInputs->get_Count(&lCount);
for (long ix = 0; ix < lCount; ix++)
{
CComBSTR bstrName;
CComVariant var(ix);
CComPtr<IMSVidInputDevice> pInput;
hr = pInputs->get_Item(var, &pInput);
hr = pInput->get_Name(&bstrName);
// 名前を表示します。
}
}
get__OutputsAvailable メソッドは、指定されたカテゴリで使用可能な出力デバイスを取得します。
| CategoryGuid | GUID* | in | 列挙するカテゴリを指定する GUID へのポインター。 |
| pVal | IMSVidOutputDevices** | out | IMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
使用可能なレンダラーを取得するには、get_AudioRenderersAvailable メソッドおよび get_VideoRenderersAvailable メソッドを使用します。
get_VideoRenderersAvailable メソッドは、ローカルシステムで使用可能なビデオレンダラーのコレクションを取得します。
| pVal | IMSVidVideoRendererDevices** | out | IMSVidVideoRendererDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、ビデオレンダラーデバイスのコレクションを返します。返された IMSVidVideoRendererDevices ポインターを使用してコレクションを列挙します。
get_AudioRenderersAvailable メソッドは、使用可能なオーディオレンダラーを取得します。
| pVal | IMSVidAudioRendererDevices** | out | IMSVidAudioRendererDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、入力デバイスの読み取り専用コレクションを返します。返された IMSVidAudioRendererDevices ポインターを使用してコレクションを列挙します。
get_FeaturesAvailable メソッドは、ローカルシステムで使用可能な機能を取得します。
| pVal | IMSVidFeatures** | out | IMSVidFeatures インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、機能オブジェクトのコレクションを返します。返された IMSVidFeatures ポインターを使用してコレクションを列挙します。機能を有効化するには、それをアクティブな機能コレクションに追加します。特定の機能を検索するには、各機能に対して IMSVidDevice::get__ClassID メソッドを呼び出し、その結果を目的の機能の CLSID と比較します。
get_InputActive メソッドは、現在アクティブな入力デバイスを取得します。
| pVal | IMSVidInputDevice** | out | IMSVidInputDevice インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_InputActive メソッドは、フィルターグラフで使用する入力デバイスを指定します。
| pVal | IMSVidInputDevice* | in | 入力デバイスの IMSVidInputDevice インターフェイスへのポインターを指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
Video Control の状態が STATE_UNBUILT でない場合は、このメソッドを呼び出す前に IMSVidCtl::Decompose を呼び出してフィルターグラフを解体してください。
get_OutputsActive メソッドは、現在アクティブな出力デバイスを取得します。
| pVal | IMSVidOutputDevices** | out | IMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_OutputsActive メソッドは、アクティブな出力デバイスを指定します。
| pVal | IMSVidOutputDevices* | in | 出力デバイスの新しいコレクションへのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_VideoRendererActive メソッドは、現在アクティブなビデオレンダラーを取得します。
| pVal | IMSVidVideoRenderer** | out | IMSVidVideoRenderer インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。アクティブなビデオレンダラーがない場合、このパラメーターは値 NULL を受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_VideoRendererActive メソッドは、アクティブなビデオレンダラーを指定します。
| pVal | IMSVidVideoRenderer* | in | ビデオレンダラーデバイスの IMSVidVideoRenderer インターフェイスへのポインターを指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
現在サポートされている唯一のビデオレンダラーは Video Mixing Renderer (VMR) フィルターです。VMR は既定で使用されるため、このメソッドを呼び出す必要はありません。
get_AudioRendererActive メソッドは、現在アクティブなオーディオレンダラーを取得します。
| pVal | IMSVidAudioRenderer** | out | IMSVidAudioRenderer インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。アクティブなオーディオレンダラーがない場合、このパラメーターは値 NULL を受け取ります。 |
戻り値
put_AudioRendererActive メソッドは、アクティブなオーディオレンダラーを指定します。
| pVal | IMSVidAudioRenderer* | in | オーディオレンダラーを指定する IMSVidAudioRenderer インターフェイスへのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_FeaturesActive メソッドは、現在アクティブな機能を取得します。
| pVal | IMSVidFeatures** | out | IMSVidFeatures インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
アクティブな機能がない場合、メソッドは pVal パラメーターに NULL を返すことがあります。それ以外の場合は、機能オブジェクトのコレクションを返します。返された IMSVidFeatures ポインターを使用してコレクションを列挙します。
例
CComPtr<IMSVidFeatures> pFeatures;
hr = m_pVideoControl->get_FeaturesActive(&pFeatures);
if (SUCCEEDED(hr) && pFeatures)
{
long c;
pFs->get_Count(&c);
/* 機能を列挙します */
}
put_FeaturesActive メソッドは、有効化する機能のコレクションを指定します。
| pVal | IMSVidFeatures* | in | 機能のコレクション上の IMSVidFeatures インターフェイスへのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
機能は、クローズドキャプションや IP データサービスなど、基本的なチューニングおよびレンダリングを超える追加機能を表します。Video Control はフィルターグラフを構築する際に、アクティブな機能コレクションを使用してグラフを構成します。
既定のグラフでは、アクティブな機能を指定する必要はありません。機能を有効化するには、新しい MSVidFeatures コレクションオブジェクトを作成します。次に IMSVidCtl::get_FeaturesAvailable メソッドを使用して使用可能な機能を列挙し、各機能に対して IMSVidDevice::get__ClassID を呼び出します。CLSID が有効化したい機能と一致する場合は、その機能を MSVidFeatures コレクションに追加します。次に、MSVidFeatures コレクションへのポインターを指定して put_FeaturesActive を呼び出します。
Video Control の状態が STATE_UNBUILT でない場合は、このメソッドを呼び出す前に IMSVidCtl::Decompose を呼び出してフィルターグラフを解体してください。
get_State メソッドは、フィルターグラフの状態を取得します。
| lState | MSVidCtlStateList* | out | MSVidCtlStateList 列挙体のメンバーを受け取ります。 |
戻り値
View メソッドは、入力ソースを表示するように Video Control を構成します。入力ソースは、チューン要求、DVD、またはメディアファイルのいずれかです。
| v | VARIANT* | in | 入力ソースへのポインターを VARIANT 型として指定します。このパラメーターは次のいずれかである必要があります:
|
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
Video Control に既にアクティブな入力デバイスがある場合、このメソッドは指定された入力に合わせてそのデバイスを構成します。それ以外の場合、このメソッドは入力を処理できる入力デバイスを探し出し、それを有効化します。
入力デバイスは通常、ソースフィルターに対応します。pv パラメーターがチューン要求オブジェクトの場合、Video Control はチューン要求上のネットワークタイプを調べて、どのフィルターを使用するかを決定します。デジタルテレビの場合、入力デバイスは BDA Network Provider フィルターになります。アナログテレビの場合は WDM TV Tuner フィルターになります。フィルターの具体的な名前と実装はデバイスに依存します。
View を呼び出した後、次のメソッドを使用してフィルターグラフを構築および実行します:
- IMSVidCtl::Build メソッドは、選択された入力とアクティブな機能コレクションに基づいて、フィルターグラフの残りの部分を構築します。Build メソッドは、グラフを停止状態のままにします。
- IMSVidCtl::Run メソッドは、グラフが構築されていない場合に Build を呼び出し、グラフを実行状態にします。フィルターグラフが実行されると、Video Control は指定されたチューン要求の再生を開始します。
View メソッドが成功した場合、IMSVidCtl::get_InputActive メソッドを呼び出して入力デバイスを取得できます。
特定の入力デバイスを指定するには、Video Control で View を呼び出す代わりに、IMSVidCtl::put_InputActive メソッドを呼び出してから、そのデバイスで IMSVidInputDevice::View を呼び出します。これは、ローカルシステムに同じタイプのデバイスが複数ある場合に役立つことがあります。ただし、View メソッドは正しいデバイスタイプを自動的に探し出すため、こちらが推奨されます。
例
次の例は、Video Control にチューン要求を送信する方法を示しています:
ITuneRequest *pTuneReq;
/* チューン要求を取得します (コードは省略)。 */
CComVariant varTuneRequest = pTuneReq;
hr = pVidControl->View(&varTuneRequest);
次の例は、ローカルファイルを再生する方法を示しています:
CComVariant varFileName(OLESTR("C:Example.avi"));
hr = pVidControl->View(&varFileName);
Build メソッドは、フィルターグラフを構築し、すべてのフィルターを接続します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、現在の入力デバイスを使用してフィルターグラフを構築します。入力デバイスを選択するには、IMSVidCtl::View メソッドまたは IMSVidCtl::put_InputActive メソッドを呼び出します。入力デバイスが選択されていない場合、メソッドは失敗します。
Pause メソッドは、フィルターグラフを一時停止します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
Run メソッドは、フィルターグラフを実行します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、状態が未構築の場合にフィルターグラフを構築し、グラフを実行状態にします。Build、View、および Run の動作の詳細については、IMSVidCtl::View を参照してください。
Stop メソッドは、フィルターグラフを停止します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、フィルターグラフをそのまま残し、一時停止または実行が可能な状態にします。フィルターグラフを解体するには、IMSVidCtl::Decompose メソッドを使用します。
Decompose メソッドは、フィルターグラフを解体します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、IMSVidCtl::Build メソッドの逆の操作です。アクティブな機能コレクションを変更する、新しいレンダラーを指定する、または新しい入力デバイスを指定する前に、このメソッドを呼び出します。このメソッドはアクティブな機能コレクションを変更しません。
DisableVideo メソッドは、ビデオレンダラーを無効化します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、アクティブなビデオレンダラーデバイスを NULL に設定します。
DisableAudio メソッドは、オーディオ出力デバイスを無効化します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは、アクティブなオーディオ出力デバイスを NULL に設定します。
ViewNext メソッドは、指定されたチューン要求を表示するための別の入力デバイスを探します。
| v | VARIANT* | in | チューン要求を VARIANT 型として指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
このメソッドは IMSVidCtl::View メソッドと同様に動作しますが、次の点が異なります: システムに指定されたネットワークタイプをサポートするチューナーが複数ある場合、ViewNext メソッドは現在の入力デバイスをスキップして次のデバイスを使用します。(デバイスの順序は任意です。)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMSVidCtl "{B0EDF162-910A-11D2-B632-00C04F79498E}" #usecom global IMSVidCtl IID_IMSVidCtl "{B0EDF163-910A-11D2-B632-00C04F79498E}" #comfunc global IMSVidCtl_get_AutoSize 7 var #comfunc global IMSVidCtl_put_AutoSize 8 int #comfunc global IMSVidCtl_get_BackColor 9 var #comfunc global IMSVidCtl_put_BackColor 10 int #comfunc global IMSVidCtl_get_Enabled 11 var #comfunc global IMSVidCtl_put_Enabled 12 int #comfunc global IMSVidCtl_get_TabStop 13 var #comfunc global IMSVidCtl_put_TabStop 14 int #comfunc global IMSVidCtl_get_Window 15 sptr #comfunc global IMSVidCtl_Refresh 16 #comfunc global IMSVidCtl_get_DisplaySize 17 var #comfunc global IMSVidCtl_put_DisplaySize 18 int #comfunc global IMSVidCtl_get_MaintainAspectRatio 19 var #comfunc global IMSVidCtl_put_MaintainAspectRatio 20 int #comfunc global IMSVidCtl_get_ColorKey 21 var #comfunc global IMSVidCtl_put_ColorKey 22 int #comfunc global IMSVidCtl_get_InputsAvailable 23 wstr,sptr #comfunc global IMSVidCtl_get_OutputsAvailable 24 wstr,sptr #comfunc global IMSVidCtl_get__InputsAvailable 25 var,sptr #comfunc global IMSVidCtl_get__OutputsAvailable 26 var,sptr #comfunc global IMSVidCtl_get_VideoRenderersAvailable 27 sptr #comfunc global IMSVidCtl_get_AudioRenderersAvailable 28 sptr #comfunc global IMSVidCtl_get_FeaturesAvailable 29 sptr #comfunc global IMSVidCtl_get_InputActive 30 sptr #comfunc global IMSVidCtl_put_InputActive 31 sptr #comfunc global IMSVidCtl_get_OutputsActive 32 sptr #comfunc global IMSVidCtl_put_OutputsActive 33 sptr #comfunc global IMSVidCtl_get_VideoRendererActive 34 sptr #comfunc global IMSVidCtl_put_VideoRendererActive 35 sptr #comfunc global IMSVidCtl_get_AudioRendererActive 36 sptr #comfunc global IMSVidCtl_put_AudioRendererActive 37 sptr #comfunc global IMSVidCtl_get_FeaturesActive 38 sptr #comfunc global IMSVidCtl_put_FeaturesActive 39 sptr #comfunc global IMSVidCtl_get_State 40 var #comfunc global IMSVidCtl_View 41 var #comfunc global IMSVidCtl_Build 42 #comfunc global IMSVidCtl_Pause 43 #comfunc global IMSVidCtl_Run 44 #comfunc global IMSVidCtl_Stop 45 #comfunc global IMSVidCtl_Decompose 46 #comfunc global IMSVidCtl_DisableVideo 47 #comfunc global IMSVidCtl_DisableAudio 48 #comfunc global IMSVidCtl_ViewNext 49 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IMSVidCtl "{B0EDF162-910A-11D2-B632-00C04F79498E}" #usecom global IMSVidCtl IID_IMSVidCtl "{B0EDF163-910A-11D2-B632-00C04F79498E}" #comfunc global IMSVidCtl_get_AutoSize 7 sptr #comfunc global IMSVidCtl_put_AutoSize 8 int #comfunc global IMSVidCtl_get_BackColor 9 sptr #comfunc global IMSVidCtl_put_BackColor 10 int #comfunc global IMSVidCtl_get_Enabled 11 sptr #comfunc global IMSVidCtl_put_Enabled 12 int #comfunc global IMSVidCtl_get_TabStop 13 sptr #comfunc global IMSVidCtl_put_TabStop 14 int #comfunc global IMSVidCtl_get_Window 15 sptr #comfunc global IMSVidCtl_Refresh 16 #comfunc global IMSVidCtl_get_DisplaySize 17 sptr #comfunc global IMSVidCtl_put_DisplaySize 18 int #comfunc global IMSVidCtl_get_MaintainAspectRatio 19 sptr #comfunc global IMSVidCtl_put_MaintainAspectRatio 20 int #comfunc global IMSVidCtl_get_ColorKey 21 sptr #comfunc global IMSVidCtl_put_ColorKey 22 int #comfunc global IMSVidCtl_get_InputsAvailable 23 wstr,sptr #comfunc global IMSVidCtl_get_OutputsAvailable 24 wstr,sptr #comfunc global IMSVidCtl_get__InputsAvailable 25 sptr,sptr #comfunc global IMSVidCtl_get__OutputsAvailable 26 sptr,sptr #comfunc global IMSVidCtl_get_VideoRenderersAvailable 27 sptr #comfunc global IMSVidCtl_get_AudioRenderersAvailable 28 sptr #comfunc global IMSVidCtl_get_FeaturesAvailable 29 sptr #comfunc global IMSVidCtl_get_InputActive 30 sptr #comfunc global IMSVidCtl_put_InputActive 31 sptr #comfunc global IMSVidCtl_get_OutputsActive 32 sptr #comfunc global IMSVidCtl_put_OutputsActive 33 sptr #comfunc global IMSVidCtl_get_VideoRendererActive 34 sptr #comfunc global IMSVidCtl_put_VideoRendererActive 35 sptr #comfunc global IMSVidCtl_get_AudioRendererActive 36 sptr #comfunc global IMSVidCtl_put_AudioRendererActive 37 sptr #comfunc global IMSVidCtl_get_FeaturesActive 38 sptr #comfunc global IMSVidCtl_put_FeaturesActive 39 sptr #comfunc global IMSVidCtl_get_State 40 sptr #comfunc global IMSVidCtl_View 41 sptr #comfunc global IMSVidCtl_Build 42 #comfunc global IMSVidCtl_Pause 43 #comfunc global IMSVidCtl_Run 44 #comfunc global IMSVidCtl_Stop 45 #comfunc global IMSVidCtl_Decompose 46 #comfunc global IMSVidCtl_DisableVideo 47 #comfunc global IMSVidCtl_DisableAudio 48 #comfunc global IMSVidCtl_ViewNext 49 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。