ホーム › Media.MediaFoundation › IMFMediaKeySession2
IMFMediaKeySession2
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 8 HRESULT get_KeyStatuses(MFMediaKeyStatus** pKeyStatusesArray, DWORD* puSize)
| pKeyStatusesArray | MFMediaKeyStatus** | out | 各キーIDと状態を表すMFMediaKeyStatus配列を受け取るポインタ。要解放。 |
| puSize | DWORD* | out | 返されたキー状態配列の要素数を受け取るDWORDへのポインタ。 |
| bstrSessionId | LPWSTR | in | 読み込む永続セッションを識別するセッションID文字列。 |
| pfLoaded | BOOL* | out | セッションの読み込みに成功したかをTRUE/FALSEで受け取るBOOLへのポインタ。 |
| initDataType | LPWSTR | in | 初期化データの形式を示す文字列(例:cenc、keyids)。 |
| pbInitData | BYTE* | in | ライセンス要求生成に用いる初期化データを指すBYTEバッファへのポインタ。 |
| cb | DWORD | in | 初期化データのバイト数。 |
| dblExpiration | DOUBLE* | out | セッションの有効期限をUNIXエポックからのミリ秒で受け取るDOUBLEへのポインタ。期限なしはNaN。 |
vtbl 12 HRESULT Remove()
vtbl 13 HRESULT Shutdown()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IMFMediaKeySession2 "{E9707E05-6D55-4636-B185-3DE21210BD75}" #usecom global IMFMediaKeySession2 IID_IMFMediaKeySession2 "{}" #comfunc global IMFMediaKeySession2_get_KeyStatuses 8 var,var #comfunc global IMFMediaKeySession2_Load 9 wstr,var #comfunc global IMFMediaKeySession2_GenerateRequest 10 wstr,var,int #comfunc global IMFMediaKeySession2_get_Expiration 11 var #comfunc global IMFMediaKeySession2_Remove 12 #comfunc global IMFMediaKeySession2_Shutdown 13 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMFMediaKeySession2 "{E9707E05-6D55-4636-B185-3DE21210BD75}" #usecom global IMFMediaKeySession2 IID_IMFMediaKeySession2 "{}" #comfunc global IMFMediaKeySession2_get_KeyStatuses 8 sptr,sptr #comfunc global IMFMediaKeySession2_Load 9 wstr,sptr #comfunc global IMFMediaKeySession2_GenerateRequest 10 wstr,sptr,int #comfunc global IMFMediaKeySession2_get_Expiration 11 sptr #comfunc global IMFMediaKeySession2_Remove 12 #comfunc global IMFMediaKeySession2_Shutdown 13 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。