IWICBitmap::Lock-Methode (wincodec.h)
Ermöglicht den Zugriff auf einen rechteckigen Bereich der Bitmap.
Syntax
HRESULT Lock(
[in] const WICRect *prcLock,
[in] DWORD flags,
[out] IWICBitmapLock **ppILock
);
Parameter
[in] prcLock
Typ: const WICRect*
Das Rechteck, auf das zugegriffen werden soll.
[in] flags
Art: DWORD
Der Zugriffsmodus, den Sie für die Sperre abrufen möchten. Dies ist eine bitweise Kombination von WICBitmapLockFlags für Lese-, Schreib- oder Lese- und Schreibzugriff.
Wert | Bedeutung |
---|---|
|
Die Lesezugriffssperre. |
|
Die Schreibzugriffssperre. |
[out] ppILock
Typ: IWICBitmapLock**
Ein Zeiger, der den gesperrten Speicherort des Arbeitsspeichers empfängt.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Sperren sind exklusiv für das Schreiben, können aber zum Lesen freigegeben werden. Sie können CopyPixels nicht aufrufen, während die IWICBitmap zum Schreiben gesperrt ist. Dadurch wird ein Fehler zurückgegeben, da Sperren exklusiv sind.
Beispiele
Im folgenden Beispiel wird eine IWICBitmap erstellt, und die Bilddaten werden mithilfe eines IWICBitmapLock gelöscht.
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;
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP mit SP2, Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | wincodec.h |
Bibliothek | Windowscodecs.lib |
DLL | Windowscodecs.dll |