C++ 如何获取iWicDevelopPraw接口

C++ 如何获取iWicDevelopPraw接口,c++,windows,direct2d,wic,C++,Windows,Direct2d,Wic,我正在使用WIC和Direct2D渲染一张原始照片(sony.arw)。这部分我有工作负载,我可以在屏幕上画出来。我想做的是访问iWicDevelopPraw接口。我假设解码器将实现该接口,因此我尝试: Microsoft::WRL::ComPtr<IWICBitmapDecoder> pDecoder; HRESULT hr = m_pWICIMagingFactory->CreateDecoderFromFilename( uri,

我正在使用WIC和Direct2D渲染一张原始照片(sony.arw)。这部分我有工作负载,我可以在屏幕上画出来。我想做的是访问iWicDevelopPraw接口。我假设解码器将实现该接口,因此我尝试:

    Microsoft::WRL::ComPtr<IWICBitmapDecoder> pDecoder;

    HRESULT hr = m_pWICIMagingFactory->CreateDecoderFromFilename(
        uri,
        NULL,
        GENERIC_READ,
        WICDecodeMetadataCacheOnLoad,
        &pDecoder
        );
    if (SUCCEEDED(hr))
    {
        Microsoft::WRL::ComPtr<IUnknown> u;
        hr = pDecoder.AsIID(IID_IWICDevelopRaw, &u);
        if (SUCCEEDED(hr)) { 
            ...

        }
    }
Microsoft::WRL::ComPtr-pDecoder;
HRESULT hr=m_pWICIMagingFactory->CreateDecoderFromFilename(
乌里,
无效的
泛读,
WicDecodataCacheOnLoad,
&光电编码器
);
如果(成功(hr))
{
微软:WRL::comptru;
hr=pDecoder.AsIID(IID_-IWICDevelopRaw,&u);
如果(成功(hr)){
...
}
}

但是在调用pDecoder.AsIID(IID\u IWICDevelopRaw,&u)之后,
hr
NO\u接口
,该接口公开图像的属性。因此,您必须从实际的位图对象获取它,而不是解码器。看起来像IWICBitmapSource=>IWICBitmapFrameDecode=>IwicDevelopPraw。谢谢,它确实是帧的一个接口。该接口公开了图像的属性。因此,您必须从实际的位图对象获取它,而不是解码器。看起来像是IWICBitmapSource=>IWICBitmapFrameDecode=>IwicDevelopPraw。谢谢,它确实是框架的一个接口。