Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IMSVidVideoRenderer

IMSVidVideoRenderer

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

公式ドキュメント

IMSVidVideoRenderer インターフェイスは、ビデオレンダラーデバイスを表します。MSVidVideoRenderer オブジェクトがこのインターフェイスを公開します。このインターフェイスは、Video Mixing Renderer (VMR) フィルターへのアクセスを提供します。

解説(Remarks)

このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidVideoRenderer)

メソッド 30

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

vtbl 16 HRESULT get_CustomCompositorClass(LPWSTR* CompositorCLSID)

get_CustomCompositorClass メソッドは、Video Mixing Renderer の現在のイメージコンポジターのクラス識別子 (CLSID) を BSTR として取得します。

CompositorCLSIDLPWSTR*outCLSID の文字列表現を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは Automation クライアント向けに提供されています。C++ アプリケーションでは、BSTR ではなく GUID を返す IMSVidVideoRenderer::get__CustomCompositorClass メソッドを使用できます。

呼び出し元は、返された文字列を SysFreeString 関数を使用して解放する必要があります。

vtbl 17 HRESULT put_CustomCompositorClass(LPWSTR CompositorCLSID)

put_CustomCompositorClass メソッドは、カスタムイメージコンポジターのクラス識別子 (CLSID) を BSTR として指定します。

CompositorCLSIDLPWSTRinCLSID を文字列として指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは Automation クライアント向けに提供されています。C++ アプリケーションでは、BSTR ではなく GUID を指定する IMSVidVideoRenderer::put__CustomCompositorClass メソッドを使用できます。

vtbl 18 HRESULT get__CustomCompositorClass(GUID* CompositorCLSID)

get__CustomCompositorClass メソッドは、Video Mixing Renderer の現在のイメージコンポジターのクラス識別子 (CLSID) を GUID として取得します。

CompositorCLSIDGUID*outCLSID を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

アプリケーションは、カスタムのイメージコンポジット処理を行うために独自のコンポジターを提供できます。詳細については、Using the Video Mixing Renderer を参照してください。

vtbl 19 HRESULT put__CustomCompositorClass(GUID* CompositorCLSID)

put__CustomCompositorClass メソッドは、カスタムイメージコンポジターのクラス識別子 (CLSID) を GUID として指定します。

CompositorCLSIDGUID*inカスタムコンポジターの CLSID を指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

アプリケーションは、カスタムのイメージコンポジット処理を行うために独自のコンポジターを提供できます。詳細については、Using the Video Mixing Renderer を参照してください。

vtbl 20 HRESULT get__CustomCompositor(IVMRImageCompositor** Compositor)

get__CustomCompositor メソッドは、Video Mixing Renderer の現在のイメージコンポジターを取得します。

CompositorIVMRImageCompositor**outIVMRImageCompositor インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

アプリケーションは、カスタムのイメージコンポジット処理を行うために独自のコンポジターを提供できます。詳細については、Using the Video Mixing Renderer を参照してください。

返される IVMRImageCompositor インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 21 HRESULT put__CustomCompositor(IVMRImageCompositor* Compositor)

put__CustomCompositor メソッドは、Video Mixing Renderer (VMR) が使用するカスタムイメージコンポジターを指定します。

CompositorIVMRImageCompositor*inイメージコンポジターの IVMRImageCompositor インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

アプリケーションは、カスタムのイメージコンポジット処理を行うために独自のコンポジターを提供できます。詳細については、Using the Video Mixing Renderer を参照してください。

vtbl 22 HRESULT get_MixerBitmap(IPictureDisp** MixerPictureDisp)

get_MixerBitmap メソッドは、静的なビットマップイメージを IPictureDisp 型として取得します。

MixerPictureDispIPictureDisp**outIPictureDisp インターフェイスポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。

戻り値

HRESULT 値を返します。可能な値には次のものがあります。

戻り値 説明
S_OK
成功しました。
CO_E_NOTINITIALIZED
ビットマップが設定されていません。

解説(Remarks)

静的なビットマップイメージが設定されている場合、VMR はそのビットマップをビデオイメージにアルファブレンドします。IPictureDisp インターフェイスの詳細については、Platform SDK のドキュメントを参照してください。

vtbl 23 HRESULT get__MixerBitmap(IVMRMixerBitmap** MixerPicture)

get__MixerBitmap メソッドは、VMR が静的なビットマップをミックスする方法を制御する Video Mixing Renderer の IVMRMixerBitmap インターフェイスを取得します。

MixerPictureIVMRMixerBitmap**outIVMRMixerBitmap インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

返される IVMRMixerBitmap インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 24 HRESULT put_MixerBitmap(IPictureDisp* MixerPictureDisp)

put_MixerBitmap メソッドは、静的なビットマップイメージを IPictureDisp 型として指定します。

