170 lines
3.1 KiB
C
170 lines
3.1 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
WiaHelpers.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Hakki T. Bostanci (hakkib) 06-Apr-2000
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _WIAHELPERS_H_
|
||
|
#define _WIAHELPERS_H_
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// cross references
|
||
|
//
|
||
|
|
||
|
#include "ComWrappers.h"
|
||
|
#include "WiaWrappers.h"
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
|
||
|
class CMyWiaPropertyStorage : public IWiaPropertyStorage
|
||
|
{
|
||
|
public:
|
||
|
HRESULT
|
||
|
ReadSingle(
|
||
|
const CPropSpec &PropSpec,
|
||
|
CPropVariant *pPropVariant
|
||
|
)
|
||
|
{
|
||
|
return ReadMultiple(1, &PropSpec, pPropVariant);
|
||
|
}
|
||
|
|
||
|
HRESULT
|
||
|
WriteSingle(
|
||
|
const CPropSpec &PropSpec,
|
||
|
const CPropVariant &PropVariant,
|
||
|
PROPID propidNameFirst = WIA_IPA_FIRST
|
||
|
)
|
||
|
{
|
||
|
return WriteMultiple(1, &PropSpec, &PropVariant, propidNameFirst);
|
||
|
}
|
||
|
|
||
|
HRESULT
|
||
|
ReadSingle(
|
||
|
const CPropSpec &PropSpec,
|
||
|
CPropVariant *pPropVariant,
|
||
|
VARTYPE vtNew
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
WriteVerifySingle(
|
||
|
const CPropSpec &PropSpec,
|
||
|
const CPropVariant &PropVariant,
|
||
|
PROPID propidNameFirst = WIA_IPA_FIRST
|
||
|
);
|
||
|
};
|
||
|
|
||
|
HRESULT
|
||
|
ReadWiaItemProperty(
|
||
|
IWiaItem *pWiaItem,
|
||
|
const CPropSpec &PropSpec,
|
||
|
CPropVariant *pPropVariant,
|
||
|
VARTYPE vtNew
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
WriteWiaItemProperty(
|
||
|
IWiaItem *pWiaItem,
|
||
|
const CPropSpec &PropSpec,
|
||
|
const CPropVariant &PropVariant
|
||
|
);
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
bool operator ==(IWiaPropertyStorage &lhs, IWiaPropertyStorage &rhs);
|
||
|
|
||
|
inline bool operator !=(IWiaPropertyStorage &lhs, IWiaPropertyStorage &rhs)
|
||
|
{
|
||
|
return !(lhs == rhs);
|
||
|
}
|
||
|
|
||
|
bool operator ==(IWiaItem &lhs, IWiaItem &rhs);
|
||
|
|
||
|
inline bool operator !=(IWiaItem &lhs, IWiaItem &rhs)
|
||
|
{
|
||
|
return !(lhs == rhs);
|
||
|
}
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// define these classes to be able to overload the == and != operators
|
||
|
//
|
||
|
|
||
|
class CIWiaPropertyStoragePtr : public CComPtr<IWiaPropertyStorage>
|
||
|
{
|
||
|
public:
|
||
|
bool operator ==(CIWiaPropertyStoragePtr &rhs)
|
||
|
{
|
||
|
return **this == *rhs;
|
||
|
}
|
||
|
|
||
|
bool operator !=(CIWiaPropertyStoragePtr &rhs)
|
||
|
{
|
||
|
return !(**this == *rhs);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
class CIWiaItemPtr : public CComPtr<IWiaItem>
|
||
|
{
|
||
|
public:
|
||
|
bool operator ==(CIWiaItemPtr &rhs)
|
||
|
{
|
||
|
return **this == *rhs;
|
||
|
}
|
||
|
|
||
|
bool operator !=(CIWiaItemPtr &rhs)
|
||
|
{
|
||
|
return !(**this == *rhs);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
|
||
|
class CMyEnumSTATPROPSTG : public IEnumSTATPROPSTG
|
||
|
{
|
||
|
public:
|
||
|
HRESULT GetCount(ULONG *pcelt);
|
||
|
HRESULT Clone(CMyEnumSTATPROPSTG **ppenum);
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
|
||
|
BOOL
|
||
|
InstallImageDeviceFromInf(
|
||
|
PCTSTR pInfFileName,
|
||
|
PCTSTR pDeviceName = 0
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
InstallTestDevice(
|
||
|
IWiaDevMgr *pWiaDevMgr,
|
||
|
PCTSTR pInfFileName,
|
||
|
BSTR *pbstrDeviceId
|
||
|
);
|
||
|
|
||
|
#endif //_WIAHELPERS_H_
|