0

我正在尝试在单击按钮时显示。我写了一个代码,我相信它是正确的。

在调试时我得到 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(通过使用在构造函数中初始化的实例传递参数)。

两者的调试值奇怪的任何原因???

4

0 回答 0