0

ユーザーが FileOpenPicker で選択したファイルに関するファイル情報を取得しようとしていますが、パスや名前などのすべての情報が空です。ブレークポイントでオブジェクトを表示しようとすると、次のメッセージが表示されました。

file = 0x03489cd4 <情報がありません。shell32.dll のシンボルがロードされていません>

FileOpenPicker を呼び出してファイルを処理するために、次のコードを使用します。

#include "pch.h"
#include "LocalFilePicker.h"

using namespace concurrency;
using namespace Platform;
using namespace Windows::Storage;
using namespace Windows::Storage::Pickers;

const int LocalFilePicker::AUDIO = 0;
const int LocalFilePicker::VIDEO = 1;
const int LocalFilePicker::IMAGES = 2;

LocalFilePicker::LocalFilePicker()
{
    _init();
}

void LocalFilePicker::_init()
{
    _openPicker = ref new FileOpenPicker();
    _openPicker->ViewMode = PickerViewMode::Thumbnail;
}

void LocalFilePicker::askFile(int categorie)
{
    switch (categorie)
    {
    case 0:
        break;
    case 1:
        _openPicker->SuggestedStartLocation = PickerLocationId::VideosLibrary;
        _openPicker->FileTypeFilter->Append(".mp4");
        break;
    case 2:
        break;
    default:
        break;
}

create_task(_openPicker->PickSingleFileAsync()).then([this](StorageFile^ file)
{
    if (file)
    {
        int n = 0;
        wchar_t buf[1024];
        _snwprintf_s(buf, 1024, _TRUNCATE, L"Test: '%s'\n", file->Path);
        OutputDebugString(buf);
    }
    else
    {
        OutputDebugString(L"canceled");
    }
});
}

コードの何が問題なのか、アプリの設定に問題があるのか​​ 、期待どおりに動作しないのか、誰でもわかりますか。

4

1 に答える 1