LABRADOR 属性サンプル : ユーザー インターフェイスのないサーバーの実装
更新 : 2007 年 11 月
LABRADOR 属性サンプルでは、ATL を使用してユーザー インターフェイスのない EXE サーバーを実装する方法を示します。このサーバーでは、Labrador.idl で定義された 2 つのカスタム インターフェイスをサポートするオブジェクトを作成できます。
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。 |
サンプルとそのインストール手順を取得するには
Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。
詳細については、「サンプル ファイルの格納場所」を参照してください。
使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。
サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。
サンプルのビルドと実行
このサンプルでは、3 つのコンポーネント (サーバー、マーシャリング DLL、およびドライバ) を使用します。
コンポーネントをビルドして登録するには
ソリューション ファイル Labrador.sln を開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サーバー、マーシャリング DLL、およびドライバがビルドされて登録されます。
ドライバを実行するには
ソリューション エクスプローラで、labdriv プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
[デバッグ] メニューの [デバッグなしで開始] をクリックします。
ドライバはオブジェクトを作成し、そのオブジェクトを数回呼び出した後で解放します。
属性
このサンプルでは次の属性を使用します。
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
メモ : |
---|
このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。 |