Direct2D中的IWICBitmap接口
Provides access to a rectangular area of the bitmap.
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;