TinTin Geschrieben 7. Januar 2005 Geschrieben 7. Januar 2005 Servus Gemeinde, kurze Frage an Euch: Was muss ich meinem 'CFileDialog fileDlg' als fileDlg.m_ofn.lpstrInitialDir übergeben, so dass der Dialog im Arbeitsplatz geöffnet wird, sprich ich die verfügbaren laufwerke sehe? mit fileDlg.m_ofn.lpstrInitialDir = _T("Arbeitsplatz"); komme ich da nicht weit. Ciao TinTin Zitieren
Klotzkopp Geschrieben 7. Januar 2005 Geschrieben 7. Januar 2005 Versuch mal "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}". Zitieren
TinTin Geschrieben 7. Januar 2005 Autor Geschrieben 7. Januar 2005 Versuch mal "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}". funktioniert, aber was ist das? ich hab sowas versucht, LPITEMIDLIST lpList; char szBuffer[MAX_PATH]; SHGetSpecialFolderLocation( NULL, CSIDL_DRIVES,lpList); if (lpList != NULL) { SHGetPathFromIDList(lpList,szBuffer); AfxMessageBox(szBuffer); } fileDlg.m_ofn.lpstrInitialDir = szBuffer; bekomme aber einen solchen fehler, was soll ich ändern, oder soll ichs vergessen? D:\__projekte\WrImgImp\WrImgImpDlg.cpp(103) : error C2664: 'SHGetSpecialFolderLocation' : Konvertierung des Parameters 3 von 'struct _ITEMIDLIST *' in 'struct _ITEMIDLIST ** ' nicht moeglich Zitieren
toosten Geschrieben 8. Januar 2005 Geschrieben 8. Januar 2005 CFolderDialog fDlg( NULL, "", this, BIF_RETURNONLYFSDIRS); fDlg.DoModal(); Zitieren
Klotzkopp Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 funktioniert, aber was ist das? Der Arbeitsplatz ist eine so genannte Namespace Extension. Das sind -ganz grob gesagt- virtuelle Ordner. Man kann diese Ordner auch über ihre Class ID ansprechen. Und diese ID ist die des Ordners Arbeitsplatz. Andere sind z.B.: Netzwerkumgebung: {208D2C60-3AEA-1069-A2D7-08002B30309D} Systemsteuerung: {21EC2020-3AEA-1069-A2DD-08002B30309D} Internet Explorer: {871C5380-42A0-1069-A2EA-08002B30309D} Zitieren
bigpoint Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 Andere sind z.B.: Netzwerkumgebung: {208D2C60-3AEA-1069-A2D7-08002B30309D} Systemsteuerung: {21EC2020-3AEA-1069-A2DD-08002B30309D} Internet Explorer: {871C5380-42A0-1069-A2EA-08002B30309D} Wie kann man solche ID ermitteln ? Zitieren
TinTin Geschrieben 10. Januar 2005 Autor Geschrieben 10. Januar 2005 Der Arbeitsplatz ist eine so genannte Namespace Extension. Das sind -ganz grob gesagt- virtuelle Ordner. Man kann diese Ordner auch über ihre Class ID ansprechen.... Bin ich denn mit dem was ich oben geschrieben habe auf dem richtigen weg? oder sollte ich es besser wegschmeissen? Ciao TinTin Zitieren
Klotzkopp Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 Ich dachte, das Problem wäre gelöst... :confused: Zitieren
TinTin Geschrieben 10. Januar 2005 Autor Geschrieben 10. Januar 2005 1. das problem ist auch gelöst, wollte aber wissen, ob der ansatz den ich hatte überhaupt in die richtige richtung geht, bzw. wollte wissen woran die fehlermeldung liegt, bzw. wie ich die beim o.g. code weg bekomme. 2. gelten die virtuellen verzeichnisse bei allen windows versionen, oder gibts da unterschiede? 3. wenn 1. nicht in die richtige richtung geht, dann siehe Bigpoint ... ich möchte ja nicht nur die lösung haben, ich möchte sie auch verstehen... :floet: Ciao TinTin Zitieren
Klotzkopp Geschrieben 10. Januar 2005 Geschrieben 10. Januar 2005 1. das problem ist auch gelöst, wollte aber wissen, ob der ansatz den ich hatte überhaupt in die richtige richtung geht, bzw. wollte wissen woran die fehlermeldung liegt, bzw. wie ich die beim o.g. code weg bekomme. SHGetSpecialFolderLocation( NULL, CSIDL_DRIVES,&lpList); Bringt aber nichts, denn aus der Beschreibung von SHGetPathFromIDList: If the location specified by the pidl parameter is not part of the file system, this function will fail. Und der Arbeitsplatz ist nicht Teil des Dateisystems. 2. gelten die virtuellen verzeichnisse bei allen windows versionen, oder gibts da unterschiede?Ich bin mir nicht sicher, aber ich glaube, die sind fest. Hier stehen sie. ich möchte ja nicht nur die lösung haben, ich möchte sie auch verstehen...Lobenswert Zitieren
TinTin Geschrieben 10. Januar 2005 Autor Geschrieben 10. Januar 2005 Ich bin mir nicht sicher, aber ich glaube, die sind fest. scheint mir auch so. Note Systems earlier than Windows 2000 use a display name of Network Neighborhood instead of My Network Places. However, the CLSID is the same for both. bleibt noch die frage wie man sie ermittelt, oder geht das gar nicht? auf der anderen seite brauch man das rad ja nicht 2x erfinden, es geht mir nur ums prinzip. EDIT: Da fällt mir noch was ein, kann ich eigentlich einen Datei öffnen Dialog in Office Art, d.h. mit den Buttons für Verlauf, Eigenen Dateien, Desktop usw. auf der linken Seite, mit MFC erstellen? Danke TinTin Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.