RE: SENS and subscription
In last hours of digging some info how to impement SENS,
I found useful SensNetDemo sample at:
http://support.microsoft.com/kb/321381
sample SensNetDemo implements ISendNetwork members and it runs OK.
I adjusted source code by it.
All return values are S_OK, and by sample there is all needed,
but still Logon member in my subscriber class is not called.
I appear this error in my Application log:
The COM+ Event System detected an unexpected error from a Win32 API call at
line 159 of d:\nt\com\complus\src\events\shared\sectools.cpp. A call to
GetTokenInformation failed with error code 6: "The handle is invalid. "
Please contact Microsoft Product Support Services to report this error.
For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
This is my adjusted source code:
hr = S_OK;
IEventSystemPtr evSystem;
hr = evSystem.CreateInstance(L"{4E14FBA2-2E22-11D1-9964-00C04FBBB345}");//
EventSystem class
IEventSubscriptionPtr evSub;
hr = evSub.CreateInstance(L"{7542E960-79C7-11D1-88F9-0080C7D771BF}"); //
Event Subscription
hr = evSub->put_SubscriptionID(L"{45F3AC69-7104-4798-A468-A87431DE2407}");
hr = evSub->put_SubscriptionName(L"MySubscription");
hr = evSub->put_Description(L"MySubscription Description");
hr = evSub->put_methodName(L"Logon");
IUnknown *unk = NULL;
ISensLogon2* sensLogon2 = NULL;
hr = pMyClass->QueryInterface(IID_ISensLogon2, (void**)&sensLogon2);
hr = evSub->put_SubscriberInterface(sensLogon2);
hr = evSub->put_EventClassID(L"{d5978650-5b9f-11d1-8dd2-00aa004abd5e}");//
logon2
hr = evSystem->Store(L"EventSystem.EventSubscription", evSub);
"Peter" wrote:
Creating of subscription finishes without errors,
but when I unplug network cable, plug it back and establish connection,
nothing is notified, No function of ISensNetwork which are implemented in my
subscriber are called. What can be reason ?
This is part of code in my MyProjNameModule::Run() which I experiment with:
hr = S_OK;
IEventSystemPtr evSystem;
hr = evSystem.CreateInstance(L"{4E14FBA2-2E22-11D1-9964-00C04FBBB345}");
IEventSubscriptionPtr evSub;
hr = evSub.CreateInstance(L"{7542E960-79C7-11D1-88F9-0080C7D771BF}");
hr = evSub->put_SubscriptionID(L"{05F3AC69-7104-4798-A468-A87431DE2407}");
hr = evSub->put_SubscriptionName(L"MySubscription");
hr = evSub->put_methodName(L"ChangedSubscription");
IUnknown *unk = NULL;
hr = pMyClass->QueryInterface(IID_IUnknown, (void**)&unk);
hr = evSub->put_SubscriberInterface(unk);
hr =
evSub->put_EventClassID(L"{B8881EBE-7058-4BB0-8974-38E9D399B7F2}");/*coclass
ID of my subscriber from *.idl file */
hr = evSub->QueryInterface(IID_IUnknown, (void**)&unk);
hr = evSystem->Store(L"EventSystem.EventSubscription", unk);
Sleep(INFINITE);