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

IWMRegisteredDevice

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

公式ドキュメント

IWMRegisteredDevice インターフェイスは、登録済みデバイスオブジェクトの主要なインターフェイスです。デバイス登録データベース内の再生デバイスに関する情報へのアクセスを提供します。

メソッド 14

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

vtbl 3 HRESULT GetDeviceSerialNumber(DRM_VAL16* pSerialNumber)

GetDeviceID メソッドは、デバイスを識別する 128 ビットの値を取得します。

pSerialNumberDRM_VAL16*outデバイスのシリアル番号を受け取る DRM_VAL16 構造体のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

シリアル番号には、128 ビットのメモリに格納できる任意の値を使用できます。

デバイスのシリアル番号とデバイス証明書を組み合わせることで、デバイスが一意に識別されます。製造元は、デバイスごとに個別の証明書を使用することが推奨されます。ただし、製造元は特定の種類のすべてのデバイスで 1 つの証明書を共有し、個々のデバイスをシリアル番号で区別することもできます。

vtbl 4 HRESULT GetDeviceCertificate(INSSBuffer** ppCertificate)

GetDeviceCertificate メソッドは、デバイスの証明書を取得します。

ppCertificateINSSBuffer**out証明書データを格納するバッファーオブジェクトの INSSBuffer インターフェイスへのポインターを受け取る変数のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

デバイス証明書には、デバイスに関連する保護情報が含まれています。

デバイス証明書とデバイスのシリアル番号を組み合わせることで、デバイスが一意に識別されます。製造元は、デバイスごとに個別の証明書を使用することが推奨されます。ただし、製造元は特定の種類のすべてのデバイスで 1 つの証明書を共有し、個々のデバイスをシリアル番号で区別することもできます。

vtbl 5 HRESULT GetDeviceType(DWORD* pdwType)

GetDeviceType メソッドは、デバイスに関連付けられているデバイスの種類を取得します。

pdwTypeDWORD*outデバイスの種類を受け取る変数のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

Windows Media DRM 10 for Network Devices をサポートするデバイスは、DRM_DEVICE_REGISTER_TYPE_STREAMING 登録タイプを使用します。デバイスが Windows Media DRM 10 for Network Devices をサポートしているかどうかを判断するには、IsWmdrmCompliant を呼び出します。

DRM_DEVICE_REGISTER_TYPE_STORAGE 登録タイプは定義されていますが、このリリースでは使用されません。

vtbl 6 HRESULT GetAttributeCount(DWORD* pcAttributes)

GetAttributeCount メソッドは、デバイスに関連付けられている属性の総数を取得します。

pcAttributesDWORD*out属性の数を受け取る変数のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

デバイスの属性を列挙するには、まずこのメソッドを呼び出し、次に 0 から属性の総数より 1 小さい値までのインデックス値に対して GetAttributeByIndex を呼び出します。

vtbl 7 HRESULT GetAttributeByIndex(DWORD dwIndex, LPWSTR* pbstrName, LPWSTR* pbstrValue)

GetAttributeByIndex メソッドは、デバイスに関連付けられている属性を取得します。このメソッドは、取得する属性を指定するために属性インデックスを使用します。

dwIndexDWORDin属性インデックスです。有効なインデックスは、0 から GetAttributeCount が返す属性数より 1 小さい値までの範囲です。
pbstrNameLPWSTR*out属性名を受け取る変数のアドレスです。
pbstrValueLPWSTR*out属性値を受け取る変数のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
vtbl 8 HRESULT GetAttributeByName(LPWSTR bstrName, LPWSTR* pbstrValue)

GetAttributeByName メソッドは、デバイスに関連付けられている属性を取得します。このメソッドは、取得する属性を指定するために属性名を使用します。

bstrNameLPWSTRin取得する属性の名前です。
pbstrValueLPWSTR*out属性値を受け取る変数のアドレスです。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
vtbl 9 HRESULT SetAttributeByName(LPWSTR bstrName, LPWSTR bstrValue)

SetAttributeByName メソッドは、デバイスの属性を設定します。

bstrNameLPWSTRin設定する属性の名前です。
bstrValueLPWSTRin属性の値です。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
vtbl 10 HRESULT Approve(BOOL fApprove)

Approve メソッドは、メディアデータを受信するためのデバイスの承認状態を設定します。

fApproveBOOLinデバイスがメディアデータを受信することを承認する場合は TRUE を設定し、デバイスが承認されていないことを示す場合は FALSE を設定します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

承認は、アプリケーションがデバイスの再生を承認したり、再生への使用を禁止したりするための仕組みです。一般的なシナリオでは、デバイスを使用するかどうかをユーザーに確認し、それに応じて承認を設定します。

データを受信するには、デバイスが開かれ、検証され、承認されている必要があります。

デバイスが開いているかどうかは、IsOpened を呼び出して確認できます。デバイスを開くには Open を呼び出します。

