/// <summary> /// Registers to receive notification of specified events that affect the message store. /// </summary> /// <param name="eventMask">A mask of values that indicate the types of notification events that the caller is interested in and should be included in the registration. </param> /// <returns></returns> public bool RegisterEvents(EEventMask eventMask) { callbackHandler_ = new OnAdviseCallbackHandler(OnNotifyCallback); HRESULT hresult = HRESULT.S_OK; try { pAdviseSink_ = new MAPIAdviseSink(IntPtr.Zero, callbackHandler_); hresult = MAPIStore.Advise(0, IntPtr.Zero, (uint)eventMask, pAdviseSink_, out ulConnection_); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return(false); } return(hresult == HRESULT.S_OK); }
/// <summary> /// Initializes a new instance of the MAPIAdviseSink class. /// </summary> /// <param name="pContext">object pointer</param> /// <param name="callbackHandler">callback delegate</param> public MAPIAdviseSink(IntPtr pContext, OnAdviseCallbackHandler callbackHandler) { pContext_ = pContext; callbackHandler_ = callbackHandler; }
public MAPIAdviseSink(IMsgStore store, EEventMask eventMask, IMAPISession owner) { this.store = store; IntPtr ptr = IntPtr.Zero; this.callbackHandler = OnNotifyCallback; HRESULT hr = MAPIlibAdvise(store.Ptr, eventMask, this.callbackHandler, ref ptr); if (hr != HRESULT.S_OK) throw new Exception("MAPIlibAdvise failed: " + hr.ToString()); this.adviserPtr = ptr; this.owner = owner; }
private static extern HRESULT MAPIlibAdvise(IntPtr storePtr, EEventMask eventMask, OnAdviseCallbackHandler callback, ref IntPtr adviser);
/// <summary> /// Registers to receive notification of specified events that affect the message store. /// </summary> /// <param name="eventMask">A mask of values that indicate the types of notification events that the caller is interested in and should be included in the registration. </param> /// <returns></returns> public bool RegisterEvents(EEventMask eventMask) { callbackHandler_ = new OnAdviseCallbackHandler(OnNotifyCallback); HRESULT hresult = HRESULT.S_OK; try { pAdviseSink_ = new MAPIAdviseSink(IntPtr.Zero, callbackHandler_); hresult = MAPIStore.Advise(0, IntPtr.Zero, (uint)eventMask, pAdviseSink_, out ulConnection_); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return false; } return hresult == HRESULT.S_OK; }