16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:PopupMenuにデスクトップ項目を列挙1"
この発言は #01282 Wacky さんのRE:PopupMenuにデスクトップ項目を列挙1 に対するコメントです
Wacky です。
ネットワークリソースに関してですが、
1. persistent なマシンのリソースを列挙しようとしてエラー発生
2. リソースを列挙すると相手方のシャットダウン時にメッセージが出る
という理由で、共有リソースは列挙せずにマシン名の一覧取得までに
とどめておいたほうが無難かと思います。
procedure TForm1.GetSubItems(ShellFolder: IShellFolder; itemIDList,
itemIDList_Full: PItemIDList; var SubMenuItem: TMenuItem);
var
{...略...}
NetRes: TNetResource; // <-- 追加
begin
{...略...}
// 仮想フォルダならばサブフォルダを取得
HasRealPath := SHGetPathFromIDList(
itemIDList_New, Path);
SHGetDataFromIDList(ShellFolder, // <-- 追加
itemIDList_Sub, SHGDFIL_NETRESOURCE, // <-- 追加
@NetRes, SizeOf(TNetResource) + 1024); // <-- 追加
// if HasRealPath = False then // <-- 修正
if (HasRealPath = False) and
(NetRes.dwDisplayType <> RESOURCEDISPLAYTYPE_SERVER) then
begin
GetSubItems(ShellFolder_Sub, itemIDList_Sub,
itemIDList_New, NewSubMenuItem);
end;
{...略...}
こんな感じでいかがでしょうか。
HQL05475 Wacky
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/03/05 -
Original document by Wacky 氏 ID:(HQL05475)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|