INFOTIP.H

/************************************************************************** 
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Copyright 1997 Microsoft Corporation. All Rights Reserved.
**************************************************************************/

/**************************************************************************

File: InfoTip.h

Description: CQueryInfo definitions.

**************************************************************************/

#include <windows.h>
#include <shlobj.h>

#if (_WIN32_IE < 0x0400)
#define CQueryInfo IUnknown

#else //(_WIN32_IE >= 0x0400)

#ifndef INFOTIP_H
#define INFOTIP_H

/**************************************************************************
#include statements
**************************************************************************/

#include "PidlMgr.h"

/**************************************************************************
global variables
**************************************************************************/

extern HINSTANCE g_hInst;
extern UINT g_DllRefCount;

/**************************************************************************

CQueryInfo class definition

**************************************************************************/

class CQueryInfo : public IQueryInfo
{
protected:
DWORD m_ObjRefCount;

public:
CQueryInfo(LPCITEMIDLIST);
~CQueryInfo();

//IUnknown methods
STDMETHOD (QueryInterface) (REFIID riid, LPVOID * ppvObj);
STDMETHOD_ (ULONG, AddRef) (void);
STDMETHOD_ (ULONG, Release) (void);

//IQueryInfo methods
STDMETHOD(GetInfoTip)(DWORD dwFlags, WCHAR **ppwszTip);
STDMETHOD(GetInfoFlags)(LPDWORD pdwFlags);

private:
LPITEMIDLIST m_pidl;
LPMALLOC m_pMalloc;
LPPIDLMGR m_pPidlMgr;
};

#endif //INFOTIP_H

#endif //(_WIN32_IE >= 0x0400)