gpt4 book ai didi

c++ - WPD 获取媒体尺寸

转载 作者:行者123 更新时间:2023-12-03 12:49:05 28 4
gpt4 key购买 nike

我想通过 IPortableDeviceValues 获取 WPD 上图像文件的宽度和高度。

根据Windows Dev Center每个类型为 WPD_CONTENT_TYPE_IMAGE 的对象(它们确实如此)都需要提供 WPD_MEDIA_WIDTH/WPD_MEDIA_HEIGHT,但我总是收到错误。

HRESULT MyPortableDevice::getIntValue(IPortableDeviceProperties* properties, PCWSTR objectID, const PROPERTYKEY& key, DWORD* value)
{

ComPtr<IPortableDeviceValues> objectProperties;
ComPtr<IPortableDeviceKeyCollection> propertiesToRead;

HRESULT hr = CoCreateInstance(CLSID_PortableDeviceKeyCollection,
nullptr,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&propertiesToRead));

if (SUCCEEDED(hr)) {
HRESULT tempHr = S_OK;
tempHr = propertiesToRead->Add(key);
}

if (SUCCEEDED(hr)) {
hr = properties->GetValues(objectID,
propertiesToRead.Get(),
&objectProperties);
}

if (SUCCEEDED(hr)) {

ULONG intValue = 0;
hr = objectProperties->GetUnsignedIntegerValue(key, &intValue);

if (SUCCEEDED(hr)) {
value = &intValue;
intValue = 0;
}
}

return hr;

我总是得到一个错误值

hr = objectProperties->GetUnsignedIntegerValue(key, &intValue);

hr = 0x80070490,我找不到此错误代码 here

有人知道这是怎么回事吗?

最佳答案

您得到的错误是:错误代码:(HRESULT) 0x80070490 (2147943568) - 未找到元素。

您收到此错误的原因很可能是实际上手机应用程序开发人员通常只是忽略某些属性。

我已将手机连接到电脑并使用 WPD Information Tool 检查了一些图像,我只得到 .jpg 屏幕截图的此类字段: enter image description here

我认为在大多数情况下您需要读取要流式传输的图片内容并直接检查其参数。也许在某些格式中,您只能读取某些“标题”部分并从那里获取宽度和高度。

关于c++ - WPD 获取媒体尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47908950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com