IWMPEvents2
COM公式ドキュメント
IWMPEvents2 インターフェイスは、Windows Media Player 10 以降のコントロールから発生するイベントを提供し、埋め込みプログラムがこれに応答できます。IWMPEvents2 が公開するイベントは、_WMPOCXEvents インターフェイスでも公開されます。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
DeviceConnect イベントは、ユーザーがデバイスをコンピューターに接続したときに発生します。
| pDevice | IWMPSyncDevice* | in | ユーザーが接続したデバイスを表す IWMPSyncDevice インターフェイスのアドレス。 |
解説(Remarks)
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
DeviceDisconnect イベントは、ユーザーがデバイスをコンピューターから切断したときに発生します。
| pDevice | IWMPSyncDevice* | in | ユーザーが切断したデバイスを表す IWMPSyncDevice インターフェイスのアドレス。 |
解説(Remarks)
特定のデバイスが、ユーザーが切断したデバイスと一致するかどうかを判断するには、IWMPSyncDevice::isIdentical を使用します。
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
DeviceStatusChange イベントは、デバイスのパートナーシップの状態が変化したときに発生します。
| pDevice | IWMPSyncDevice* | in | 状態が変化したデバイスを表す IWMPSyncDevice インターフェイスのアドレス。 |
| NewStatus | WMPDeviceStatus | in | pDevice で指定されたデバイスの新しい状態を表す WMPDeviceStatus 列挙値。 |
解説(Remarks)
特定のデバイスが、状態が変化したデバイスと一致するかどうかを判断するには、IWMPSyncDevice::isIdentical を使用します。
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
DeviceSyncStateChange イベントは、デバイスの同期状態が変化したときに発生します。
| pDevice | IWMPSyncDevice* | in | 同期状態が変化したデバイスを表す IWMPSyncDevice インターフェイスのアドレス。 |
| NewState | WMPSyncState | in | pDevice で指定されたデバイスの新しい同期状態を表す WMPSyncState 列挙値。 |
解説(Remarks)
特定のデバイスが、同期状態が変化したデバイスと一致するかどうかを判断するには、IWMPSyncDevice::isIdentical を使用します。
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
DeviceSyncError イベントは、同期エラーに応じて発生します。
| pDevice | IWMPSyncDevice* | in | 同期エラーが発生したデバイスを表す IWMPSyncDevice インターフェイスのアドレス。 |
| pMedia | IDispatch* | in | 同期エラーが発生したメディア項目を表す IWMPDispatch インターフェイスのアドレス。 |
解説(Remarks)
Media オブジェクトの IWMPMedia2 インターフェイスを取得するには、pMedia に対して QueryInterface を呼び出します。その後、IWMPMedia2::get_error を使用して、発生したエラーに関する詳細情報を取得できます。
特定のデバイスが、エラーが発生したデバイスと一致するかどうかを判断するには、IWMPSyncDevice::isIdentical を使用します。
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
CreatePartnershipComplete イベントは、IWMPSyncDevice::createPartnership への非同期呼び出しが完了したときに発生します。
| pDevice | IWMPSyncDevice* | in | パートナーシップが作成されたデバイスオブジェクトを表す IWMPSyncDevice インターフェイスのアドレス。 |
| hrResult | HRESULT | in | パートナーシップ作成操作の成功またはエラーを示す HRESULT。 |
解説(Remarks)
IWMPSyncDevice::createPartnership を呼び出すと、Windows Media Player とデバイスの間でパートナーシップを作成する非同期操作が開始されます。この呼び出しはすぐに戻ります。パートナーシップを作成する操作が終了すると、CreatePartnershipComplete が発生します。
このイベント通知を受け取っても、パートナーシップが存在することが保証されるわけではありません。
このイベントは、リモート化されたすべての Windows Media Player コントロールインスタンスにブロードキャストされます。
特定のデバイスが、パートナーシップが作成されたデバイスと一致するかどうかを判断するには、IWMPSyncDevice::isIdentical を使用します。
このイベントは、_WMPOCXEvents インターフェイスを使用して IDispatch イベントシンク経由で処理することもできます。
Windows Media Player 10 Mobile: このイベントはサポートされていません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPEvents2 "{1E7601FA-47EA-4107-9EA9-9004ED9684FF}"
#usecom global IWMPEvents2 IID_IWMPEvents2 "{}"
#comfunc global IWMPEvents2_DeviceConnect 48 sptr
#comfunc global IWMPEvents2_DeviceDisconnect 49 sptr
#comfunc global IWMPEvents2_DeviceStatusChange 50 sptr,int
#comfunc global IWMPEvents2_DeviceSyncStateChange 51 sptr,int
#comfunc global IWMPEvents2_DeviceSyncError 52 sptr,sptr
#comfunc global IWMPEvents2_CreatePartnershipComplete 53 sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。