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.
 
 
 
 
 
 

97 lines
2.6 KiB

#pragma once
#ifndef _ACTIVATOR_H
#define _ACTIVATOR_H
#include <objbase.h>
#include <windows.h>
#include "cstrings.h"
#include "dbglog.h"
// ----------------------------------------------------------------------
class CActivator;
typedef CActivator *LPACTIVATOR;
STDAPI CreateActivator(
LPACTIVATOR *ppActivator,
CDebugLog * pDbgLog,
DWORD dwFlags);
// ----------------------------------------------------------------------
class CActivator : public IAssemblyBindSink//: public IActivator
{
public:
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// IActivator methods
STDMETHOD(Initialize)(
/* in */ LPCWSTR pwzFilePath,
/* in */ LPCWSTR pwzFileURL);
STDMETHOD(Process)();
STDMETHOD(Execute)();
// IAssemblyBindSink methods
STDMETHOD(OnProgress)(
/* in */ DWORD dwNotification,
/* in */ HRESULT hrNotification,
/* in */ LPCWSTR szNotification,
/* in */ DWORD dwProgress,
/* in */ DWORD dwProgressMax,
/* in */ IUnknown *pUnk);
CActivator(CDebugLog * pDbgLog);
~CActivator();
private:
HRESULT CheckZonePolicy(LPWSTR pwzURL);
HRESULT ResolveAndInstall(LPWSTR *ppwzDesktopManifestPathName);
HRESULT HandlePlatformCheckResult();
DWORD _dwSig;
DWORD _cRef;
DWORD _hr;
LPASSEMBLY_MANIFEST_IMPORT _pManImport;
LPASSEMBLY_IDENTITY _pAsmId;
IManifestInfo *_pAppInfo;
LPASSEMBLY_MANIFEST_EMIT _pManEmit;
HRESULT _hrManEmit;
LPWSTR _pwzAppRootDir;
LPWSTR _pwzAppManifestPath;
LPWSTR _pwzCodebase;
DWORD _dwManifestType;
BOOL _bIs1stTimeInstall;
BOOL _bIsCheckingRequiredUpdate;
CString _sWebManifestURL;
IInternetSecurityManager* _pSecurityMgr;
CDebugLog *_pDbgLog;
LPTPLATFORM_INFO _ptPlatform;
DWORD _dwMissingPlatform;
#ifdef DEVMODE
BOOL _bIsDevMode;
#endif
friend HRESULT CreateActivator(
LPACTIVATOR *ppActivator,
CDebugLog * pDbgLog,
DWORD dwFlags);
};
#endif // _ACTIVATOR_H