다음을 통해 공유


IDirectDrawSurface7::SetPrivateData 메서드(ddraw.h)

DirectDraw가 아닌 애플리케이션에서 사용하기 위한 표면과 데이터를 연결합니다. 데이터는 값으로 전달되며 여러 데이터 집합을 단일 표면과 연결할 수 있습니다.

구문

HRESULT SetPrivateData(
  [in] REFGUID unnamedParam1,
  [in] LPVOID  unnamedParam2,
  [in] DWORD   unnamedParam3,
  [in] DWORD   unnamedParam4
);

매개 변수

[in] unnamedParam1

설정할 개인 데이터를 식별하는 전역적으로 고유한 식별자(C)의 (C++) 또는 주소에 대한 참조입니다.

[in] unnamedParam2

표면과 연결할 데이터를 포함하는 버퍼에 대한 포인터입니다.

[in] unnamedParam3

lpData에 있는 버퍼의 크기 값(바이트)입니다.

[in] unnamedParam4

다음 플래그 중 하나로 설정할 수 있는 값입니다. 이러한 플래그는 전달되는 데이터의 형식을 설명하거나 표면이 변경될 때 데이터가 무효화되도록 요청합니다.

(없음)

플래그가 지정되지 않은 경우 DirectDraw는 메모리를 할당하여 버퍼 내에 데이터를 저장하고 데이터를 새 버퍼에 복사합니다. DirectDraw에서 할당한 버퍼는 적절하게 자동으로 해제됩니다.

DDSPD_IUNKNOWNPOINTER

lpData의 데이터는 IUnknown 인터페이스에 대한 포인터입니다. DirectDraw는 이 인터페이스의 IUnknown::AddRef 메서드를 자동으로 호출합니다. 이 데이터가 더 이상 필요하지 않은 경우 DirectDraw는 이 인터페이스의 IUnknown::Release 메서드를 자동으로 호출합니다.

DDSPD_VOLATILE

lpData의 버퍼는 표면이 변경되지 않은 상태로 유지되는 동안에만 유효합니다. 표면의 내용이 변경되면 IDirectDrawSurface7::GetPrivateData 메서드에 대한 후속 호출은 DDERR_EXPIRED 반환합니다.

반환 값

메서드가 성공하면 반환 값이 DD_OK.

실패하면 메서드는 다음 오류 값 중 하나를 반환할 수 있습니다.

  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

설명

DirectDraw는 lpData에서 메모리를 관리하지 않습니다. 이 버퍼가 동적으로 할당된 경우 호출자는 메모리를 해제해야 합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 ddraw.h
라이브러리 Ddraw.lib
DLL Ddraw.dll

추가 정보

IDirectDrawSurface7