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.

94 lines
1.5 KiB

  1. #pragma once
  2. #ifndef __ASSEMBLY_IDENTITY_H__
  3. #define __ASSEMBLY_IDENTITY_H__
  4. class CAssemblyIdentity : public IAssemblyIdentity
  5. {
  6. public:
  7. // IUnknown methods
  8. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  9. STDMETHODIMP_(ULONG) AddRef();
  10. STDMETHODIMP_(ULONG) Release();
  11. STDMETHOD(SetAttribute)(
  12. /* in */ LPCOLESTR pwzName,
  13. /* in */ LPCOLESTR pwzValue,
  14. /* in */ DWORD ccValue);
  15. STDMETHOD(GetAttribute)(
  16. /* in */ LPCOLESTR pwzName,
  17. /* out */ LPOLESTR *ppwzValue,
  18. /* out */ LPDWORD pccValue);
  19. STDMETHOD(GetDisplayName)(
  20. /* in */ DWORD dwFlags,
  21. /* out */ LPOLESTR *ppwzDisplayName,
  22. /* out */ LPDWORD pccDisplayName);
  23. STDMETHOD(IsEqual )(
  24. /*in */ IAssemblyIdentity *pAssemblyId);
  25. CAssemblyIdentity();
  26. ~CAssemblyIdentity();
  27. private:
  28. DWORD _dwSig;
  29. DWORD _cRef;
  30. DWORD _hr;
  31. PASSEMBLY_IDENTITY _pId;
  32. HRESULT Init();
  33. friend HRESULT CreateAssemblyIdentity(
  34. LPASSEMBLY_IDENTITY *ppAssemblyId,
  35. DWORD dwFlags);
  36. friend HRESULT CreateAssemblyIdentityEx(
  37. LPASSEMBLY_IDENTITY *ppAssemblyId,
  38. DWORD dwFlags,
  39. LPWSTR wzDisplayName);
  40. friend HRESULT CloneAssemblyIdentity(
  41. LPASSEMBLY_IDENTITY pSrcAssemblyId,
  42. LPASSEMBLY_IDENTITY *ppDestAssemblyId);
  43. };
  44. #endif