windows-nt/Source/XPSP1/NT/base/win32/fusion/sxs/sxsasmname.h
2020-09-26 16:20:57 +08:00

106 lines
2.8 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
sxsname.h
Abstract:
IAssemblyName implementation for MSI
Author:
Xiaoyu Wu (xiaoyuw) May 2000
Revision History:
xiaoyuw 09/29//2000 replace attributes with AssemblyIdentity
--*/
#if !defined(_FUSION_SXS_ASMNAME_H_INCLUDED_)
#define _FUSION_SXS_ASMNAME_H_INCLUDED_
#pragma once
#include "fusion.h"
#include "ForwardDeclarations.h"
#include "FusionBuffer.h"
typedef
enum _SXS_ASSEMBLY_NAME_PROPERTY
{
SXS_ASM_NAME_NAME = 0,
SXS_ASM_NAME_VERSION = SXS_ASM_NAME_NAME+ 1,
SXS_ASM_NAME_PROCESSORARCHITECTURE = SXS_ASM_NAME_VERSION+ 1,
SXS_ASM_NAME_LANGUAGE = SXS_ASM_NAME_PROCESSORARCHITECTURE + 1
}SXS_ASSEMBLY_NAME_PROPERTY;
class CAssemblyName : public IAssemblyName
{
private:
DWORD m_cRef;
PASSEMBLY_IDENTITY m_pAssemblyIdentity;
BOOL m_fIsFinalized;
public:
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID riid,void ** ppv);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
// IAssemblyName methods
STDMETHOD(SetProperty)(
/* in */ DWORD PropertyId,
/* in */ LPVOID pvProperty,
/* in */ DWORD cbProperty);
STDMETHOD(GetProperty)(
/* in */ DWORD PropertyId,
/* out */ LPVOID pvProperty,
/* in out */ LPDWORD pcbProperty);
STDMETHOD(Finalize)();
STDMETHOD(GetDisplayName)(
/* [out] */ LPOLESTR szDisplayName,
/* in out */ LPDWORD pcbDisplayName,
/* [in] */ DWORD dwDisplayFlags);
STDMETHOD(GetName)(
/* [out][in] */ LPDWORD lpcbBuffer,
/* [out] */ WCHAR __RPC_FAR *pwzName);
STDMETHOD(GetVersion)(
/* [out] */ LPDWORD pwVersionHi,
/* [out] */ LPDWORD pwVersionLow);
STDMETHOD (IsEqual)(
/* [in] */ LPASSEMBLYNAME pName,
/* [in] */ DWORD dwCmpFlags);
STDMETHOD(BindToObject)(
/* in */ REFIID refIID,
/* in */ IAssemblyBindSink *pAsmBindSink,
/* in */ IApplicationContext *pAppCtx,
/* in */ LPCOLESTR szCodebase,
/* in */ LONGLONG llFlags,
/* in */ LPVOID pvReserved,
/* in */ DWORD cbReserved,
/* out */ VOID **ppv);
STDMETHODIMP Clone(IAssemblyName **ppName);
HRESULT Parse(LPCWSTR szDisplayName);
CAssemblyName();
~CAssemblyName();
HRESULT Init(LPCWSTR szDisplayName, PVOID pData);
HRESULT GetInstalledAssemblyName(DWORD Flags, ULONG PathType, CBaseStringBuffer &rbuffPath);
HRESULT DetermineAssemblyType( BOOL &fIsPolicy );
HRESULT IsAssemblyInstalled(BOOL & fInstalled);
};
#endif