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 |