Delen via


Automatiseringsservers

Automatisering maakt het mogelijk voor uw toepassing om objecten te bewerken die in een andere toepassing zijn geïmplementeerd of om objecten beschikbaar te maken zodat ze kunnen worden gemanipuleerd. Een Automation-server is een toepassing die programmeerbare objecten (automatiseringsobjecten genoemd) beschikbaar maakt voor andere toepassingen ( automatiseringsclients genoemd). Automatiseringsservers worden ook wel Automation-onderdelen genoemd.

Door Automatiseringsobjecten beschikbaar te maken, kunnen clients bepaalde procedures automatiseren door rechtstreeks toegang te krijgen tot de objecten en functionaliteit die de server beschikbaar maakt. Het beschikbaar maken van objecten op deze manier is nuttig wanneer toepassingen functionaliteit bieden die nuttig is voor andere toepassingen. Een tekstverwerker kan bijvoorbeeld de functionaliteit voor spellingcontrole beschikbaar maken, zodat andere programma's deze kunnen gebruiken. Blootstelling aan objecten stelt leveranciers in staat om de functionaliteit van hun toepassingen te verbeteren met behulp van de kant-en-klare functionaliteit van andere toepassingen.

Deze Automation-objecten hebben eigenschappen en methoden als hun externe interface. Eigenschappen zijn benoemde kenmerken van het Automation-object. Eigenschappen zijn net als de gegevensleden van een C++-klasse. Methoden zijn functies die werken aan Automation-objecten. Methoden zijn net als de openbare lidfuncties van een C++-klasse.

Opmerking

Hoewel eigenschappen lijken op C++-gegevensleden, zijn ze niet rechtstreeks toegankelijk. Om transparante toegang te bieden, stelt u een interne variabele in binnen het Automation-object en gebruikt u een paar get/set-lidfuncties om toegang tot deze variabele te krijgen.

Door toepassingsfunctionaliteit beschikbaar te maken via een gemeenschappelijke, goed gedefinieerde interface, maakt Automation het mogelijk om toepassingen te bouwen in één algemene programmeertaal zoals Microsoft Visual Basic in plaats van in diverse toepassingsspecifieke macrotalen.

Ondersteuning voor Automation-servers

Visual C++ en het MFC-framework bieden uitgebreide ondersteuning voor Automation-servers. Ze verwerken veel overhead bij het maken van een Automation-server, zodat u zich kunt richten op de functionaliteit van uw toepassing.

Het belangrijkste mechanisme van het framework voor het ondersteunen van Automatisering is de verzendkaart, een set macro's die uitbreidt naar de declaraties en aanroepen die nodig zijn om methoden en eigenschappen voor OLE beschikbaar te maken. Een typische verzendkaart ziet er als volgt uit:

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

De Class Wizard en Class View helpen bij het onderhouden van dispatchmappen. Wanneer u een nieuwe methode of eigenschap aan een klasse toevoegt, voegt Visual Studio een bijbehorende DISP_FUNCTION of DISP_PROPERTY macro toe met parameters die de klassenaam, externe en interne namen van de methode of eigenschap en gegevenstypen aangeven.

Het dialoogvenster Klasse toevoegen vereenvoudigt ook de declaratie van Automation-klassen en het beheer van hun eigenschappen en bewerkingen. Wanneer u het dialoogvenster Klasse toevoegen gebruikt om een klasse aan uw project toe te voegen, geeft u de basisklasse op. Als de basisklasse Automation toestaat, worden in het dialoogvenster Klasse toevoegen besturingselementen weergegeven die u gebruikt om op te geven of de nieuwe klasse Automatisering moet ondersteunen, of deze 'OLE-creatable' is (dat wil gezegd, of objecten van de klasse kunnen worden gemaakt op basis van een aanvraag van een COM-client) en de externe naam voor de COM-client die moet worden gebruikt.

Het dialoogvenster Klasse toevoegen maakt vervolgens een klassedeclaratie, inclusief de juiste macro's voor de OLE-functies die u hebt opgegeven. Ook wordt de skeletcode toegevoegd voor de implementatie van de ledenfuncties van uw klasse.

De MFC-toepassingswizard vereenvoudigt de stappen die nodig zijn voor het van de grond krijgen van uw automatiseringsserverapplicatie. Als u het selectievakje Automation inschakelt op de pagina Geavanceerde functies , voegt de wizard MFC-toepassing toe aan de functie van InitInstance uw toepassing de aanroepen die nodig zijn om uw Automation-objecten te registreren en uw toepassing uit te voeren als een Automation-server.

Wat u wilt doen?

Zie ook

Automatisering
MFC-toepassingswizard