LABRADOR, exemple d'attributs : implémente un serveur sans interface utilisateur
Mise à jour : novembre 2007
L'exemple d'attribut LABRADOR illustre l'utilisation d'ATL pour implémenter un serveur EXE sans interface utilisateur. Le serveur permet de créer un objet qui prend en charge deux interfaces personnalisées définies dans Labrador.idl.
Note de sécurité : |
---|
Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues. |
Pour obtenir des exemples et des instructions d'installation :
Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.
Pour plus d'informations, consultez Recherche des fichiers d'exemple.
La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.
Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont stockés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont disponibles en ligne.
Génération et exécution de l'exemple
Cet exemple utilise trois composants : le serveur, la DLL de marshaling et le pilote.
Pour générer et inscrire les composants
Ouvrez le fichier solution Labrador.sln.
Dans le menu Générer, cliquez sur Générer la solution.
Le serveur, la DLL de marshaling et le pilote sont générés et inscrits.
Pour exécuter le pilote
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet labdriv, puis sélectionnez Définir comme projet de démarrage.
Dans le menu Déboguer, cliquez sur Exécuter sans débogage.
Le pilote crée un objet, effectue quelques appels vers cet objet, puis le libère.
Attributs
Cet exemple utilise les attributs suivants :
aggregatable, coclass, default, emitidl, helpstring, in, module, object, out, progid, string, threading, uuid, version, vi_progid
Mots clés
Cet exemple utilise les mots clés suivants :
_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
Remarque : |
---|
Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée. |