MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / SubscribeToEvents

Function SubscribeToEvents

Win32/Win32NetState.cpp:21–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19DWORD Cookie = 0;
20
21void SubscribeToEvents()
22{
23 LogPrint(eLogInfo, "NetState: Trying to subscribe to NetworkListManagerEvents");
24 CoInitialize(NULL);
25
26 HRESULT Result = CoCreateInstance(CLSID_NetworkListManager, NULL, CLSCTX_ALL, IID_IUnknown, (void **)&pUnknown);
27 if (SUCCEEDED(Result))
28 {
29 Result = pUnknown->QueryInterface(IID_INetworkListManager, (void **)&pNetworkListManager);
30 if (SUCCEEDED(Result))
31 {
32 VARIANT_BOOL IsConnect = VARIANT_FALSE;
33#if defined(_MSC_VER)
34 Result = pNetworkListManager->get_IsConnectedToInternet(&IsConnect);
35#else
36 Result = pNetworkListManager->IsConnectedToInternet(&IsConnect);
37#endif
38 if (SUCCEEDED(Result)) {
39 i2p::transport::transports.SetOnline (true);
40 LogPrint(eLogInfo, "NetState: Current state: ", IsConnect == VARIANT_TRUE ? "connected" : "disconnected");
41 }
42
43 Result = pNetworkListManager->QueryInterface(IID_IConnectionPointContainer, (void **)&pCPContainer);
44 if (SUCCEEDED(Result))
45 {
46 Result = pCPContainer->FindConnectionPoint(IID_INetworkListManagerEvents, &pConnectPoint);
47 if(SUCCEEDED(Result))
48 {
49 pNetEvent = new CNetworkListManagerEvent;
50 Result = pConnectPoint->Advise((IUnknown *)pNetEvent, &Cookie);
51 if (SUCCEEDED(Result))
52 LogPrint(eLogInfo, "NetState: Successfully subscribed to NetworkListManagerEvent messages");
53 else
54 LogPrint(eLogError, "NetState: Unable to subscribe to NetworkListManagerEvent messages");
55 } else
56 LogPrint(eLogError, "NetState: Unable to find interface connection point");
57 } else
58 LogPrint(eLogError, "NetState: Unable to query NetworkListManager interface");
59 } else
60 LogPrint(eLogError, "NetState: Unable to query global interface");
61 } else
62 LogPrint(eLogError, "NetState: Unable to create INetworkListManager interface");
63}
64
65void UnSubscribeFromEvents()
66{

Callers

nothing calls this directly

Calls 3

LogPrintFunction · 0.85
QueryInterfaceMethod · 0.80
SetOnlineMethod · 0.80

Tested by

no test coverage detected