
いいえ、これはHabraエンジンの間違いではなく、
WiDiテクノロジーに関する先週公開された記事の繰り返しでもありません。 今回は、開発者がアプリケーションでWiDiを使用する方法について説明します。 WiDiを操作するための
WiDi拡張SDKがあることをご存知ですか? いや? 次に、この記事はあなたのためです。
開発者のどれがこれを役に立つと思うでしょうか? 理論的には、これは開発者の想像力によってのみ制限されます。 表面に横たわるアイデアは、ビデオまたはオーディオを視覚化して再生するプログラム、写真を表示するプログラムです。 スマートプログラムは、システム内のWiDiの存在を検出し、ユーザーにテレビ画面に再生可能なコンテンツを表示するよう促すことができます。 現時点では、このトピックはあまり重要ではない可能性があります-現時点ではそれほど多くのWiDiアダプターはありません。
しかし、近い将来、WiDiアダプターがテレビにすぐにインストールされ始めた後、たとえばLGはCES 2012で最初のテレビをすでにデモンストレーションし、今年のリリース
を開始する予定であるため、このトピックは多くの開発者の関心を引くでしょう。
WiDi機能をアプリケーションに統合したい開発者向けに、IntelはIntel WiDi Extensions SDKをリリースしました。 このSDKを使用すると、次のことができます。
- WiDiの可用性とパフォーマンスを検出する
- すぐに接続できるアダプターの検索と識別
- アダプターに接続する
- 画面設定、表示モードの変更(画面の複製、デスクトップを2番目の画面に展開)
SDKには、ドキュメント、プロジェクトに含めるために必要なファイル、およびC ++、C#の例があります。
ところで、WiDiで動作するアプリケーションを開発するために、このテクノロジーをサポートするハードウェアは必要ありません。 このような鉄は、テストにのみ必要です。
プログラムでWiDiを使用するための機能の構築を開始します。
まず、サイトにアクセスして、
Intel WiDi Extensions SDKをダウンロードする必要があり
ます 。 アーカイブ内には、SDK自体を含むディストリビューションがあります。 保存、解凍、インストールします。
テストアプリケーションを作成し、ヘッダーファイルをプロジェクトに接続します
#include <IntelWiDiExtensions_i.h>
最初に行うことは、IWiDiExtensionsを作成して初期化することです
HRESULT hr; hr = CoCreateInstance(CLSID_WiDiExtensions, NULL, CLSCTX_INPROC_SERVER, __uuidof(IWiDiExtensions), (LPVOID*)&m_pWiDi); if(hr == S_OK) { hr = m_pWiDi->Initialize((DWORD)m_hWnd); }
すべてのWiDi API関数は非同期です。 操作の結果を通知するために、
Initialize関数が呼び出されたときにハンドルが渡されたウィンドウにウィンドウメッセージが送信されます。
HRESULT Initialize( HWND windowHandle );
初期化の正常終了に関する通知を受信するには、アプリケーションウィンドウで
WM_WIDI_INITIALIZEDメッセージを処理できる必要があります。
初期化プロセス中に発生したエラーの通知を受信するには、
WM_WIDI_INITIALIZATION_FAILEDメッセージが
使用されます。
WM_WIDI_INITIALIZATION_FAILEDメッセージ
ハンドラのwParamパラメータには、対応するエラーコードが含まれます。
RC_WIDI_APP_NOT_FOUND
初期化に成功したら、利用可能なWiDiアダプターの検索を開始できます。 これは、
StartScanForAdapters関数を使用して行われます
。 HRESULT StartScanForAdapters();
見つかったアダプタについて通知するために、メッセージ
WM_WIDI_ADAPTER_DISCOVEREDが使用されます。 lParamパラメーターは、アダプターIDへのポインターになります。 この識別子は、選択したアダプターに接続するために必要です。
検索が完了すると、ウィンドウはメッセージ
WM_WIDI_SCAN_COMPLETEを受け取ります。 wParamパラメーターにはコードが含まれ、その分析はスキャンが完了した理由を判断するのに役立ちます。
RC_SUCCESS
1つ以上のデバイスが検出された場合、接続を続行できます。 接続は、
StartConnectionToAdapter関数を呼び出すことによって行われます。
HRESULT StartConnectionToAdapter( BSTR AdapterUniqueID, int SourceScreenResolution, int TargetScreenResolution, ScreenMode Mode );
接続に成功すると、ウィンドウは
WM_WIDI_CONNECTEDメッセージを受け取ります。 問題が発生した場合
-WM_WIDI_DISCONNECT_FAILED 、wParamパラメーターには次のコードが含まれます。
RC_CONNECTION_DROPPED
アダプターIDは、
lParamパラメーターに渡されます。
今のところすべてです。 WiDi Extensions SDKの機能の詳細については、SDKに付属のドキュメントをご覧ください。 質問があります-ここ、コメント、または
Intel Software Networkフォーラムで質問してください。