IWICBitmap::Lock-Methode (wincodec.h)
Ermöglicht den Zugriff auf einen rechteckigen Bereich der Bitmap.
HRESULT Lock(
[in] const WICRect *prcLock,
[in] DWORD flags,
[out] IWICBitmapLock **ppILock
);
[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.
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
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.
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;
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 |