windows-nt/Source/XPSP1/NT/shell/osshell/lmui/shareui/xicon.hxx
2020-09-26 16:20:57 +08:00

110 lines
2.2 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: xicon.hxx
//
// Contents: Declaration of CSharesEI & CSharesEIA, implementations
// of IExtractIcon
//
// History: 14-Dec-95 BruceFo Created
//
//----------------------------------------------------------------------------
#ifndef __XICON_HXX__
#define __XICON_HXX__
//////////////////////////////////////////////////////////////////////////////
class CSharesEI : public IExtractIcon
{
public:
CSharesEI(IN BYTE bFlags, IN DWORD type) : m_ulRefs(0), m_bFlags(bFlags), m_dwType(type) { AddRef(); }
~CSharesEI() {}
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
//
// IExtractIcon methods
//
STDMETHOD(GetIconLocation)(
UINT uFlags,
LPWSTR szIconFile,
UINT cchMax,
int* piIndex,
UINT* pwFlags
);
STDMETHOD(Extract)(
LPCWSTR pszFile,
UINT nIconIndex,
HICON* phiconLarge,
HICON* phiconSmall,
UINT nIconSize
);
private:
ULONG m_ulRefs;
BYTE m_bFlags;
DWORD m_dwType;
};
#ifdef UNICODE
class CSharesEIA : public IExtractIconA
{
public:
CSharesEIA(IN BYTE bFlags, IN DWORD type) : m_ulRefs(0), m_bFlags(bFlags), m_dwType(type) { AddRef(); }
~CSharesEIA() {}
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
//
// IExtractIconA methods
//
STDMETHOD(GetIconLocation)(
UINT uFlags,
LPSTR szIconFile,
UINT cchMax,
int* piIndex,
UINT* pwFlags
);
STDMETHOD(Extract)(
LPCSTR pszFile,
UINT nIconIndex,
HICON* phiconLarge,
HICON* phiconSmall,
UINT nIconSize
);
private:
ULONG m_ulRefs;
BYTE m_bFlags;
DWORD m_dwType;
};
#endif // UNICODE
#endif // __XICON_HXX__