Problem z GetUIObjectOf - E_INVALIDARG

Problem z GetUIObjectOf - E_INVALIDARG
MasterBLB
  • Rejestracja:około 19 lat
  • Ostatnio:7 dni
  • Lokalizacja:Warszawa
  • Postów:1454
0

Czołem Bracia

Mam taki kod:

Kopiuj
	IShellFolder *desktopShell;

	HRESULT result = SHGetDesktopFolder(&desktopShell);
	if(SUCCEEDED(result))
	{
		LPITEMIDLIST pidl = NULL;

		if(SUCCEEDED(desktopShell->ParseDisplayName(NULL, NULL,L"C:\\Folder\\TEST", NULL, &pidl, NULL)))
		{		

			IShellFolder *targetFolder;
			if(SUCCEEDED(desktopShell->BindToObject(pidl, NULL, IID_IShellFolder,(void**) &targetFolder)))
			{
				IContextMenu *menu;

				HRESULT result = targetFolder->GetUIObjectOf(NULL, 1,(LPCITEMIDLIST *) &pidl, IID_IContextMenu, NULL,(void**) &menu);
				

				if(SUCCEEDED(result))
				{
					int a=0;
				}
			}
		}
	} 

Niestety,wywołanie GetUIObjectOf zwraca mi E_INVALIDARG :/
Ktoś może mi wyjaśnić dlaczego?Wygóglałem wiele przykładów wyglądających w sumie identycznie jak mój kod,a podczas debugowania nie mogę wejść do wnętrza funkcji aby się zorientować który parametr jest nieprawidłowy.

Pomóżcie proszę!


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]
SA
  • Rejestracja:około 21 lat
  • Ostatnio:ponad 9 lat
  • Postów:513
0

GetUIObjectOf akceptuje tylko relatywne do siebie objekty. Użyj pomocniczej funkcji:

Kopiuj
LPICTEMIDLIST relative = ILFindLastID(pidl);
targetFolder->GetUIObjectOf(NULL, 1, &relative, ...
MasterBLB
Podziałało!Dziękuję

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.