public int DAdvise(ref FORMATETC pFormatetc, ADVF advf, IAdviseSink adviseSink, out int connection) { if (null == DataAdviseHolder) { ComDebug.ReportInfo("{0}.IDataObject.DAdvise -> not implemented!", GetType().Name); connection = 0; return(ComReturnValue.E_NOTIMPL); } else { ComDebug.ReportInfo("{0}.IDataObject.DAdvise {1}, {2}", GetType().Name, DataObjectHelper.FormatEtcToString(pFormatetc), advf); try { if (pFormatetc.cfFormat != 0) // if a special format is required { int res = QueryGetData(ref pFormatetc); // ask the render helper for availability of that format if (res != ComReturnValue.S_OK) // if the required format is not available { connection = 0; // return an invalid connection cookie return(res); // and the error } } FORMATETC etc = pFormatetc; DataAdviseHolder.Advise((IDataObject)this, ref etc, advf, adviseSink, out var conn); connection = conn; return(ComReturnValue.NOERROR); } catch (Exception e) { ComDebug.ReportError("{0}.IDataObject.DAdvise exception: {1}", GetType().Name, e); throw; } } }
public virtual void SendAdvise_DataChanged() { if (null != DataAdviseHolder) { ComDebug.ReportInfo("{0}.SendAdvise.DataChanged -> Calling _dataAdviseHolder.SendOnDataChange()", GetType().Name); DataAdviseHolder.SendOnDataChange((IDataObject)this, 0, 0); } }
public int EnumDAdvise(out IEnumSTATDATA enumAdvise) { if (null == DataAdviseHolder) { ComDebug.ReportInfo("{0}.IDataObject.EnumAdvise -> not implemented!", GetType().Name); enumAdvise = null; return(ComReturnValue.E_NOTIMPL); } else { ComDebug.ReportInfo("{0}.IDataObject.EnumAdvise", GetType().Name); enumAdvise = DataAdviseHolder.EnumAdvise(); return(ComReturnValue.S_OK); } }
public void DUnadvise(int connection) { if (null == DataAdviseHolder) { ComDebug.ReportInfo("{0}.IDataObject.DUnadvise connection={1} -> not implemented!", GetType().Name, connection); return; } else { ComDebug.ReportInfo("{0}.IDataObject.DUnadvise connection={1}", GetType().Name, connection); try { DataAdviseHolder.Unadvise(connection); } catch (Exception e) { ComDebug.ReportError("{0}.IDataObject.DUnadvise exception {1}", GetType().Name, e); throw; } } }