Pytanie : SHGetPathFromIDList (IntPtr, String^); API w VC++.net Zadawalać mówić dokąd i być krzywda

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

Odpowiedź : SHGetPathFromIDList (IntPtr, String^); API w VC++.net Zadawalać mówić dokąd i być krzywda

ono pracować.
Inne rozwiązania  
 
programming4us programming4us