ScriptPlaceOpenType 함수(usp10.h)
ScriptShapeOpenType의 출력에서 OpenType 정보를 사용하여 유니코드 실행에 대한 문자 모양 및 시각적 특성을 생성합니다.
구문
HRESULT ScriptPlaceOpenType(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, out] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in, optional] int *rcRangeChars,
[in, optional] TEXTRANGE_PROPERTIES **rpRangeProperties,
[in] int cRanges,
[in] const WCHAR *pwcChars,
[in] WORD *pwLogClust,
[in] SCRIPT_CHARPROP *pCharProps,
[in] int cChars,
[in] const WORD *pwGlyphs,
[in] const SCRIPT_GLYPHPROP *pGlyphProps,
[in] int cGlyphs,
[out] int *piAdvance,
[out] GOFFSET *pGoffset,
[out, optional] ABC *pABC
);
매개 변수
[in, optional] hdc
디바이스 컨텍스트에 대한 핸들입니다. 자세한 내용은 캐싱합니다.
[in, out] psc
스크립트 캐시를 식별하는 SCRIPT_CACHE 구조체에 대한 포인터입니다.
[in, out] psa
ScriptItemizeOpenType에 대한 이전 호출에서 가져온 SCRIPT_ANALYSIS 구조체에 대한 포인터입니다. 이 구조체는 생성된 문자 모양 목록과 연결된 너비, x 및 y 배치 오프셋을 제어하는 셰이핑 엔진을 식별합니다.
또는 애플리케이션에서 필터링되지 않은 결과를 수신하도록 이 매개 변수를 NULL 로 설정할 수 있습니다.
[in] tagScript
사용할 쓰기 시스템에 대한 OpenType 스크립트 태그를 포함하는 OPENTYPE_TAG 구조체입니다.
[in] tagLangSys
쓰기 시스템의 OpenType 언어 태그를 포함하는 OPENTYPE_TAG 구조체입니다.
[in, optional] rcRangeChars
각 범위의 문자 수 배열입니다. 멤버 수는 cRanges 매개 변수에 표시됩니다. 값의 합계는 cChars 값과 같아야 합니다.
[in, optional] rpRangeProperties
각 범위에 대한 속성을 정의하는 TEXTRANGE_PROPERTIES 구조체의 배열입니다. 요소 수는 cRanges 매개 변수에 의해 정의됩니다.
[in] cRanges
OpenType 기능 범위의 수입니다.
[in] pwcChars
실행을 포함하는 유니코드 문자 배열에 대한 포인터입니다. 요소 수는 cRanges 매개 변수에 의해 정의됩니다.
[in] pwLogClust
논리 클러스터 정보 배열에 대한 포인터입니다. 배열의 각 요소는 pwcChars로 정의된 배열의 문자에 해당합니다. 각 요소의 값은 실행의 첫 번째 문자 모양에서 해당 문자를 포함하는 클러스터의 첫 번째 문자 모양까지의 오프셋입니다. SCRIPT_ANALYSIS 구조체의 fRTL 멤버가 TRUE로 설정되면 배열을 읽을 때 pwLogClust의 요소가 줄어듭니다.
[in] pCharProps
유니코드 실행의 문자 속성 값 배열에 대한 포인터입니다.
[in] cChars
유니코드 실행의 문자 수입니다.
[in] pwGlyphs
ScriptShapeOpenType 함수에 대한 이전 호출에서 가져온 문자 모양 버퍼에 대한 포인터입니다.
[in] pGlyphProps
검색할 각 문자 모양에 대한 특성 배열에 대한 포인터입니다. 값 수는 cGlyphs 값과 같습니다. 문자 모양당 하나의 문자 모양 속성이 있으므로 이 매개 변수에는 cGlyphs로 표시된 요소 수가 있습니다.
[in] cGlyphs
문자 모양 배열 버퍼의 문자 모양 수입니다.
[out] piAdvance
이 함수가 사전 너비 정보를 검색하는 cGlyphs로 표시된 길이의 배열에 대한 포인터입니다.
[out] pGoffset
이 구조체가 문자 모양 결합의 x 및 y 오프셋을 검색하는 GOFFSET 구조체의 배열에 대한 포인터입니다. 이 배열은 cGlyphs로 표시된 길이여야 합니다.
[out, optional] pABC
이 함수가 전체 실행에 대한 ABC 너비를 검색하는 ABC 구조체에 대한 포인터입니다.
반환 값
정상적으로 실행되는 경우 0을 반환합니다. 함수가 성공하지 못하면 0이 아닌 HRESULT 값을 반환합니다. 모든 오류 사례에서 출력 값은 정의되지 않습니다. 애플리케이션은 SUCCEEDED 및 FAILED 매크로를 사용하여 반환 값을 테스트 할 수 있습니다.
함수는 cGlyphs로 표시된 출력 버퍼 길이가 너무 작으면 E_OUTOFMEMORY 반환합니다. 애플리케이션은 더 큰 버퍼를 사용하여 다시 호출을 시도할 수 있습니다.
psc 매개 변수에 지정된 스크립트 캐시에 문자 모양을 배치하기에 충분한 정보가 없고 hdc 매개 변수가 NULL로 전달되어 함수가 배치 프로세스를 완료할 수 없는 경우 함수는 E_PENDING 반환합니다. 애플리케이션은 실행에 대해 올바른 디바이스 컨텍스트를 설정하고 hdc 의 적절한 값과 다른 모든 매개 변수를 동일하게 사용하여 이 함수를 다시 호출해야 합니다.
설명
이 함수는 이전 ScriptPlace 함수보다 선호됩니다. ScriptPlaceOpenType의 몇 가지 이점은 다음과 같습니다.
- 매개 변수는 글꼴 레이아웃 테이블의 OpenType 태그에 직접 해당합니다.
- 매개 변수는 각 문자에 적용되는 기능을 정의합니다. 입력은 범위로 나뉘며 각 범위에는 OpenType 속성이 연결되어 있습니다.
fLogicalOrder 멤버가 psa 매개 변수로 표시된 SCRIPT_ANALYSIS 구조체에서 설정되지 않는 한 모든 배열은 시각적 순서로 표시됩니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | usp10.h |
라이브러리 | Usp10.lib |
DLL | Usp10.dll |
재배포 가능 파일 | Windows XP에서 Usp10.dll 버전 1.600 이상 |