windows-nt/Source/XPSP1/NT/base/ntsetup/win95upg/undo/dll/com.h
2020-09-26 16:20:57 +08:00

119 lines
2 KiB
C++

/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
com.h
Abstract:
Declares interfaces for our COM objects.
Author:
Jim Schmidt (jimschm) 21-Feb-2001
Revision History:
<alias> <date> <comments>
--*/
#include <emptyvc.h>
extern INT g_DllObjects;
extern INT g_DllLocks;
class CUninstallClassFactory : public IClassFactory
{
private:
protected:
ULONG _References;
public:
//
// Constructors
//
CUninstallClassFactory (VOID);
~CUninstallClassFactory (VOID);
//
// IUnknown interface members
//
STDMETHODIMP QueryInterface (REFIID, PVOID *);
STDMETHODIMP_(ULONG) AddRef (VOID);
STDMETHODIMP_(ULONG) Release (VOID);
//
// IClassFactory interface members
//
STDMETHODIMP CreateInstance (LPUNKNOWN, REFIID, PVOID *);
STDMETHODIMP LockServer (BOOL);
};
typedef CUninstallClassFactory *PUNINSTALLCLASSFACTORY;
class CUninstallDiskCleaner : public IEmptyVolumeCache
{
private:
protected:
//
// Data
//
ULONG _References;
BOOL _Purged;
public:
//
// Constructors
//
CUninstallDiskCleaner (VOID);
~CUninstallDiskCleaner (VOID);
//
// IUnknown interface members
//
STDMETHODIMP QueryInterface (REFIID, PVOID *);
STDMETHODIMP_(ULONG) AddRef (VOID);
STDMETHODIMP_(ULONG) Release (VOID);
//
// IEmptyVolumeCache interface members
//
STDMETHODIMP
Initialize (
IN HKEY hRegKey,
IN PCWSTR Volume,
OUT PWSTR *DisplayName,
OUT PWSTR *Description,
OUT DWORD *Flags
);
STDMETHODIMP
GetSpaceUsed (
OUT DWORDLONG *SpaceUsed,
OUT IEmptyVolumeCacheCallBack *Callback
);
STDMETHODIMP
Purge (
IN DWORDLONG SpaceToFree,
OUT IEmptyVolumeCacheCallBack *Callback
);
STDMETHODIMP
ShowProperties (
IN HWND hwnd
);
STDMETHODIMP
Deactivate (
OUT DWORD *Flags
);
};
typedef CUninstallDiskCleaner *PUNINSTALLDISKCLEANER;