mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 05:28:14 +00:00
[GDI32] Allow functions to access printing support.
Reapplying lost committed code.
This commit is contained in:
parent
4563ca28d3
commit
665871527b
5 changed files with 96 additions and 2 deletions
|
@ -740,4 +740,6 @@ METADC_GetAndSetDCDWord(
|
||||||
_In_ USHORT usMF16Id,
|
_In_ USHORT usMF16Id,
|
||||||
_In_ DWORD dwError);
|
_In_ DWORD dwError);
|
||||||
|
|
||||||
|
HDC WINAPI GdiConvertAndCheckDC(HDC hdc);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -26,6 +26,8 @@ Arc(
|
||||||
xEndArc,
|
xEndArc,
|
||||||
yEndArc);
|
yEndArc);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiArcInternal(GdiTypeArc,
|
return NtGdiArcInternal(GdiTypeArc,
|
||||||
hdc,
|
hdc,
|
||||||
xLeft,
|
xLeft,
|
||||||
|
@ -62,6 +64,8 @@ AngleArc(
|
||||||
RCAST(DWORD, eStartAngle),
|
RCAST(DWORD, eStartAngle),
|
||||||
RCAST(DWORD, eSweepAngle));
|
RCAST(DWORD, eSweepAngle));
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiAngleArc(hdc,
|
return NtGdiAngleArc(hdc,
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
|
@ -96,6 +100,8 @@ ArcTo(
|
||||||
xRadial2,
|
xRadial2,
|
||||||
yRadial2);
|
yRadial2);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiArcInternal(GdiTypeArcTo,
|
return NtGdiArcInternal(GdiTypeArcTo,
|
||||||
hdc,
|
hdc,
|
||||||
xLeft,
|
xLeft,
|
||||||
|
@ -134,6 +140,8 @@ Chord(
|
||||||
xRadial2,
|
xRadial2,
|
||||||
yRadial2);
|
yRadial2);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiArcInternal(GdiTypeChord,
|
return NtGdiArcInternal(GdiTypeChord,
|
||||||
hdc,
|
hdc,
|
||||||
xLeft,
|
xLeft,
|
||||||
|
@ -176,6 +184,8 @@ Pie(
|
||||||
xRadial2,
|
xRadial2,
|
||||||
yRadial2);
|
yRadial2);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiArcInternal(GdiTypePie,
|
return NtGdiArcInternal(GdiTypePie,
|
||||||
hdc,
|
hdc,
|
||||||
xLeft,
|
xLeft,
|
||||||
|
|
|
@ -691,6 +691,34 @@ SetDIBitsToDevice(
|
||||||
lpbmi,
|
lpbmi,
|
||||||
ColorUse);
|
ColorUse);
|
||||||
|
|
||||||
|
// Handle the "Special Case"!
|
||||||
|
{
|
||||||
|
PLDC pldc;
|
||||||
|
ULONG hType = GDI_HANDLE_GET_TYPE(hdc);
|
||||||
|
if (hType != GDILoObjType_LO_DC_TYPE && hType != GDILoObjType_LO_METADC16_TYPE)
|
||||||
|
{
|
||||||
|
pldc = GdiGetLDC(hdc);
|
||||||
|
if (pldc)
|
||||||
|
{
|
||||||
|
if (pldc->Flags & LDC_STARTPAGE) StartPage(hdc);
|
||||||
|
|
||||||
|
if (pldc->Flags & LDC_SAPCALLBACK) GdiSAPCallback(pldc);
|
||||||
|
|
||||||
|
if (pldc->Flags & LDC_KILL_DOCUMENT)
|
||||||
|
{
|
||||||
|
LinesCopied = 0;
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_HANDLE);
|
||||||
|
LinesCopied = 0;
|
||||||
|
goto Exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((pConvertedInfo->bmiHeader.biCompression == BI_RLE8) ||
|
if ((pConvertedInfo->bmiHeader.biCompression == BI_RLE8) ||
|
||||||
(pConvertedInfo->bmiHeader.biCompression == BI_RLE4))
|
(pConvertedInfo->bmiHeader.biCompression == BI_RLE4))
|
||||||
{
|
{
|
||||||
|
@ -742,6 +770,7 @@ SetDIBitsToDevice(
|
||||||
TRUE,
|
TRUE,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
Exit:
|
||||||
if (Bits != pvSafeBits)
|
if (Bits != pvSafeBits)
|
||||||
RtlFreeHeap(RtlGetProcessHeap(), 0, pvSafeBits);
|
RtlFreeHeap(RtlGetProcessHeap(), 0, pvSafeBits);
|
||||||
if (lpbmi != pConvertedInfo)
|
if (lpbmi != pConvertedInfo)
|
||||||
|
@ -826,6 +855,9 @@ StretchDIBits(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return 0;
|
||||||
|
|
||||||
pConvertedInfo = ConvertBitmapInfo(lpBitsInfo, iUsage, &ConvertedInfoSize,
|
pConvertedInfo = ConvertBitmapInfo(lpBitsInfo, iUsage, &ConvertedInfoSize,
|
||||||
FALSE);
|
FALSE);
|
||||||
if (!pConvertedInfo)
|
if (!pConvertedInfo)
|
||||||
|
|
|
@ -13,6 +13,8 @@ LineTo(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, LineTo, FALSE, hdc, x, y);
|
HANDLE_METADC(BOOL, LineTo, FALSE, hdc, x, y);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiLineTo(hdc, x, y);
|
return NtGdiLineTo(hdc, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,6 +77,8 @@ Ellipse(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, Ellipse, FALSE, hdc, left, top, right, bottom);
|
HANDLE_METADC(BOOL, Ellipse, FALSE, hdc, left, top, right, bottom);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiEllipse(hdc, left, top, right, bottom);
|
return NtGdiEllipse(hdc, left, top, right, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +97,8 @@ Rectangle(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, Rectangle, FALSE, hdc, left, top, right, bottom);
|
HANDLE_METADC(BOOL, Rectangle, FALSE, hdc, left, top, right, bottom);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiRectangle(hdc, left, top, right, bottom);
|
return NtGdiRectangle(hdc, left, top, right, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,6 +119,8 @@ RoundRect(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, RoundRect, FALSE, hdc, left, top, right, bottom, width, height);
|
HANDLE_METADC(BOOL, RoundRect, FALSE, hdc, left, top, right, bottom, width, height);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiRoundRect(hdc, left, top, right, bottom, width, height);
|
return NtGdiRoundRect(hdc, left, top, right, bottom, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,6 +154,8 @@ SetPixel(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(COLORREF, SetPixel, CLR_INVALID, hdc, x, y, crColor);
|
HANDLE_METADC(COLORREF, SetPixel, CLR_INVALID, hdc, x, y, crColor);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiSetPixel(hdc, x, y, crColor);
|
return NtGdiSetPixel(hdc, x, y, crColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,6 +191,8 @@ FillRgn(
|
||||||
|
|
||||||
HANDLE_METADC(BOOL, FillRgn, FALSE, hdc, hrgn, hbr);
|
HANDLE_METADC(BOOL, FillRgn, FALSE, hdc, hrgn, hbr);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiFillRgn(hdc, hrgn, hbr);
|
return NtGdiFillRgn(hdc, hrgn, hbr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,6 +215,8 @@ FrameRgn(
|
||||||
|
|
||||||
HANDLE_METADC(BOOL, FrameRgn, FALSE, hdc, hrgn, hbr, nWidth, nHeight);
|
HANDLE_METADC(BOOL, FrameRgn, FALSE, hdc, hrgn, hbr, nWidth, nHeight);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiFrameRgn(hdc, hrgn, hbr, nWidth, nHeight);
|
return NtGdiFrameRgn(hdc, hrgn, hbr, nWidth, nHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,6 +236,8 @@ InvertRgn(
|
||||||
|
|
||||||
HANDLE_METADC(BOOL, InvertRgn, FALSE, hdc, hrgn);
|
HANDLE_METADC(BOOL, InvertRgn, FALSE, hdc, hrgn);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiInvertRgn(hdc, hrgn);
|
return NtGdiInvertRgn(hdc, hrgn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,6 +267,8 @@ PolyBezier(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, PolyBezier, FALSE, hdc, apt, cpt);
|
HANDLE_METADC(BOOL, PolyBezier, FALSE, hdc, apt, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc ,(PPOINT)apt, &cpt, 1, GdiPolyBezier);
|
return NtGdiPolyPolyDraw(hdc ,(PPOINT)apt, &cpt, 1, GdiPolyBezier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,6 +285,8 @@ PolyBezierTo(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, PolyBezierTo, FALSE, hdc, apt, cpt);
|
HANDLE_METADC(BOOL, PolyBezierTo, FALSE, hdc, apt, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyBezierTo);
|
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyBezierTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,6 +304,8 @@ PolyDraw(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, PolyDraw, FALSE, hdc, apt, aj, cpt);
|
HANDLE_METADC(BOOL, PolyDraw, FALSE, hdc, apt, aj, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyDraw(hdc, (PPOINT)apt, (PBYTE)aj, cpt);
|
return NtGdiPolyDraw(hdc, (PPOINT)apt, (PBYTE)aj, cpt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,6 +322,8 @@ Polygon(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, Polygon, FALSE, hdc, apt, cpt);
|
HANDLE_METADC(BOOL, Polygon, FALSE, hdc, apt, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolygon);
|
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolygon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,6 +340,8 @@ Polyline(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, Polyline, FALSE, hdc, apt, cpt);
|
HANDLE_METADC(BOOL, Polyline, FALSE, hdc, apt, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolyLine);
|
return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolyLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,6 +358,8 @@ PolylineTo(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, PolylineTo, FALSE, hdc, apt, cpt);
|
HANDLE_METADC(BOOL, PolylineTo, FALSE, hdc, apt, cpt);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyLineTo);
|
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyLineTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,6 +377,8 @@ PolyPolygon(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, PolyPolygon, FALSE, hdc, apt, asz, csz);
|
HANDLE_METADC(BOOL, PolyPolygon, FALSE, hdc, apt, asz, csz);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolygon);
|
return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolygon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,6 +399,8 @@ PolyPolyline(
|
||||||
|
|
||||||
HANDLE_METADC(BOOL, PolyPolyline, FALSE, hdc, apt, asz, csz);
|
HANDLE_METADC(BOOL, PolyPolyline, FALSE, hdc, apt, asz, csz);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolyLine);
|
return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolyLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -387,6 +419,8 @@ ExtFloodFill(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, ExtFloodFill, FALSE, hdc, xStart, yStart, crFill, fuFillType);
|
HANDLE_METADC(BOOL, ExtFloodFill, FALSE, hdc, xStart, yStart, crFill, fuFillType);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiExtFloodFill(hdc, xStart, yStart, crFill, fuFillType);
|
return NtGdiExtFloodFill(hdc, xStart, yStart, crFill, fuFillType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,6 +477,8 @@ BitBlt(
|
||||||
cx,
|
cx,
|
||||||
dwRop);
|
dwRop);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiBitBlt(hdcDest, xDest, yDest, cx, cy, hdcSrc, xSrc, ySrc, dwRop, 0, 0);
|
return NtGdiBitBlt(hdcDest, xDest, yDest, cx, cy, hdcSrc, xSrc, ySrc, dwRop, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -460,6 +496,8 @@ PatBlt(
|
||||||
|
|
||||||
HANDLE_METADC(BOOL, PatBlt, FALSE, hdc, nXLeft, nYLeft, nWidth, nHeight, dwRop);
|
HANDLE_METADC(BOOL, PatBlt, FALSE, hdc, nXLeft, nYLeft, nWidth, nHeight, dwRop);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
/* Get the DC attribute */
|
/* Get the DC attribute */
|
||||||
pdcattr = GdiGetDcAttr(hdc);
|
pdcattr = GdiGetDcAttr(hdc);
|
||||||
if (pdcattr && !(pdcattr->ulDirty_ & DC_DIBSECTION))
|
if (pdcattr && !(pdcattr->ulDirty_ & DC_DIBSECTION))
|
||||||
|
@ -612,6 +650,8 @@ StretchBlt(
|
||||||
cySrc,
|
cySrc,
|
||||||
dwRop);
|
dwRop);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiStretchBlt(hdcDest,
|
return NtGdiStretchBlt(hdcDest,
|
||||||
xDest,
|
xDest,
|
||||||
yDest,
|
yDest,
|
||||||
|
@ -662,6 +702,8 @@ MaskBlt(
|
||||||
yMask,
|
yMask,
|
||||||
dwRop);
|
dwRop);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiMaskBlt(hdcDest,
|
return NtGdiMaskBlt(hdcDest,
|
||||||
xDest,
|
xDest,
|
||||||
yDest,
|
yDest,
|
||||||
|
@ -709,6 +751,8 @@ PlgBlt(
|
||||||
xMask,
|
xMask,
|
||||||
yMask);
|
yMask);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdcDest) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiPlgBlt(hdcDest,
|
return NtGdiPlgBlt(hdcDest,
|
||||||
(LPPOINT)ppt,
|
(LPPOINT)ppt,
|
||||||
hdcSrc,
|
hdcSrc,
|
||||||
|
@ -756,6 +800,8 @@ GdiAlphaBlend(
|
||||||
cySrc,
|
cySrc,
|
||||||
blendfn);
|
blendfn);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdcDst) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiAlphaBlend(hdcDst,
|
return NtGdiAlphaBlend(hdcDst,
|
||||||
xDst,
|
xDst,
|
||||||
yDst,
|
yDst,
|
||||||
|
@ -804,7 +850,8 @@ GdiTransparentBlt(
|
||||||
cySrc,
|
cySrc,
|
||||||
crTransparent);
|
crTransparent);
|
||||||
|
|
||||||
/* FIXME some part need be done in user mode */
|
if ( GdiConvertAndCheckDC(hdcDst) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc, cxSrc, cySrc, crTransparent);
|
return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc, cxSrc, cySrc, crTransparent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -823,6 +870,7 @@ GdiGradientFill(
|
||||||
{
|
{
|
||||||
HANDLE_METADC(BOOL, GradientFill, FALSE, hdc, pVertex, nVertex, pMesh, nCount, ulMode);
|
HANDLE_METADC(BOOL, GradientFill, FALSE, hdc, pVertex, nVertex, pMesh, nCount, ulMode);
|
||||||
|
|
||||||
/* FIXME some part need be done in user mode */
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nCount, ulMode);
|
return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nCount, ulMode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -505,6 +505,8 @@ ExtTextOutW(
|
||||||
cwc,
|
cwc,
|
||||||
lpDx);
|
lpDx);
|
||||||
|
|
||||||
|
if ( GdiConvertAndCheckDC(hdc) == NULL ) return FALSE;
|
||||||
|
|
||||||
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
|
if (!(fuOptions & (ETO_GLYPH_INDEX | ETO_IGNORELANGUAGE)))
|
||||||
{
|
{
|
||||||
if (LoadLPK(LPK_ETO))
|
if (LoadLPK(LPK_ETO))
|
||||||
|
|
Loading…
Reference in a new issue