我正在尝试在单击按钮时显示。我写了一个代码,我相信它是正确的。
在调试时我得到 WICPixelFormatGUID = {????????-????-????-????-????????????} 和 guidPixelFormatSource = {CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC}。我不知道为什么我会得到这些奇怪的值??
我的代码如下 -
HRESULT AMEPreviewHandler::ConvertBitmapSourceTo32bppHBITMAP(
IWICBitmapSource * pBitmapSource,
IWICImagingFactory * pImagingFactory,
HBITMAP * pStream)
//Pay Attention that this function is called from a static function by creating instance of the class (there is no problem in the function call . I have checked the value of the parameters while debugging and i am sure that its correct)
{
IWICBitmapSource *pBitmapSourceConverted = NULL;
WICPixelFormatGUID guidPixelFormatSource; /the problem here is here on debugging it gives strange value.
HRESULT hr = pBitmapSource->GetPixelFormat(&guidPixelFormatSource);
if (SUCCEEDED(hr) && (guidPixelFormatSource != GUID_WICPixelFormat32bppBGRA))
{
IWICFormatConverter *pFormatConverter;
hr = pImagingFactory->CreateFormatConverter(&pFormatConverter);
if (SUCCEEDED(hr))
{
.......And so on....
}
}
}
另一件事是,当我从非静态函数运行相同的代码时,它工作正常(但我的情况是我必须在按钮单击事件上调用它,它是由 DialogProc() 函数(它是静态函数)完成的,我没有更多的选择,所以我创建了类的实例并使用这些实例和指针调用这个 ConvertBitmapSourceTo32bppHBITMAP(通过使用在构造函数中初始化的实例传递参数)。
两者的调试值奇怪的任何原因???