Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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
Geschrieben
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}

Geschrieben
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 ?

Geschrieben
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

Geschrieben

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

Geschrieben
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 :D
Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...