掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TShellListView で複数ファイルのプロパティ参照や「送る」 (ID:38697)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まず、提示されたGetSelectedFoldersのコードで > if i>SelCount then Break; この行が不要なのと > FFolders[Index]:=TShellFolder(Folders[i]); は Result[Index] に代入しないといけませんね。 で、取得した複数のファイルのPIDLを配列に詰めてGetUIObjectOfに渡してやれば、複数ファイルに対するIContextMenuが得られます。 GetUIObjectOfの第2引数はファイル・フォルダの個数で、第3引数はPIDLの配列のアドレスです。 ただ、Delphi側ではこの引数をポインタでなくvarで宣言しているので少しややこしいです。たぶんこんな感じ。 procedure DoContextMenuVerbMulti(const Folders: TShellFolderList; Verb: PChar); var aPIDL: packed array of PItemIDList; // ITEMIDLISTへのポインタの配列 i, count: Integer; ... begin // Folders[]の中身をPIDLの配列に詰め直す count := Length(Folders); if count = 0 then Exit; SetLength(aPIDL, count); for i := Low(Folders) to High(Folders) do aPIDL[i] := Folders[i].RelativeID; // 配列の先頭を渡してIContextMenuを取得 Folders[0].ParentShellFolder.GetUIObjectOf(0, count, aPIDL[0], IID_IContextMenu, nil, CM); ... 後はDoContextMenuVerbと同じ ... end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.