2017-12-20 13 views
0

IPortableDeviceValues를 통해 WPD에서 이미지 파일의 너비와 높이를 가져 오려고합니다.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); 

시간의 =의 0x80070490

에서 오류 값을 얻을 내가 here

사람이 잘못 알고 있나요이 오류 코드를 찾을 수 있습니까?

답변

0

오류 : 오류 코드 : (HRESULT) 0x80070490 (2147943568) - 요소를 찾을 수 없습니다.

이 오류가 가장 많이 발생하는 이유는 실제로 전화 앱 개발자는 대개 일부 속성을 무시하기 때문입니다.

내가 PC에 내 전화를 연결 WPD Information Tool로 일부 이미지를 확인, 나는 .JPG 스크린 샷 만 같은 필드를 얻을 수있다 : 당신이 스트림 사진의 내용을 읽을 필요가 대부분의 경우에 생각 enter image description here

을 매개 변수를 직접 확인하십시오. 어쩌면 일부 형식에서는 일부 "머리글"부분 만 읽고 거기에서 너비와 높이를 얻을 수 있습니다.