Problem z GetUIObjectOf - E_INVALIDARG

Problem z GetUIObjectOf - E_INVALIDARG
MasterBLB
  • Rejestracja: dni
  • Ostatnio: 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ę!

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • 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, ...

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.