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

IWMRegisteredDevice

COM
IIDa4503bec-5508-4148-97ac-bfa75760a70d継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

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

vtbl 3 HRESULT GetDeviceSerialNumber(DRM_VAL16* pSerialNumber)
pSerialNumberDRM_VAL16*outデバイスのシリアル番号を受け取るDRM_VAL16構造体へのポインタ。
vtbl 4 HRESULT GetDeviceCertificate(INSSBuffer** ppCertificate)
ppCertificateINSSBuffer**outデバイス証明書を格納したINSSBufferを受け取る出力ポインタ。
vtbl 5 HRESULT GetDeviceType(DWORD* pdwType)
pdwTypeDWORD*outデバイスの種別を示すフラグ値を受け取る出力ポインタ。
vtbl 6 HRESULT GetAttributeCount(DWORD* pcAttributes)
pcAttributesDWORD*outデバイスに設定された属性の総数を受け取る出力ポインタ。
vtbl 7 HRESULT GetAttributeByIndex(DWORD dwIndex, LPWSTR* pbstrName, LPWSTR* pbstrValue)
dwIndexDWORDin取得する属性のゼロ起点インデックス。
pbstrNameLPWSTR*out属性名の文字列を受け取る出力ポインタ。呼び出し側で解放する。
pbstrValueLPWSTR*out属性値の文字列を受け取る出力ポインタ。呼び出し側で解放する。
vtbl 8 HRESULT GetAttributeByName(LPWSTR bstrName, LPWSTR* pbstrValue)
bstrNameLPWSTRin取得対象の属性名を指定する文字列。
pbstrValueLPWSTR*out指定属性の値文字列を受け取る出力ポインタ。
vtbl 9 HRESULT SetAttributeByName(LPWSTR bstrName, LPWSTR bstrValue)
bstrNameLPWSTRin設定対象の属性名を指定する文字列。
bstrValueLPWSTRin属性に設定する値の文字列。
vtbl 10 HRESULT Approve(BOOL fApprove)
fApproveBOOLinデバイスを承認するならTRUE、承認取り消しならFALSEを指定する。
vtbl 11 HRESULT IsValid(BOOL* pfValid)
pfValidBOOL*outデバイスが有効ならTRUEを受け取るBOOL出力ポインタ。
vtbl 12 HRESULT IsApproved(BOOL* pfApproved)
pfApprovedBOOL*outデバイスが承認済みならTRUEを受け取るBOOL出力ポインタ。
vtbl 13 HRESULT IsWmdrmCompliant(BOOL* pfCompliant)
pfCompliantBOOL*outデバイスがWMDRMに準拠していればTRUEを受け取るBOOL出力ポインタ。
vtbl 14 HRESULT IsOpened(BOOL* pfOpened)
pfOpenedBOOL*outデバイスが開かれている状態ならTRUEを受け取るBOOL出力ポインタ。
vtbl 15 HRESULT Open()
vtbl 16 HRESULT Close()

HSP用 COM定義

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

出力引数:
#define global IID_IWMRegisteredDevice "{A4503BEC-5508-4148-97AC-BFA75760A70D}"
#usecom global IWMRegisteredDevice IID_IWMRegisteredDevice "{}"
#comfunc global IWMRegisteredDevice_GetDeviceSerialNumber  3 var
#comfunc global IWMRegisteredDevice_GetDeviceCertificate   4 sptr
#comfunc global IWMRegisteredDevice_GetDeviceType          5 var
#comfunc global IWMRegisteredDevice_GetAttributeCount      6 var
#comfunc global IWMRegisteredDevice_GetAttributeByIndex    7 int,var,var
#comfunc global IWMRegisteredDevice_GetAttributeByName     8 wstr,var
#comfunc global IWMRegisteredDevice_SetAttributeByName     9 wstr,wstr
#comfunc global IWMRegisteredDevice_Approve                10 int
#comfunc global IWMRegisteredDevice_IsValid                11 var
#comfunc global IWMRegisteredDevice_IsApproved             12 var
#comfunc global IWMRegisteredDevice_IsWmdrmCompliant       13 var
#comfunc global IWMRegisteredDevice_IsOpened               14 var
#comfunc global IWMRegisteredDevice_Open                   15
#comfunc global IWMRegisteredDevice_Close                  16
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。