LABRADOR 属性サンプル:ユーザー インターフェイスなしで、サーバーを実装します。
LABRADOR 属性サンプルでは、ATL を使用してユーザー インターフェイスのない EXE サーバーを実装する方法を示します。 このサーバーでは、Labrador.idl で定義された 2 つのカスタム インターフェイスをサポートするオブジェクトを作成できます。
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
このサンプルは、3 つのコンポーネントを使用します。サーバー、マーシャリング DLL、およびドライバー。
コンポーネントをビルドして登録するには
ソリューション ファイル Labrador.sln を開きます。
From the Build menu, click Build Solution.
サーバー、マーシャリング DLL、およびドライバーがビルドされて登録されます。
ドライバーを実行するには
ソリューション エクスプローラーで、labdriv プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
メニューの [デバッグ、 デバッグなしで開始] をクリックします。
ドライバーはオブジェクトを作成し、そのオブジェクトを数回呼び出した後で解放します。
属性
このサンプルでは次の属性を使用します。
aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid
Keywords
このサンプルでは、次のキーワードを使用します。
_CrtDumpMemoryLeaks;_tcsicmp;_tcstok;_tprintf;_vstprintf;ATLASSERT;BEGIN_COM_MAP;BEGIN_OBJECT_MAP;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++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。