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
2.3 KiB
70 lines
2.3 KiB
/*-----------------------------------------------------------------------------
|
|
*
|
|
* File: wiautil.h
|
|
* Author: Samuel Clement (samclem)
|
|
* Date: Mon Aug 16 13:22:36 1999
|
|
*
|
|
* Copyright (c) 1999 Microsoft Corporation
|
|
*
|
|
* Description:
|
|
* This contains the declaration of the wia util functions
|
|
*
|
|
* History:
|
|
* 16 Aug 1999: Created.
|
|
*----------------------------------------------------------------------------*/
|
|
|
|
#ifndef _WIAUTIL_H_
|
|
#define _WIAUTIL_H_
|
|
|
|
// this is the structure of a string table. A string table is used to look
|
|
// up a string for a specified value. And to look up the value for a specified
|
|
// string. This supports assigning a string to range of numbers.
|
|
struct STRINGTABLE
|
|
{
|
|
DWORD dwStartRange;
|
|
DWORD dwEndRange;
|
|
WCHAR* pwchValue;
|
|
};
|
|
|
|
// define a new string table with name "x"
|
|
#define STRING_TABLE(x) \
|
|
static const STRINGTABLE x[] = { \
|
|
{ 0, 0, NULL },
|
|
|
|
// define a new string table with name "x" and the default value of "str"
|
|
#define STRING_TABLE_DEF( x, str ) \
|
|
static const STRINGTABLE x[] = { \
|
|
{ 0, 0, ( L ## str ) },
|
|
|
|
// add an entry to the string table.
|
|
#define STRING_ENTRY( s, str ) \
|
|
{ (s), (s), ( L ## str ) },
|
|
|
|
// Add a ranged entry to the string table
|
|
#define STRING_ENTRY2( s, e, str ) \
|
|
{ (s), (e), ( L ## str ) },
|
|
|
|
// end the string table
|
|
#define END_STRING_TABLE() \
|
|
{ 0, 0, NULL } \
|
|
};
|
|
|
|
// returns the string for the specified value, or the default
|
|
// value if not found. If no default was supplied then this
|
|
// returns NULL.
|
|
WCHAR* GetStringForVal( const STRINGTABLE* pStrTable, DWORD dwVal );
|
|
|
|
// this retrieves the desired property from the IWiaPropertyStorage, it will fill
|
|
// the variant passed it. It doesn't have to be initialized.
|
|
HRESULT GetWiaProperty( IWiaPropertyStorage* pStg, PROPID propid, PROPVARIANT* pvaProp );
|
|
|
|
// this will retrieve the desired property from the IWiaPropertyStorage and
|
|
// coherce the type to a BSTR and allocate one for the out param pbstrProp.
|
|
HRESULT GetWiaPropertyBSTR( IWiaPropertyStorage* pStg, PROPID propid, BSTR* pbstrProp );
|
|
|
|
// Conversion methods which copy a PROPVARIANT from a variant
|
|
// structure
|
|
HRESULT PropVariantToVariant( const PROPVARIANT* pvaProp, VARIANT* pvaOut );
|
|
HRESULT VariantToPropVariant( const VARIANT* pvaIn, PROPVARIANT* pvaProp );
|
|
|
|
#endif //_WIAUTIL_H_
|