void IDkmCustomVisualizer.EvaluateVisualizedExpression(DkmVisualizedExpression expression, out DkmEvaluationResult resultObject)
        {
            Debug.Print("UE4PV: EvaluateVisualizedExpression('{0}'/'{1}', [{2}])",
                        Utility.GetExpressionFullName(expression),
                        Utility.GetExpressionName(expression),
                        expression.TagValue
                        );

            // Sanity check to confirm this is only being invoked for UObject types. @TODO: Remove eventually.
            // Believe this method is only invoked on DkmRootVisualizedExpression instances, not children.
            Debug.Assert(expression.VisualizerId == Guids.Visualizer.UObject);

            UE4Visualizer visualizer = null;
            bool          result     = UE4VisualizerRegistrar.TryCreateVisualizer(expression, out visualizer);

            if (!result)
            {
                OnVisualizerMatchFailed(expression, out resultObject);
                return;
            }

            // Evaluate the visualization result
            DkmEvaluationResult eval = visualizer.EvaluationResult;

            resultObject = eval;

            // Associate the visualizer with the expression
            expression.SetDataItem <ExpressionDataItem>(
                DkmDataCreationDisposition.CreateAlways,
                new ExpressionDataItem(visualizer)
                );
        }
        void IDkmCustomVisualizer.EvaluateVisualizedExpression(DkmVisualizedExpression expression, out DkmEvaluationResult resultObject)
        {
            if (KUE4VS.ExtContext.Instance.ExtensionOptions.EnablePropVis == false)
            {
                /*                var LangExpr = DkmLanguageExpression.Create(DefaultEE.CppLanguage, DkmEvaluationFlags.None, Utility.GetExpressionFullName(expression), null);
                 *              expression.EvaluateExpressionCallback(expression.InspectionContext, LangExpr, expression.StackFrame, out resultObject);
                 *              return;
                 */
                resultObject = null;
                return;
            }

            Debug.Print("UE4PV: EvaluateVisualizedExpression('{0}'/'{1}', [{2}])",
                        Utility.GetExpressionFullName(expression),
                        Utility.GetExpressionName(expression),
                        expression.TagValue
                        );

            // Sanity check to confirm this is only being invoked for UObject types. @TODO: Remove eventually.
            // Believe this method is only invoked on DkmRootVisualizedExpression instances, not children.
            Debug.Assert(expression.VisualizerId == Guids.Visualizer.UObject);

            UE4Visualizer visualizer = null;
            bool          result     = UE4VisualizerRegistrar.TryCreateVisualizer(expression, out visualizer);

            if (!result)
            {
                OnVisualizerMatchFailed(expression, out resultObject);
                return;
            }

            // Evaluate the visualization result
            DkmEvaluationResult eval = visualizer.EvaluationResult;

            resultObject = eval;

            // Associate the visualizer with the expression
            expression.SetDataItem <ExpressionDataItem>(
                DkmDataCreationDisposition.CreateAlways,
                new ExpressionDataItem(visualizer)
                );
        }
 static UE4PropVisComponent()
 {
     UE4VisualizerRegistrar.Register <UObjectVisualizer.Factory>(Guids.Visualizer.UObject);
     //UE4VisualizerRegistrar.Register< PropertyListVisualizer.Factory >(Guids.Visualizer.PropertyList);
 }