WPD получит размеры медиа

Я хочу получить ширину и высоту файла изображения на WPD через IPortableDeviceValues.

Согласно Центру разработки Windows для каждого объекта, тип которого 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 и я не могу найти этот код ошибки здесь

Кто-нибудь знает в чем дело?

1 ответ

Решение

Полученная ошибка: Код ошибки: (HRESULT) 0x80070490 (2147943568) - Элемент не найден.

Причина, по которой вы получили эту ошибку, заключается в том, что разработчики телефонных приложений обычно просто игнорируют некоторые свойства.

Я подключил свой телефон к ПК и проверил некоторые изображения с помощью WPD Information Tool, и у меня есть только такие поля для скриншота.jpg: введите описание изображения здесь

Я думаю, что в большинстве случаев вам нужно прочитать содержимое картинки в поток и проверить ее параметры напрямую. Возможно, в некоторых форматах вы можете прочитать только часть заголовка и получить оттуда ШИРИНУ и ВЫСОТУ.

Другие вопросы по тегам