Leaked source code of windows server 2003
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.

59 lines
1.3 KiB

  1. #pragma once
  2. #include "List.h"
  3. class CCacheEntry
  4. {
  5. public:
  6. CCacheEntry();
  7. ~CCacheEntry();
  8. IAssemblyCacheImport* CCacheEntry::GetAsmCache();
  9. LPWSTR _pwzDisplayName;
  10. private:
  11. DWORD _dwSig;
  12. HRESULT _hr;
  13. IAssemblyCacheImport* _pAsmCache;
  14. };
  15. class CAssemblyCacheEnum : public IAssemblyCacheEnum
  16. {
  17. public:
  18. // IUnknown methods
  19. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  20. STDMETHODIMP_(ULONG) AddRef();
  21. STDMETHODIMP_(ULONG) Release();
  22. // IAssemblyCacheEnum methods
  23. STDMETHOD(GetNext)(
  24. /* out */ IAssemblyCacheImport** ppAsmCache);
  25. STDMETHOD(Reset)();
  26. STDMETHOD(GetCount)(
  27. /* out */ LPDWORD pdwCount);
  28. CAssemblyCacheEnum();
  29. ~CAssemblyCacheEnum();
  30. private:
  31. DWORD _dwSig;
  32. DWORD _cRef;
  33. DWORD _hr;
  34. List <CCacheEntry*> _listCacheEntry;
  35. LISTNODE _current;
  36. HRESULT Init(LPASSEMBLY_IDENTITY pAsmId, DWORD dwFlag);
  37. friend HRESULT CreateAssemblyCacheEnum(
  38. LPASSEMBLY_CACHE_ENUM *ppAssemblyCacheEnum,
  39. LPASSEMBLY_IDENTITY pAssemblyIdentity,
  40. DWORD dwFlags);
  41. };