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.

52 lines
1.4 KiB

  1. #pragma once
  2. #include <comdef.h>
  3. class CAssemblyManifestEmit : public IAssemblyManifestEmit
  4. {
  5. public:
  6. // IUnknown methods
  7. STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
  8. STDMETHODIMP_(ULONG) AddRef();
  9. STDMETHODIMP_(ULONG) Release();
  10. STDMETHOD(ImportManifestInfo)(
  11. /* in */ LPASSEMBLY_MANIFEST_IMPORT pManImport);
  12. STDMETHOD(SetDependencySubscription)(
  13. /* in */ LPASSEMBLY_MANIFEST_IMPORT pManImport,
  14. /* in */ LPWSTR pwzManifestUrl);
  15. STDMETHOD(Commit)();
  16. ~CAssemblyManifestEmit();
  17. HRESULT static InitGlobalCritSect();
  18. void static DelGlobalCritSect();
  19. private:
  20. // Instance specific data
  21. DWORD _dwSig;
  22. HRESULT _hr;
  23. LONG _cRef;
  24. IXMLDOMDocument2 *_pXMLDoc;
  25. IXMLDOMNode *_pAssemblyNode;
  26. IXMLDOMNode *_pDependencyNode;
  27. IXMLDOMNode *_pApplicationNode;
  28. BSTR _bstrManifestFilePath;
  29. // Globals
  30. static CRITICAL_SECTION g_cs;
  31. CAssemblyManifestEmit();
  32. HRESULT Init(LPCOLESTR wzManifestFilePath);
  33. HRESULT ImportAssemblyNode(LPASSEMBLY_MANIFEST_IMPORT pManImport);
  34. friend HRESULT CreateAssemblyManifestEmit(LPASSEMBLY_MANIFEST_EMIT* ppEmit,
  35. LPCOLESTR pwzManifestFilePath, MANIFEST_TYPE eType);
  36. };