LABRADOR, exemple : implémente un serveur sans interface utilisateur
Mise à jour : novembre 2007
L'exemple LABRADOR montre comment utiliser ATL pour implémenter un serveur de fichiers exécutables sans aucune interface utilisateur. Le serveur permet de créer un objet qui prend en charge deux interfaces personnalisées définies dans Labrador.idl.
L'exemple d'attributs LABRADOR est la version avec attributs de cet exemple.
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 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.
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