ホーム › Media.WindowsMediaFormat › IWMSecureChannel
IWMSecureChannel
COMメソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 6 HRESULT WMSC_AddCertificate(IWMAuthorizer* pCert)
| pCert | IWMAuthorizer* | in | セキュアチャネルへ追加する証明書を提供するIWMAuthorizerへのポインタ。 |
| pbCertSig | BYTE* | in | 証明書署名データのバイト配列へのポインタ。 |
| cbCertSig | DWORD | in | 証明書署名データのバイト数。 |
vtbl 8 HRESULT WMSC_Connect(IWMSecureChannel* pOtherSide)
| pOtherSide | IWMSecureChannel* | in | 接続相手側のIWMSecureChannelインターフェイスへのポインタ。 |
| pfIsConnected | BOOL* | out | セキュアチャネルが接続済みならTRUEを受け取るBOOL出力ポインタ。 |
vtbl 10 HRESULT WMSC_Disconnect()
| ppbCertificate | BYTE** | out | 有効な証明書データの先頭アドレスを受け取る出力ポインタ。 |
| pdwSignature | DWORD* | out | 証明書の署名値を受け取る出力ポインタ。 |
| pbData | BYTE* | in | 暗号化対象データを格納したバッファへのポインタ。インプレースで暗号化される。 |
| cbData | DWORD | in | 暗号化するデータのバイト数。 |
| pbData | BYTE* | in | 復号対象データを格納したバッファへのポインタ。インプレースで復号される。 |
| cbData | DWORD | in | 復号するデータのバイト数。 |
vtbl 14 HRESULT WMSC_Lock()
vtbl 15 HRESULT WMSC_Unlock()
| dwCertIndex | DWORD | in | 共有データを設定する証明書のゼロ起点インデックス。 |
| pbSharedData | BYTE* | in | 設定する共有データのバイト配列へのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWMSecureChannel "{2720598A-D0F2-4189-BD10-91C46EF0936F}" #usecom global IWMSecureChannel IID_IWMSecureChannel "{}" #comfunc global IWMSecureChannel_WMSC_AddCertificate 6 sptr #comfunc global IWMSecureChannel_WMSC_AddSignature 7 var,int #comfunc global IWMSecureChannel_WMSC_Connect 8 sptr #comfunc global IWMSecureChannel_WMSC_IsConnected 9 var #comfunc global IWMSecureChannel_WMSC_Disconnect 10 #comfunc global IWMSecureChannel_WMSC_GetValidCertificate 11 var,var #comfunc global IWMSecureChannel_WMSC_Encrypt 12 var,int #comfunc global IWMSecureChannel_WMSC_Decrypt 13 var,int #comfunc global IWMSecureChannel_WMSC_Lock 14 #comfunc global IWMSecureChannel_WMSC_Unlock 15 #comfunc global IWMSecureChannel_WMSC_SetSharedData 16 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMSecureChannel "{2720598A-D0F2-4189-BD10-91C46EF0936F}" #usecom global IWMSecureChannel IID_IWMSecureChannel "{}" #comfunc global IWMSecureChannel_WMSC_AddCertificate 6 sptr #comfunc global IWMSecureChannel_WMSC_AddSignature 7 sptr,int #comfunc global IWMSecureChannel_WMSC_Connect 8 sptr #comfunc global IWMSecureChannel_WMSC_IsConnected 9 sptr #comfunc global IWMSecureChannel_WMSC_Disconnect 10 #comfunc global IWMSecureChannel_WMSC_GetValidCertificate 11 sptr,sptr #comfunc global IWMSecureChannel_WMSC_Encrypt 12 sptr,int #comfunc global IWMSecureChannel_WMSC_Decrypt 13 sptr,int #comfunc global IWMSecureChannel_WMSC_Lock 14 #comfunc global IWMSecureChannel_WMSC_Unlock 15 #comfunc global IWMSecureChannel_WMSC_SetSharedData 16 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。