public static void TaskLogLiveCCW(IntPtr CCWGCHandle, IntPtr pCCW, IntPtr typeRawValue, IntPtr IUnknown, int ComRefCount, int JupiterRefCount, int flags)
        {
            long ccwEtwFlags = 0;

            if ((flags & (long)ComCallableObjectFlags.IsPegged) != 0)
            {
                ccwEtwFlags &= (long)CCW_ETW_FLAGS.Pegged;
            }

            if ((flags & (long)ComCallableObjectFlags.IsAggregatingRCW) != 0)
            {
                ccwEtwFlags &= (long)CCW_ETW_FLAGS.AggregatesRCW;
            }
#if !RHTESTCL
            InteropExtensions.RhpETWLogLiveCom((int)EVENT_TYPE.EVENT_LOG_CCW, CCWGCHandle, pCCW, typeRawValue, IUnknown, (IntPtr)0, ComRefCount, JupiterRefCount, flags);
#endif // !RHTESTCL
        }
        public static void TaskLogLiveRCW(IntPtr pRCW, IntPtr typeRawValue, IntPtr IUnknown, IntPtr VTable, int refCount, ComObjectFlags flags)
        {
            int rcwEtwFlags = 0;

            if ((flags & ComObjectFlags.IsDuplicate) != 0)
            {
                rcwEtwFlags &= (int)RCW_ETW_FLAGS.Duplicate;
            }
            if ((flags & ComObjectFlags.IsJupiterObject) != 0)
            {
                rcwEtwFlags &= (int)RCW_ETW_FLAGS.JupiterObject;
            }
            if ((flags & ComObjectFlags.ExtendsComObject) != 0)
            {
                rcwEtwFlags &= (int)RCW_ETW_FLAGS.ExtendsComObject;
            }
#if !RHTESTCL
            InteropExtensions.RhpETWLogLiveCom((int)EVENT_TYPE.EVENT_LOG_RCW, (IntPtr)0, pRCW, typeRawValue, IUnknown, VTable, refCount, 0, rcwEtwFlags);
#endif // !RHTESTCL
        }
        public static void FlushComETW()
        {
#if !RHTESTCL
            InteropExtensions.RhpETWLogLiveCom((int)EVENT_TYPE.EVENT_FLUSH_COM, (IntPtr)0, (IntPtr)0, (IntPtr)0, (IntPtr)0, (IntPtr)0, 0, 0, 0);
#endif // !RHTESTCL
        }