NT4/private/utils/windisk/hard/hardmenu.hxx
2020-09-30 17:12:29 +02:00

105 lines
2.1 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: hardmenu.hxx
//
// Contents: Disk Administrator extension class for Hard Disks: menu ops
//
// Classes:
// CHardMenuIUnknown
// CHardMenuCF
// CHardMenu
//
// History: 11-Jan-94 BruceFo Created
//
//----------------------------------------------------------------------------
class CHardMenuIUnknown;
class CHardMenuCF;
class CHardMenu;
class CHardMenu : public IDAMenuDispatch
{
public:
CHardMenu(IUnknown* pUnk);
~CHardMenu();
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
//
// IDAMenuDispatch methods
//
STDMETHOD(MenuDispatch)(
HWND hwndParent,
LPWSTR DriveName,
UINT Item
);
private:
friend CHardMenuCF;
friend CHardMenuIUnknown;
IUnknown* m_IUnknown;
//
// Class variables
//
CLSID m_cidClass;
};
class CHardMenuIUnknown : public IUnknown
{
public:
CHardMenuIUnknown();
~CHardMenuIUnknown();
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
private:
friend CHardMenuCF;
CHardMenu * m_pClass;
unsigned long m_uRefs;
};
class CHardMenuCF : public IClassFactory
{
public:
//
// IUnknown methods
//
STDMETHOD(QueryInterface)(REFIID riid, LPVOID* ppvObj);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
//
// IClassFactory methods
//
STDMETHOD(CreateInstance)(
IUnknown* pUnkOuter,
REFIID riid,
LPVOID* ppvObj);
STDMETHOD(LockServer)(BOOL fLock);
};