Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Hoewel er mechanismen zijn waarmee een object de functionaliteit kan uitdrukken die het statisch biedt (voordat het wordt geïnstantieerd), is het fundamentele COM-mechanisme het gebruik van de IUnknown methode genaamd QueryInterface.
Elke interface is afgeleid van IUnknown, dus elke interface heeft een implementatie van QueryInterface. Ongeacht de implementatie wordt met deze methode een query uitgevoerd op een object met behulp van de IID interface waarnaar de aanroeper een aanwijzer wil. Als het object deze interface ondersteunt, QueryInterface haalt u een aanwijzer op naar de interface, terwijl u ook aanroept AddRef. Anders wordt de E_NOINTERFACE foutcode geretourneerd.
Houd er rekening mee dat u altijd regels voor verwijzing tellen moet volgen. Als u een interfaceaanwijzer aanroept Release om het aantal verwijzingen naar nul te verlagen, moet u die aanwijzer niet opnieuw gebruiken. Af en toe moet u mogelijk een zwakke verwijzing naar een object verkrijgen (dat wil bijvoorbeeld dat u een verwijzing naar een van de interfaces wilt verkrijgen zonder het aantal verwijzingen te verhogen), maar het is niet acceptabel om dit te doen door het aanroepen QueryInterface gevolgd door Release. De aanwijzer die op een dergelijke manier is verkregen, is ongeldig en mag niet worden gebruikt. Dit wordt duidelijker wanneer _ATL_DEBUG_INTERFACES deze macro is gedefinieerd, dus het definiëren van deze macro is een handige manier om fouten te vinden bij het tellen van verwijzingen.