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

IXpsOMRadialGradientBrush 인터페이스를 만듭니다.

구문

HRESULT CreateRadialGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *centerPoint,
  [in]          const XPS_POINT           *gradientOrigin,
  [in]          const XPS_SIZE            *radiiSizes,
  [out, retval] IXpsOMRadialGradientBrush **radialGradientBrush
);

매개 변수

[in] gradStop1

그라데이션 원점에서 그라데이션의 속성을 지정하는 IXpsOMGradientStop 인터페이스입니다. 이 매개 변수는 NULL이 아니어야 합니다.

[in] gradStop2

그라데이션 벡터의 끝에 있는 그라데이션의 속성을 지정하는 IXpsOMGradientStop 인터페이스로, 그라데이션 영역을 묶는 타원입니다. 이 매개 변수는 NULL이 아니어야 합니다.

[in] centerPoint

방사형 그라데이션 타원의 중심점 좌표입니다.

[in] gradientOrigin

방사형 그라데이션 원점의 좌표입니다.

[in] radiiSizes

멤버가 그라데이션 영역의 반지름 길이를 지정하는 XPS_SIZE 구조체입니다.

크기는 XPS 단위로 설명됩니다. 인치당 96개의 XPS 단위가 있습니다. 예를 들어 1" 반경은 96 XPS 단위입니다.

XPS_SIZE 멤버 의미
width x축을 따라 반경의 길이입니다.
height(높이) y축을 따라 반경의 길이입니다.

[out, retval] radialGradientBrush

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

반환 값

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

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_INVALIDARG
centerPoint, radiiSizes 또는 gradientOrigin에서 설명하는 점이 잘못되었습니다. XPS_POINT 구조체의 멤버는 유효하고 유한한 부동 소수점 값을 포함해야 합니다.
E_POINTER
gradStop1, gradStop2, centerPoint, gradientOrigin, radiiSizes 또는 radialGradientBrushNULL입니다.
XPS_E_NO_CUSTOM_OBJECTS
gradStop1 또는 gradStop1 은 인식된 인터페이스 구현을 가리키지 않습니다. XPS 문서 API 인터페이스의 사용자 지정 구현은 지원되지 않습니다.

설명

다음 그림과 같이 방사형 그라데이션의 그라데이션 영역은 중심점에서 설명하는 타원과 중심점에서 확장되는 x 및 y 반지름으로 묶인 영역입니다. 확산 영역은 타원 외부 영역입니다. 그라데이션 경로(표시되지 않음)는 그라데이션 원점과 그라데이션 영역을 경계로 하는 타원 사이에 그려지는 방사형 선입니다.

방사형 그라데이션에 사용되는 용어를 보여 주는 그림 방사형 그라데이션 브러시의 경우 gradStop1 매개 변수로 설정된 그라데이션 중지점은 그라데이션 원점 위치와 오프셋 값 0.0에 해당합니다. gradStop2 매개 변수로 설정된 그라데이션 중지점은 그라데이션 영역의 둘레와 오프셋 값 1.0에 해당합니다. 그라데이션 중지점에 대한 자세한 내용은 IXpsOMGradientStop을 참조하세요.

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


IXpsOMRadialGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                centerPoint, gradientOrigin;
//  XPS_SIZE                 radiiSizes;

// 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->CreateRadialGradientBrush (
        gradStop1,
        gradStop2,
        &centerPoint,
        &gradientOrigin,
        &radiiSizes,
        &newInterface);

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

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

요구 사항

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

추가 정보

IXpsOMGradientStop

IXpsOMObjectFactory

IXpsOMRadialGradientBrush

XML Paper Specification

XPS 문서 오류

XPS_POINT

XPS_SIZE