Registrieren Sie sich für NLM-Ereignisse (INetworkListManager, Advise, Sink usw.)
In meiner Delphi-Anwendung möchte ich mithilfe der Microsoft Windows Network List Manager-API (NLM) über Netzwerkänderungen informiert werden:http://msdn.microsoft.com/library/ee264321
Ich habe mir das verknüpfte Beispiel "So registrieren Sie sich für NLM-Ereignisse" angesehen und es in Delphi übersetzt. Ich habe jedoch keine Ahnung, wie ich damit weitermachen soll.
var
pNLM: INetworkListManager;
pCpc: IConnectionPointContainer;
pConnectionPoint: IConnectionPoint;
pSink: IUnknown;
dwCookie: LongInt;
const
IID_IConnectionPointContainer: TGUID = '{B196B284-BAB4-101A-B69C-00AA00341D07}';
IID_IUnknown: TGUID = '{00000000-0000-0000-C000-000000000046}';
begin
if Succeeded(CoCreateInstance(CLASS_NetworkListManager, nil, CLSCTX_ALL, IID_INetworkListManager, pNLM)) then
begin
if Succeeded(pNLM.QueryInterface(IID_IConnectionPointContainer, pCpc)) then
begin
if Succeeded(pCpc.FindConnectionPoint(IID_INetworkEvents, pConnectionPoint)) then
begin
if Succeeded(pCpc.QueryInterface(IID_IUnknown, pSink)) then
begin
pConnectionPoint.Advise(pSink, dwCookie);
end;
end;
end;
end;
end;
Der Artikel lautet:
"Nachdem Sie das obige INetworkListManager-Objekt erstellt haben, erhalten Sie ab diesem Zeitpunkt INetworkEvents-Benachrichtigungen. PSink implementiert die INetworkEvent-Schnittstelle einschließlich der Ereignisverarbeitungsmethoden wie NetworkAdded, NetworkDeleted, NetworkConnectivityChanged und NetworkPropertyChanged."
Leider habe ich keine Ahnung, wie das geht. Es gibt keine weiteren Anweisungen und daher hoffe ich, dass mich hier jemand anweisen / ein Beispiel geben kann, was zu tun ist, um benutzerdefinierte Verfahren für diese Ereignisse aufzurufen. Vielen Dank.