MixerPictureDispIPictureDisp*inIPictureDisp インターフェイスへのポインターを指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

VMR は、静的なビットマップイメージをビデオイメージにアルファブレンドします。IPictureDisp インターフェイスの詳細については、Platform SDK のドキュメントを参照してください。

vtbl 25 HRESULT put__MixerBitmap(VMRALPHABITMAP* MixerPicture)

put__MixerBitmap メソッドは、静的なビットマップイメージを指定します。

MixerPictureVMRALPHABITMAP*inビットマップに関する情報を含む VMRALPHABITMAP 構造体へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 26 HRESULT get_MixerBitmapPositionRect(IMSVidRect** rDest)

get_MixerBitmapPositionRect メソッドは、ビデオウィンドウを基準とした静的なビットマップイメージの位置を取得します。

rDestIMSVidRect**outIMSVidRect インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

静的なビットマップイメージが設定されている場合、VMR は pprDest で指定された位置矩形を使用して、そのビットマップをビデオイメージにアルファブレンドします。

返される IMSVidRect インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 27 HRESULT put_MixerBitmapPositionRect(IMSVidRect* rDest)

put_MixerBitmapPositionRect メソッドは、ビデオウィンドウを基準とした静的なビットマップイメージの位置を指定します。

rDestIMSVidRect*in矩形を指定する IMSVidRect インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

静的なビットマップイメージが設定されている場合、VMR は指定された位置矩形を使用して、そのビットマップをビデオイメージにアルファブレンドします。

vtbl 28 HRESULT get_MixerBitmapOpacity(INT* opacity)

get_MixerBitmapOpacity メソッドは、静的なビットマップイメージの不透明度を取得します。

opacityINT*out0 (透明) から 100 (不透明) までの整数で表される不透明度を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

静的なビットマップイメージが設定されている場合、VMR は pOpacity で指定された不透明度を使用して、そのビットマップをビデオイメージにアルファブレンドします。

vtbl 29 HRESULT put_MixerBitmapOpacity(INT opacity)

put_MixerBitmapOpacity メソッドは、静的なビットマップイメージの不透明度を指定します。

opacityINTin不透明度を 0 (透明) から 100 (不透明) までの整数で指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

静的なビットマップイメージが設定されている場合、VMR は指定された不透明度を使用して、そのビットマップをビデオイメージにアルファブレンドします。

vtbl 30 HRESULT SetupMixerBitmap(IPictureDisp* MixerPictureDisp, INT Opacity, IMSVidRect* rDest)

SetupMixerBitmap メソッドは、ビデオの上にアルファブレンドされたビットマップを表示するように Video Mixing Renderer (VMR) を構成します。

MixerPictureDispIPictureDisp*inビットマップを指定する IPictureDisp インターフェイスへのポインター。
OpacityINTinビットマップの不透明度を、0 (透明) から 100 (不透明) までの整数で指定します。
rDestIMSVidRect*inビデオウィンドウを基準としたビットマップの位置を指定する IMSVidRect インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 31 HRESULT get_SourceSize(SourceSizeList* CurrentSize)

get_SourceSize メソッドは、ビデオ矩形に適用するクリッピングの種類 (存在する場合) を取得します。

CurrentSizeSourceSizeList*outSourceSizeList 列挙型のメンバーを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 32 HRESULT put_SourceSize(SourceSizeList NewSize)

put_SourceSize メソッドは、ビデオ矩形に適用するクリッピングの種類 (存在する場合) を指定します。

NewSizeSourceSizeListinSourceSizeList 列挙型のメンバーを指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 33 HRESULT get_OverScan(INT* plPercent)

get_OverScan メソッドは、ランダムなビデオノイズを取り除くために、ビデオフレームのすべての辺に対して実行するクリッピングの量を取得します。

plPercentINT*outクリッピングの量を、パーセントの 100 分の 1 単位で受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

現在のクリッピングモードが sslClipByOverScan の場合、VMR は plPercent パラメーターで指定された量だけビデオイメージをクリッピングします。詳細については、IMSVidVideoRenderer::put_SourceSize を参照してください。

vtbl 34 HRESULT put_OverScan(INT lPercent)

put_OverScan メソッドは、ランダムなビデオノイズを取り除くために、ビデオフレームのすべての辺に対して実行するクリッピングの量を指定します。

lPercentINTinクリッピングの量を、パーセントの 100 分の 1 単位で指定します。たとえば、175 は 1.75% を表します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

現在のクリッピングモードが sslClipByOverScan の場合、VMR は指定された量だけビデオイメージをクリッピングします。詳細については、IMSVidVideoRenderer::put_SourceSize を参照してください。

vtbl 35 HRESULT get_AvailableSourceRect(IMSVidRect** pRect)

get_AvailableSourceRect メソッドは、ネイティブビデオのサイズを取得します。

