다음을 통해 공유


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 속성이 연결되어 있습니다.
전체 항목에 대한 복합 ABC 너비는 문자 모양이 시작 위치의 왼쪽과 앞 너비의 합계에 의해 암시된 길이의 오른쪽에 얼마나 많은 양으로 돌출 되는지를 식별합니다. 선의 전체 선 너비는 정확히 abcA+abcB+abcC입니다. abcA 및 abcC 값은 8비트로 표시되는 셀 높이의 비율로 유지되므로 대략 +/-1%입니다. piAdvance로 표시된 abcA+abcB+abcC 값의 합계인 검색된 총 너비는 TrueType 셰이핑 엔진의 해상도에 정확합니다.

fLogicalOrder 멤버가 psa 매개 변수로 표시된 SCRIPT_ANALYSIS 구조체에서 설정되지 않는 한 모든 배열은 시각적 순서로 표시됩니다.

중요 Windows 8부터: Windows 7에서 실행하는 기능을 유지하려면 Uniscribe를 사용하는 모듈에서 라이브러리 목록에서 gdi32.lib 전에 Usp10.lib를 지정해야 합니다.
 

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 usp10.h
라이브러리 Usp10.lib
DLL Usp10.dll
재배포 가능 파일 Windows XP에서 Usp10.dll 버전 1.600 이상

추가 정보

유니스크립팅을 사용하여 텍스트 표시

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

ScriptPlace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Uniscribe 함수