IWICBitmap::Lock 메서드(wincodec.h)
비트맵의 사각형 영역에 대한 액세스를 제공합니다.
구문
HRESULT Lock(
[in] const WICRect *prcLock,
[in] DWORD flags,
[out] IWICBitmapLock **ppILock
);
매개 변수
[in] prcLock
형식: const WICRect*
액세스할 사각형입니다.
[in] flags
형식:DWORD
잠금에 대해 가져오려는 액세스 모드입니다. 읽기, 쓰기 또는 읽기 및 쓰기 액세스를 위한 WICBitmapLockFlags 의 비트 조합입니다.
값 | 의미 |
---|---|
|
읽기 액세스 잠금입니다. |
|
쓰기 액세스 잠금입니다. |
[out] ppILock
형식: IWICBitmapLock**
잠긴 메모리 위치를 수신하는 포인터입니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
잠금은 쓰기 전용이지만 읽기용으로 공유할 수 있습니다. IWICBitmap이 쓰기 위해 잠겨 있는 동안에는 CopyPixels를 호출할 수 없습니다. 이렇게 하면 잠금이 배타적이므로 오류가 반환됩니다.
예제
다음 예제에서는 IWICBitmap 이 만들어지고 IWICBitmapLock을 사용하여 이미지 데이터가 지워집니다.
IWICImagingFactory *pFactory = NULL;
IWICBitmap *pBitmap = NULL;
UINT uiWidth = 640;
UINT uiHeight = 480;
WICPixelFormatGUID formatGUID = GUID_WICPixelFormat32bppBGRA;
WICRect rcLock = { 0, 0, uiWidth, uiHeight };
IWICBitmapLock *pLock = NULL;
HRESULT hr = CoCreateInstance(
CLSID_WICImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IWICImagingFactory,
(LPVOID*)&pFactory
);
if (SUCCEEDED(hr))
{
hr = pFactory->CreateBitmap(uiWidth, uiHeight, formatGUID, WICBitmapCacheOnDemand, &pBitmap);
}
if (SUCCEEDED(hr))
{
hr = pBitmap->Lock(&rcLock, WICBitmapLockWrite, &pLock);
if (SUCCEEDED(hr))
{
UINT cbBufferSize = 0;
UINT cbStride = 0;
BYTE *pv = NULL;
hr = pLock->GetStride(&cbStride);
if (SUCCEEDED(hr))
{
hr = pLock->GetDataPointer(&cbBufferSize, &pv);
}
// Clear the image data
ZeroMemory(pv, cbBufferSize);
// Release the bitmap lock.
pLock->Release();
}
}
if (pBitmap)
{
pBitmap->Release();
}
if (pFactory)
{
pFactory->Release();
}
return hr;
요구 사항
지원되는 최소 클라이언트 | WINDOWS XP SP2, Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | wincodec.h |
라이브러리 | Windowscodecs.lib |
DLL | Windowscodecs.dll |