簡體   English   中英

WPD獲取媒體尺寸

[英]WPD get media dimensions

我想通過IPortableDeviceValues在WPD上獲取圖像文件的寬度和高度。

根據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,我在這里找不到此錯誤代碼

有人知道怎么了嗎?

您遇到的錯誤是:錯誤代碼:(HRESULT)0x80070490(2147943568)-找不到元素。

出現此錯誤的原因很可能是實際上電話應用程序開發人員通常只是忽略某些屬性。

我已將手機連接到PC,並使用WPD信息工具檢查了一些圖像,但僅得到.jpg屏幕截圖的此類字段: 在此處輸入圖片說明

我認為在大多數情況下,您需要閱讀圖片內容以進行流傳輸並直接檢查其參數。 也許以某些格式,您只能閱讀一些“標題”部分,並從中獲取WIDTH和HEIGHT。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM