STROBJ_bEnumPositionsOnly 함수(winddi.h)

STROBJ_bEnumPositionsOnly 함수는 지정된 텍스트 문자열의 문자 모양 ID와 위치를 열거하지만 캐시된 문자 모양 비트맵을 만들지는 않습니다.

구문

ENGAPI BOOL STROBJ_bEnumPositionsOnly(
  STROBJ    *pstro,
  ULONG     *pc,
  PGLYPHPOS *ppgpos
);

매개 변수

pstro

텍스트 문자열을 설명하는 STROBJ 구조체에 대한 호출자 제공 포인터입니다. 일반적으로 드라이버의 DrvTextOut 함수에서 받은 STROBJ 구조체입니다.

pc

ppgpos의 포인터가 가리키는 GDI 제공 GLYPHPOS 구조체 수를 수신하는 호출자 제공 주소입니다.

ppgpos

GLYPHPOS 구조체 배열에 대한 GDI 제공 포인터를 수신하는 호출자 제공 주소입니다. (다음 설명 섹션 참조하세요.)

반환 값

더 많은 문자 모양을 열거할 경우 반환 값이 TRUE 이고, 열거형이 완료되면 FALSE 입니다. 문자 모양을 열거할 수 없고 오류 코드가 기록되면 반환 값이 DDI_ERROR.

설명

STROBJ_bEnumPositionsOnly 함수는 일반적으로 드라이버의 DrvTextOut 함수 내에서 호출됩니다. 한 가지 중요한 예외를 STROBJ_bEnum 동일한 작업을 수행합니다 . GDI는 문자 모양에 캐시된 비트맵을 만들지 않습니다. STROBJ_bEnum 함수는 드라이버에 결국 이러한 비트맵이 필요하다고 가정합니다. 그러나 많은 최신 프린터에는 내부 래스터라이저가 포함되어 있으므로 문자 모양을 렌더링하는 데 GDI가 필요하지 않습니다. 이러한 프린터의 경우 서버 메모리에서 문자 모양 비트맵의 자동 렌더링 및 캐싱을 제거하면 처리 시간과 메모리 할당을 크게 절약할 수 있습니다.

내부 문자 모양 래스터화를 지원하는 프린터의 경우 다음 규칙을 따라야 합니다.

  • 드라이버는 DEVINFO 구조에서 GCAPS_FONT_RASTERIZER 플래그를 설정해야 합니다.
  • 드라이버의 DrvTextOut 함수는 STROBJ_bEnum 대신 STROBJ_bEnumPositionsOnly 호출해야 합니다.
  • 인쇄 작업에 디바이스가 내부적으로 래스터화할 수 없는 글꼴이 포함된 경우 드라이버는 FONTOBJ_cGetGlyphs 호출하여 문자 모양 비트맵을 가져와야 합니다.
  • 드라이버가 텍스트 문자열을 인쇄한 후 프린터 위치를 확인해야 하지만 글꼴 문자 모양이 필요하지 않은 경우 STROBJ_bGetAdvanceWidths 호출할 수 있습니다.
GDI는 문자 모양에 대해 캐시된 비트맵을 만들지 않으므로 반환된 각 GLYPHPOS 구조 내에서 GLYPHDEF 공용 구조체의 내용은 NULL이 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 winddi.h(Winddi.h 포함)
라이브러리 Win32k.lib
DLL Win32k.sys

추가 정보

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

문자 모양

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths