2017-12-20 9 views
0

私は、IPortableDeviceValues経由でWPD上の画像ファイルの幅と高さを取得したいと思います。WPDはメディアのサイズを取得します

Windows Dev Centerによると、タイプがWPD_CONTENT_TYPE_IMAGEのオブジェクト(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; 

誰が間違って何を知っています私はいつも0x80070490

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

時間=からエラー値を取得し、私はこのエラーコードhere

を見つけることができませんか?

答えて

0

エラーは次のとおりです。 エラーコード:(HRESULT)0x80070490(2147943568) - 要素が見つかりません。

このエラーが発生した理由は、実際に電話アプリのデベロッパーは通常、一部のプロパティを無視しているためです。

私はPCに自分の携帯電話を接続し、WPD Information Toolで一部の画像をチェックし、私はスクリーンショットを.jpgのための唯一のようなフィールドを取得しています enter image description here

私はほとんどの場合、あなたがストリーム配信する映像の内容を読み取るために必要があると思いますパラメータを直接確認してください。たぶん、いくつかのフォーマットでは、いくつかの "ヘッダ"部分だけを読み込み、そこから幅と高さを得ることができます。

関連する問題