デバイスが有効なのは、過去 48 時間以内に近接検出が実行された場合のみです。デバイスの有効性は、IsValid を呼び出して確認できます。詳細については、IWMProximityDetection インターフェイスを参照してください。

デバイスが承認されているかどうかを判断するには、IsApproved メソッドを呼び出します。デバイスを承認または制限するには Approve を使用します。

vtbl 11 HRESULT IsValid(BOOL* pfValid)

IsValid メソッドは、デバイスの検証状態を取得します。

pfValidBOOL*outデバイスの検証状態を受け取る変数のアドレスです。TRUE はデバイスが有効であることを示します。FALSE はデバイスが有効ではなく、使用する前に再検証が必要であることを示します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

データを受信するには、デバイスが開かれ、検証され、承認されている必要があります。

デバイスが開いているかどうかは、IsOpened を呼び出して確認できます。デバイスを開くには Open を呼び出します。

デバイスは、近接検出を実行することで検証されます。詳細については、IWMProximityDetection インターフェイスを参照してください。

デバイスが承認されているかどうかを判断するには、IsApproved メソッドを呼び出します。デバイスを承認するには、Approve メソッドを呼び出します。

vtbl 12 HRESULT IsApproved(BOOL* pfApproved)

IsApproved メソッドは、デバイスの承認状態を取得します。承認されたデバイスは、メディアデータを受信して再生できます。

pfApprovedBOOL*outデバイスの承認状態を受け取る変数のアドレスです。TRUE は承認されていることを示します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

データを受信するには、デバイスが開かれ、検証され、承認されている必要があります。

デバイスが開いているかどうかは、IsOpened を呼び出して確認できます。デバイスを開くには Open を呼び出します。

デバイスが有効なのは、過去 48 時間以内に近接検出が実行された場合のみです。デバイスの有効性は、IsValid を呼び出して確認できます。詳細については、IWMProximityDetection インターフェイスを参照してください。

デバイスが承認されているかどうかを確認するには、このメソッドを使用します。デバイスを承認するには、Approve メソッドを呼び出します。

vtbl 13 HRESULT IsWmdrmCompliant(BOOL* pfCompliant)

IsWmdrmCompliant メソッドは、デバイスの DRM 準拠状態を取得します。準拠しているデバイスは、Windows Media DRM 10 for Network Devices プロトコルを使用してデータを受信できます。

pfCompliantBOOL*outデバイスの DRM 準拠状態を受け取る変数のアドレスです。TRUE は Windows Media DRM 10 for Network Devices がサポートされていることを示します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
vtbl 14 HRESULT IsOpened(BOOL* pfOpened)

IsOpened メソッドは、デバイスの開いている状態を取得します。開いているデバイスは、メディアデータを受信する準備ができています。

pfOpenedBOOL*outデバイスの開いている状態を受け取る変数のアドレスです。TRUE はデバイスが開いていることを示します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

データを受信するには、デバイスが開かれ、検証され、承認されている必要があります。

デバイスが開いているかどうかを確認するには、このメソッドを使用できます。デバイスを開くには Open を呼び出します。

デバイスが有効なのは、過去 48 時間以内に近接検出が実行された場合のみです。デバイスの有効性は、IsValid を呼び出して確認できます。詳細については、IWMProximityDetection インターフェイスを参照してください。

デバイスが承認されているかどうかを判断するには、IsApproved メソッドを呼び出します。デバイスを承認するには、Approve メソッドを呼び出します。

vtbl 15 HRESULT Open()

Open メソッドは、デバイスがメディアデータを受信できるようにデバイスを開きます。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。
NS_E_DRM_DEVICE_LIMIT_REACHED
クライアントコンピューターで既に最大数のデバイスが開かれています。

解説(Remarks)

データを受信するには、デバイスが開かれ、検証され、承認されている必要があります。

デバイスを開くには、このメソッドを使用します。デバイスが既に開いているかどうかを判断するには、IsOpened を呼び出します。1 台のコンピューターで同時に開くことができるデバイスは 10 台までです。

デバイスが有効なのは、過去 48 時間以内に近接検出が実行された場合のみです。デバイスの有効性は、IsValid を呼び出して確認できます。詳細については、IWMProximityDetection インターフェイスを参照してください。

デバイスが承認されているかどうかを判断するには、IsApproved メソッドを呼び出します。デバイスを承認するには、Approve メソッドを呼び出します。

vtbl 16 HRESULT Close()

Close メソッドは、デバイスが開いている場合はそれを閉じます。また、デバイスに関連付けられているすべてのリソースを解放します。

戻り値

このメソッドは HRESULT を返します。値としては、以下の表に示すものが含まれますが、これらに限定されません。

リターンコード 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドはすぐに戻りますが、デバイスに関連付けられているリソースは 30 ~ 60 秒後まで解放されません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

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 指定が可能。