Aufrufen Active Accessibility-APIs
Microsoft Active Accessibility stellt ApIs (Application Programming Interfaces) für Clients und Server bereit. Die meisten sind in der Microsoft Active Accessibility Dynamic Link Library Oleacc.dll implementiert, aber NotifyWinEvent, SetWinEventHookund UnhookWinEvent werden in user32.dll implementiert, einer Kernkomponente des Microsoft Windows-Betriebssystems.
Auf Computern mit Windows 95 oder Microsoft Windows NT 4.0 sind Oleacc.dll und die richtige Version von user32.dll nicht installiert, da Microsoft Active Accessibility in Phasen in die folgenden Versionen von Windows integriert wurde. Daher werden Anwendungen, die auf diesen Plattformen ausgeführt werden, zur Laufzeit explizit mit Oleacc.dll linkt, indem die LoadLibrary-Funktion verwendet wird, anstatt sich auf Importbibliotheken zu verlassen. Active Accessibility 1.3 unterstützt Windows 95 und Microsoft Windows NT 4.0. Frühere Versionen von Windows werden nicht von Microsoft Active Accessibility.
Serveranwendungen verwenden die GetProcAddress-Funktion, um die Adresse einer Microsoft Active Accessibility-Funktion abzurufen und dann den Aufruf über einen Funktionszeiger ausführen. Beim Aufrufen einer Funktion, die in Oleacc.dll implementiert wurde, verwenden Serveranwendungen das handle, das von LoadLibrary im Aufruf von GetProcAddress zurückgegeben wird. Wenn sie eine in user32.dll definierte Funktion aufrufen, rufen Serveranwendungen GetModuleHandle unter Angabe von "USER32" auf und verwenden das zurückgegebene Modulhandle im Aufruf von GetProcAddress.
Wenn eine Anwendung z. B. NotifyWinEventverwendet, ruft sie GetProcAddress mithilfe des Modulhandles von user32.dll auf, um die Adresse der Funktion zu erhalten. Wenn der Aufruf erfolgreich ist (d. h. diese Version von Windows Microsoft Active Accessibility unterstützt), legt die Anwendung ein Flag fest, das angibt, dass notifyWinEvent sicher aufgerufen werden kann. Die von GetProcAddress empfangene Adresse wird in einer Funktionszeigervariablen gespeichert und im gesamten Code verwendet.