我浏览了以下文档:http: //msdn.microsoft.com/en-us/library/windows/desktop/ee719799 (v=vs.85).aspx
作为上下文,我正在尝试以 JPEG-XR 格式进行编码,并且我想模拟 GDI+ 的SetPropertyItem
功能GetPropertyItem
。
我基本上有3个问题:
- 如果我想向 exif 标头添加自定义属性,正确的查询路径是什么?
- 我可以使用自定义 ID
{ushort=1111}
来识别它吗?如何验证 ID 是否已定义? - 这是否与
id
GdiPlus::PropertyItem 的字段相同?
例如,以下是否有效:
PROPVARIANT value;
value.vt = VT_LPWSTR;
value.pwszVal= L"Metadata Test";
hr = piFrameQWriter->SetMetadataByName(L"/ifd/exif/{ushort=1111}");
此代码块成功,但是当我尝试使用以下方法读回相同的元数据时:
IWICMetadataQueryReader *pQueryReader = NULL;
if(SUCCEEDED(hr))
{
hr = piFrame->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
PROPVARIANT value;
hr = pQueryReader->GetMetadataByName(L"/ifd/exif/{ushort=1111}", &value);
}
这将返回 E_INVALIDARG 错误。
我很感激能帮助我理解它是如何工作的。我觉得我没有正确理解文档。
谢谢你。