WindowsXP-SP1/shell/shell32/menuband/icotask.h
2020-09-30 16:53:49 +02:00

42 lines
1.3 KiB
C++

#ifndef CIconTask_h
#define CIconTask_h
#include <runtask.h>
typedef void (*PFNICONTASKBALLBACK)(LPVOID pvData, UINT uId, UINT iIconIndex);
class CIconTask : public CRunnableTask
{
public:
#if 0 // Needed if we implement multiple interfaces
// IUnknown methods
virtual STDMETHODIMP_(ULONG) AddRef(void)
{ return CRunnableTask::AddRef(); };
virtual STDMETHODIMP_(ULONG) Release(void)
{ return CRunnableTask::Release(); };
virtual STDMETHODIMP QueryInterface(REFIID riid, void ** ppvObj)
{ return CRunnableTask::QueryInterface(riid, ppvObj); };
#endif
// IRunnableTask methods (override)
virtual STDMETHODIMP RunInitRT(void);
CIconTask(LPITEMIDLIST pidl, PFNICONTASKBALLBACK pfn, LPVOID pvData, UINT uId);
private:
virtual ~CIconTask();
LPITEMIDLIST _pidl;
PFNICONTASKBALLBACK _pfn;
LPVOID _pvData;
UINT _uId;
};
// NOTE: If you pass NULL for psf and pidlFolder, you must pass a full pidl which
// the API takes ownership of. (This is an optimization) lamadio - 7.28.98
HRESULT AddIconTask(IShellTaskScheduler* pts, IShellFolder* psf, LPCITEMIDLIST pidlFolder,
LPCITEMIDLIST pidl, PFNICONTASKBALLBACK pfn, LPVOID pvData, UINT uId,
int* piTempIcon);
#endif