я использую SHGetPathFromIDList (IntPtr внутри, курс String^) API в VC++.Net, котор я объявил для после того как я cutomized в моем Apllication для .net как
[DllImport («Shell32.Dll»)]bool SHGetPathFromIDList static (pidl IntPtr, pszPath String^); параметром frist
the будет скопированное значение адреса WParam я имею находку using function
now, котор WndProc я даю snip
virtual Кодего пустое преодоления автоматического действия WndProc (Message% m) { переключателя (m.Msg) {случай (int) WM_SHNOTIFY: { NotificationReceipt (m.WParam, m.LParam); пролом ; форма
}}:: WndProc (m);
Then
public }: пустое NotificationReceipt (IntPtr WParam, IntPtr LParam) {sOut String^; SHNOTIFYSTRUCT shns;nTemp int = LParam.ToInt32 (); sOut = SHNotify_GetEventStr (LParam); CopyMemory (shns, WParam, sizeof (SHNOTIFYSTRUCT)); sDisplayname шнура ; filePath String^ = GetPathFromPidl (shns.dwItem1);
then
} после that
public: статическое String^ GetPathFromPidl (IntPtr Pidl) {курс String^ ; Курс = шнур gcnew («\ 0», 255); b=SHGetPathFromIDList bool
(Pidl, курс); курс возврата ;
the SHGetPathFromIDList api } возвращает значение поистине но никакой курс не восстановляет никакое значение восстановляет только blank
p; легкость говорит мне где я буду wrong
class=
|