Share via


LABRADOR 属性サンプル : ユーザー インターフェイスのないサーバーの実装

更新 : 2007 年 11 月

LABRADOR 属性サンプルでは、ATL を使用してユーザー インターフェイスのない EXE サーバーを実装する方法を示します。このサーバーでは、Labrador.idl で定義された 2 つのカスタム インターフェイスをサポートするオブジェクトを作成できます。

a3377668.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

このサンプルでは、3 つのコンポーネント (サーバー、マーシャリング DLL、およびドライバ) を使用します。

コンポーネントをビルドして登録するには

  1. ソリューション ファイル Labrador.sln を開きます。

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

    サーバー、マーシャリング DLL、およびドライバがビルドされて登録されます。

ドライバを実行するには

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

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

    ドライバはオブジェクトを作成し、そのオブジェクトを数回呼び出した後で解放します。

属性

このサンプルでは次の属性を使用します。

aggregatable、coclass、default、emitidl、helpstring、in、module、object、out、progid、string、threading、uuid、version、vi_progid

キーワード

このサンプルでは、次のキーワードを使用します。

_CrtDumpMemoryLeaks; _tcsicmp; _tcstok; _tprintf; _vstprintf; ATLASSERT; BEGIN_COM_MAP; BEGIN_OBJECT_MAP; CComModule::Init; CComModule::RegisterClassObjects; CComModule::RevokeClassObjects; CComModule::Unlock; CComModule::UnregisterServer; CComObjectRoot; CoCreateInstance; COM_INTERFACE_ENTRY; CoUninitialize; DECLARE_NOT_AGGREGATABLE; DECLARE_REGISTRY; DispatchMessage; END_OBJECT_MAP; GetCurrentThreadId; GetMessage; OBJECT_ENTRY; OutputDebugString; PostThreadMessage; Trace; va_end; va_list; va_start; wcscpy_s

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

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

ATL 属性のサンプル