pRectIMSVidRect**outIMSVidRect インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

返される IMSVidRect インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 36 HRESULT get_MaxVidRect(IMSVidRect** ppVidRect)

get_MaxVidRect メソッドは、ビデオ矩形の理想的な最大サイズを取得します。

ppVidRectIMSVidRect**outIMSVidRect インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

理想的な最大イメージサイズとは、パフォーマンスやイメージ品質を著しく低下させることなく表示できる最大のビデオサイズです。

返される IMSVidRect インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 37 HRESULT get_MinVidRect(IMSVidRect** ppVidRect)

get_MinVidRect メソッドは、ビデオ矩形の理想的な最小サイズを取得します。

ppVidRectIMSVidRect**outIMSVidRect インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

理想的な最小イメージサイズとは、パフォーマンスやイメージ品質を著しく低下させることなく表示できる最小のビデオサイズです。

返される IMSVidRect インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 38 HRESULT get_ClippedSourceRect(IMSVidRect** pRect)

get_ClippedSourceRect メソッドは、ビデオソース上のクリッピング矩形を取得します。

pRectIMSVidRect**outIMSVidRect インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

現在のクリッピングモードが sslClipByClipRect の場合、VMR はビデオイメージをビデオソース矩形にクリッピングし、クリッピングされたイメージを引き伸ばして Video Control のビデオウィンドウを埋めます。詳細については、IMSVidVideoRenderer::put_SourceSize を参照してください。

返される IMSVidRect インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

vtbl 39 HRESULT put_ClippedSourceRect(IMSVidRect* pRect)

put_ClippedSourceRect メソッドは、ビデオソース上のクリッピング矩形を指定します。

pRectIMSVidRect*in矩形を指定する IMSVidRect インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

現在のクリッピングモードが sslClipByClipRect の場合、VMR はビデオイメージをビデオソース矩形にクリッピングし、これを引き伸ばして Video Control のビデオウィンドウを埋めます。詳細については、IMSVidVideoRenderer::put_SourceSize を参照してください。

使用例

次の例では、ビデオイメージをソース矩形の左上隅にクリッピングします。


CComPtr<IMSVidVideoRenderer> pVideo;
HRESULT hr = pVideoControl->get_VideoRendererActive(&pVideo);
if (SUCCEEDED(hr))
{
    long lWidth, lHeight;
    CComPtr<IMSVidRect> pRect;
    
    hr = pVideo->get_AvailableSourceRect(&pRect);
    pRect->get_Height(&lHeight);
    pRect->get_Width(&lWidth);
    pRect->put_Height(lHeight / 2);
    pRect->put_Width(lWidth / 2);
    pVideo->put_SourceSize(sslClipByClipRect);
    hr = pVideo->put_ClippedSourceRect(pRect);
}

vtbl 40 HRESULT get_UsingOverlay(VARIANT_BOOL* UseOverlayVal)

get_UsingOverlay メソッドは、Video Mixing Renderer (VMR) がハードウェアオーバーレイを使用しているかどうかを照会します。

UseOverlayValVARIANT_BOOL*out

次のいずれかの値を受け取ります。

説明
VARIANT_TRUE VMR はハードウェアオーバーレイを使用しています。
VARIANT_FALSE VMR はハードウェアオーバーレイを使用していません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 41 HRESULT put_UsingOverlay(VARIANT_BOOL UseOverlayVal)

put_UsingOverlay メソッドは、Video Mixing Renderer がハードウェアオーバーレイを使用するかどうかを指定します。

UseOverlayValVARIANT_BOOLin

ハードウェアオーバーレイを使用するかどうかを指定するフラグ。次のいずれかの値を使用します。

説明
VARIANT_TRUE ハードウェアオーバーレイを使用します。
VARIANT_FALSE ハードウェアオーバーレイを使用しません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 42 HRESULT Capture(IPictureDisp** currentImage)

Capture メソッドは、Video Mixing Renderer (VMR) によって現在レンダリングされているビデオフレームをキャプチャします。

currentImageIPictureDisp**outIPictureDisp インターフェイスポインターを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

返される IPictureDisp インターフェイスは、未解放の参照カウントを持っています。呼び出し元はこのインターフェイスを解放する必要があります。

IPictureDisp インターフェイスの詳細については、Microsoft Platform SDK のドキュメントを参照してください。

使用例


CComPtr<IMSVidCtl> m_pVideoControl; // Video Control へのポインター。

/* フィルターグラフを構築して実行します (ここでは省略)。 */

// ビデオレンダラーを検索します
CComPtr<IMSVidVideoRenderer> pVideo;
hr = m_pVideoControl->get_VideoRendererActive(&pVideo);
if (SUCCEEDED(hr))
{
    // イメージをキャプチャします。
    CComPtr<IPictureDisp> pPic;
    hr = pVideo->Capture(&pPic);
}
vtbl 43 HRESULT get_FramesPerSecond(INT* pVal)

