unsafe HRESULT IOleControlSite.TransformCoords(Point *pPtlHimetric, PointF *pPtfContainer, XFORMCOORDS dwFlags) { if (pPtlHimetric is null || pPtfContainer is null) { return(HRESULT.E_INVALIDARG); } HRESULT hr = SetupLogPixels(false); if (hr < 0) { return(hr); } if ((dwFlags & XFORMCOORDS.HIMETRICTOCONTAINER) != 0) { if ((dwFlags & XFORMCOORDS.SIZE) != 0) { pPtfContainer->X = (float)host.HM2Pix(pPtlHimetric->X, logPixelsX); pPtfContainer->Y = (float)host.HM2Pix(pPtlHimetric->Y, logPixelsY); } else if ((dwFlags & XFORMCOORDS.POSITION) != 0) { pPtfContainer->X = (float)host.HM2Pix(pPtlHimetric->X, logPixelsX); pPtfContainer->Y = (float)host.HM2Pix(pPtlHimetric->Y, logPixelsY); } else { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "\t dwFlags not supported: " + dwFlags); return(HRESULT.E_INVALIDARG); } } else if ((dwFlags & XFORMCOORDS.CONTAINERTOHIMETRIC) != 0) { if ((dwFlags & XFORMCOORDS.SIZE) != 0) { pPtlHimetric->X = host.Pix2HM((int)pPtfContainer->X, logPixelsX); pPtlHimetric->Y = host.Pix2HM((int)pPtfContainer->Y, logPixelsY); } else if ((dwFlags & XFORMCOORDS.POSITION) != 0) { pPtlHimetric->X = host.Pix2HM((int)pPtfContainer->X, logPixelsX); pPtlHimetric->Y = host.Pix2HM((int)pPtfContainer->Y, logPixelsY); } else { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "\t dwFlags not supported: " + dwFlags); return(HRESULT.E_INVALIDARG); } } else { Debug.WriteLineIf(AxHTraceSwitch.TraceVerbose, "\t dwFlags not supported: " + dwFlags); return(HRESULT.E_INVALIDARG); } return(HRESULT.S_OK); }