Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997
//
// File: cclsacc.hxx
//
// Contents: Definitions for Class factory and IUnknown methods
// for CClassAccess
//
// Author: DebiM
//
//-------------------------------------------------------------------------
class CClassAccess : public IClassAccess { public:
CClassAccess(void); ~CClassAccess(void); // IUnknown
HRESULT __stdcall QueryInterface( REFIID iid, void ** ppv ); ULONG __stdcall AddRef(); ULONG __stdcall Release(); // IClassInfo
HRESULT __stdcall GetAppInfo( uCLSSPEC * pClassSpec, // Class Spec (CLSID/Ext/MIME)
QUERYCONTEXT * pQryContext, // Query Attributes
INSTALLINFO * pInstallInfo );
HRESULT __stdcall EnumPackages ( LPOLESTR pszPackageName, GUID *pCategory, ULONGLONG *pLastUsn, DWORD dwAppFlags, // AppType options
IEnumPackage **ppIEnumPackage );
//
// IClassRefresh
//
/* HRESULT __stdcall GetUpgrades (
ULONG cClasses, CLSID *pClassList, // CLSIDs Installed
CSPLATFORM Platform, LCID dwLocale, PACKAGEINFOLIST *pPackageInfoList);
HRESULT __stdcall CommitUpgrades ();
*/ //---------------------------------------------------------------------
protected: unsigned long m_uRefs; unsigned long m_cCalls; };
class CClassAccessCF : public IClassFactory { public: CClassAccessCF(); ~CClassAccessCF(); virtual HRESULT __stdcall QueryInterface(REFIID riid, void * * ppvObject); virtual ULONG __stdcall AddRef(); virtual ULONG __stdcall Release(); virtual HRESULT __stdcall CreateInstance(IUnknown * pUnkOuter, REFIID riid, void * * ppvObject); virtual HRESULT __stdcall LockServer(BOOL fLock);
protected: unsigned long m_uRefs; };
class CMergedEnumPackage : public IEnumPackage { public: // IUnknown methods
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject); ULONG _stdcall AddRef(); ULONG _stdcall Release();
// IEnumPackage methods
HRESULT __stdcall Next(ULONG celt, PACKAGEDISPINFO *rgelt, ULONG *pceltFetched); HRESULT __stdcall Skip(ULONG celt); HRESULT __stdcall Reset(void); HRESULT __stdcall Clone(IEnumPackage **ppenum);
CMergedEnumPackage(); ~CMergedEnumPackage();
HRESULT Initialize(IEnumPackage **pcsEnum, ULONG cEnum);
private: IEnumPackage **m_pcsEnum; ULONG m_cEnum; ULONG m_dwRefCount; ULONG m_csnum; };
|