private unsafe static int DrawUnderlineImpl(IntPtr thisObject, IntPtr clientDrawingContextPtr, float baselineOriginX, float baselineOriginY, Underline.__Native *underline, IntPtr clientDrawingEffectPtr) { unsafe { var shadow = ToShadow <TextRendererShadow>(thisObject); var callback = (TextRenderer)shadow.Callback; var underlineData = new Underline(); underlineData.__MarshalFrom(ref *underline); return(callback.DrawUnderline(GCHandle.FromIntPtr(clientDrawingContextPtr).Target, baselineOriginX, baselineOriginY, ref underlineData, (ComObject)Utilities.GetObjectForIUnknown(clientDrawingEffectPtr)).Code); } }
private static unsafe int DrawUnderlineImpl(IntPtr thisObject, IntPtr clientDrawingContextPtr, float baselineOriginX, float baselineOriginY, Underline.__Native *underlineNative, IntPtr clientDrawingEffectPtr) { try { IDWriteTextRendererShadow shadow = ToShadow <IDWriteTextRendererShadow>(thisObject); IDWriteTextRenderer callback = (IDWriteTextRenderer)shadow.Callback; var underline = new Underline(); underline.__MarshalFrom(ref *underlineNative); callback.DrawUnderline(clientDrawingContextPtr, baselineOriginX, baselineOriginY, ref underline, clientDrawingEffectPtr == IntPtr.Zero ? null : (IUnknown)Marshal.GetObjectForIUnknown(clientDrawingEffectPtr)); return(Result.Ok.Code); } catch (Exception ex) { return(Result.GetResultFromException(ex).Code); } }
private static unsafe int DrawUnderline(IntPtr thisObject, IntPtr clientDrawingContext, float baselineOriginX, float baselineOriginY, GlyphOrientationAngle orientationAngle, Underline.__Native *underlineNative, IntPtr clientDrawingEffectPtr) { try { var shadow = ToShadow <IDWriteTextRenderer1Shadow>(thisObject); var callback = (IDWriteTextRenderer1)shadow.Callback; Underline underline = default; underline.__MarshalFrom(ref *underlineNative); var clientDrawingEffect = clientDrawingEffectPtr == IntPtr.Zero ? null : new ComObject(clientDrawingEffectPtr); callback.DrawUnderline(clientDrawingContext, baselineOriginX, baselineOriginY, orientationAngle, ref underline, clientDrawingEffect); return(Result.Ok.Code); } catch (Exception ex) { return(Result.GetResultFromException(ex).Code); } }