Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › IWMSecureChannel

IWMSecureChannel

COM
IID2720598a-d0f2-4189-bd10-91c46ef0936f継承元IWMAuthorizer自前メソッド開始 vtbl6

メソッド 11

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 6 HRESULT WMSC_AddCertificate(IWMAuthorizer* pCert)
pCertIWMAuthorizer*inセキュアチャネルへ追加する証明書を提供するIWMAuthorizerへのポインタ。
vtbl 7 HRESULT WMSC_AddSignature(BYTE* pbCertSig, DWORD cbCertSig)
pbCertSigBYTE*in証明書署名データのバイト配列へのポインタ。
cbCertSigDWORDin証明書署名データのバイト数。
vtbl 8 HRESULT WMSC_Connect(IWMSecureChannel* pOtherSide)
pOtherSideIWMSecureChannel*in接続相手側のIWMSecureChannelインターフェイスへのポインタ。
vtbl 9 HRESULT WMSC_IsConnected(BOOL* pfIsConnected)
pfIsConnectedBOOL*outセキュアチャネルが接続済みならTRUEを受け取るBOOL出力ポインタ。
vtbl 10 HRESULT WMSC_Disconnect()
vtbl 11 HRESULT WMSC_GetValidCertificate(BYTE** ppbCertificate, DWORD* pdwSignature)
ppbCertificateBYTE**out有効な証明書データの先頭アドレスを受け取る出力ポインタ。
pdwSignatureDWORD*out証明書の署名値を受け取る出力ポインタ。
vtbl 12 HRESULT WMSC_Encrypt(BYTE* pbData, DWORD cbData)
pbDataBYTE*in暗号化対象データを格納したバッファへのポインタ。インプレースで暗号化される。
cbDataDWORDin暗号化するデータのバイト数。
vtbl 13 HRESULT WMSC_Decrypt(BYTE* pbData, DWORD cbData)
pbDataBYTE*in復号対象データを格納したバッファへのポインタ。インプレースで復号される。
cbDataDWORDin復号するデータのバイト数。
vtbl 14 HRESULT WMSC_Lock()
vtbl 15 HRESULT WMSC_Unlock()
vtbl 16 HRESULT WMSC_SetSharedData(DWORD dwCertIndex, BYTE* pbSharedData)
dwCertIndexDWORDin共有データを設定する証明書のゼロ起点インデックス。
pbSharedDataBYTE*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 指定が可能。