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.
70 lines
1.5 KiB
70 lines
1.5 KiB
#pragma once
|
|
|
|
struct Property
|
|
{
|
|
LPVOID pv;
|
|
DWORD cb;
|
|
DWORD flag;
|
|
};
|
|
|
|
class CPropertyArray
|
|
{
|
|
private:
|
|
|
|
DWORD _dwSig;
|
|
DWORD _dwType;
|
|
Property *_rProp;
|
|
|
|
public:
|
|
|
|
|
|
static DWORD max_params[MAN_INFO_MAX];
|
|
|
|
CPropertyArray();
|
|
~CPropertyArray();
|
|
HRESULT Init (DWORD dwType);
|
|
HRESULT GetType(DWORD *pdwType);
|
|
inline HRESULT Set(DWORD PropertyId, LPVOID pvProperty, DWORD cbProperty, DWORD flag);
|
|
inline HRESULT Get(DWORD PropertyId, LPVOID pvProperty, LPDWORD pcbProperty, DWORD *flag);
|
|
inline Property operator [] (DWORD dwPropId);
|
|
};
|
|
|
|
class CManifestInfo : public IManifestInfo
|
|
{
|
|
public:
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface(REFIID riid, void ** ppv);
|
|
STDMETHODIMP_(ULONG) AddRef();
|
|
STDMETHODIMP_(ULONG) Release();
|
|
|
|
STDMETHOD(Set)(
|
|
/* in */ DWORD PropertyId,
|
|
/* in */ LPVOID pvProperty,
|
|
/* in */ DWORD cbProperty,
|
|
/* in */ DWORD type);
|
|
|
|
STDMETHOD(Get)(
|
|
/* in */ DWORD PropertyId,
|
|
/* out */ LPVOID *ppvProperty,
|
|
/* out */ DWORD *pcbProperty,
|
|
/* out */ DWORD *pType);
|
|
|
|
STDMETHOD (IsEqual)(
|
|
/* in */ IManifestInfo *pManifestInfo);
|
|
|
|
STDMETHOD (GetType)(
|
|
/* out */ DWORD *pdwType);
|
|
|
|
CManifestInfo();
|
|
~CManifestInfo();
|
|
|
|
HRESULT Init (DWORD dwType);
|
|
private:
|
|
|
|
DWORD _dwSig;
|
|
DWORD _cRef;
|
|
HRESULT _hr;
|
|
|
|
CPropertyArray *_properties;
|
|
};
|
|
|