IXpsOMObjectFactory::CreateGradientStop 메서드(xpsobjectmodel.h)

그라데이션 내에서 단일 색 및 위치 정의를 나타내는 IXpsOMGradientStop 인터페이스를 만듭니다.

구문

HRESULT CreateGradientStop(
  [in]          const XPS_COLOR            *color,
  [in]          IXpsOMColorProfileResource *colorProfile,
  [in]          FLOAT                      offset,
  [out, retval] IXpsOMGradientStop         **gradientStop
);

매개 변수

[in] color

색 값입니다.

[in] colorProfile

사용할 색 프로필을 포함하는 IXpsOMColorProfileResource 인터페이스에 대한 포인터입니다. 색 형식이 XPS_COLOR_TYPE_CONTEXT 않으면 이 매개 변수는 NULL이어야 합니다.

[in] offset

오프셋 값입니다.

유효한 범위: 0.0~1.0

[out, retval] gradientStop

IXpsOMGradientStop 인터페이스에 대한 포인터입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표의 값이 포함되지만 이에 국한되지는 않습니다. 이 표에 나열되지 않은 XPS 문서 API 반환 값에 대한 자세한 내용은 XPS 문서 오류를 참조하세요.

반환 코드 설명
S_OK
메서드가 성공했습니다.
E_INVALIDARG
오프셋의 값이 잘못되었습니다.
E_POINTER
color 또는 gradientStopNULL입니다.
XPS_E_MISSING_COLORPROFILE
colorProfileNULL 이지만 색 프로필이 필요합니다. 색 유형이 XPS_COLOR_TYPE_CONTEXT 경우 색 프로필이 필요합니다.
XPS_E_NO_CUSTOM_OBJECTS
colorProfile 은 인식된 인터페이스 구현을 가리키지 않습니다. XPS 문서 API 인터페이스의 사용자 지정 구현은 지원되지 않습니다.
XPS_E_UNEXPECTED_COLORPROFILE
colorProfile 에는 색 프로필이 포함되어 있지만 한 프로필은 예상되지 않습니다. 색 프로필은 색 유형이 XPS_COLOR_TYPE_CONTEXT 경우에만 허용됩니다.

설명

그라데이션 중지점은 특정 위치에서 색을 정의하는 데 사용됩니다. 그라데이션 정지 사이에 색이 보간됩니다. 오프셋으로 지정된 오프셋은 그라데이션의 시작점과 끝점 사이의 상대 위치입니다. 선형 그라데이션의 시작점 또는 방사형 그라데이션의 원점의 오프셋은 0.0입니다. 선형 그라데이션의 끝점 오프셋 또는 방사형 그라데이션의 경계 줄임표는 1.0입니다. 시작점과 끝점을 포함하여 해당 점 간의 오프셋에 대해 그라데이션 중지점을 지정할 수 있습니다. 다음 그림에서는 선형 그라데이션의 그라데이션 경로 및 그라데이션 중지를 보여 줍니다.

선형 그라데이션에 사용되는 용어를 보여 주는 그림 다음 그림에서는 방사형 그라데이션의 그라데이션 정지를 보여 줍니다. 이 예제에서 방사형 그라데이션 영역은 외부 타원으로 묶인 영역이고 XPS_SPREAD_METHOD_REFLECT 분산 메서드는 그라데이션 영역 외부의 공간을 채우는 데 사용됩니다. 방사형 그라데이션에 사용되는 용어를 보여 주는 그림IXpsOMGradientStop 인터페이스는 그라데이션에서 하나만 중지를 지정합니다.

그라데이션을 렌더링하는 데 사용되는 계산은 XML 용지 사양에 설명되어 있습니다.

다음 코드 예제에서는 이 메서드를 사용하여 새 인터페이스를 만드는 방법을 보여 줍니다.


IXpsOMGradientStop    *newInterface;
// The following values are defined outside of 
// this example.
//  XPS_COLOR                    color;
//  IXpsOMColorProfileResource    *colorProfile;
//  FLOAT                        offset;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreateGradientStop (
        &color,
        colorProfile,
        offset,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // use newInterface

        newInterface->Release();
    }
    xpsFactory->Release();
}
else
{
    // evaluate HRESULT error returned in hr
}

요구 사항

   
지원되는 최소 클라이언트 Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 xpsobjectmodel.h

추가 정보

IXpsOMColorProfileResource

IXpsOMGradientStop

IXpsOMObjectFactory

XML Paper Specification

XPS 문서 오류

XPS_COLOR