IAMMediaContent
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IAMMediaContent インターフェイスは、ストリームからメタデータを取得します。
解説(Remarks)
インターフェイス識別子を定義するには、ヘッダーファイル Initguid.h を Qnetwork.h より前、ただし Dshow.h やその他のヘッダーファイルより後にインクルードします:
#include <dshow.h>
#include <initguid.h>
#include <qnetwork.h>
メソッド 13
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_AuthorName メソッドは、作成者名を取得します。
| pbstrAuthorName | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_Title メソッドは、タイトルを取得します。
| pbstrTitle | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_Rating メソッドは、レーティングを取得します。
| pbstrRating | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_Description メソッドは、コンテンツの説明を取得します。
| pbstrDescription | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_Copyright メソッドは、著作権情報を取得します。
| pbstrCopyright | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_BaseURL メソッドは、関連する Web コンテンツのベース URL を取得します。
| pbstrBaseURL | LPWSTR* | inout | 情報を格納した BSTR を受け取ります。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_LogoURL メソッドは、ロゴの URL を取得します。
| pbstrLogoURL | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_LogoIconURL メソッドは、ロゴアイコンの URL を取得します。
| pbstrLogoURL | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_WatermarkURL メソッドは、ウォーターマークの URL を取得します。
| pbstrWatermarkURL | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_MoreInfoURL メソッドは、コンテンツに関する追加情報の URL を取得します。
| pbstrMoreInfoURL | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_MoreInfoBannerImage メソッドは、関連情報バナー用の画像を取得します。
| pbstrMoreInfoBannerImage | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_MoreInfoBannerURL メソッドは、関連情報バナーの URL を取得します。
| pbstrMoreInfoBannerURL | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
get_MoreInfoText メソッドは、追加情報をテキストとして取得します。
| pbstrMoreInfoText | LPWSTR* | inout | 情報を格納した BSTR を受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。取り得る値には次の表に示すものが含まれます。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| 実装されていません。 | |
| メモリが不足しています。 | |
| 項目が見つかりませんでした。 |
解説(Remarks)
メソッドが成功した場合、呼び出し元は SysFreeString 関数を呼び出して、返された BSTR を解放する必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMMediaContent "{FA2AA8F4-8B62-11D0-A520-000000000000}" #usecom global IAMMediaContent IID_IAMMediaContent "{}" #comfunc global IAMMediaContent_get_AuthorName 7 var #comfunc global IAMMediaContent_get_Title 8 var #comfunc global IAMMediaContent_get_Rating 9 var #comfunc global IAMMediaContent_get_Description 10 var #comfunc global IAMMediaContent_get_Copyright 11 var #comfunc global IAMMediaContent_get_BaseURL 12 var #comfunc global IAMMediaContent_get_LogoURL 13 var #comfunc global IAMMediaContent_get_LogoIconURL 14 var #comfunc global IAMMediaContent_get_WatermarkURL 15 var #comfunc global IAMMediaContent_get_MoreInfoURL 16 var #comfunc global IAMMediaContent_get_MoreInfoBannerImage 17 var #comfunc global IAMMediaContent_get_MoreInfoBannerURL 18 var #comfunc global IAMMediaContent_get_MoreInfoText 19 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IAMMediaContent "{FA2AA8F4-8B62-11D0-A520-000000000000}" #usecom global IAMMediaContent IID_IAMMediaContent "{}" #comfunc global IAMMediaContent_get_AuthorName 7 sptr #comfunc global IAMMediaContent_get_Title 8 sptr #comfunc global IAMMediaContent_get_Rating 9 sptr #comfunc global IAMMediaContent_get_Description 10 sptr #comfunc global IAMMediaContent_get_Copyright 11 sptr #comfunc global IAMMediaContent_get_BaseURL 12 sptr #comfunc global IAMMediaContent_get_LogoURL 13 sptr #comfunc global IAMMediaContent_get_LogoIconURL 14 sptr #comfunc global IAMMediaContent_get_WatermarkURL 15 sptr #comfunc global IAMMediaContent_get_MoreInfoURL 16 sptr #comfunc global IAMMediaContent_get_MoreInfoBannerImage 17 sptr #comfunc global IAMMediaContent_get_MoreInfoBannerURL 18 sptr #comfunc global IAMMediaContent_get_MoreInfoText 19 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。