コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
 public virtual void SendAdvise_DataChanged()
 {
     if (null != DataAdviseHolder)
     {
         ComDebug.ReportInfo("{0}.SendAdvise.DataChanged -> Calling _dataAdviseHolder.SendOnDataChange()", GetType().Name);
         DataAdviseHolder.SendOnDataChange((IDataObject)this, 0, 0);
     }
 }
コード例 #3
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);
     }
 }
コード例 #4
0
 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;
         }
     }
 }