Frage : SHGetPathFromIDList (IntPtr, String^); API in VC++.net, das nicht bitte arbeitet, erklären mir, wo ich falsch bin

ich verwende SHGetPathFromIDList (IntPtr innen, String^ Weg) API in VC++.Net, das ich für cutomized in meinem Apllication für .net als

erklärt habe [DllImport („Shell32.Dll“)]
static bool SHGetPathFromIDList (IntPtr pidl, String^ pszPath);

the frist Parameter ist der kopierte Adressenwert von WParam, dem ich Entdeckung using WndProc function


now habe, das, ich Code snip


virtual leeres WndProc gebe (Message% m) die Übersteuerung
{
Schalter (m.Msg)
{
Fall (int) WM_SHNOTIFY:
{
NotificationReceipt (m.WParam, m.LParam);
Bruch;
}
}

Form:: WndProc (m);
}



Then


public: leeres NotificationReceipt (IntPtr WParam, IntPtr LParam)
{
String^ sOut;
                              SHNOTIFYSTRUCT shns;
int nTemp = LParam.ToInt32 ();
sOut = SHNotify_GetEventStr (LParam);
CopyMemory (shns, WParam, sizeof (SHNOTIFYSTRUCT));

Schnur sDisplayname;

String^ filePath = GetPathFromPidl (shns.dwItem1);

}

then nach that



public: statisches String^ GetPathFromPidl (IntPtr Pidl)
{

String^ Weg;
Weg = gcnew Schnur („\ 0“, 255);


bool b=SHGetPathFromIDList (Pidl, Weg);

Rückholweg;
}


the SHGetPathFromIDList API bringt den zutreffenden Wert zurück, aber kein Weg holen keinen Wert zurückholen nur blank

p zurück; Mühelosigkeit erklären mir, wo ich wrong
bin

Antwort : SHGetPathFromIDList (IntPtr, String^); API in VC++.net, das nicht bitte arbeitet, erklären mir, wo ich falsch bin

es hat funktioniert.
Weitere Lösungen  
 
programming4us programming4us