by Anonymous » 21 Mar 2025, 09:58
Ich habe eine Shell -Erweiterung, die ein Kontextmenü für Textdateien implementiert. In der Shell -Erweiterung muss ich den Pfad der Datei ermitteln, für die dieses Kontextmenü aufgerufen wurde. Die Funktion shGetPathfromidlist gibt jedoch immer False zurück und ich kann den Pfad zur Datei nicht erhalten. Die aktuelle Implementierung von iShellextinit :: initialize sieht so aus:
Code: Select all
// IShellExtInit
HRESULT Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID)
{
std::wstring result;
TCHAR path[MAX_PATH];
if (SHGetPathFromIDList(pidlFolder, path)) {
result += L"Path: "+ std::wstring(path) + L" \n ";
}
else {
result += L"Failed to get path: ";
}
MessageBox(NULL, result.c_str(), L"", 0);
return S_OK;
}
Ich habe eine Shell -Erweiterung, die ein Kontextmenü für Textdateien implementiert. In der Shell -Erweiterung muss ich den Pfad der Datei ermitteln, für die dieses Kontextmenü aufgerufen wurde. Die Funktion shGetPathfromidlist gibt jedoch immer False zurück und ich kann den Pfad zur Datei nicht erhalten. Die aktuelle Implementierung von iShellextinit :: initialize sieht so aus:
[code]// IShellExtInit
HRESULT Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject* pdtobj, HKEY hkeyProgID)
{
std::wstring result;
TCHAR path[MAX_PATH];
if (SHGetPathFromIDList(pidlFolder, path)) {
result += L"Path: "+ std::wstring(path) + L" \n ";
}
else {
result += L"Failed to get path: ";
}
MessageBox(NULL, result.c_str(), L"", 0);
return S_OK;
}
[/code]