다음을 통해 공유


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

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

구문

HRESULT CreateLinearGradientBrush(
  [in]          IXpsOMGradientStop        *gradStop1,
  [in]          IXpsOMGradientStop        *gradStop2,
  [in]          const XPS_POINT           *startPoint,
  [in]          const XPS_POINT           *endPoint,
  [out, retval] IXpsOMLinearGradientBrush **linearGradientBrush
);

매개 변수

[in] gradStop1

그라데이션 벡터의 시작 부분에 있는 그라데이션 속성을 지정하는 IXpsOMGradientStop 인터페이스입니다. 이 매개 변수는 NULL이 아니어야 합니다.

[in] gradStop2

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

[in] startPoint

2차원 공간에서 시작점의 좌표를 포함하는 XPS_POINT 구조체입니다.

[in] endPoint

2차원 공간에서 끝점의 좌표를 포함하는 XPS_POINT 구조체입니다.

[out, retval] linearGradientBrush

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

반환 값

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

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

설명

선형 그라데이션의 그라데이션 영역은 시작점과 끝점 사이의 영역이며 그라데이션 경로에 대한 직각으로 양방향으로 확장됩니다. 확산 영역은 그라데이션 영역 외부에 있는 기하 도형의 영역입니다.

그라데이션 중지점은 그라데이션 경로를 따라 특정 위치에서 색을 정의합니다. 그림에서 gradStop1 매개 변수로 지정된 그라데이션 중지점 0은 그라데이션 경로의 시작점에 있으며 gradStop2 매개 변수로 지정된 그라데이션 중지 1은 끝점에 있습니다.

다음 그림과 같이 선형 그라데이션의 시작점과 끝점은 그라데이션 경로의 시작점과 끝점이기도 하며, 이는 해당 점을 연결하는 직선입니다.

선형 그라데이션에 사용되는 용어를 보여 주는 그림 다음 코드 예제에서는 이 메서드를 사용하여 새 인터페이스를 만드는 방법을 보여 줍니다.

IXpsOMLinearGradientBrush    *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMGradientStop       *gradStop1, *gradStop2;
//  XPS_POINT                startPoint, endPoint;

// 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->CreateLinearGradientBrush (
        gradStop1,
        gradStop2,
        &startPoint,
        &endPoint,
        &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

IXpsOMLinearGradientBrush

IXpsOMObjectFactory

XML Paper Specification

XPS 문서 오류

XPS_POINT