Problem z GetUIObjectOf - E_INVALIDARG

0

Czołem Bracia

Mam taki kod:

	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ę!

0

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

LPICTEMIDLIST relative = ILFindLastID(pidl);
targetFolder->GetUIObjectOf(NULL, 1, &relative, ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1