チュートリアル : スマート デバイス用 ATL マルチプラットフォーム ActiveX コントロールの作成

更新 : 2007 年 11 月

デバイス用の Visual C++ を使用して、複数デバイスを対象とした ActiveX コントロールを記述できます。次のチュートリアルでは、マルチプラットフォーム対応の ATL ActiveX コントロールを構築する方法について説明しています。

このチュートリアルで行う主なタスク

  • マルチプラットフォーム対応のスマート デバイス ATL プロジェクトを作成します。

  • ウィザードを使用して、プロジェクトに ActiveX コントロールを追加します。基本的な構造とコードの大部分がウィザードによって生成されます。

  • stdafx.h ファイルおよび samplecontrol.h ファイル内のコードを修正して、スレッド処理モデルを定義し、コンパイラの警告を回避します。

  • マルチプラットフォーム ソリューションを配置します。コントロールのテストと実行を容易にするために、Internet Explorer ファイルも生成されることに注意してください。

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

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

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

マルチプラットフォーム対応の ATL ActiveX コントロールを作成する

マルチプラットフォーム対応の ATL ActiveX コントロールを作成するには

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

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

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

    ATL スマート デバイス プロジェクトウィザードが起動します。

  4. ATL スマート デバイス プロジェクトウィザードの [ようこそ] ページで、[次へ] をクリックします。

    [プラットフォーム] (ATL スマート デバイス プロジェクト ウィザード) が表示されるので、現在のプロジェクトに追加するプラットフォームの SDK を選択します。

  5. [インストール済み SDK] リストから、Smartphone 2003 や Pocket PC 2003 など、現在のプロジェクトに追加するプラットフォームを選択します。プラットフォームを追加するには、左ペインで Smartphone 2003 などのプラットフォームを選択し、右矢印のボタン ([>]) をクリックします。プラットフォームを削除するには、右ペインで Pocket PC 2003 などのプラットフォームを選択し、左矢印のボタン ([<]) をクリックします。

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

プロジェクトに ActiveX コントロールを追加する

プロジェクトに ActiveX コントロールを追加するには

  1. ソリューション エクスプローラで、[ATLAXControl] を右クリックし、[追加] をポイントします。次に、[クラス] をクリックします。

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

  3. [テンプレート] ペインの [ATL コントロール] をクリックし、[追加] をクリックします。

    [ATL コントロール ウィザード] ダイアログ ボックスが表示されます。

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

  5. [完了] をクリックしてウィザードを終了します。

ヘッダー ファイルのコードを変更する

stdafx.h のコードを変更するには

  1. ソリューション エクスプローラで、stdafx.h をダブルクリックしてエディタで開きます。

  2. 次に示すように、#pragma once の後に定義 #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA を追加します。

        // Add this define after 
        #pragma once
    #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA
    
  3. 次の手順に従って、ActiveX コントロールをプロジェクトに追加します。

プロジェクトに ActiveX コントロールを追加するには

  1. ソリューション エクスプローラで、samplecontrol.h をダブルクリックしてエディタで開きます。

  2. Isamplecontrol を定義するコード内で、文字列 ATL 8.0 : samplecontrol を Hello World ActiveX Control で置き換えます。

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

DCOM プラットフォームの ActiveX コントロールは、ビルド時にアパートメント モデルのスレッドとしてマークする必要があります。これは、ATL コントロール ウィザードの既定の設定です。コンパイル時に警告が表示されても無視できます。また、ATL、GUI、および EXE プロジェクトでは (ATL EXE プロジェクトに atlwin.h、atlctl.h、atlhost.h を追加した場合など)、ATL ヘッダー ファイルを含める前に、stdafx.h で定義されている _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA を含める必要があります。この開発手順は、デスクトップの場合と同様です。詳細については、「Visual C++ デバイス プロジェクトのビルドとデバッグ」を参照してください。

マルチプラットフォーム ATL ソリューションの配置

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

  1. [ビルド] メニューの [ソリューションのリビルド] をクリックし、コントロールをビルドします。

  2. [ビルド] メニューの [ソリューションの配置] をクリックします。

  3. Visual Studio ツール バーにある [ターゲット デバイス] ボックスの一覧で、[Pocket PC 2003 SE エミュレータ] または [Pocket PC 2003 デバイス] などの対象を選択します。

  4. [ビルド] メニューの [配置] をクリックします。

対象デバイスの選択

ソリューションを配置するときにデバイス選択のダイアログが表示されるようにするには、次の手順を実行します。

配置時にデバイス選択のダイアログを表示するには

  1. [ツール] メニューの [オプション] をクリックし、[デバイス ツール] ノードを展開します。次に、[全般] をクリックします。

  2. [デバイス ツール] が表示されない場合は、[オプション] ダイアログ ボックスの下部にある [すべての設定を表示] を選択します。

  3. [デバイス プロジェクトの配置前に選択できるデバイスを表示] チェック ボックスをオンにし、[OK] をクリックします。

コントロールを実行するには、デバイスでファイル エクスプローラを使用し、Program Files\ATLAXControl に移動して、Internet Explorer ファイルの ATLAXControl をダブルクリックします。セキュリティ メッセージがいくつか表示されます。ページを実行するには [はい] をクリックします。

参照

参照

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

その他の技術情報

方法 : マルチプラットフォーム対応のデバイス プロジェクトを作成する (Visual C++)