return Ret;
}
+
HFONT
APIENTRY
-NtGdiHfontCreate(
+HfontCreate(
IN PENUMLOGFONTEXDVW pelfw,
IN ULONG cjElfw,
IN LFTYPE lft,
IN FLONG fl,
IN PVOID pvCliData )
{
- ENUMLOGFONTEXDVW SafeLogfont;
HFONT hNewFont;
PLFONT plfont;
- NTSTATUS Status = STATUS_SUCCESS;
-
- /* Silence GCC warnings */
- SafeLogfont.elfEnumLogfontEx.elfLogFont.lfEscapement = 0;
- SafeLogfont.elfEnumLogfontEx.elfLogFont.lfOrientation = 0;
if (!pelfw)
{
return NULL;
}
- _SEH2_TRY
- {
- ProbeForRead(pelfw, sizeof(ENUMLOGFONTEXDVW), 1);
- RtlCopyMemory(&SafeLogfont, pelfw, sizeof(ENUMLOGFONTEXDVW));
- }
- _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
- {
- Status = _SEH2_GetExceptionCode();
- }
- _SEH2_END
-
- if (!NT_SUCCESS(Status))
- {
- return NULL;
- }
-
plfont = LFONT_AllocFontWithHandle();
if (!plfont)
{
plfont->lft = lft;
plfont->fl = fl;
- RtlCopyMemory (&plfont->logfont, &SafeLogfont, sizeof(ENUMLOGFONTEXDVW));
+ RtlCopyMemory (&plfont->logfont, pelfw, sizeof(ENUMLOGFONTEXDVW));
ExInitializePushLock(&plfont->lock);
- if (SafeLogfont.elfEnumLogfontEx.elfLogFont.lfEscapement !=
- SafeLogfont.elfEnumLogfontEx.elfLogFont.lfOrientation)
+ if (pelfw->elfEnumLogfontEx.elfLogFont.lfEscapement !=
+ pelfw->elfEnumLogfontEx.elfLogFont.lfOrientation)
{
/* This should really depend on whether GM_ADVANCED is set */
plfont->logfont.elfEnumLogfontEx.elfLogFont.lfOrientation =
}
+HFONT
+APIENTRY
+NtGdiHfontCreate(
+ IN PENUMLOGFONTEXDVW pelfw,
+ IN ULONG cjElfw,
+ IN LFTYPE lft,
+ IN FLONG fl,
+ IN PVOID pvCliData )
+{
+ ENUMLOGFONTEXDVW SafeLogfont;
+ NTSTATUS Status = STATUS_SUCCESS;
+
+ /* Silence GCC warnings */
+ SafeLogfont.elfEnumLogfontEx.elfLogFont.lfEscapement = 0;
+ SafeLogfont.elfEnumLogfontEx.elfLogFont.lfOrientation = 0;
+
+ if (!pelfw)
+ {
+ return NULL;
+ }
+
+ _SEH2_TRY
+ {
+ ProbeForRead(pelfw, sizeof(ENUMLOGFONTEXDVW), 1);
+ RtlCopyMemory(&SafeLogfont, pelfw, sizeof(ENUMLOGFONTEXDVW));
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ Status = _SEH2_GetExceptionCode();
+ }
+ _SEH2_END
+
+ if (!NT_SUCCESS(Status))
+ {
+ return NULL;
+ }
+
+ return HfontCreate(&SafeLogfont, cjElfw, lft, fl, pvCliData);
+}
+
+
/* EOF */