i używać SHGetPathFromIDList (IntPtr wewnątrz, String^ ścieżka) API w VC++.Net i oznajmiać dla cutomized w mój Apllication dla .net jako
[DllImport ("Shell32.Dll")] static bool SHGetPathFromIDList (IntPtr pidl, String^ pszPath);
the frist parametr być the odbity adres wartość WParam który i mieć znalezisko using WndProc function
now i dawać kod snip
virtual kawitacyjny WndProc (Message% m) override { zmiana (m.Msg) { skrzynka (int) WM_SHNOTIFY: { NotificationReceipt (m.WParam, m.LParam); przerwa; } }
Forma:: WndProc (m); }
Then
public: kawitacyjny NotificationReceipt (IntPtr WParam, IntPtr LParam) { String^ sOut; SHNOTIFYSTRUCT shns; int nTemp = LParam.ToInt32 (); sOut = SHNotify_GetEventStr (LParam); CopyMemory (shns, WParam, sizeof (SHNOTIFYSTRUCT)); smyczkowy sDisplayname; String^ filePath = GetPathFromPidl (shns.dwItem1);
}
then po that
public: statyczny String^ GetPathFromPidl (IntPtr Pidl) { String^ Ścieżka; Ścieżka = gcnew Sznurek ("\ (0)", 255);
bool b=SHGetPathFromIDList (Pidl, Ścieżka); powrotny Ścieżka; }
the SHGetPathFromIDList api być oddawanie wartość prawdziwy ale żadny ścieżka odzyskiwać żadny wartość odzyskiwać tylko blank
p; spokój mówić dokąd i być wrong
|