get_FramesPerSecond メソッドは、現在のフレームレートを取得します。

pValINT*outフレームレートを、フレーム毎秒単位で受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 44 HRESULT get_DecimateInput(VARIANT_BOOL* pDeci)

get_DecimateInput メソッドは、Video Mixing Renderer (VMR) が処理前にビデオをデシメート (すなわち、ネイティブビデオサイズを縮小) するよう現在構成されているかどうかを照会します。

pDeciVARIANT_BOOL*out

次のいずれかの値を受け取ります。

説明
VARIANT_TRUE VMR はビデオをデシメートするよう構成されています。
VARIANT_FALSE VMR はビデオをデシメートするよう構成されていません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このプロパティは、ネイティブビデオストリームが HDTV であるにもかかわらずシステムモニターがより低い解像度に設定されている場合に true に設定する必要があります。これにより、VMR がビデオを高解像度で処理してから縮小するという不要な作業を行うのを防ぎます。

vtbl 45 HRESULT put_DecimateInput(VARIANT_BOOL pDeci)

put_DecimateInput メソッドは、Video Mixing Renderer (VMR) が処理前にビデオをデシメート (すなわち、ネイティブビデオサイズを縮小) するかどうかを指定します。

pDeciVARIANT_BOOLin

ビデオデシメーションを有効にするか無効にするかを指定します。次のいずれかの値を使用します。

説明
VARIANT_TRUE ビデオデシメーションを有効にします。
VARIANT_FALSE ビデオデシメーションを無効にします。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このプロパティは、ネイティブビデオストリームが HDTV であるにもかかわらずシステムモニターがより低い解像度に設定されている場合に true に設定する必要があります。これにより、VMR がビデオを高解像度で処理してから縮小するという不要な作業を行うのを防ぎます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_IMSVidVideoRenderer "{37B03540-A4C8-11D2-B634-00C04F79498E}"
#usecom global IMSVidVideoRenderer IID_IMSVidVideoRenderer "{37B03543-A4C8-11D2-B634-00C04F79498E}"
#comfunc global IMSVidVideoRenderer_get_CustomCompositorClass    16 var
#comfunc global IMSVidVideoRenderer_put_CustomCompositorClass    17 wstr
#comfunc global IMSVidVideoRenderer_get__CustomCompositorClass   18 var
#comfunc global IMSVidVideoRenderer_put__CustomCompositorClass   19 var
#comfunc global IMSVidVideoRenderer_get__CustomCompositor        20 sptr
#comfunc global IMSVidVideoRenderer_put__CustomCompositor        21 sptr
#comfunc global IMSVidVideoRenderer_get_MixerBitmap              22 sptr
#comfunc global IMSVidVideoRenderer_get__MixerBitmap             23 sptr
#comfunc global IMSVidVideoRenderer_put_MixerBitmap              24 sptr
#comfunc global IMSVidVideoRenderer_put__MixerBitmap             25 var
#comfunc global IMSVidVideoRenderer_get_MixerBitmapPositionRect  26 sptr
#comfunc global IMSVidVideoRenderer_put_MixerBitmapPositionRect  27 sptr
#comfunc global IMSVidVideoRenderer_get_MixerBitmapOpacity       28 var
#comfunc global IMSVidVideoRenderer_put_MixerBitmapOpacity       29 int
#comfunc global IMSVidVideoRenderer_SetupMixerBitmap             30 sptr,int,sptr
#comfunc global IMSVidVideoRenderer_get_SourceSize               31 var
#comfunc global IMSVidVideoRenderer_put_SourceSize               32 int
#comfunc global IMSVidVideoRenderer_get_OverScan                 33 var
#comfunc global IMSVidVideoRenderer_put_OverScan                 34 int
#comfunc global IMSVidVideoRenderer_get_AvailableSourceRect      35 sptr
#comfunc global IMSVidVideoRenderer_get_MaxVidRect               36 sptr
#comfunc global IMSVidVideoRenderer_get_MinVidRect               37 sptr
#comfunc global IMSVidVideoRenderer_get_ClippedSourceRect        38 sptr
#comfunc global IMSVidVideoRenderer_put_ClippedSourceRect        39 sptr
#comfunc global IMSVidVideoRenderer_get_UsingOverlay             40 var
#comfunc global IMSVidVideoRenderer_put_UsingOverlay             41 int
#comfunc global IMSVidVideoRenderer_Capture                      42 sptr
#comfunc global IMSVidVideoRenderer_get_FramesPerSecond          43 var
#comfunc global IMSVidVideoRenderer_get_DecimateInput            44 var
#comfunc global IMSVidVideoRenderer_put_DecimateInput            45 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。