チュートリアル : Hello World: スマート デバイスの COM 相互運用の例

更新 : 2007 年 11 月

このチュートリアルでは、簡単な COM オブジェクトとマネージ アプリケーションを 1 つのソリューションとして結合します。

ms180791.alert_note(ja-jp,VS.90).gifメモ :

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

このチュートリアルは、[Visual C++ 開発設定] を使用して記述されています。

COM オブジェクトの作成

スマート デバイスの ATL プロジェクトを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。[プロジェクトの種類] ペインで [Visual C++] を展開し、[スマート デバイス] をクリックします。

  2. [テンプレート] ペインの [ATL スマート デバイス プロジェクト] をクリックします。

  3. [プロジェクト名] ボックスに「HelloCOMObject」と入力します。

  4. [ソリューション名] ボックスに「InteropSolution」と入力します。

  5. [OK] をクリックして、ATL スマート デバイス プロジェクト ウィザードを起動します。

  6. [完了] をクリックして、ウィザードを閉じます。

    このチュートリアルでは、ウィザードで既定の設定を変更する必要はありません。

クラスを追加するには

  1. ソリューション エクスプローラ で、[HelloCOMObject] プロジェクトを右クリックし、[追加] をポイントします。次に、[クラス] をクリックして [クラスの追加] ダイアログ ボックスを開きます。

  2. [カテゴリ] ペインで、[スマート デバイス] をクリックします。

  3. [テンプレート] ペインで、[ATL シンプル オブジェクト] をクリックし、[追加] をクリックして ATL シンプル オブジェクト ウィザードを開きます。

  4. [短い名前] ボックスに「Hello」と入力します。

  5. 左ペインで、[オプション] をクリックして [オプション] ページを開きます。

  6. [スレッド モデル] グループの [フリー] をクリックし、[完了] をクリックします。

クラスにメソッドを追加するには

  1. デスクトップのタブから、または [表示] メニューから [クラス ビュー] ウィンドウを開きます。

  2. [HelloCOMObject] を展開し、[IHello] インターフェイスを表示します。

  3. [IHello] を右クリックし、[追加] をポイントします。次に、[メソッドの追加] をクリックしてメソッド追加ウィザードを開きます。

  4. [メソッド名] ボックスに「HelloWorld」と入力します。

  5. [パラメータの型] ボックスで、[BSTR*] を選択します。

  6. [パラメータ名] ボックスに、「text」と入力します。

  7. [パラメータの属性] グループの [out] を選択します。

  8. [追加] をクリックします。

    メソッド ボックスに [out] BSTR* text と表示されます。

  9. [完了] をクリックして、メソッド追加ウィザードを閉じます。

    STDMETHOD(HelloWorld)(BSTR* text) メソッドが Hello.h ファイルに表示されます。

メソッドに実装を追加するには

  1. ソリューション エクスプローラで、Hello.cpp をダブルクリックしてコード エディタでファイルを開きます。

  2. STDMETHODIMP セクションで、return ステートメントの前に次の実装コードを挿入します。

    *text = SysAllocString(L"Hello World!");
    
  3. [ビルド] メニューの [HelloCOMObject のビルド] をクリックします。

    COM オブジェクトがソリューションの一部となり、チュートリアルの最初の部分が完了しました。

マネージ プロジェクトの作成

ソリューションにマネージ プロジェクトを追加するには

  1. ソリューション エクスプローラの [InteropSolution] を右クリックし、[追加] をポイントして [新しいプロジェクト] をクリックします。

  2. [プロジェクトの種類] ペインで、[Visual C#] を展開し、[スマート デバイス] をクリックします。次に、[テンプレート] ペインで、[スマート デバイス プロジェクト] をクリックし、[名前] ボックスに「SayHello」と入力し、[OK] をクリックします。

  3. [新しいスマート デバイス プロジェクトの追加] ダイアログ ボックスの [デバイス アプリケーション] をクリックし、[OK] をクリックします。

    SayHello マネージ プロジェクトがソリューションの一部として作成され、Windows Mobile 5.0 Pocket PC フォームがデザイナ ウィンドウに表示されます。

マネージ プロジェクトで、COM オブジェクトを参照として追加します。

マネージ プロジェクトで COM オブジェクトを参照として追加するには

  1. ソリューション エクスプローラで、SayHello プロジェクトを右クリックし、[参照の追加] をクリックします。

  2. [参照の追加] ダイアログ ボックスで、[参照] をクリックします。

    SayHello フォルダが [ファイルの場所] ボックスに表示されます。

  3. 親フォルダに移動します (このチュートリアルでは、InteropSolution です)。

  4. フォルダの内容が示されているウィンドウで、[HelloCOMObject] をダブルクリックし、[Windows Mobile 5.0 Pocket PC SDK (ARMV4)] をダブルクリックします。次に、[デバッグ] をダブルクリックし、[HelloCOMObject.dll] をクリックします。

  5. [OK] をクリックして、[参照の追加] ダイアログ ボックスを閉じます。

    ms180791.alert_note(ja-jp,VS.90).gifメモ :

    管理者としてログインする必要があります。Windows Vista では、Visual Studio の起動時に [管理者として実行] をクリックします。

  6. ソリューション エクスプローラで [Form1.cs] を右クリックし、[コードの表示] をクリックします。

  7. ファイルの上部の Using directives 領域に、次のコードを追加します。

    using HelloCOMObjectLib;
    

マネージ プロジェクトへのイベント処理の追加

マネージ プロジェクトにイベント処理を追加して、構築するには

  1. Form1 デザイナを開きます。

  2. ツールボックスから、フォームに Button をドラッグします。

  3. ボタンをダブルクリックして、クリック イベント時にコード エディタを開きます。

  4. ボタンの次のイベント処理コードを挿入します。

    string text;
    HelloClass h = new HelloClass();
    h.HelloWorld(out text);
    MessageBox.Show(text);
    
  5. [ビルド] メニューの [SayHello のビルド] をクリックします。

ソリューションの最終調整

ソリューションを配置用に構成するには

  1. ソリューション エクスプローラで、SayHello プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。

  2. ソリューション エクスプローラで、[InteropSolution] ソリューションを右クリックし、[プロジェクト依存関係] をクリックします。

  3. [プロジェクト依存関係] ダイアログ ボックスで、[プロジェクト] ボックスの一覧の [SayHello] を選択し、[依存先] ボックスで [HelloCOMObject] を選択します。

  4. [OK] をクリックします。

    これで、ソリューションを配置できるようになります。

構成されたソリューションの配置

ソリューションを配置するには

  1. [デバッグ] メニューの [デバッグなしで開始] をクリックします。

  2. [配置] ダイアログ ボックスで、[Windows Mobile5.0 Pocket PC エミュレータ] をクリックし、[配置] をクリックします。

チュートリアル : マネージ コードとネイティブ コードの両方を含むソリューションのデバッグ」で使用するために、このソリューションを保存します。

参照

概念

デバイスの COM 相互運用性

参照

Visual Basic と Visual C# (スマート デバイスでの操作方法)