j'emploie SHGetPathFromIDList (IntPtr dedans, chemin de String^) api dans VC++.Net que j'ai déclaré pour cutomized dans mon Apllication pour .net comme
[DllImport (« Shell32.Dll »)]bool SHGetPathFromIDList (pidl du static d'IntPtr, pszPath de String^) ; le paramètre de frist du
the est la valeur d'adresses copiée de WParam que j'ai la trouvaille using le function
now de WndProc que je donne au snip
virtual de code WndProc vide ( de priorité de Message% m) { {cas de (international) WM_SHNOTIFY de commutateur de (m.Msg) : { NotificationReceipt (m.WParam, m.LParam) ; coupure du ; forme du
du du }} : : WndProc (m) ;
Then
public du } : {sOut de NotificationReceipt (IntPtr WParam, IntPtr LParam) de String^ ; SHNOTIFYSTRUCT shns;nTemp du international = LParam.ToInt32 () ; sOut du = SHNotify_GetEventStr (LParam) ; CopyMemory (shns, WParam, sizeof (SHNOTIFYSTRUCT)); sDisplayname de corde du du ; filePath du String^ du = GetPathFromPidl (shns.dwItem1) ;
}/> then après le that
public : {chemin de String^ GetPathFromPidl (IntPtr Pidl) de String^ de ; Chemin du = corde de gcnew (« \ 0 », 255) ; b=SHGetPathFromIDList de bool du du
(Pidl, chemin) ; chemin de retour du du ; le
the SHGetPathFromIDList api du } renvoie la valeur vraie mais aucun chemin ne recherchent aucune valeur recherchent seulement le blank
p ; la facilité m'indiquent où je suis wrong
class= de
|